Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.

Releases: klange/toaruos

ToaruOS v1.99.5

01 Sep 11:52
Compare
Choose a tag to compare
ToaruOS v1.99.5 Pre-release
Pre-release

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.

ToaruOS v1.99.4

20 Aug 00:35
Compare
Choose a tag to compare
ToaruOS v1.99.4 Pre-release
Pre-release

ToaruOS v1.99.4

Screenshot from 2021-08-20 09-30-04

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 messages
  • ahci: wip module
  • bim: fix accidental wraparound when scrolling to '-1'
  • bim: fix argument parsing derp
  • boot: enable SMP by default
  • compositor: Expand rotated coordinate bounds to handle rounding / truncation errors
  • compositor: Fix up float math ordering for better coordinate mapping results
  • compositor: Wait until a flip event is received before revealing windows
  • compositor: don't animate regular dropdown menus
  • compositor: support positioning a window relative to another
  • dhclient: Try a few times...
  • graphics: better approach to transformed blitting
  • graphics: faster alpha application...
  • graphics: some improvements to the sprite blitters
  • kernel: fixup lock ordering around process_timeout_sleep
  • kernel: restore fprintf() for printing to vfs nodes (character devices)
  • kernel: use that new sleep_on_unlocking in ringbuffers
  • kuroko: add managed modules to filesystem
  • kuroko: bind text library in _yutani module
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • make: 'test' target should use q35 system
  • make: Add a test tool/script
  • markup: Initial work on new marked up text rendering library
  • markup: fix bad malloc
  • menu: Really, seriously don't show menus before moving them
  • menu: flip after moving
  • panel: Dynamically size the date widget
  • panel: cleanup and fix display of window items
  • panel: improve design of calendar popup
  • panel: slide the panel up faster on ctrl-f11
  • panel: try some smarter popup placement
  • readme: update
  • readme: updates
  • splash-log: reset display on resolution change
  • test: install xhci module
  • text: Add some macros so we can more easily swap out the bitmap font
  • text: Replace bitmap font with a baked version of Deja Vu Sans Mono, mostly for metrics reasons
  • text: offset horizontal scanlines slightly to not bleed bottoms of glyphs into next pixel
  • text: spot fix for clipped text shadows
  • toast: Quick Kuroko toast client
  • toastd: Finish things up, I guess.
  • toastd: initial prototype
  • util: Resolve bootstrapping issue through bruteforce
  • weather-tool: Handle bad location-data by trying to get it again
  • weather-tool: Use a geoip service to get location
  • weather-tool: Use lat/lon when querying by guessed location
  • weather-tool: remove unused legacy conf file
  • xhci: cleanup
  • xhci: convert to module
  • xhci: userspace-queryable debug interface
  • yutani-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

19 Jul 11:56
Compare
Choose a tag to compare
ToaruOS v1.99.3 Pre-release
Pre-release

ToaruOS v1.99.3

