Welcome to OfflineOS
Offline OS is my project to create a self-sufficient, desktop Operating System starting from the programming languages up.
At present a bootstrap implementation of the systems programming language is being developed.
Due to the extraordinarily wide scope of this project it is divided into a series of sub-projects and sub-sub-projects:
Toolchain
A set of complementary programming languages and related tools. Note that most of these will have to be written twice, the first time for cross-compiling from Linux.
- Mac:
Equivalent to C's pre-processor but more pervasive through the toolchainUnder reconsideration. - Build: Equivalent to Unix's Make but also package manager in the style of Nix.
- Linker: Builds finalised Dynamic Link Libraries and executables.
- Asm: An Assembler with macros for better integration with compiled languages.
- OTIL: The One True Implementation Language. A procedural language for systems programming.
- MIA: Mia Is Awesome. An Object-Functional language for application programming.
- ExLang: Dynamically typed and JIT'ed language for writing application plugins.
- Libraries: Written in OTIL and MIA.
System Space
- Boot Loader: UEFI based, might be built directly into the Captain.
- Captain: The operating system kernel. Few design decisions have been made yet.
- File Systems: FAT32 for UEFI compatible boot partitions, something from Linux for primary storage and ISO9660 for optical media support.
- Graphics Driver: Hardware not yet determined.
- Dynamic Loader: Loads PE formatted executables into RAM with any Dynamic Link Libraries they need.
Libraries
- String: Functions for processing and manipulating textual data.
- *Graphical Primitives Libraries: Equivalent of DirectX on Windows. Provides rendering capacities and event driven I/O.
- Widget Library: Classes that graphical applications are typically built from. Written in MIA using the graphical primitives libraries.
Applications
As OfflineOS is meant to be self-sufficient it needs a bare minimum of every application needed to improve it
- Command Interpreter
- Superitor: A Vim-like editor that supports multi-language source files and extensions.
- Text-mode Terminal: Designed from first principles, does not need to emulate physical terminals.
- Graphical Terminal: Above but also taking advantage of being run in a graphical environment.
- Drop-down Terminal: A lighter version of the above Graphical Terminal for quickly running commands. Appears when <F12> is pressed with a drop down animation. Equivalent of KDE's Yakuake.
- File Manager: Focus on loading files on and off USB devices.
- Configuration Centre:
- Reader: Supports EPub, PDF and HTML via libraries.
- Pixel Editor:
- Vector Editor:
- Image Viewer:
- 3D Animation Suit:
- Video Player: Supports file collection and DVD.
- Music Player: Supports file collection and CD's. Heavily stylised, non-standard UI. Animations.
- Music Composition Program:
- Audio Editor:
- Video Editor:
- CD Burner / Ripper:
- Game data editor: Akin to Godot minus the text editing features.
- Games If this project ever gets that far.