Welcome to the documentation of NightOS. This directory contains all design and specification documents of the project.
The rendered documentation can be found on https://clementnerma.github.io/NightOS
.
A global, technical overview of the system's architecture can be found here.
- Roadmap - the project's roadmap
- Development - how the project will be developped
- Hardware requirements - hardware required in order to install and run NightOS
- Applications - the way to run software on NightOS
- Libraries - sharing identical behaviours between multiple applications
- Users - sharing a computer between multiple persons
- The balancer - improve performances by balancing processes' priority
- Crash saves - prevent data loss at maximum with crash-proof data saving
- Domains - manage a network of computers
- Encryption - encrypt the whole storage and individual user accounts
- Freeze-prevention system - prevent the system from freezing when all RAM and CPU power are used
- Parental control - manage children access to the computer
- Permissions system - prevent applications and users from doing whatever they want
- Sandboxes - isolate applications to prevent them from harming important data
- Synchronization - synchronize settings between multiple computers
The list of default applications and their description can be found here.
- Overview - a global overview of the system
- The controller - permissions management system
- Developer mode - enable powerful development options
- Devices - manage hardware devices
- File formats - description of all native file formats
- I/O manager - manage input/output requests
- Multi-platform management - how the NightOS ecosystem can be used on other operating systems
- Performances - system tweaks used to optimize general and specific-case performances
- Pre-compiling applications - pre-compiling applications to improve installation time and size
- Processes - low-level view of how code runs in a concurrent way
- The registry - configure the system's behaviour and features
- Services - special processes that run in the background and allow other applications to perform specific tasks
- The shell - the de-facto way to run complex and/or automatized tasks on NightOS
- Applications and libraries - document describing common things between applications and libraries
- Applications - how applications are structured and behave
- Libraries - what are libraries
- Filesystem - how the filesystem works
- Storage permissions - how permissions are managed on filesystem elements
- The boot process - how updates are performed
- Update processes - how updates are performed
- Containers - process isolation system
- Permissions - list of applications' permissions
- The registry - exhaustive specification of the registry's content
- Vocabulary - the list of NightOS-related terms
- The shell - the native shell of NightOS
- Shell scripting - Hydre's scripting language
- Crash saves - what are crash saves and how they are handled
- Services - specifications about services work and behave
- Translations - how content translation is handled
- Hardware - how the kernel interacts with hardware
- Memory - memory organization and management
- Processes - processes concept and management
- Scheduling - tasks scheduling
- Data structures - data structures used by the kernel to represent things in memory
- Kernel-process communication - how the kernel communicate with processes and vice-versa
- Inter-process communication - communication between processes
- Signals - complete specification of signals
- System calls - complete specification of system calls
- Desktop environments - how the user interface is handled by applications
- File managers - how file managers are integrated into the system
- File openers - how files are associated to applications
- Filesystem interfaces - how filesystems are handled by third-party services
sys::fs
- the filesystem servicesys::fsh
- the high-level filesystem servicesys::hw
- the hardware servicesys::perm
- the permissions servicesys::net
- the network servicesys::crypto
- the cryptography servicesys::crashsave
- the crash saves servicesys::hydre
- the shell (Hydre) servicesys::app
- the applications management servicesys::process
- the processes management service