Othello OS
Logo of Othello OS | |
| Developer | Simon Hamilton |
|---|---|
| Written in | Rust, x86-64 assembly[1] |
| Source model | Source-available[2] |
| Marketing target | Educational and experimental use[1] |
| Platforms | x86-64[1] |
| Kernel type | Monolithic (research/educational design)[1] |
| Default user interface | Graphical desktop environment and integrated shell[1] |
| License | See LICENSE file in repository[3] |
| Official website | github |
Othello OS is an open source operating system developed by Simon Hamilton.[2] It targets the x86-64 architecture and is written primarily in Rust with components in x86-64 assembly.[1] The project is described as a learning and research codebase focused on making the boot process, kernel structure, and low-level subsystems easy to trace and modify.[1]
In addition to demonstrating x86 boot and CPU mode transitions, the project documentation describes a graphical desktop environment, an interactive shell, persistence primitives, and a small networking stack used to support basic tooling and a browser-style client with a text-first rendering pipeline.[1]
Design
Boot process and mode transitions
Othello OS is built around an explicit boot pipeline intended to show how an x86 system progresses from firmware into a 64-bit kernel entry point. The documentation describes staged initialization and mode transitions through real mode, protected mode, and long mode.[1]
The project also describes supporting both BIOS and UEFI boot paths, with different early boot mechanisms depending on the firmware environment.[1]
Kernel organization
The documentation emphasizes a modular layout, with subsystems separated into focused units for topics such as descriptor tables, paging, interrupt/exception handling, storage, and networking.[1] The repository also highlights “hacking points” intended to make it easier for readers to experiment with mode switching, kernel initialization, and desktop/UI components.[1]
User interface
Othello OS is described as including a graphical desktop environment implemented on a framebuffer-based display path, alongside a built-in shell used for interactive testing and diagnostics.[1] The documentation identifies kernel components associated with the shell, desktop/windowing behaviors, and login flows.[1]
Storage and persistence
The documentation describes an in-kernel filesystem layer used for experimentation, including a RAM-backed filesystem and a persistence mechanism built around an on-disk append-only log that can be replayed at boot. A sync command is described for flushing changes when persistence is enabled.[1]
Networking and web
Othello OS includes a small networking stack intended to keep packet flow understandable end-to-end. The documentation describes a NIC driver (RTL8139) and core protocols such as ARP and IPv4, with UDP used for DHCP and DNS, plus minimal TCP client support.[1]
An HTTP/1.1 client is described as being used by testing tools and a browser-style client, including support for redirects and chunked transfer decoding, along with DNS A lookups for hostnames.[1] The documentation notes that native TLS is not implemented in-kernel and describes an optional host-side HTTPS proxy path for development use when running under QEMU user networking.[1]
Security
User accounts and password hashing
The project documentation describes storing user account records in a registry-like store and using SHA3-512 hashes as password verifiers instead of storing plaintext passwords.[1] SHA-3 (including SHA3-512) is standardized by NIST in FIPS 202.[4]
Memory safety
Othello OS is implemented primarily in Rust. Rust’s ownership and borrowing model is designed to provide memory safety guarantees without requiring a garbage collector.[5]
Scheduling and roadmap
The documentation describes the project as research/education focused and notes ongoing work and planned expansions. The roadmap lists short-, medium-, and long-term directions, including adding a minimal scheduler and task abstraction, expanding filesystem capabilities, and exploring multi-core (SMP) support and more advanced memory management (such as isolated user space and per-process virtual memory).[1]
Building and testing
The repository provides build and run scripts and describes a workflow that assembles the bootloader, compiles the kernel, links a flat binary, produces a bootable image or ISO, and runs the result in an emulator such as QEMU.[1]
See also
- Hobbyist operating system development
- Booting
- Long mode
- Protected mode
- Rust (programming language)
- x86 assembly language
References
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 "Othello OS README (uefi branch)". GitHub. Retrieved 2025-12-24.
- ↑ 2.0 2.1 "Siman73000/Othello-OS". GitHub. Retrieved 2025-12-24.
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedlicense - ↑ Dworkin, Morris J. (August 2015). SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions (FIPS 202) (Report). National Institute of Standards and Technology. Retrieved 2025-12-24.
- ↑ "Understanding Ownership". The Rust Programming Language. Retrieved 2025-12-24.
External links
Category:Hobbyist operating systems Category:x86 operating systems Category:Rust (programming language) software
This article "Othello OS" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Othello OS. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
