Project Vision
Vision Statement
For end users and network administrators who need to install Linux on their computers, Project Horizon is a Linux installation system that provides a streamlined way to install Adélie Linux. Unlike other distribution installers, Project Horizon focuses on ease of use, integrity, and allowing customisation while providing good defaults.
System Features
Configure the natural language used for user interfaces.
Configure input device behaviour.
Create and modify partition tables, including file systems and mount points.
Connect to wired and wireless networks.
Configure date, time, and timezone.
Select packages to install.
Configure boot loaders and settings.
Configure user account information, including root password, user name, user password, and user icon.
Install the Adélie Linux system with the specified configuration and customisation.
Install the Adélie Linux system from configuration specified in a file or network location, without user interaction.
Install the Adélie Linux system without requiring a network connection, provided that a local package repository exists.
Assumptions Made
Project Horizon will be the only official way to install Adélie Linux outside of manual (chroot-based) installation.
Project Horizon will have exclusive control of the target system while it is committing to disk. No other user-facing applications will be allowed to run during this process.
The Horizon UI will run in a graphical display mode, not a text-only mode.
"Full disk encryption" does not include the /boot partition.
A scripted installation performed only using the Horizon Runner will support computers with no graphics.
External Dependencies
DEP-1: Input via console-setup
The system must integrate with the existing console-setup tooling for configuring the keyboard layout.
DEP-2: Partition table formats
The system must be able to create, read, and modify partition tables and disk labels used on the architectures that the system will be used on. For release 1.0, the following formats have been identified:
Master Boot Record (MBR),
GUID Partition Table (GPT), and
Apple Partition Map (APM).
DEP-3: Network interface manipulation
The system must be able to manipulate the following aspects of network interface state:
The status of the link (up / down).
The physical (MAC) address, if the interface supports spoofing.
The network address and host address of the interface, using IP versions 4 and/or 6.
Addresses must support manual configuration.
IP version 4 addresses must support automatic configuration via DHCP.
IP version 6 addresses must support automatic configuration via DHCPv6 or SLAAC.
Routes and their metrics.
For wireless links, access point / BSSID and authentication, including discovery of nearby networks and manual entry for hidden networks.
DNS resolver configuration, including nameservers and search domains.
DEP-4: Package manager
The system must be able to interface with the package manager in the following ways:
To determine the estimated disk space required by the packages selected.
To determine if any conflicts exist between packages selected.
To install packages into a specified root directory.
To select the repositories and signing keys used during installation.
To select the repositories and signing keys used in the installed operating environment.
DEP-5: Boot loaders
The system must be able to configure multiple different types of bootloaders. For release 1.0, the following formats have been identified:
GRUB 2.
syslinux.
U-Boot.
DEP-6: Network script loading
The system must be able to read an HorizonScript file from network locations. The protocols supported for release 1.0 include:
HTTP/1.1.
HTTPS (HTTP/1.1 with TLS 1.2 or higher).
TFTP.
SFTP (subsystem of SSH).
CIFS/SMB.
DEP-7: File systems
The system must be able to create and write data to the following file systems.
ext3.
ext4.
XFS.
JFS.