>[!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.