Requirements
In this document, you can find a list of functions and constraints regarding RadishOS and RadishFactory. All functions correspond to a detail of the broken-down problem.
Problem breakdown
This is a tree-shaped representation of what the OS building problem entails. Click to zoom, or open the above PDF version.
Problem breakdown mindmap
RadishOS
Interactors
The following diagrams show what elements are involed in interactions with the Linux distribution, and factory. Listing them helps think about functions and constraints.
mindmap
((RadishOS))
(User)
(Hardware)
(Software)
(Displays/Graphics)
(USB Peripherals)
(Threats)
(RadishFactory)
(Network/Internet)
(Private Data/Passwords)
Desired Apps
| Function | App name |
|---|---|
| Web browser | Zen |
| Text editor | NeoVim |
| Wayland compositor | Niri |
| XDG desktop portal | XDP Gnome |
| Terminal emulator | Kitty |
| Status bar | Waybar |
| Office suite | LibreOffice |
| Document viewer | Gnome Papers |
| Image viewer | Gnome Loupe |
| Discord client | Vesktop |
| VCS | Git |
Functional requirements
OF1: Perform usual tasks
| Subfunction | Criterion | Value | Criticity |
|---|---|---|---|
| Browse the Internet | Browser feature test* | 540+/588 | Must |
| View/edit documents | Formats | MS Office + ODS PDF, PNG, JPEG | Must |
| Edit code/configs | Languages | C, C++, Rust, Go, Python, Bash/shell, Markup, and config formats | Must |
| Deploy containers | Technologies | Podman | Must |
| Deploy virtual machines | Technologies | QEMU/KVM | Must |
| VirtualBox | Should | ||
| Play games | Platform | Steam | Could |
| Epic Games | Could |
* browser test from https://html5test.teamdev.com
OF2: Configure the system
| Subfunction | Criterion | Value | Criticity |
|---|---|---|---|
| Install/update packages | Format | Binary archives | Must |
| Flatpak | Must | ||
| Sources | RadishFactory | Must | |
| Gentoo Official Binhost | Should | ||
| Security checks | GPG signature | Must | |
| Blake2B sums | Must | ||
| Manage app permissions | Type of permissions | Network, paths, ipc, etc. | Should |
| Configure displays | Must | ||
| Configure networks | Must | ||
| Configure users & groups | Must | ||
| Mount drives | Permission level | Non-root | Must |
OF3: Install the OS
| Subfunction | Criterion | Value | Criticity |
|---|---|---|---|
| Choose partition layout | Complexity | Easy mode + terminal access | Must |
| Partition types | LUKS, LVM, VFAT, EXT4, XFS | Must | |
| Swap | Should | ||
| Configure users | When | Before installation starts | Must |
| Choose OS features | When | Before installation starts | Could |
| Add dotfiles | When | Before installation starts | Must |
| Ask for confirmation | When | Before installation starts | Must |
OF4: Protect user data
| Subfunction | Criterion | Value | Criticity |
|---|---|---|---|
| Insure availability | Prevent data losses | Any non-user related | Must |
| Insure integrity | Prevent data losses | Any non-user related | Must |
| Insure confidentiality | VPN protocols | IPSec, Wireguard, OVPN | Must |
| Tracking protection | Ad blocking | Must | |
| Link tracker removal | Must | ||
| Insure traceability | Log rotation | 1 month | Should |
| Log retention | 1 year | Should |
OF5: Manage RadishFactory out-of-the-box
| Subfunction | Criterion | Value | Criticity |
|---|---|---|---|
| Login remotely | Protocol | SSH | Must |
| Web GUI | Must |
Non-functional requirements (constraints)
ON1: Hardening
| Subfunction | Criterion | Value | Criticity |
|---|---|---|---|
| Disk encryption | Encrypted partitions | Home and RootFS | Must |
| Standards | LUKS 2 | Must | |
| Decryption mechanisms | Passphrase | Must | |
| Decryption mechanisms | Yubikey/smartcard | Should | |
| Implement segmentation | Processes | Mandatory Access Control | Should |
| Containerized apps | Should | ||
| Users | No root | Must | |
| Casual | Must | ||
| Admin | Must | ||
| Filter network traffic | Implement a firewall | Should | |
| Comply with recomms. | Guidelines | ANSSI (MIRE level TBD) | Should |
| OpenSCAP (Score TBD) | Should |
ON2: Compatibility
| Subfunction | Criterion | Value | Criticity |
|---|
RadishFactory
Interactors
mindmap
((RadishFactory))
(RadishOS)
(Network/Internet)
(Source code)
(Binary packages)
(Admin User)
(Threats)
(Installation Media)
Functional requirements
Non-functional requirements (constraints)
Last updated on