Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The installation experience should be attractive and effortless to reassure new users that their new OS is the right choice. The process should feel safe and should only highlight risk when necessary (e.g. when data will be destroyed). This installer intends to cater to:
- New users with no understanding of the nature of an operating system.
- Users who want to perform typical installations like a clean install or dual-boot in a hands-off manner.
- Expert users who have very specific configuration requirements.
- OEM-like users who are performing the OS installation, but leaving user-specific details for the final end user.
Every Install is an OEM Install
For the sake of providing a single installer experience, every install is treated as an OEM install; the primary purpose of the installer is to get the bootable OS onto a device. Additional setup (like creating users) will happen after the first boot into the clean system and not in the installer. This requires an initial setup tool in the installed OS.
The installer may also be used as a recovery medium, whether used from an external drive or from a special partition on the device. If booting to the recovery partition, we may want to slightly tailor the experience and copy.
One goal of the installer is to be customizable by downstream projects wishing to ship it. We should include style classes in each view to facilitate custom CSS, and always use the system-wide OS name rather than hardcoding any specific OS.
The flow of the installer is relatively linear with a few areas that branch off.
- Keyboard Layout
- Try or Install
- Issue Detection
- Installation Progress
Scary (but hopefully accurate) chart
This represents the eventual goal of the installer. A minimum viable implementation might not cover every screen below; see the list above and in the sidebar for the current implementation plans.