A text-based hobby operating system written in Rust for x86-64, inspired by Unix, Plan 9, and DOS.
MOROS is a hobbyist operating system written from scratch in Rust that targets x86-64 computers with a BIOS. It provides a simple, efficient command-line environment for computing and communication, drawing design inspiration from Unix, Plan 9, and DOS. The project started as an extension of OS development tutorials and showcases a custom kernel with features like memory management, a filesystem, and networking.
Hobbyist developers and students interested in operating system development, particularly those who have completed introductory OSDev tutorials and want to explore building a more complete system in Rust. It also targets enthusiasts who enjoy experimenting with text-based, retro-inspired computing environments on older x86-64 hardware or emulators.
Developers choose MOROS for its educational value as a fully-featured, from-scratch OS written in modern Rust, offering a practical example beyond basic tutorials. Its unique selling point is the combination of a custom filesystem, networking stack, and userspace tools (like a shell, editor, and Lisp interpreter) in a single, integrated hobbyist system that runs on real hardware or emulators.
MOROS: Obscure Rust Operating System 🦉
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Rust's memory safety for kernel development, using crates like x86_64 and linked_list_allocator to minimize low-level bugs, as highlighted in the dependencies.
Supports DHCP, IP, TCP, UDP, DNS, and HTTP via smoltcp, enabling functional network communication and services like NTP synchronization, detailed in the features list.
Implements a filesystem with bitmap allocation, linked blocks, and caching for files and directories, providing a practical example beyond basic OS tutorials, as documented in the filesystem guide.
Includes a shell, text editor, Lisp interpreter, and games, offering a complete environment for learning syscalls and device I/O, referenced in the userspace section.
Only supports specific network cards (Intel PRO/1000, RTL8139, AMD PCNET) and lacks USB drivers, restricting use on modern or diverse hardware, as admitted in the setup notes.
Requires manual tool installation (e.g., Rust, bootimage) and careful use of commands like `dd` for native boot, with warnings about data loss, making it error-prone for newcomers.
As a non-commercial project, it may have bugs, incomplete features, and irregular updates, lacking the reliability expected for sustained use beyond experimentation.