klange/toaruos logo

klange/toaruos

Free

A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.

FreeFree tier
Type
Open Source
Founded
2011

About klange/toaruos

ToaruOS is a completely original, independent operating system developed from scratch for x86-64 PCs and ARMv8 VM environments. It includes an SMP-capable modular kernel (Misaka), a C standard library with dynamic linker, a composited desktop environment (Yutani), a dynamic bytecode-compiled programming language (Kuroko), a Vim-inspired syntax-highlighting text editor (Bim), an xterm-esque terminal emulator with 24-bit color support, and a growing collection of POSIX utilities. The project has been in development since January 2011 and aims to achieve self-hosting with the addition of a C compiler. All components are original to the project with no third-party dependencies.

Key Features

SMP-capable modular kernel (Misaka)
Composited desktop environment with window manager (Yutani)
C standard library with dynamic linker
Dynamic bytecode-compiled programming language (Kuroko)
Vim-inspired syntax-highlighting text editor (Bim)
xterm-esque terminal emulator with 24-bit color support
POSIX-compatible utilities
Network stack and drivers
Bootloader for x86-64 and ARMv8
All original code, no third-party dependencies

Pros & Cons

Pros
  • Completely original codebase (kernel, libc, compiler, editor, etc.)
  • Active development since 2011 with a clear history of milestones
  • Ported to both x86-64 and ARMv8 architectures
  • Includes a composited graphical UI and desktop environment
  • SMP support for multi-core processors
  • Open source under a permissive license
Cons
  • C library is still incomplete
  • Not yet self-hosting (requires a C compiler from outside)
  • Limited application ecosystem compared to mainstream OSes
  • Best suited for virtual machines rather than production hardware

Best For

Educational project for operating system developmentHobbyist exploration of OS internalsLightweight desktop environment for x86-64 or ARMv8 virtual machinesTesting and learning about kernel design, user-space, and system programming

FAQ

How can I build ToaruOS from source?
You can fork the repository on GitHub and use the provided Docker build container. Clone the repo, initialize submodules (kuroko and bim), pull the build-tools Docker image, and run util/build-in-docker.sh.
What architectures does ToaruOS support?
ToaruOS supports x86-64 PCs and ARMv8 VM environments.
Is ToaruOS self-hosting?
Not yet. The project aims to reach self-hosting by replacing third-party development tools, but as of now a C compiler from an external environment is required.
What are the main components of ToaruOS?
The main components include the Misaka kernel, Yutani window compositor, Kuroko programming language interpreter, Bim text editor, a terminal emulator, a dynamic linker, and POSIX utilities.