Skip to content

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.

A mind map showing the ramifications of the problem, in SVG format.

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

FunctionApp name
Web browserZen
Text editorNeoVim
Wayland compositorNiri
XDG desktop portalXDP Gnome
Terminal emulatorKitty
Status barWaybar
Office suiteLibreOffice
Document viewerGnome Papers
Image viewerGnome Loupe
Discord clientVesktop
VCSGit

Functional requirements

OF1: Perform usual tasks
SubfunctionCriterionValueCriticity
Browse the InternetBrowser feature test*540+/588Must
View/edit documentsFormatsMS Office + ODS PDF, PNG, JPEGMust
Edit code/configsLanguagesC, C++, Rust, Go, Python, Bash/shell, Markup, and config formatsMust
Deploy containersTechnologiesPodmanMust
Deploy virtual machinesTechnologiesQEMU/KVMMust
VirtualBoxShould
Play gamesPlatformSteamCould
Epic GamesCould

* browser test from https://html5test.teamdev.com

OF2: Configure the system
SubfunctionCriterionValueCriticity
Install/update packagesFormatBinary archivesMust
FlatpakMust
SourcesRadishFactoryMust
Gentoo Official BinhostShould
Security checksGPG signatureMust
Blake2B sumsMust
Manage app permissionsType of permissionsNetwork, paths, ipc, etc.Should
Configure displaysMust
Configure networksMust
Configure users & groupsMust
Mount drivesPermission levelNon-rootMust
OF3: Install the OS
SubfunctionCriterionValueCriticity
Choose partition layoutComplexityEasy mode + terminal accessMust
Partition typesLUKS, LVM, VFAT, EXT4, XFSMust
SwapShould
Configure usersWhenBefore installation startsMust
Choose OS featuresWhenBefore installation startsCould
Add dotfilesWhenBefore installation startsMust
Ask for confirmationWhenBefore installation startsMust
OF4: Protect user data
SubfunctionCriterionValueCriticity
Insure availabilityPrevent data lossesAny non-user relatedMust
Insure integrityPrevent data lossesAny non-user relatedMust
Insure confidentialityVPN protocolsIPSec, Wireguard, OVPNMust
Tracking protectionAd blockingMust
Link tracker removalMust
Insure traceabilityLog rotation1 monthShould
Log retention1 yearShould
OF5: Manage RadishFactory out-of-the-box
SubfunctionCriterionValueCriticity
Login remotelyProtocolSSHMust
Web GUIMust

Non-functional requirements (constraints)

ON1: Hardening
SubfunctionCriterionValueCriticity
Disk encryptionEncrypted partitionsHome and RootFSMust
StandardsLUKS 2Must
Decryption mechanismsPassphraseMust
Decryption mechanismsYubikey/smartcardShould
Implement segmentationProcessesMandatory Access ControlShould
Containerized appsShould
UsersNo rootMust
CasualMust
AdminMust
Filter network trafficImplement a firewallShould
Comply with recomms.GuidelinesANSSI (MIRE level TBD)Should
OpenSCAP (Score TBD)Should
ON2: Compatibility
SubfunctionCriterionValueCriticity

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