Screenshot from 2021-07-19 20-50-04

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 icons
  • base: minor cleanup of /usr/share
  • bim: sync with upstream
  • boot: add menu timeout
  • boot: adjust timeout a bit
  • compositor: Avoid more transformations.
  • compositor: avoid transformations if we're just transparent
  • compositor: stop dragging windows on esc
  • compositor: take screenshots on print screen key
  • file-browser: Recognize more file types by extension
  • file-browser: Set the default view mode to TILES
  • file-browser: add a few more keyboard shortcuts
  • file-browser: fix inner radius of focused text input box
  • file-browser: realign and blink the cursor in the input box
  • file-browser: stretch columns to fit
  • font-preview: Include font name in window title
  • font-preview: Override preview text with argv[2]
  • font-preview: tool for viewing TrueType fonts
  • graphics: Add affine transformations for sprites
  • graphics: Match nearest-neighbor signature to bilinear for easier swapping
  • graphics: ensure rounded rectangle rendering is bounded?
  • graphics: fix alpha painting of sprites
  • graphics: general improvements
  • graphics: improved bilinear interpolator
  • graphics: only load image libraries once
  • graphics: short-circuit out of bounds lookups in bilinear interpolator
  • i965: Send mode change signal?
  • imgviewer: include filename in window title
  • kbd: stop sending empty events to clients
  • kernel: (needs review) let threads sleep on their own children?
  • kuroko: Support keyword arguments to lambdas
  • kuroko: pull in version number update
  • kuroko: update repo
  • ld.so: Stop leaking low heap to init functions
  • lib: update docs
  • libc: only elide fractional parts in g/G, not f/F
  • lspci: Add more device descriptions from my ThinkPad
  • lspci: add qemu's e1000e model
  • make: detect more base/ changes
  • menu: Add fancy speech-bubble-style menus like Gnome has
  • menu: Rudimentary checkbox menu entries
  • menu: space out menu bars nicer
  • modules: Reimplement loadable kernel modules
  • modules: list modules in /proc/modules
  • modules: track loaded sizes so we can free modules later
  • net: disable debug prints during TCP connection
  • package-manager: update 'about' text
  • panel: And improve the popup while we're at it
  • panel: And make more room for long month names
  • panel: Use full month name in date widget
  • panel: adjust size of 'Applications', clock
  • panel: experiments with a new design
  • panel: show logout dialog in a thread (temporary)
  • polygons: cleanup
  • polygons: rasterizer demo
  • ps2hid: Fixup initialization sequence; unbreaks scrollwheel in vbox
  • readme: update screenshot
  • splash-log: handle display mode change
  • sysfunc: actually bother validating some values
  • terminal: Implement some quick and dirty font fallback support
  • terminal: fix text width for DejaVu Sans Mono
  • terminal: fixup scroll damage rects
  • text: Introduce new TrueType implementation
  • text: Switch several apps/libs to new text library
  • text: allocate subsamples based on glyph bounds
  • text: fix clipped right-hand-side of some glyphs
  • text: fix overly trusting bounds calculation
  • text: handle off-curve start point
  • text: purge the SDF renderer, RIP
  • text: read fonts with short glyf table offsets
  • text: read unitsPerEm from font, use for tt_set_size
  • text: remove sdf kerning config
  • text: shadowed text, port file-browser
  • text: support more flexible sizing in pt, px
  • text: support type 4 cmaps, old Microsoft fonts
  • tutorial: remove reference to old irc network
  • tutorial: width/height should be minus decorations
  • vfs: copied nodes should get their own refcounts
  • vfs: ramdisk length needs to be updated on the original node
  • vmware: detect vmware by its PCI Express chipset
  • xhci: start on controller driver
  • yutani: new grabby hand cursor
  • yutani: 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

20 Jun 12:46
Compare
Choose a tag to compare
ToaruOS v1.99.2 Pre-release
Pre-release

ToaruOS v1.99.2

Screenshot from 2021-06-20 20-56-01

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 startup
  • boot: Add a status indicator when loading
  • fetch: parse port like we do in fetch-tls
  • fetch: switch forced progress updates back off
  • github: checkout the right commit of kuroko
  • libc: __assert_func should exit
  • libc: support ip addresses in gethostbyname
  • msk: accept https: remotes
  • msk: handle failures in 'fetch' when retrieving packages
  • net: actually try to figure out destination hardware addresses
  • net: don't duplicate struct layout in e1000 device object
  • net: don't dynamically allocate hashmaps and lists?
  • net: fix bad copy in ICMP ECHO
  • net: return eof when socket is closed and no data is available
  • net: select random sequence number to start
  • net: various
  • net: various improvements to still terrible network stack
  • pci: handle setups without a host bridge?
  • pex: don't leave invalid connections with the server read/write methods?
  • readme: updates
  • rline: stop highlighting numbers in the middle of words
  • tcp: 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

15 Jun 11:09
Compare
Choose a tag to compare
ToaruOS v1.99.1 Pre-release
Pre-release

ToaruOS v1.99.1

