ToaruOS v1.99.8
Pre-releaseWhat's New in v1.99.8?
A number of improvements have been made since 1.99.7:
- The bootloader now supports disk boot, loads the kernel and ramdisk after displaying the menu, and can support both ELF and AOUT_KLUDGE Multiboot payloads.
- Misaka is now capable of being booted as a Multiboot 2 payload, and can also be directly used as an Elf64 without having to be objcopy'd to an Elf32.
- Misaka has a new debug and early startup logging interface.
- The network subsystem now supports statistics counters.
- The
cpuwidget
monitor tool has been improved to include memory and network statistics. - Various bug fixes based on user testing.
What is ToaruOS?
ToaruOS is a hobbyist, educational operating system for x86-64 PCs, focused primarily on use in virtual machines. It provides a Unix-like environment, complete with a graphical desktop interface, shared libraries, feature-rich terminal emulator, and support for running GCC, Quake, and several other ports. The core of ToaruOS, provided by the CD images in this release, is built completely from scratch. The bootloader, kernel, drivers, C standard library, and userspace applications are all original software created by the authors, as are the graphical assets.
Who wrote ToaruOS?
ToaruOS is primarily written by a single maintainer, with several contributions from others. A complete list of contributors is available from AUTHORS.
Running ToaruOS
It is recommended that you run ToaruOS in a virtual machine / emulator, for maximum compatibility. ToaruOS's driver support is limited, and running on real "bare metal", while possible, does not provide the most complete experience of the OS's capabilities except on very particular hardware. ToaruOS is regularly tested in VirtualBox, QEMU, and VMWare Player, and can be successfully booted (with poor performance) in Bochs. ToaruOS is intended to run from a live CD, though it is possible to install to a hard disk. Additional details on running ToaruOS in different virtual machines is available from the README.
Release Files
image.iso
is the standard build of ToaruOS, built by the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using BIOS.
Changelog
ata
: Ensure we lock around submitting ATAPI command so we're woken up correctlyata
: fix bad timeout on ATAPI initialization, fixes vbox seeing the CDbase
: Accept QEMU IDE controller for ata driver autoloadbase
: Load ATA drivers on vbox if IDE is detectedbase
: Load iso9660 and add a desktop icon when mounting CD at bootbase
: Load the piix4 remapper if we see the ISA bridge; fixes OVFM under qemu without -M q35base
: Only show tutorial once on first graphical login for 'local'base
: Print message when loading drivers on startupbase
: Update README.mdbase
: update package repository on startupbim
: Update gas highlighterboot
: Cleanup strings; spot-check memory on startupboot
: Jump back to real mode to load sectors?boot
: MBR / disk boot stubboot
: Set a kcmdline flag when debug is set in menuboot
: Support AOUT_KLUDGE kernelsboot
: recommend 1GiB of RAMcalculator
: Don't let the window get too tinycompositor
: refuse to initiate dragging when currently resizingcpuwidget
: Add to menu as 'System Monitor'cpuwidget
: Complete revampdbg
: add backtrace commandes1371
: Audio driver for vmwarefbterm
: Only enable scrolling by default on vga terminalfbterm
: VGA backend, enable scrolling by defaultfetch
: Parse https and bail betterfile-browser
: Icons, identification of PDFs, little launcher wrapperfile-browser
: fix up scroll dimensions for desktop, though we really do need to make that multi-columnglogin-provider
: Fixup animation to not smear on slow systemsgraphics
: fixup aa line rasterizerhda
: stub moduleinsmod
: Support passing arguments to modulesiso9660
: try to catch some potential mount errorskernel
: Better fault reportskernel
: Fixup bad lock ordering in process_awaken_signalkernel
: Initial pass at new debug printf interfacekernel
: Initial try at actual user buffer validationkernel
: Print tracebacks for more fatal errorskernel
: Use 'Misaka' as the system named presented by the kernelkernel
: make_process_ready may be called with sleep_lock already acquired?kernel
: oopslfbvideo
: recalculate vmware memory size on display changelibc
: Fix bad logic when looking for IP addresslibm
: Add missing M_, INFINITY, NAN constantslibm
: Add two missing functionslogin
: Return 2 when 'disconnect' is provided as a usernamemake
: /usr/lib/ libs (from gcc) should come from TOOLCHAINmake
: Give write access to docker container's bin dirmake
: Replace update-extents.py with a Kuroko equivalentmake
: Why are we trying to echo PATH here?make
: bail if make fails?net
: Add stats countersnet
: Oops, we broke UDP sendsnet
: don't explode without a networknetty
: Fixup the reverse shell host for socket connectionssh
: Recommend 'ifconfig' in place of 'ip'/'ipconfig'smp
: Don't just fatal() if there's too many cores; initialize up to 32smp
: allow command line override for where to scan for RSDPsplash-log, migrate
: Cleanuptcp
: Fixup socket receive buffersterminal-vga
: Backport selection improvements from graphical terminalterminal
: Minor improvements to text selectionterminal
: bind Ctrl Shift +, Ctrl -, Ctrl 0 to modify scalingtext
: Expose method for brute-force path stroketutorial
: Add a page about the live CDutil
: Move ISO, FAT stuff to a libraryx86_64
: Cleanup boot messages to fit in vga text mode betterx86_64
: Mark kernel with AOUT_KLUDGE address parameters so the 64-bit ELF can be booted directlyx86_64
: Support multiboot2 loaders
Known Issues
- The SMP scheduler is known to have performance issues.
- Several utilities, libc functions, and hardware drivers are missing functionality.
- There are many known security issues with ToaruOS. You should not use ToaruOS in a production environment - it is a hobby project, not a production operating system. If you find security issues in ToaruOS and would like to responsibly report them, please file a regular issue report here on GitHub.