Skip to content

ToaruOS v1.99.5

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 01 Sep 11:52

ToaruOS v1.99.5

Screenshot from 2021-09-01 20-36-42

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 testing
  • ata: Rudimentary recovery of the legacy ATA driver
  • ata: remove partition info which belongs to dospart module
  • base: Add 'guest' user with no groups, not in sudoers
  • boot: add command line editor
  • boot: alternate help message when highlighting a toggle
  • boot: enable vmware resize by default? it seems stable
  • boot: make this bootload v4.0?
  • boot: more editor key binds
  • calculator: screwy, kuroko-backed calculator
  • calculator: simple text input
  • color-picker: New widget demo
  • compositor: Oops, we weren't reseting compositor clips
  • compositor: Switch window screenshot keybind to Shift+PrtSc because Gnome doesn't want us to get Alt+PrtSc in emulators
  • compositor: Unthread the render pass
  • compositor: drop support for replacement renderers
  • dhclient: don't segfault on RO filesystem trying to write resolv.conf
  • dospart: recover and convert to mount function
  • file-browser: do fewer redundant redraws
  • file-browser: little fixes
  • glogin-provider: using wrong fonts for metrics...
  • graphics: const arguments for point/line calculations
  • groups: First pass at support for supplementary group lists
  • groups: Initial support for gids.
  • hexify: bail if fopen failed
  • iso9660: recover, fixup driver
  • kbd: Catch different scancode from PrtSc key
  • kernel: fix getpgid(pid != 0)
  • kernel: restore debug prints for a page fault in the kernel, since SMP failures are rare now
  • kuroko: _yutani: expose shm font support
  • kuroko: sync to fix string comparison crash
  • libc: Implement an actual quicksort for qsort...
  • libc: that xor-swap is silly and probably also slower
  • libm: must implement sqrt() or it can loop in gcc
  • meta: Update release notes template
  • modules: cleanup header comments
  • package-manager: apply same optimization as file-browser
  • pcspkr: recover module
  • readelf: GNU-style options
  • serial: should be owned by 'dialout' group
  • smp: Memory invalidation fixes
  • test: more detailed logging for USB so we can test xhci
  • text: bring back shm-stored fonts provided by compositor
  • text: on second thought, cache the data not the font object, so each tt_font_from_shm is a unique ref
  • text: various rewrites
  • vfs: Allow 'filesystems' that are partition mappers to not return a node
  • vmware: 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.