You can edit almost every page by Creating an account and confirming your email.

Othello OS

From EverybodyWiki Bios & Wiki


Othello OS
Othello OS logo
Logo of Othello OS
DeveloperSimon Hamilton
Written inRust, x86-64 assembly[1]
Source modelSource-available[2]
Marketing targetEducational and experimental use[1]
Platformsx86-64[1]
Kernel typeMonolithic (research/educational design)[1]
Default user interfaceGraphical desktop environment and integrated shell[1]
LicenseSee LICENSE file in repository[3]
Official websitegithub.com/Siman73000/Othello-OS

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

References

  1. 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. 2.0 2.1 "Siman73000/Othello-OS". GitHub. Retrieved 2025-12-24.
  3. Cite error: Invalid <ref> tag; no text was provided for refs named license
  4. 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.
  5. "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.