>[!WARNING] Public Archive
> The developer [[klange]] abruptly archived all of their projects and organizations on [[2024-03-18]] without explanation despite actively developing them right up until then.
ToaruOS is a [[UIUC]] licensed [[POSIX]]-compatible hobby operating system written in [[3. Reference/Software/Programming Languages/C|C]].
- [Website](https://toaruos.org/)
- [Github](https://github.com/klange/toaruos)
- [Gitlab](https://gitlab.com/toaruos)
# Notability
It is a a whole ecosystem built from the ground up, including an interpreted programming language [[Kuroko]], terminal emulator, compositing window manager, shell, editor, and even libc.
It only needs a C compiler to build, and [[Python]] to generate images. Porting applications requires `make` and a proper POSIX shell.
Includes an interesting set of [[Text|String]] [functions](https://github.com/klange/toaruos/blob/master/kernel/misc/string.c) which may be worth looking into.
# Philosophy
> While many independent, hobby, and research OSes aim to experiment with new designs, ToaruOS is intended as an educational resource, providing a representative microcosm of functionality found in major desktop operating systems.
> 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.
> There are no external runtime dependencies and all required source code, totalling roughly 100k lines of (primarily) C, is included in this repository, save for [Kuroko](https://github.com/kuroko-lang/kuroko), which lives separately.
# ISA Support
- [[AMD64]]
- [[ARM]]
# Features
- **Dynamically linked userspace** with shared libraries and `dlopen`.
- **Composited graphical UI** with software acceleration and a late-2000s design inspiration.
- **VM integration** for absolute mouse and automatic display sizing in VirtualBox and VMware Workstation.
- **Unix-like terminal interface** including a feature-rich terminal emulator and several familiar utilities.
- **Optional third-party ports** including GCC 10.3, Binutils, SDL1.2, Quake, and more.
### Notable Components
- **Misaka** (kernel), [kernel/](https://github.com/klange/toaruos/blob/master/kernel), a hybrid modular kernel, and the core of the operating system.
- **Yutani** (window compositor), [apps/compositor.c](https://github.com/klange/toaruos/blob/master/apps/compositor.c), manages window buffers, layout, and input routing.
- **[[Bim]]** (text editor), [apps/bim.c](https://github.com/klange/toaruos/blob/master/apps/bim.c), is a [[Vim]]-inspired editor with syntax highlighting.
- **Terminal**, [apps/terminal.c](https://github.com/klange/toaruos/blob/master/apps/terminal.c), xterm-esque terminal emulator with 24-bit color support.
- **ld.so** (dynamic linker/loader), [linker/linker.c](https://github.com/klange/toaruos/blob/master/linker/linker.c), loads dynamically-linked ELF binaries.
- **Esh** (shell), [apps/sh.c](https://github.com/klange/toaruos/blob/master/apps/sh.c), supports pipes, redirections, variables, etc.
- **Kuroko** (interpreter), [kuroko/](https://kuroko-lang.github.io/), a dynamic bytecode-compiled programming language.