Chapter 2. Overall Description

Table of Contents

Project Perspective
Project Components
User Classes and Characteristics
Operating Environment
Implementation Constraints
Project Dependencies

This chapter provides a high-level description of Project Horizon. For more information on the background of Project Horizon, see Project Horizon: Vision, 2019, Wilcox et al.

Project Horizon is a new system that provides computer users and administrators the ability to install the Adélie Linux operating system. It is intended to replace the current manual installation procedure for the use cases identified in Project Horizon: Vision, 2019, Wilcox et al sections 1.2.2 and 1.4.

It is expected over the next few years that Project Horizon will evolve with the Adélie family of software and services to provide a well-accepted libre environment for general purpose computing.

Project Horizon contains two main components: the Horizon UI, which collects information about the desired target configuration from the user, and the Horizon Runner, which runs on the target computer and performs the installation.

The Horizon UI supports two different modes, or "environments". The primary environment is the Installation Environment. This is the environment when Horizon UI runs on the target computer and can collect information from the running computer about the target system. The Installation Environment is our primary focus for development of Project Horizon release 1.0. The secondary environment is the Runtime Environment. This is the environment when Horizon UI is running on an administrator's computer and is not running on the target computer. This environment does not allow collection of any information from the running computer, as it is not the target system.

The Horizon Runner is the component which takes as input a HorizonScript, and uses it to configure the target system. It runs directly on the target system and can retrieve a HorizonScript from a local or remote location.

The identified user classes are defined in Project Horizon: Vision, 2019, Wilcox et al section 1.4. A summary of these classes is included below.

Table 2.1. User classes for release 1.0 of Project Horizon

User Class Description
The Beginner "Charlie" (favoured) This class of users has never used Linux before, but has used another operating system on their computer. Users of this class will need documentation that contains clear descriptions of what their option selection will cause to happen. Users of this class typically will want to keep their existing operating system while installing Adélie Linux to a second partition or disk.
The Enthusiast "Dakota" (favoured) This class of users has experience with other Linux distributions, and wishes to install Adélie Linux. Users of this class will want to feel in control of their computer and the system being installed to it. Users of this class will use the majority of the features denoted as "advanced" in this requirements specification.
The Administrator "Jamie" This class of users is interested in using HorizonScript to automate installation of Adélie Linux to one or more computers. Users of this class may or may not use the Horizon UI to create the HorizonScript.
The Developer "River" This class of users has significant Linux experience and wishes to install Adélie Linux on more "esoteric" hardware, such as a BeagleBone Black or Pentium III.

OE-Defined.  In this document, the term "installation environment" refers to the Horizon UI or Horizon Runner executing on the target computer that will install Adélie Linux. The term "runtime environment" refers to the Horizon UI or Horizon Runner executing on a computer that is already running an existing OS.

OE-1.  Horizon Runner shall run on any computer that is supported by the Easy Kernel and is using a Tier 1 supported CPU architecture as defined at Platform Group Documentation, 2019, Adélie Linux.

OE-2.  Horizon UI shall run under the X11 display server with a screen resolution no smaller than 800x600 pixels.

OE-3.  The system shall provide the adelie-base-posix package in the installation environment.

IC-1.  Project Horizon code written in C-based languages shall conform to the Adélie Linux code style.

IC-2.  Horizon UI shall be written in C++ using the Qt widget toolkit.

IC-3.  The system shall use the Modular Crypt Format as described in crypt(3), 2011, FreeBSD and as implemented in the musl C library to encrypt passwords with the SHA-512 and/or Blowfish algorithms.

IC-4.  Horizon Runner shall be written in a programming language that is present in the System repository of Adélie Linux, as listed at Programming Languages, 2019, Wilcox.

IC-5.  The system shall perform all communication with external packages via documented APIs, and shall not use pipes to user-facing commands.

ASM-1.  The Perform Installation and Installation Completion sections of Horizon UI are assumed to be their own executable, which is run when either: the Horizon UI completes gathering information from the User and has created the HorizonScript to use for installation, or an Administrator has started Horizon automatically and wishes to have graphical output of the installation progress.

DEP-1.  The Horizon UI depends on the Horizon Runner.