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 toolchain.
- Build: Equivalent to Unix's Make but also package manager in the style of Nix.
- Linker: Builds finalised Dynamic Link Libraries and executables.
- X64asm: An Assembler with Mac macros to better integrate 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
- Dynamic Loader: Loads PE formatted executables into RAM with any Dynamic Link Libraries they need.
Libraries
- Widget Library: Classes typical graphical applications are built from. Written in MIA.
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.
- Terminal: Designed from first principles, does not need to emulate physical terminals
- 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
- Games If this project ever gets that far.