This post got me thinking about what a modern desktop OS should actually look like so I'm opening this for brainstorming
Requirements
- Highly portable, core system written in modern language(s)
- Targeted at desktop use
- GUI and command-line both available, system boots directly to graphics mode except possibly for rescue/safe mode cases
- Pervasive case-insensitivity
- Pervasive hooks for extension points throughout the system (see below for some examples)
- Versioning FS
- Full ACL permissions in FS
- Extension points for FUSE-style userland filesystem implementations
- System configurations all in plain text files
- All configurations are available both through hand-hacking config files and through UI
- Async and memory-mapped IO as OS-level IO models
- Network IO available through all standard file functions as well as through socket interface, ie you can open a URL as a file transparently
- Modern encryption as part of base system with extension points for adding new algorithms, etc
- Shared memory pages as primary IPC mechanism
- Message-driven by default
- Modern VM hypervisor in base system
- First-class emulation framework hooks integrated with the hypervisor system so that system emulators can be built that can be treated transparently as VMMs
- High-quality support for printers, plotters, scanners, tablets and cameras
- Low-latency audio in base system
- UI built around user affordances: Traditional menus, button bars, scroll bars, etc.
- Three graphics APIs in core:
- Vulkan as low-level graphics library
- Low-level low-latency frame capture hooks at this layer for supporting eg screen recording, OBS capture, Sunshine, etc
- 2D acceleration built on top of Vulkan
- Hooks for network transparency at this layer for eg RDP support
- High-level graphics library built on top of 2D library, used for normal window drawing
- Vulkan as low-level graphics library
- ANSI terminal library in core
- Versioned release model for production releases, rolling for dev branch
- Core utils include all compilers required to rebuild the world
- Extensive help system available both from the command line and GUI
- Help files are written in a restricted subset of standard HTML
- AGPLv3 for all kernel and new system utilities
Anti-requirements
- No DRM, phone home nonsense, user tracking or ads in the base OS
- POSIX compliance in the base OS (supported via compatibility library)
- Windows compatibility in the base OS (as above, via Wine port)
- Microkernel
- Any C or C++ code in the base system
- Suitability for use as a server or embedded/device OS
- Hamburger menus or any other interface hiding in any core tools


.png)