Screenshot from 2021-06-15 19-57-04

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 QEMUs
  • base: add removed shell scripts from /bin
  • base: define some byte order macros
  • base: remove unsupported startup script
  • base: update /etc/os-release
  • bim: Use ansi theme on vga terminal
  • boot: Recover BIOS loader.
  • boot: Rewrite the legacy BIOS loader
  • boot: Use CD for QEMU
  • boot: check for long mode support so we can complain if someone runs the wrong qemu
  • boot: less debug text
  • dhclient: try to configure all available interfaces
  • e1000: should probably keep using whatever was in the card after reset
  • fbterm: Don't fill screen on startup, we don't set up memory caching for this nicely
  • fbterm: Make sure we're drawing with stride, not width
  • github: Re-add release management
  • github: fix ramdisk path for build artifacts
  • github: upload CD image as build artifact
  • i965: add a leading comment block
  • i965: modeset a thinkpad
  • i965: register names
  • idt: Track core interrupt registers because arch_fatal() usually happens with bad stack data
  • irc: switch to sockets
  • kernel: Release SHM while we're at it...
  • kernel: add 'assert()'
  • kernel: begin work on re-adding module loading
  • kernel: change signatures for vfs interfaces to match reality
  • kernel: close file descriptors >STDERR_FILENO on exec like toaru32 did
  • kernel: fix missing lock during wakeup from signal delivery
  • kernel: make an attempt to clean up processes in SMP
  • kernel: opportunistically map stack space
  • ksym: start organizing kernel symbols for linking
  • lfbvideo: Ensure we map enough space for large preset video modes
  • lfbvideo: Use MMIO interface to configure qemu/bochs; vbox is still port i/o
  • lfbvideo: set some more bits on bochs
  • libc: fix fseek behavior with active read?
  • libc: rand() should not return negative values
  • make: Build with -O2 instead of -O3
  • make: Pass SMP options to 'make shell'
  • make: Port some core build utils to Kuroko
  • make: Strip final kernel image
  • menu: implement menu_free_entry
  • misaka: final merge prep
  • misaka: initial merge
  • misc: cleanup
  • mmu: 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 addresses
  • net: add netmask, examine more stuff from DHCP
  • net: arp fixups
  • net: cleanup
  • net: complete most of a TCP stream?
  • net: fixups for dhclient, multiple nics
  • net: hack up some fin packets
  • net: hacked up udp stuff, dns resolver
  • net: initial raw socket implementation
  • net: initialize e1000e better?
  • net: initialize that list earlier
  • net: more cleanup
  • net: more interface properties
  • net: more tcp; timeout nameserver lookups
  • net: pack that?
  • net: respond to pings?
  • net: silence more debug messages
  • net: silence the network stack unless MISAKA_DEBUG_NET is defined
  • net: try to get the package manager working
  • net: we really need some proper blocking queue primitives
  • net: wip stuff for sockets
  • panel: re-enable weather widget
  • pex: don't shove packets onto the pipes, shove packet pointers so we can read them atomically
  • pex: maybe finally fix this
  • plasma: fix what I think is actually a math bug in plasma
  • process: (temp) avoid freeing processes that are still someone's last
  • process: Set up stack protectors for kernel stacks
  • process: okay don't mark stack protectors nx...
  • process: try to fix up some locks, again
  • ps2hid: give up on PS/2 if trying to empty input buffer doesn't work after 1024 tries
  • readme: Fix docker command
  • readme: More updates.
  • readme: Update README
  • readme: Update readme
  • rline: Add a new r-search
  • sh: semaphore pipe write helps with a weird race condition
  • smp: ACPI checksups are more of a suggestion
  • smp: add a procfs entry to see what other cores are up to
  • smp: do not try to send IPIs when we have one core and no lapic
  • smp: fix wakeups doing bad EOI write
  • splash-log: Keep primary messages on screen
  • splash-log: restore vga text output
  • startup: try to dhcp on boot
  • stat: fix size definitions
  • terminal-vga: recover vga text mode operation
  • terminal: 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

06 Jun 07:28
Compare
Choose a tag to compare

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 QEMUs
  • make: Build with -O2 instead of -O3
  • make: 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

22 Apr 11:14
Compare
Choose a tag to compare

ToaruOS v1.14.0

