From Fedora Project Wiki

< Anaconda

Revision as of 16:45, 8 January 2013 by Duffy (talk | contribs)

Fedora 18 features an installer that is rewritten and redesigned from the ground up. The installer development team determined that a rewrite of the installer was necessary for a myriad of reasons, including the following:

  • The previous installer had an aging (around 13 years old) infrastructure that was difficult and time-consuming to maintain and improve, constraining new feature development. One current install team developer refers to the old infrastructure as "an incredible mess."
  • The performance of the old installer left a lot to be desired. Long-term tasks could not be performed in the background. This required long wait times and pauses throughout the installation experience. For example, as CPU and time-intensive tasks were processed, the UI would freeze for several moments until a given processing task completed.
  • The previous UI was not very responsive. This manifested in various ways, including a failure of the UI screens to redraw when the display was changed between a TTY and back to the UI.
  • The text-only version of the installer interface was a completely separate codebase, which increased the maintenance burden of the installer. This also increased the amount of work needed to implement new features as they would need to be written twice, once for each codebase.
  • The previous codebase was not written in a modular fashion. This caused issues where similar functionality in different modes (for example, GUI vs kickstart) used different logic and resulted in inconsistencies for users.
  • The automated kickstart mode of the installer was separate and incompatible with the UI modes of the installer. A separate utility, system-config-kickstart, was created solely to provide a UI for creating kickstarts since the existing UI could not be used for this purpose without a completed install.

In previous versions of Fedora, the installer's interface followed a wizard design pattern [1], consisting of multiple linear screens with occasional nested pop-up dialogs. (See diagram below)