Releases: klange/toaruos
ToaruOS v1.99.5
ToaruOS v1.99.5
What's New in v1.99.5?
Several major features, improvements, and bugfixes have been added since the last release:
- Support for filesystem groups and supplementary group lists has been added, along with a
groups
command. - A new calculator app has been added, which uses Kuroko as a backend.
- The bootloader now has a simple text editor for modifying kernel command lines.
- The compositor has been rewritten to be single-threaded for better visual stability and performance.
- Several drivers from toaru32 have been ported to Misaka, including the IDE controller driver, PC beeper driver, and the ISO 9660 filesystem implementation.
- Support for automatic display resizing in VMware Player has been restored.
- The libc
qsort
is now a viable quicksort implementation, which has improved performance significantly in text rendering. - The use of shared memory mapped font files has been reimplemented, which improves text rendering performance in most applications.
- A fix has been implemented for incorrect handling of page table invalidation, which has resolved a major source of slowdown when running with SMP.
This release also celebrates 5000 commits to the main git branch!
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
ahci
: more testingata
: Rudimentary recovery of the legacy ATA driverata
: remove partition info which belongs to dospart modulebase
: Add 'guest' user with no groups, not in sudoersboot
: add command line editorboot
: alternate help message when highlighting a toggleboot
: enable vmware resize by default? it seems stableboot
: make this bootload v4.0?boot
: more editor key bindscalculator
: screwy, kuroko-backed calculatorcalculator
: simple text inputcolor-picker
: New widget democompositor
: Oops, we weren't reseting compositor clipscompositor
: Switch window screenshot keybind to Shift+PrtSc because Gnome doesn't want us to get Alt+PrtSc in emulatorscompositor
: Unthread the render passcompositor
: drop support for replacement renderersdhclient
: don't segfault on RO filesystem trying to write resolv.confdospart
: recover and convert to mount functionfile-browser
: do fewer redundant redrawsfile-browser
: little fixesglogin-provider
: using wrong fonts for metrics...graphics
: const arguments for point/line calculationsgroups
: First pass at support for supplementary group listsgroups
: Initial support for gids.hexify
: bail if fopen failediso9660
: recover, fixup driverkbd
: Catch different scancode from PrtSc keykernel
: fix getpgid(pid != 0)kernel
: restore debug prints for a page fault in the kernel, since SMP failures are rare nowkuroko: _yutani
: expose shm font supportkuroko
: sync to fix string comparison crashlibc
: Implement an actual quicksort for qsort...libc
: that xor-swap is silly and probably also slowerlibm
: must implement sqrt() or it can loop in gccmeta
: Update release notes templatemodules
: cleanup header commentspackage-manager
: apply same optimization as file-browserpcspkr
: recover modulereadelf
: GNU-style optionsserial
: should be owned by 'dialout' groupsmp
: Memory invalidation fixestest
: more detailed logging for USB so we can test xhcitext
: bring back shm-stored fonts provided by compositortext
: on second thought, cache the data not the font object, so each tt_font_from_shm is a unique reftext
: various rewritesvfs
: Allow 'filesystems' that are partition mappers to not return a nodevmware
: enable resize support
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.
ToaruOS v1.99.4
ToaruOS v1.99.4
What's New in v1.99.4?
This release includes critical fixes to SMP support, which is now enabled by default in the bootloader. Please note that there are still known performance issues with the SMP scheduler.
Other changes include improved texture blitting routines in the graphics library, changes to how windows are presented when first opened, the addition of geolocation-based configuration for the panel weather widget, the reintroduction of the toast notification daemon seen in earlier versions of ToaruOS, and a new marked-up text library.
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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using BIOS.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
about
: accept resize messagesahci
: wip modulebim
: fix accidental wraparound when scrolling to '-1'bim
: fix argument parsing derpboot
: enable SMP by defaultcompositor
: Expand rotated coordinate bounds to handle rounding / truncation errorscompositor
: Fix up float math ordering for better coordinate mapping resultscompositor
: Wait until a flip event is received before revealing windowscompositor
: don't animate regular dropdown menuscompositor
: support positioning a window relative to anotherdhclient
: Try a few times...graphics
: better approach to transformed blittinggraphics
: faster alpha application...graphics
: some improvements to the sprite blitterskernel
: fixup lock ordering around process_timeout_sleepkernel
: restore fprintf() for printing to vfs nodes (character devices)kernel
: use that new sleep_on_unlocking in ringbufferskuroko
: add managed modules to filesystemkuroko
: bind text library in _yutani modulekuroko
: sync with upstreamkuroko
: sync with upstreamkuroko
: sync with upstreammake
: 'test' target should use q35 systemmake
: Add a test tool/scriptmarkup
: Initial work on new marked up text rendering librarymarkup
: fix bad mallocmenu
: Really, seriously don't show menus before moving themmenu
: flip after movingpanel
: Dynamically size the date widgetpanel
: cleanup and fix display of window itemspanel
: improve design of calendar popuppanel
: slide the panel up faster on ctrl-f11panel
: try some smarter popup placementreadme
: updatereadme
: updatessplash-log
: reset display on resolution changetest
: install xhci moduletext
: Add some macros so we can more easily swap out the bitmap fonttext
: Replace bitmap font with a baked version of Deja Vu Sans Mono, mostly for metrics reasonstext
: offset horizontal scanlines slightly to not bleed bottoms of glyphs into next pixeltext
: spot fix for clipped text shadowstoast
: Quick Kuroko toast clienttoastd
: Finish things up, I guess.toastd
: initial prototypeutil
: Resolve bootstrapping issue through bruteforceweather-tool
: Handle bad location-data by trying to get it againweather-tool
: Use a geoip service to get locationweather-tool
: Use lat/lon when querying by guessed locationweather-tool
: remove unused legacy conf filexhci
: cleanupxhci
: convert to modulexhci
: userspace-queryable debug interfaceyutani-test
: must flip once to reveal window
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.
ToaruOS v1.99.3
ToaruOS v1.99.3
What's New in v1.99.3?
This is an iterative development beta of ToaruOS 2.0. This release includes a number of new major features:
- Loadable kernel modules are supported again and a handful of device drivers have moved back into modules. Unlike in ToaruOS 1.x, modules are not loaded from Multiboot "modules", and instead only loaded from userspace with the
insmod
tool. In combination with PCI device ID scanning, the system startup scripts will load necessary modules for supported devices when the relevant devices are found. - A new TrueType text rasterization engine has been implemented, replacing the "signed distance field" text rasterization system used since ToaruOS 1.5. The SDF library has been removed and all applications have been ported to the new TrueType renderer. The implementation is incomplete, but has sufficient support for rendering the DejaVu Sans family, which is included as it was in previous releases.
- The panel has gone through some visual redesign.
- The graphics library now includes support for arbitrary, composable affine transformations of textures.
- The BIOS CD bootloader includes an automatic timeout.
Many other minor improvements and bug fixes have also been made.
Please note that from this point forward, ToaruOS 2.0 beta releases will not be marked as "pre-releases" on Github, in order to have them appear on the front page of the repository.
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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using BIOS.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
base
: Cleaned up volume iconsbase
: minor cleanup of /usr/sharebim
: sync with upstreamboot
: add menu timeoutboot
: adjust timeout a bitcompositor
: Avoid more transformations.compositor
: avoid transformations if we're just transparentcompositor
: stop dragging windows on esccompositor
: take screenshots on print screen keyfile-browser
: Recognize more file types by extensionfile-browser
: Set the default view mode to TILESfile-browser
: add a few more keyboard shortcutsfile-browser
: fix inner radius of focused text input boxfile-browser
: realign and blink the cursor in the input boxfile-browser
: stretch columns to fitfont-preview
: Include font name in window titlefont-preview
: Override preview text with argv[2]font-preview
: tool for viewing TrueType fontsgraphics
: Add affine transformations for spritesgraphics
: Match nearest-neighbor signature to bilinear for easier swappinggraphics
: ensure rounded rectangle rendering is bounded?graphics
: fix alpha painting of spritesgraphics
: general improvementsgraphics
: improved bilinear interpolatorgraphics
: only load image libraries oncegraphics
: short-circuit out of bounds lookups in bilinear interpolatori965
: Send mode change signal?imgviewer
: include filename in window titlekbd
: stop sending empty events to clientskernel
: (needs review) let threads sleep on their own children?kuroko
: Support keyword arguments to lambdaskuroko
: pull in version number updatekuroko
: update repold.so
: Stop leaking low heap to init functionslib
: update docslibc
: only elide fractional parts in g/G, not f/Flspci
: Add more device descriptions from my ThinkPadlspci
: add qemu's e1000e modelmake
: detect more base/ changesmenu
: Add fancy speech-bubble-style menus like Gnome hasmenu
: Rudimentary checkbox menu entriesmenu
: space out menu bars nicermodules
: Reimplement loadable kernel modulesmodules
: list modules in /proc/modulesmodules
: track loaded sizes so we can free modules laternet
: disable debug prints during TCP connectionpackage-manager
: update 'about' textpanel
: And improve the popup while we're at itpanel
: And make more room for long month namespanel
: Use full month name in date widgetpanel
: adjust size of 'Applications', clockpanel
: experiments with a new designpanel
: show logout dialog in a thread (temporary)polygons
: cleanuppolygons
: rasterizer demops2hid
: Fixup initialization sequence; unbreaks scrollwheel in vboxreadme
: update screenshotsplash-log
: handle display mode changesysfunc
: actually bother validating some valuesterminal
: Implement some quick and dirty font fallback supportterminal
: fix text width for DejaVu Sans Monoterminal
: fixup scroll damage rectstext
: Introduce new TrueType implementationtext
: Switch several apps/libs to new text librarytext
: allocate subsamples based on glyph boundstext
: fix clipped right-hand-side of some glyphstext
: fix overly trusting bounds calculationtext
: handle off-curve start pointtext
: purge the SDF renderer, RIPtext
: read fonts with short glyf table offsetstext
: read unitsPerEm from font, use for tt_set_sizetext
: remove sdf kerning configtext
: shadowed text, port file-browsertext
: support more flexible sizing in pt, pxtext
: support type 4 cmaps, old Microsoft fontstutorial
: remove reference to old irc networktutorial
: width/height should be minus decorationsvfs
: copied nodes should get their own refcountsvfs
: ramdisk length needs to be updated on the original nodevmware
: detect vmware by its PCI Express chipsetxhci
: start on controller driveryutani
: new grabby hand cursoryutani
: pointing hand cursor
Known Issues
- SMP support is experimental and highly unstable.
- 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.
ToaruOS v1.99.2
ToaruOS v1.99.2
What's New in v1.99.2?
This beta release improves the stability of the network stack and implements some functionality that missing in v1.99.1.
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 Python 3.6, GCC, 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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using BIOS.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
base
: Remove old qemu thing from startupboot
: Add a status indicator when loadingfetch
: parse port like we do in fetch-tlsfetch
: switch forced progress updates back offgithub
: checkout the right commit of kurokolibc
: __assert_func should exitlibc
: support ip addresses in gethostbynamemsk: accept https
: remotesmsk
: handle failures in 'fetch' when retrieving packagesnet
: actually try to figure out destination hardware addressesnet
: don't duplicate struct layout in e1000 device objectnet
: don't dynamically allocate hashmaps and lists?net
: fix bad copy in ICMP ECHOnet
: return eof when socket is closed and no data is availablenet
: select random sequence number to startnet
: variousnet
: various improvements to still terrible network stackpci
: handle setups without a host bridge?pex
: don't leave invalid connections with the server read/write methods?readme
: updatesrline
: stop highlighting numbers in the middle of wordstcp
: fixup connect retry
Known Issues
- SMP support is experimental and highly unstable.
- 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.
ToaruOS v1.99.1
ToaruOS v1.99.1
What's New in v1.99.1?
This is a beta release of ToaruOS 2.0.
ToaruOS 2.0 includes a new kernel, Misaka, targeting x86-64 and with support for SMP. The new kernel is still in development, and many features are missing that we hope to include in a final release of ToaruOS 2.0 at a later date. Several hardware drivers have not yet been ported to Misaka. Block device drivers are not yet available, though the final release is planned to include drivers for AHCI devices. Network chipset drivers for Realtek and AMD devices have also not yet been ported; users who wish to experiment with network features should use a supported Intel "e1000" or "e1000e" device (both QEMU virtualized devices have been tested, and general support has been confirmed on at least one real chipset). The network stack is still a work-in-progress and has not reached the same level of functionality as the one provided in early versions of the OS; in ideal conditions, the package manager may be used to install a collection of ports, and the fetch
utility may work. SMP support is also still considered experimental, and while some degree of stability can be achieved depending on the workload it is not recommended for any attempt at "daily use". Finally, we are working to build a new EFI bootloader and the release image attached here contains only an updated BIOS loader; GRUB CDs may be provided with future beta iterations.
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. 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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using BIOS.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
atapi
: Add timeout checks to resolve boot failures in newer QEMUsbase
: add removed shell scripts from /binbase
: define some byte order macrosbase
: remove unsupported startup scriptbase
: update /etc/os-releasebim
: Use ansi theme on vga terminalboot
: Recover BIOS loader.boot
: Rewrite the legacy BIOS loaderboot
: Use CD for QEMUboot
: check for long mode support so we can complain if someone runs the wrong qemuboot
: less debug textdhclient
: try to configure all available interfacese1000
: should probably keep using whatever was in the card after resetfbterm
: Don't fill screen on startup, we don't set up memory caching for this nicelyfbterm
: Make sure we're drawing with stride, not widthgithub
: Re-add release managementgithub
: fix ramdisk path for build artifactsgithub
: upload CD image as build artifacti965
: add a leading comment blocki965
: modeset a thinkpadi965
: register namesidt
: Track core interrupt registers because arch_fatal() usually happens with bad stack datairc
: switch to socketskernel
: Release SHM while we're at it...kernel
: add 'assert()'kernel
: begin work on re-adding module loadingkernel
: change signatures for vfs interfaces to match realitykernel
: close file descriptors >STDERR_FILENO on exec like toaru32 didkernel
: fix missing lock during wakeup from signal deliverykernel
: make an attempt to clean up processes in SMPkernel
: opportunistically map stack spaceksym
: start organizing kernel symbols for linkinglfbvideo
: Ensure we map enough space for large preset video modeslfbvideo
: Use MMIO interface to configure qemu/bochs; vbox is still port i/olfbvideo
: set some more bits on bochslibc
: fix fseek behavior with active read?libc
: rand() should not return negative valuesmake
: Build with -O2 instead of -O3make
: Pass SMP options to 'make shell'make
: Port some core build utils to Kurokomake
: Strip final kernel imagemenu
: implement menu_free_entrymisaka
: final merge prepmisaka
: initial mergemisc
: cleanupmmu
: Try to perform really bad TLB shootdowns?mmu
: be annoying about making sure we aren't leaking pages?net: tcp
: basic syn/ack receipt?net
: add arp?net
: add methods to configure addressesnet
: add netmask, examine more stuff from DHCPnet
: arp fixupsnet
: cleanupnet
: complete most of a TCP stream?net
: fixups for dhclient, multiple nicsnet
: hack up some fin packetsnet
: hacked up udp stuff, dns resolvernet
: initial raw socket implementationnet
: initialize e1000e better?net
: initialize that list earliernet
: more cleanupnet
: more interface propertiesnet
: more tcp; timeout nameserver lookupsnet
: pack that?net
: respond to pings?net
: silence more debug messagesnet
: silence the network stack unless MISAKA_DEBUG_NET is definednet
: try to get the package manager workingnet
: we really need some proper blocking queue primitivesnet
: wip stuff for socketspanel
: re-enable weather widgetpex
: don't shove packets onto the pipes, shove packet pointers so we can read them atomicallypex
: maybe finally fix thisplasma
: fix what I think is actually a math bug in plasmaprocess
: (temp) avoid freeing processes that are still someone's lastprocess
: Set up stack protectors for kernel stacksprocess
: okay don't mark stack protectors nx...process
: try to fix up some locks, againps2hid
: give up on PS/2 if trying to empty input buffer doesn't work after 1024 triesreadme
: Fix docker commandreadme
: More updates.readme
: Update READMEreadme
: Update readmerline
: Add a new r-searchsh
: semaphore pipe write helps with a weird race conditionsmp
: ACPI checksups are more of a suggestionsmp
: add a procfs entry to see what other cores are up tosmp
: do not try to send IPIs when we have one core and no lapicsmp
: fix wakeups doing bad EOI writesplash-log
: Keep primary messages on screensplash-log
: restore vga text outputstartup
: try to dhcp on bootstat
: fix size definitionsterminal-vga
: recover vga text mode operationterminal
: source repo for bitmap font moved, update comment
Known Issues
- The network stack in this release is a work in progress.
- SMP support is experimental and highly unstable.
- ICH9 chipset breaks on PCI scan; use PIIX instead.
- Due to an issue with the CI pipeline, the kernel version in the release image is reported as "dirty".
- 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.
ToaruOS v1.14.1
ToaruOS v1.14.1
What's New in v1.14.1?
This is intended as the final release of ToaruOS 1.x. It is a bugfix release to correct an issue with the ATAPI device drivers and update /etc/os-release
.
What is ToaruOS?
ToaruOS is a hobbyist, educational operating system for x86 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 Python 3.6, GCC, 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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using either BIOS or EFI boot.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
atapi
: Add timeout checks to resolve boot failures in newer QEMUsmake
: Build with -O2 instead of -O3make
: Port some core build utils to Kuroko
Known Issues
- Several utilities are missing functionality.
- The libc's implementation of
scanf
is incredibly incomplete. - 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.
ToaruOS v1.14.0
ToaruOS v1.14.0
What's New in v1.14.0?
This release features Kuroko 1.1.0 and fixes issues with the EFI bootloader in VirtualBox. A number of improvements have also been made to the libc, including a new printf
implementation and corrections to some floating point mathematics functions which has fixed the lighting in Quake. The CD images have gotten smaller as the ramdisk images are now compressed.
What is ToaruOS?
ToaruOS is a hobbyist, educational operating system for x86 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 Python 3.6, GCC, 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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using either BIOS or EFI boot.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
auto-dep
: Don't build kuroko mods with -DDEBUGbim
: Add Kuroko dynamic tab completion to command inputbim
: Fix import path, againbim
: It would be great if we were actually shipping the syntax files...bim
: Update syntax highlightersboot
: Compress ramdisk image with gzipboot
: Fixes to boot processes on multiple platforms.boot
: Make sure PAE is disabled when booting 32-bit EFIboot
: try to make gzip decoder faster in loaderfile-browser
: Add more package iconsicons
: New file type icons for krk, so/o, shkernel, linker, libc
: Initial, probably horribly broken, support for some TLS situationskernel
: make sure signal handlers get the right GS descriptorkrk_yutani_test
: Cleanupkuroko, bim
: sync with upstreamkuroko
: Sync with upstreamkuroko
: Update from upstreamkuroko
: Update repl binkuroko
: Update with upstreamkuroko
: Update with upstream, changes to classeskuroko
: Updates for 1.1-preview and threading supportkuroko
: Upstream updateskuroko
: make sure we remove kuroko objs on cleankuroko
: sync with upstreamkuroko
: sync with upstreamkuroko
: sync with upstreamkuroko
: sync with upstreamkuroko
: upstream bugfixkuroko
: use master branchlibc
: Add stubs for truncate, synclibc
: Fix weird push/pop of ebx in syscall bindingslibc
: Implement buffered writes in stdio; fix up printf familylibc
: flush and close buffers on exitlibc
: flush buffers on seek, telllibc
: improved printflibc
: more net stubslibc
: printf() x formatter improvementslibc
: try to avoid writing when we shouldn'tlibm
: use fpu rounding to ceil, floor (fixes quake lighting)readme
: Update READMEreadme
: Update screenshot, build instructionsreadme
: Writing markdown for years and still got that backwardsrline
: Update krk highlighter from kurokorline
: reintroduce rline_exp as a workaround for existing Python packagesrline
: remove stale rline_exp? in theory nothing links with this except maybe old python
Known Issues
- Several utilities are missing functionality.
- The libc's implementation of
scanf
is incredibly incomplete. - 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.
- There appears to be a problem with the performance of the gzip decompression implementation in the BIOS loader under TCG in QEMU. Users are recommended to use an accelerated backend or boot with EFI.
ToaruOS v1.13.2
ToaruOS v1.13.2
What's New in v1.13.2?
This release adds Kuroko - our own dynamic, interpreted language.
Bim has also been updated, some issues with the libc have been addressed, and the rline
rich line editing library has received substantial changes.
What is ToaruOS?
ToaruOS is a hobbyist, educational operating system for x86 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 Python 3.6, GCC, 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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using either BIOS or EFI boot.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
bim
: pull in updatesbim
: update to latestbim
: update to latest masterkill
: fix bad signal specifier checkkuroko[yutani]
: Add __repr__s for typeskuroko[yutani]
: Add text rendering bindingskuroko[yutani]
: More general function bindingskuroko[yutani]
: Update demo appkuroko[yutani]
: finish up basic bindingskuroko
: Don't have our build produce builtins.c, assume it's already there.kuroko
: More upstreams updateskuroko
: Update to latest release candidatekuroko
: also pull in version number bump to 1.0.0-rc1kuroko
: bindings for spriteskuroko
: more upstream updateskuroko
: sync with upstream updates to dicts and listskuroko
: synchronize and begin work on Toaru bindingskuroko
: upstream changes to hasKwlibc
: fix major issue in strtoxlibc
: fix truncated printf output for ints, floatsmenu
: Changes to support Kuroko bindingsrline
: officially adopt rline_exp as the only rline, and bring in some improvements from kurokorline
: try to fix escape timeouts?sh
: always ensure that prints to the shell's stderrsh
: implement 'time', but only with 'real' time at the moment...sleep
: don't just crash on missing argyutani
: basic Kuroko bindings, demo 'app'yutani
: more bindings for kuroko
Known Issues
rline
's reverse search functionality has been temporarily disabled.- Several utilities are missing functionality.
- The libc's implementation of
scanf
is incredibly incomplete. - 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.
ToaruOS v1.13.1
ToaruOS v1.13.1
What's New in v1.13.1?
We have moved to Github Actions for CI and release builds. I also changed the wallpaper and updated Bim.
What is ToaruOS?
ToaruOS is a hobbyist, educational operating system for x86 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 Python 3.6, GCC, 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 the Github Actions CI workflow. It uses ToaruOS's native bootloaders and should work in most virtual machines using either BIOS or EFI boot.
When provided in a release, toaruos-grub.iso
is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
bim
: Update to latestbim
: update from upstreamboot
: add warning when unable to find boot drivegithub
: ...github
: I'll get this working eventually.github
: add manual build; run for all pushes?github
: check in actions workflowgithub
: do a deep fetch to get all tagsgithub
: dumb soft linebreaksgithub
: purge travis-cigithub
: should be body_pathgithub
: try to add release notes template to draftslspci
: Add some class codeswallpaper
: new wallpaper
Known Issues
- Several utilities are missing functionality.
- The libc's implementation of
scanf
is incredibly incomplete. - 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.
v1.13.0
ToaruOS v1.13.0
What's New in v1.13.0?
A PNG decoder and supporting DEFLATE decompression implementation have been added. Most graphical assets have been converted from BMPs to PNGs, including SDF fonts.
What is ToaruOS?
ToaruOS is a hobbyist, educational operating system for x86 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 Python 3.6, GCC, 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 our CI toolchain. It uses ToaruOS's native bootloaders and should work in most virtual machines using either BIOS or EFI boot.
toaruos-grub.iso
(when available) is an alternative CD with GRUB as a bootloader. If you are attempting to run ToaruOS on real hardware, this is generally preferred.
Changelog
bim
: Updated to v2.6.1.libc
: Fix precision support in%d
.inflate
: Add DEFALTE decompression library.png
: Add PNG decoder library.graphics
: Automatically select decoder based on file extensions.gunzip
: Add command-line utility for decompression gzip payloads.tar
: Add support for several arguments, including-z
for compressed payloads.msk
: Use native gzip support for decompressing package archives.sdf
: Switch font image format to PNG.linker
: Fix dependency resolving at runtime.
Known Issues
- Several utilities are missing functionality.
- The libc's implementation of
scanf
is incredibly incomplete. - 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.