summaryrefslogblamecommitdiff
path: root/devel/vision/2_vision.xml
blob: 99a029a32d067d16181d42efc332ebd2eb7bd797 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                      


                                       
                                                                                                                                                                                                                                                                                                                                                                        


                                      


                                                                                                                 
                                                                                                                                     

                                                                                                
                                                                                                     
                                                                                             


                                                                                                                                                                                
                                                                                                                                                                                   
                      


                                       


                                                                                                                                                                                                                                        
                                                                                                                                   
                                                                                                                     
                                                                                                                                                                 
                                                                                                                                                                                     
                      


                                            



















                                                                                                                                                                                                                               







                                                                                                                                                                 
                                                                                            
                                                                                                                                                                                                            
                                                                                                                                        









                                                                                                                                           

                                                                                                                                                           








                                                                                                                                                             
                                                                          







                                                                                                                                                 
                                                                                                           
                                                                        

                                                                                           

                              
                     







                                                                                                 
                                                                        
                                                                        
                                                                        


                              
              
          
<?xml version="1.0" encoding="utf-8"?>
<chapter label="2" id="vision">
    <title>Project Vision</title>
    <section id="statement">
        <title>Vision Statement</title>
        <para>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.</para>
    </section>
    <section id="features">
        <title>System Features</title>
        <orderedlist id="FEA">
            <listitem id="FEA-1"><para>Configure the natural language used for user interfaces.</para></listitem>
            <listitem id="FEA-2"><para>Configure input device behaviour.</para></listitem>
            <listitem id="FEA-3"><para>Create and modify partition tables, including file systems and mount points.</para></listitem>
            <listitem id="FEA-4"><para>Connect to wired and wireless networks.</para></listitem>
            <listitem id="FEA-5"><para>Configure date, time, and timezone.</para></listitem>
            <listitem id="FEA-6"><para>Select packages and package sets to install.</para></listitem>
            <listitem id="FEA-7"><para>Configure boot loaders and settings.</para></listitem>
            <listitem id="FEA-8"><para>Configure user account information, including root password, user name, user password, and user icon.</para></listitem>
            <listitem id="FEA-9"><para>Install the Adélie Linux system with the specified configuration and customisation.</para></listitem>
            <listitem id="FEA-10"><para>Install the Adélie Linux system from configuration specified in a file or network location, without user interaction.</para></listitem>
            <listitem id="FEA-11"><para>Install the Adélie Linux system without requiring a network connection, provided that a local package repository exists.</para></listitem>
        </orderedlist>
    </section>
    <section id="assumptions">
        <title>Assumptions Made</title>
        <orderedlist id="ASM">
            <listitem id="ASM-1"><para>Project Horizon will be the only official way to install Adélie Linux outside of manual (chroot-based) installation.</para></listitem>
            <listitem id="ASM-2"><para>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.</para></listitem>
            <listitem id="ASM-3"><para>The Horizon UI will run in a graphical display mode, not a text-only mode.</para></listitem>
            <listitem id="ASM-4"><para>"Full disk encryption" does not include the /boot partition.</para></listitem>
            <listitem id="ASM-5"><para>A scripted installation performed only using the Horizon Runner will support computers with no graphics.</para></listitem>
            <listitem id="ASM-6"><para>Package sets will be defined during the requirements phase using feedback from the community and user class representatives.</para></listitem>
        </orderedlist>
    </section>
    <section id="dependencies">
        <title>External Dependencies</title>
        <formalpara id="DEP-1">
            <title>DEP-1: Input via console-setup</title>
            <para>The system must integrate with the existing console-setup tooling for configuring the keyboard layout.</para>
        </formalpara>
        <formalpara id="DEP-2">
            <title>DEP-2: Partition table formats</title>
            <para>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:
                <orderedlist id="DEP2_sub">
                    <listitem id="DEP-2.1"><para>Master Boot Record (MBR),</para></listitem>
                    <listitem id="DEP-2.2"><para>GUID Partition Table (GPT), and</para></listitem>
                    <listitem id="DEP-2.3"><para>Apple Partition Map (APM).</para></listitem>
                </orderedlist>
            </para>
        </formalpara>
        <formalpara id="DEP-3">
            <title>DEP-3: Network interface manipulation</title>
            <para>The system must be able to manipulate the following aspects of network interface state:
                <orderedlist id="DEP3_sub">
                    <listitem id="DEP-3.1"><para>The status of the link (up / down).</para></listitem>
                    <listitem id="DEP-3.2"><para>The physical (MAC) address, if the interface supports spoofing.</para></listitem>
                    <listitem id="DEP-3.3"><para>The network address and host address of the interface, using IP versions 4 and/or 6.
                            <orderedlist id="DEP3.3_sub">
                                <listitem id="DEP-3.3.1"><para>Addresses must support manual configuration.</para></listitem>
                                <listitem id="DEP-3.3.2"><para>IP version 4 addresses must support automatic configuration via DHCP.</para></listitem>
                                <listitem id="DEP-3.3.3"><para>IP version 6 addresses must support automatic configuration via DHCPv6 or SLAAC.</para></listitem>
                            </orderedlist>
                        </para>
                    </listitem>
                    <listitem id="DEP-3.4"><para>Routes and their metrics.</para></listitem>
                    <listitem id="DEP-3.5"><para>For wireless links, access point / BSSID and authentication, including discovery of nearby networks and manual entry for hidden networks.</para></listitem>
                    <listitem id="DEP-3.6"><para>DNS resolver configuration, including nameservers and search domains.</para></listitem>
                </orderedlist>
            </para>
        </formalpara>
        <formalpara id="DEP-4">
            <title>DEP-4: Package manager</title>
            <para>The system must be able to interface with the package manager in the following ways:
                <orderedlist id="DEP4_sub">
                    <listitem id="DEP-4.1"><para>To determine the estimated disk space required by the packages selected.</para></listitem>
                    <listitem id="DEP-4.2"><para>To determine if any conflicts exist between packages selected.</para></listitem>
                    <listitem id="DEP-4.3"><para>To install packages into a specified root directory.</para></listitem>
                    <listitem id="DEP-4.4"><para>To select the repositories and signing keys used during installation.</para></listitem>
                    <listitem id="DEP-4.5"><para>To select the repositories and signing keys used in the installed operating environment.</para></listitem>
                </orderedlist>
            </para>
        </formalpara>
        <formalpara id="DEP-5">
            <title>DEP-5: Boot loaders</title>
            <para>The system must be able to configure multiple different types of bootloaders.  For release 1.0, the following formats have been identified:
                <orderedlist id="DEP5_sub">
                    <listitem id="DEP-5.1"><para>GRUB 2.</para></listitem>
                    <listitem id="DEP-5.2"><para>syslinux.</para></listitem>
                    <listitem id="DEP-5.3"><para>U-Boot.</para></listitem>
                </orderedlist>
            </para>
        </formalpara>
        <formalpara id="DEP-6">
            <title>DEP-6: Network script loading</title>
            <para>The system must be able to read an HorizonScript file from network locations.  The protocols supported for release 1.0 include:
                <orderedlist id="DEP6_sub">
                    <listitem id="DEP-6.1"><para>HTTP/1.1.</para></listitem>
                    <listitem id="DEP-6.2"><para>HTTPS (HTTP/1.1 with TLS 1.2 or higher).</para></listitem>
                    <listitem id="DEP-6.3"><para>TFTP.</para></listitem>
                    <listitem id="DEP-6.4"><para>SFTP (subsystem of SSH).</para></listitem>
                    <listitem id="DEP-6.5"><para>CIFS/SMB.</para></listitem>
                </orderedlist>
            </para>
        </formalpara>
        <formalpara id="DEP-7">
            <title>DEP-7: File systems</title>
            <para>The system must be able to create and write data to the following file systems.
                <orderedlist id="DEP7_sub">
                    <listitem id="DEP-7.1"><para>ext3.</para></listitem>
                    <listitem id="DEP-7.2"><para>ext4.</para></listitem>
                    <listitem id="DEP-7.3"><para>XFS.</para></listitem>
                    <listitem id="DEP-7.4"><para>JFS.</para></listitem>
                    <listitem id="DEP-7.5"><para>ext2.</para></listitem>
                    <listitem id="DEP-7.6"><para>vfat.</para></listitem>
                    <listitem id="DEP-7.7"><para>HFS+.</para></listitem>
                </orderedlist>
            </para>
        </formalpara>
    </section>
</chapter>