Skip to content

ToaruOS v1.99.9

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 09 Nov 04:38

Screenshot from 2021-11-09 13-30-59

What's New in v1.99.9?

We are nearing the end of the 1.99.x beta series and the final release of ToaruOS 2.0 will soon be ready.

This beta brings a number of improvements based on user feedback from v1.99.8:

  • The BIOS bootloader now performs VESA modesetting and has been tested on real hardware.
    Screenshot from 2021-11-09 14-20-40
  • The startup process in general has been improved to provide a more visually coherent experience.
  • The compositor now supports different window layers so that toast notifications appear above regular windows but below menus.
  • The panel has a new volume slider:
    Screenshot from 2021-11-09 14-17-35
  • The alt+tab switcher shows windows previews:
    Screenshot from 2021-11-09 14-17-56
  • Packages are now hosted on a CDN that should see better download speeds for users not close to our original server's datacenter in San Francisco (users that include me!)
  • A number of improvements have been made to kernel debugging, including better panic messages and more available symbol information for tracebacks.
  • The network stack now provides an initial implementation of a local loopback.

Will there be a v1.99.10?

Possibly.

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 manually. 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 or EFI, and has also been successfully tested on some real hardware.

Changelog

  • assert: use dprintf, not printf, when printing assertion message
  • base: Don't wait for msk on boot
  • base: Ensure we're still providing the fake libm.so
  • base: Install auto-dep.krk to /bin instead of /usr/bin
  • base: Show some toasts on startup.
  • base: Wait a bit before starting the wizard
  • bim: upstream bug fix
  • boot: Add 1280x800 as a preferred resolution
  • boot: Add a shortcut to toggle video/text mode
  • boot: Clean up editor redraw, shift-arrow input?
  • boot: Don't clear lines before printing on them when drawing banners
  • boot: Fall back to 24bpp modes
  • boot: Make sure menu displays if an unrecognized key is pressed
  • boot: Prettify
  • boot: VBE modesetting
  • boot: fixup returning from editor to menu
  • boot: generalize video mode selection to work on BIOS
  • boot: retain last mode when toggle to text mode
  • build: Remove C++ support, stop including libstdcxx on the ramdisk
  • calculator: set binpath so we can at least import 'math'
  • compositor: Add a new OVERLAY layer, specifically for toasts
  • compositor: Add another layer above overlays for menus so they show in front of toasts
  • compositor: Animate bottom and top windows normally if they aren't marked ALT_ANIMATION
  • compositor: Hack to support 24bpp framebuffers
  • compositor: Restructure 'advertise' messages to provide window buffer, size
  • compositor: correctly set next focused window when a window closes
  • cpuwidget: Cap graphs better
  • cpuwidget: Legend cleanup
  • cpuwidget: Shoddily add interface names to network legend
  • cpuwidget: fix file descriptor leak
  • dhclient: Skip things that don't have hardware addresses
  • fbterm: Move log to center, set bg to black
  • fbterm: Support 24bpp framebuffers
  • file-browser: Don't restart when wallpaper changes
  • file-browser: Show a different context menu when no files are selected
  • glogin-provider: cleanup, remove animation
  • i965: Don't load if mode wasn't already set
  • irq: Mark isr_common as global so it shows up in symbol table
  • kernel: Export sys_ functions so they appear in symbol table
  • kernel: Fix gdt install clobbering symbol table, or whatever else ends up after it
  • kernel: Print gs alongside other registers in panic
  • kernel: Put codename string in quotes for stylistic reasons
  • kernel: exclude serial ports from pts numbering; start numbering at 1
  • kmalloc: Use existing assertion infrastructure
  • kuroko: Bump for sendto() support
  • kuroko: Sync with upstream
  • kuroko: sync with upstream
  • lfbvideo: Don't map EGA/VGA text mode range as WC as apparently things don't like that
  • lfbvideo: Keep resolution set by loader if none specified by args
  • libc: Update wcwidth with latest data
  • make: Clean more stuff
  • make: Default SMP=4 for qemu targets because why not
  • meta: A note on licenses
  • meta: Add .mailmap
  • meta: Add more screenshots
  • meta: Cleanup Makefile, add some comments
  • meta: Cleanup, rewrite parts of the README
  • meta: Describe filesystem structure in README
  • meta: Fix typo in README
  • meta: I really should not have to keep doing this. Please stop stealing my free code.
  • meta: Some README updates
  • meta: Update README, new screenshot
  • mmu: Be more clear about what's happening when we run out of RAM
  • mmu: Fixup mapping for physical memory address >4GiB
  • msk: Fixup local manifest file resolution
  • msk: Fixup support for multiple remotes, add a few options
  • msk: Switch back to using tar/gunzip with pipes
  • msk: Switch package source to CDN
  • msk: Use 192.168.11.* for local repo as it bails faster in vmware
  • multiboot: Correctly pass bits-per-pixel from framebuffer data
  • net: initial loopback interface support
  • net: net_udp_send() should return size of data sent
  • net: try to actually track received packet sizes...
  • package-manager: Spin up a thread to run 'msk'
  • panel: Add icon, update less often
  • panel: Don't display loopback in network status widget
  • panel: Keep ticking the clock when receiving other events
  • panel: New volume slider menu widget
  • panel: Visual adjustments to slider
  • pipe: Embiggen pipe buffers
  • pipe: Make pipes more direct with ring buffer usage
  • readelf: Fix missing -d option
  • ringbuffer: don't use heap allocator if buffer size is one page
  • socket: Purge rx queue when socket closes?
  • splash-log: Cleanup, disable log if 'debug' is not specified, unless we take too long
  • splash-log: Retain last message to print it if we switch out of quiet mode
  • sysinfo: Update, add CPU, re-add Font
  • terminal: make scrollback more efficient?
  • toastd: Adjust spacing, try to vertically center text
  • vbox: Minor cleanup, don't process events we didn't get an IRQ for
  • x86_64: Don't wrap version codename in quotes as we're doing that directly now

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.