Now that we have introduced our rationale to maintaining a Retro branch for AOSC OS (we will now refer to this as AOSC OS/Retro), this page will serve as an introduction to our design specifications and goals in maintaining this branch.
Specifications§
In terms of end-user experience and management characteristics, AOSC OS/Retro is a standard AOSC OS distribution. However, changes are made in terms of dependencies, features, and maintenance schedules. In brief, AOSC OS/Retro will...
- Come with limited architectural support - only those specified as Retro will be maintained in accordance to the Retro specifications.
- Share the same package tree as the mainline distribution, as well as the Core.
- Share the same set of maintenance tools as the mainline distribution.
- Strip down package features in interest of conserving storage and memory.
- Ship in different flavours as otherwise would with the mainline distributions.
- Update on a slower schedule, with a few exceptions.
Now, we will present the commonalities and differences in detail.
Target Architectures§
AOSC OS/Retro currently targets the following architectures...
- 32-Bit Intel 80486 and compatible (IBM) Personal Computers (Floating Point Unit not required) and Personal System/2 (PS/2).
- 32-Bit Big Endian PowerPC-based Apple Macintosh computers, with New World ROM support.
Common Components and Tools§
As AOSC OS/Retro is not a fork but a branch of the mainline AOSC OS distribution, it will share not only the package tree, but also the Core and the maintenance tools as the mainline...
- Package Tree: aosc-os-abbs, on the
retro
branch.- This means that AOSC OS/Retro will also use systemd as the default init system. Now before you start yelling, systemd runs fine on a Toshiba T4900CT with an Intel Pentium 75MHz processor, 16MiB of RAM, and a 810MiB HDD. We've tested it to be sure.
- AOSC OS Core will be shared, but only updates based on what are synced to the
retro
branch. See Maintenance Schedule. - Packaging/Maintenance Tools...
- Autobuild3, for automatic packaging from Autobuild3 manifests.
- ACBS, for tree-based Autobuild3 manifest management and packaging.
- Ciel, for containerised packaging.
- Various scriptlets, shared with AOSC OS.
Dependencies§
As AOSC OS/Retro targets storage and performance constraint devices, unlike its mainline counterpart, AOSC OS/Retro will ship packages with minimal optional feature enabled. Listed below are a few general rules to be followed...
- Base distribution (containing
admin-base
,boot-base
,core-base
,editor-base
,kernel-base
,network-base
,systemd-base
,util-base
, andweb-base
) must not introduce dependency to Python (python-2
,python-3
) and Perl (perl
). - Language bindings (Java, Perl, Python, etc.) must not be enabled by default, unless required by another package essential to the distribution.
- Glibc is only to ship with the
C
andC.UTF-8
locales pre-generated, with others generated by user configuration (defined in/etc/locale.gen
but commented by default). - Strip down all optional dependencies, unless such package is from the Core, or otherwise discussed on a case-by-case basis.
- All packages are to be built with Link-Time Optimisation enabled, unless such optimisation leads to build failure (to be reported to upstream).
- Non-performance critical applications are to be built with the
-Os
(AB_FLAGS_OS=1
inautobuild/defines
) optimisation level to conserve space. - Manpages and Texinfo documents will be shipped, but all other forms of documentation (examples, HTML, gtk-doc, etc.) will be omitted.
- Linux Kernel must boot without Dracut, unless used on a RAID setup. Dracut is not shipped with default distributions.
Distribution Features§
AOSC OS/Retro will ship in two flavours, "Base" and "Base/X11." Both flavours will come fully localised (once locale is enabled by the end-user) as well as a generic, non-optimised Linux Kernel for their respective
- The Base flavour contains a minimal bootable and non-graphical system with tools essential to system management, basic text editing (GNU Nano), networking (wired and wireless), and basic user functions (compression, documentation browser, pager, power conservation, system monitoring, etc.).
- The Base/X11 flavour contains a minimal bootable and graphical system, with all components listed above for the Base flavour, added with an X11-based desktop environment and other graphical utilities.
- Network management on both flavours will be provided with NetworkManager.
The Base/X11 variant will come with the following additional components (the list below is subject-to-change)...
- Desktop Environment: IceWM with Panel.
- IceWM is chosen for its familiar (Windows-like) interface, (partial) FD.o compliance, as well as CJK (Chinese, Japanese, and Korean) support.
- Fonts: Standard X11 fonts (bitmap) and Unifont (bitmap and vectorised).
- Unifont supplied to provide complete Unicode text displaying support.
- Audio and Video: MPV and Cmus; FFmpeg; PulseAudio.
- MPV is chosen for its lightweight SDL2-based interface, as well as FFmpeg support.
- Cmus is chosen for its curses-based terminal UI, minimalising graphical hardware requirement.
- PulseAudio will come standard for proper multi-device and multi-application audio support.
- Image Viewer: Feh.
- Feh is chosen for its minimal interface based on standard X widgets.
- Web Browser: Dillo, w3m, and Lynx.
- Dillo is chosen for its lightweight FLTK interface, as well as partial HTML5 compliance.
- w3m and Lynx are shipped as standard under the
web-base
metapackage.
Extra packages, such as Firefox and more feature-complete desktop environments will be available from the community repository, however, hardware requirement checks will be enforced based on processor and memory installed on your AOSC OS/Retro device (i.e., package installation will be aborted when attempting to install Firefox on a computer without SSE2 SIMD support).
Maintenance Schedules§
AOSC OS/Retro will be maintained on the retro
branch, sharing the same package tree with the mainline distribution. However, in interest of both the maintainer's reasonable maintenance effort, as well as the longevity and usability of the target devices, AOSC OS/Retro will update on an annual schedule.
After the first update cycle of a year, the retro
branch will merge from the stable
branch from the mainline distribution (stable
=> retro
). After which, no further merge or reverse merge will be allowed. Package versions in the retro
branch will remain constant unless...
- An patch-level update is made available.
- A security update is made available that requires a version update. If necessary, changes could be cherry-picked from the
stable
branch.
At the end of each annual cycle, a new distribution tarball will be made available on the downloads page, as well as an update CD image containing a local repository containing all system updates. A full AOSC OS/Retro repository will also be provided in forms of a tarball or a set of CD/DVD image.
Goals§
AOSC OS/Retro will be maintained with a few goals in mind, relating to system performance, storage requirements, and peripheral support. This chapter will also serve to outline AOSC OS/Retro's system requirements.
This chapter will then be split into sections, containing requirements and metrics shared and specific to each of our target architectures.
Common Metrics§
- AOSC OS/Retro's "Base" flavour should install onto a 540MB hard disk drive (largest capacity available for non-LBA systems, such as earlier 486-class systems), while the "Base/X11" flavour should install onto a 1.2GB drive (commonly found on Intel x86 computers from ~1996).
- After the system is installed, there should be enough space for a 64MiB swap area and future system updates (assuming one package is cached onto the hard disk at a time, using the update CD).
- Users should expect to conserve ~100MiB of hard disk space for network- or internet-based system updates.
- AOSC OS/Retro should not require any form of network access for normal usage, assuming the user has obtained a copy of local repository.
- AOSC OS/Retro should support common ISA/EISA (or PCMCIA), PCI (or CardBus), PCI Express (or ExpressCard), SCSI, as well as USB (1.1/2.0), PS/2, Serial and Parallel peripherals.
- AOSC OS/Retro should support dial-up, 10/100/1000Mbps Ethernet, as well as 802.11a/b/g/n/ac wireless connections.
- AOSC OS/Retro should boot from IDE/EIDE/CE-ATA/SATA/SCSI-based hard disk drives, SCSI configuration should be supported but will require extra components. AOSC OS/Retro may boot from USB, optical media, or other forms of external/removable storage, but this will not officially supported.
System Performance (x86)§
On the 32-bit x86 architecture, AOSC OS/Retro "Base" requires the following system components...
- Processor: Intel 80486 or compatible, FPU (Floating Point Unit) not required.
- System Bus: ISA, EISA, PCI, or PCI Express based system devices. MCA (Micro Channel Architecture) not supported.
- RAM: 16MiB (32MiB swap).
- Storage: 540MB (~514MiB).
- (Ultra) DMA via PCI Bus Mastering will significantly improve system performance.
- Input Device: PS/2 or Serial Port Keyboard. Mouse not required.
- Display: VGA or compatible, or serial terminal.
AOSC OS/Retro "Base/X11" requires the following system components...
- Processor: Intel 80486 or compatible, FPU (Floating Point Unit) not required.
- Intel Pentium II 233MHz, AMD K6, Cyrix MediaGX, Via C7 or above will significantly improve graphical experience.
- Intel Pentium III 500MHz, AMD K6-II/III or above recommended for video playback using MPV.
- System Bus: ISA, EISA, PCI, or PCI Express based system devices. MCA (Micro Channel Architecture) not supported.
- RAM: 32MiB (32MiB swap).
- 128MiB or above recommended for Internet browsing.
- Storage: 1.2GB (~1141MiB).
- 4.0GB (~3814MiB) recommended for local multimedia storage.
- (Ultra) DMA via PCI Bus Mastering will significantly improve system performance.
- Input Device: PS/2 or Serial Port Keyboard and Mouse.
- Touchscreen will be supported via I2C or Serial Port.
- Display: VGA or compatible.
- ISA/EISA video cards not recommended, VESA Local Bus will significantly improve video performance.
- PCI and PCI Express video cards recommended, especially those with OpenGL 2.1 support (often found after ~2002), as this will allow for GPU-based video playback acceleration.
System Performance (PowerPC 32-bit, Big Endian)§
AOSC OS/Retro "Base" or "Base/X11" should run on all supported devices on this architecture - that is, PowerPC-based Apple Macintosh computers with New World ROM support.
- Portables...
- PowerBook G3 "Lombard" and "Pismo" models.
- All iBook G3, iBook G4, PowerBook G4 models.
- Desktops...
- Power Macintosh G3 "Blue and White" models.
- All Power Macintosh G4 and G5 models.
- All iMac G3 and G4 models.
- All eMac models.
- All G4-based Mac Mini models.
- All G4- and G5-based Xserve models.