VirtualBox_ToaruOS CD_22_04_2021_20_10_03

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 -DDEBUG
  • bim: Add Kuroko dynamic tab completion to command input
  • bim: Fix import path, again
  • bim: It would be great if we were actually shipping the syntax files...
  • bim: Update syntax highlighters
  • boot: Compress ramdisk image with gzip
  • boot: Fixes to boot processes on multiple platforms.
  • boot: Make sure PAE is disabled when booting 32-bit EFI
  • boot: try to make gzip decoder faster in loader
  • file-browser: Add more package icons
  • icons: New file type icons for krk, so/o, sh
  • kernel, linker, libc: Initial, probably horribly broken, support for some TLS situations
  • kernel: make sure signal handlers get the right GS descriptor
  • krk_yutani_test: Cleanup
  • kuroko, bim: sync with upstream
  • kuroko: Sync with upstream
  • kuroko: Update from upstream
  • kuroko: Update repl bin
  • kuroko: Update with upstream
  • kuroko: Update with upstream, changes to classes
  • kuroko: Updates for 1.1-preview and threading support
  • kuroko: Upstream updates
  • kuroko: make sure we remove kuroko objs on clean
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: upstream bugfix
  • kuroko: use master branch
  • libc: Add stubs for truncate, sync
  • libc: Fix weird push/pop of ebx in syscall bindings
  • libc: Implement buffered writes in stdio; fix up printf family
  • libc: flush and close buffers on exit
  • libc: flush buffers on seek, tell
  • libc: improved printf
  • libc: more net stubs
  • libc: printf() x formatter improvements
  • libc: try to avoid writing when we shouldn't
  • libm: use fpu rounding to ceil, floor (fixes quake lighting)
  • readme: Update README
  • readme: Update screenshot, build instructions
  • readme: Writing markdown for years and still got that backwards
  • rline: Update krk highlighter from kuroko
  • rline: reintroduce rline_exp as a workaround for existing Python packages
  • rline: 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

26 Jan 00:17
Compare
Choose a tag to compare

ToaruOS v1.13.2

Screenshot from 2021-01-26 09-15-34

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 updates
  • bim: update to latest
  • bim: update to latest master
  • kill: fix bad signal specifier check
  • kuroko[yutani]: Add __repr__s for types
  • kuroko[yutani]: Add text rendering bindings
  • kuroko[yutani]: More general function bindings
  • kuroko[yutani]: Update demo app
  • kuroko[yutani]: finish up basic bindings
  • kuroko: Don't have our build produce builtins.c, assume it's already there.
  • kuroko: More upstreams updates
  • kuroko: Update to latest release candidate
  • kuroko: also pull in version number bump to 1.0.0-rc1
  • kuroko: bindings for sprites
  • kuroko: more upstream updates
  • kuroko: sync with upstream updates to dicts and lists
  • kuroko: synchronize and begin work on Toaru bindings
  • kuroko: upstream changes to hasKw
  • libc: fix major issue in strtox
  • libc: fix truncated printf output for ints, floats
  • menu: Changes to support Kuroko bindings
  • rline: officially adopt rline_exp as the only rline, and bring in some improvements from kuroko
  • rline: try to fix escape timeouts?
  • sh: always ensure that prints to the shell's stderr
  • sh: implement 'time', but only with 'real' time at the moment...
  • sleep: don't just crash on missing arg
  • yutani: 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

08 Dec 14:06
Compare
Choose a tag to compare

ToaruOS v1.13.1

Screenshot from 2020-12-08 23-04-51

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 latest
  • bim: update from upstream
  • boot: add warning when unable to find boot drive
  • github: ...
  • github: I'll get this working eventually.
  • github: add manual build; run for all pushes?
  • github: check in actions workflow
  • github: do a deep fetch to get all tags
  • github: dumb soft linebreaks
  • github: purge travis-ci
  • github: should be body_path
  • github: try to add release notes template to drafts
  • lspci: Add some class codes
  • wallpaper: 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

27 Jul 01:25
Compare
Choose a tag to compare

ToaruOS v1.13.0

Screenshot from 2020-07-27 10-28-28

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.