Releases: klange/toaruos
v1.0.0 prelease (v0.99.7) - update F
This release improves the user experience, fixes many bugs, and also includes many improvements to the build process for those compiling ToaruOS from source.
Known Issues
cross-gcc
remains unavailable.
Usage
VirtualBox is the recommended environment for running ToaruOS. QEMU is also supported. Using ToaruOS on real hardware is not recommended and we are not responsible for any issues you may encounter or damage this may cause. Other virtual machines and emulators are not supported and may not work. It is not recommended that you run ToaruOS in Bochs as the UI requires considerably higher performance than Bochs is capable of providing. When using QEMU, KVM is preferred but acceptable performance should be possible with the non-accelerated TCG backend on modern hardware.
- VirtualBox:
- OS Type:
Other/Unknown
- Memory: At least 512MB
- Video Memory: May need to be adjusted if you have a large display
- OS Type:
- QEMU
qemu-system-i386 -M accel=kvm:tcg -m 512 -vga std -net nic,model=rtl8139 -net user -soundhw ac97,pcspk -cdrom toaruos.iso -serial stdio
To use the package manager, run sudo get-py
to see a list of packages and sudo get-py vim
(for example) to install a package. Packages must be downloaded from our servers and this process may be slow, please be patient.
v1.0.0 prelease (v0.99.6) - update E
This release fixes many bugs in the kernel, improves support for different boot configurations, adds support for large framebuffers in VirtualBox, and updates the kernel and userspace toolchain to GCC 6.3. We have disabled the automated Travis builds due to incompatibility with the new toolchain but hope to bring them back soon.
There are two versions of this release: the standard desktop version, toaruos.iso
, and a new netboot build, netboot.iso
. The netboot build requires QEMU or VirtualBox with an appropriate network configuration and sufficient RAM. Once booted, both builds should provide the same environment. We encourage testing of the netboot build and reports of download speeds from our servers are appreciated.
Known Issues
If you are building from source, cross-gcc
is no longer available as we are working to ensure stable cross compiled builds of GCC 6.3.
Usage
VirtualBox is the recommended environment for running ToaruOS. QEMU is also supported. Using ToaruOS on real hardware is not recommended and we are not responsible for any issues you may encounter or damage this may cause. Other virtual machines and emulators are not supported and may not work. It is not recommended that you run ToaruOS in Bochs as the UI requires considerably higher performance than Bochs is capable of providing. When using QEMU, KVM is preferred but acceptable performance should be possible with the non-accelerated TCG backend on modern hardware.
- VirtualBox:
- OS Type:
Other/Unknown
- Memory: At least 512MB
- Video Memory: May need to be adjusted if you have a large display
- OS Type:
- QEMU
qemu-system-i386 -M accel=kvm:tcg -m 512 -vga std -net nic,model=rtl8139 -net user -soundhw ac97,pcspk -cdrom toaruos.iso -serial stdio
To use the package manager, run sudo get-py
to see a list of packages and sudo get-py vim
(for example) to install a package. Packages must be downloaded from our servers and this process may be slow, please be patient.
v1.0.0 prelease (v0.99.5) - update D
This iterative update adds ungz
and adds support for it to get-py
.
Known Issues
The automated build uses an older GRUB which may perform poorly in non-accelerated VMs during boot time. Automated builds do not include Python - please use the toaruos-python.iso
disk image instead.
The package manager should not be used if you are building a hard disk installation - it is meant only for the live CDs. A future implementation of the package manager will allow its use from a host OS to install these packages into a source tree for a hard disk installation.
Usage
VirtualBox is the recommended environment for running ToaruOS. QEMU is also supported. Using ToaruOS on real hardware is not recommended and we are not responsible for any issues you may encounter or damage this may cause. Other virtual machines and emulators are not supported and may not work. It is not recommended that you run ToaruOS in Bochs as the UI requires considerably higher performance than Bochs is capable of providing. When using QEMU, KVM is preferred but acceptable performance should be possible with the non-accelerated TCG backend on modern hardware.
- VirtualBox:
- OS Type:
Other/Unknown
- Memory: At least 512MB
- Video Memory: May need to be adjusted if you have a large display
- OS Type:
- QEMU
qemu-system-i386 -M accel=kvm:tcg -m 512 -vga std -net nic,model=rtl8139 -net user -soundhw ac97,pcspk -cdrom toaruos-python.iso -serial stdio
To use the package manager, run sudo get-py
to see a list of packages and sudo get-py vim
(for example) to install a package. Packages must be downloaded from our servers and this process may be slow, please be patient.
v1.0.0 prelease (v0.99.4) - update C
This iterative update includes minor improvements to window management, usability improvements for the linker, symlink support in tmpfs
, and a new rudimentary package manager for live CD users.
Known Issues
The automated build uses an older GRUB which may perform poorly in non-accelerated VMs during boot time. Automated builds do not include Python - please use the toaruos-python.iso
disk image instead.
The package manager should not be used if you are building a hard disk installation - it is meant only for the live CDs. A future implementation of the package manager will allow its use from a host OS to install these packages into a source tree for a hard disk installation.
Usage
VirtualBox is the recommended environment for running ToaruOS. QEMU is also supported. Using ToaruOS on real hardware is not recommended and we are not responsible for any issues you may encounter or damage this may cause. Other virtual machines and emulators are not supported and may not work. It is not recommended that you run ToaruOS in Bochs as the UI requires considerably higher performance than Bochs is capable of providing. When using QEMU, KVM is preferred but acceptable performance should be possible with the non-accelerated TCG backend on modern hardware.
- VirtualBox:
- OS Type:
Other/Unknown
- Memory: At least 512MB
- Video Memory: May need to be adjusted if you have a large display
- OS Type:
- QEMU
qemu-system-i386 -M accel=kvm:tcg -m 512 -vga std -net nic,model=rtl8139 -net user -soundhw ac97,pcspk -cdrom toaruos-python.iso -serial stdio
To use the package manager, run sudo get-py
to see a list of packages and sudo get-py vim
(for example) to install a package. Packages must be downloaded from our servers and this process may be slow, please be patient.
v1.0.0 prelease (v0.99.3) - update B
This iterative update includes many improvements such as basic filesystem permissions, bug fixes in the linker, a stable Python 3.6 build (please use the toaruos-python.iso
version of the ISO attached to this release), and more. A complete list of changes between this release and "update A" is available here.
The attached toaruos.iso
is an automated build without Python support.
Known Issues
Python may repeatedly print Symbol not found: select
as it attempts to import modules that make use of this missing function.
The automated build uses an older GRUB which may perform poorly in non-accelerated VMs during boot time.
Usage
VirtualBox is the recommended environment for running ToaruOS. QEMU is also supported. Using ToaruOS on real hardware is not recommended and we are not responsible for any issues you may encounter or damage this may cause. Other virtual machines and emulators are not supported and may not work. It is not recommended that you run ToaruOS in Bochs as the UI requires considerably higher performance than Bochs is capable of providing. When using QEMU, KVM is preferred but acceptable performance should be possible with the non-accelerated TCG backend on modern hardware.
- VirtualBox:
- OS Type:
Other/Unknown
- Memory: At least 512MB
- Video Memory: May need to be adjusted if you have a large display
- OS Type:
- QEMU
qemu-system-i386 -M accel=kvm:tcg -m 512 -vga std -net nic,model=rtl8139 -net user -soundhw ac97,pcspk -cdrom toaruos-python.iso -serial stdio
To install some Python demos, you may run python /opt/examples/get-py
and then cd /tmp
.
Latest Travis Build
These builds are automatically created and deployed by Travis CI when the travis-latest
tag is updated.
Known Issues
- Travis uses an older version of
grub
, which runs slowly without hardware acceleration. If you are using these CDs with QEMU, please note they may take more time to boot, but once booted should perform the same as other CDs.
Usage
- VirtualBox:
- OS Type:
Other/Unknown
- Memory: At least 512MB
- Video Memory: May need to be adjusted if you have a large display
- OS Type:
- QEMU
qemu-system-i386 -M accel=kvm:tcg -m 512 -vga std -net nic,model=rtl8139 -net user -soundhw ac97,pcspk -cdrom toaruos.iso -serial stdio
v1.0.0 prelease (v0.99.2) - update A
This is the first iterative update to the v0.99 release series. This update includes new application icons, improved window management, a rough dlopen
implementation, and many bug fixes. The size of the CD has been reduced slightly by stripping the included libraries of debug information.
Please see the release notes for v0.99.1 for a more complete description of this release series.
v1.0.0 prelease (v0.99.1)
ToaruOS
ToaruOS is a hobby operating system, including a kernel, drivers, and userspace applications. Started in early 2011, ToaruOS has been in development now for six years, and we are finally ready for our first true production release. While we do not believe that ToaruOS is stable or feature-complete enough to be used for everday computing needs, we do think that this release represents a sufficient feature set to perform many common desktop tasks. ToaruOS features a compositing window manager, a terminal emulator with considerable xterm emulation and some features of its own, basic network support, dynamic libraries, loadable kernel modules, and much more. The kernel and drivers are built entirely in-house, while the userspace is mostly in-house applications built on top of a handful of third-party, open-source libraries such as Cairo.
Using ToaruOS
The preferred method of deploying ToaruOS is as a VirtualBox VM. You may use the attached ISO as a CD in a new VM using the "Other/Unknown" OS type. It is recommended that you provide your VM with 1GB of RAM. The default settings for the "Other/Unknown" configuration should provide your VM with the needed hardware to support networking and audio.
If you would prefer to use QEMU, please make use of the following command line arguments:
qemu-system-i386 -vga std -m 512 -cdrom toaruos.iso -soundhw ac97 \
-net user -net nic,model=rtl8139 -enable-kvm # KVM is optional but recommended
Attempting to install ToaruOS on real hardware is not recommended as driver support, even in this official release, is lacking. We are not responsible for any damage caused by attempts to use ToaruOS on real hardware.
You may also download the source archive for ToaruOS and build it, as per the instructions on our wiki. Building ToaruOS from source will take some time and requires your host environment to be sufficiently similar to the ones we use, but will afford you the opportunity to easily add extra functionality such as a complete GCC/Binutils toolchain natively within the OS.
Contact
For help with ToaruOS, whether you wish to obtain it or provide it, please join us in our IRC channel #toaruos
on irc.freenode.net
.
License
ToaruOS itself is free software, released under a BSD-style license.
ToaruOS makes use of several third-party libraries and tools. For a complete listing of copyright notices and licenses for included software, please see LICENSE.md and Third Party Licenses.
Release Notes
This is an experimental pre-release of what will eventually become ToaruOS 1.0. Over the last release, the major improvement in this release is the dynamic userspace and linker. Additionally, several improvements to networking, support for ISO 9660 filesystems and ATAPI CD drives, expanded live CD tutorials, a new GRUB theme, new wallpapers, window management improvements, tab completion in the shell, and more are included.
There is still more work to be done before an official 1.0 release can be drafted, but this build represents something much closer to that target than to the previous release.
The complete list of changes in this release is as follows:
- Kevin Lange (93):
- Fix GPF in VGA terminal on VirtualBox
- Fix some missing frees
- Allow 'play' to play from stdin
- Fix big leaks in net_handle_...
- Start working on DNS implementation
- Terrible implementation of DNS
- Actually attempt to obtain DNS server from DHCP
- Move Draw so it's not under the panel on startup
- (cd) Fix GRUB menu timeout (on first load)
- give vidset an actual name
- Add a module dependency check tool.
- Ensure all modules have unique names
- Don't use polling mode for pcnet
- Disable caching for MMIO regions
- Try a different MTU
- IRC needs to kill network thread on quit
- Support resizing the login screen
- Fix bad marks on resizing windows
- Support resizing nested Yutani
- Center window x on mouse when untiling
- Center on Y as well, works better for tiled windows / alt-mouse drag
- Even better: Untile based on relative position
- Disable PCI-PCI bridge recursion (it's broken)
- remove duplicate bus scan?
- Basic ISO 9660 FS driver
- Experimental ATAPI support
- Stabilise ATAPI a bit, stop using a kernel thread for it
- Fix a bug in imgviewer that actually froze yutani
- Reject crazy window movements
- Various fixes for Python
- Fix panel width calculations when resized
- Preview mkdir from creating directories that already exist
- Actually update copyright year in LICENSE.md
- Tutorial demos
- Draw a checkerboard behind transparent images in imgviewer
- Very experimental images-in-terminal concept
- Support not putting a linefeed after the last line of an image (so we can cat-img a bunch of one-row images)
- Support DEC show/hide cursor escapes.
- Hide cursor when drawing images
- Make sure we mark display regions for update when drawing images
- Disable FPU lazy switching (it's breaking bochs)
- sha512sum tool
- Calculate size of /dev/cdromX
- Add options to Grub2 config to toggle modules
- Update some grub theming
- Fix warning in vgalog module
- Merge pull request #128 from shawnanastasio/master
- Stop printing to WARNING all the time in tmpfs
- Tab completion of filenames in esh
- Fix tab completing directories from current dir (bad stat)
- Fix gap when tiling on display sizes that don't divide perfectly
- Fix cross-gcc which was broken by gcc5+ patch
- Open the wallpaper window earlier and make it black
- Merge pull request #130 from gil0mendes/update-vagrant
- New wallpaper (Fuji, seen from Fujiyoshida)
- Fix missing abs() in untile drag logic
- Add a tool to create grub wallpapers with ImageMagick
- Handle cases where QEMU rounds lfb width to multiples of 8
- Add a userspace interface for loading modules
- init
- Add a userspace interface for DNS
- Add Makefile target for libnetwork
- Add experimental util script to run VirtualBox with dev hdd
- Fix window move bounds checking in Yutani
- Fix bad pointer for message when examining WELCOME message
- Handle display resizes in live-wizard
- Add an X button to the 'simple' decoration theme
- Add ugly hack to support loader
- Fix missing element in elf phdr struct
- Support loading static binaries from phdrs
- Update readme
- Actually do a bunch of useful stuff
- Add missing Elf32_Dyn definition to elf header
- Add a dumb syscall to force an address+size to be mapped in userspace
- It's alive
- Fix PC32 relocations missing symbols
- Fix bad symbol relocs; support constructors, poorly
- Look up libraries in something resembling a search path
- Attempt load dynamic binaries with the loader
- New kernel elf loader
- Try to fix args in linker
- Put stuff in the right place to actually work
- Fix up arguments
- Make cpudet work when compiled PIC/PIE
- Make very certain that ld.so is built static
- Make sure we type assembly functions in newlib
- merge linker
- Merge branch 'master' of github.com:klange/toaruos
- Make linker makefile a bit more explicit
- Build a dynamic userspace.
- Bump travis toolchain cookie
- mkdir hdd/usr/lib before copying libc into it
- Make sure ld.so gets built
- Peter Harliman Liem (1):
- Fix potential leak in mkdir_fs error path
- Shawn Anastasio (1):
- Update toolchain-build.sh to install gperf on Fedora
- Gil Mendes (2):
- upgrade vagrant to use Ubuntu Xenial
- Update time on glogin
v0.14.1 - VirtualBox Networking
This is a point release improvement over v0.14.0 adding support for networking in VirtualBox through a driver for the AMD PCNet series NIC. As with existing network support, this is experimental and incomplete, but should offer the same functionality as what is provided for the RTL8139 card used with QEMU. The drivers have been tested under both VirtualBox and QEMU (which also supports the PCNet series).
Additional improvements in this point release over v0.14.0 include:
- An experimental wallpaper switcher app. This is not available in the normal CD build.
- An option to build larger CDs, which include all the default wallpapers as well as the switcher and may contain other additional features over the smaller CDs in the future. Note that more RAM is required to use these images as they include larger ramdisks.
- Improvements to Yutani to correct issues with resizing rotated windows and to add the ability to rotate a window with the mouse rather than the keyboard (Alt + Right Click).
- Various bug fixes.
Please see the release notes for v0.14.0 for additional information on this release as it relates to previous releases.
v0.14.0 "Kuroko"
Changes
Notable changes are marked in bold.
- CMOS accuracy has been improved.
- Terminfo descriptors are now included on CDs.
- The IRC client has been improved.
- Non-DMA ATA drivers have been restored.
- Basic VMware SVGA modesetting is now supported.
- Support for VirtualBox Guest Additions (auto-resize and mouse integration) has been added.
- Yutani can now handle display size changes.
- A new module has been added to set display resolution from
kdebug
on supported devices. debug_shell.ko
is now included in the boot module list for CDs allowing access tokdebug
.- An
auto
option has been added to the LFB video driver. It will automatically detect QEMU/Bochs/VirtualBox and VMWare or fall back to the "present" driver. This is now the default on CDs.
Codename
The codename for this release is Kuroko.
Instructions
You may download the source archive and build it as you normally would following the instructions in the README, or you may download the ISO image and use it with a virtual machine or burn it to an actual CD. Note that hardware support in ToaruOS continues to be limited and it may not work with your PC. If you experience issues, please join our IRC channel (#toaruos
) on Freenode for assistance.
QEMU
For the best access to ToaruOS's features, run QEMU as follows:
qemu-system-i386 -vga std -m 512 -cdrom toaruos.iso \
-enable-kvm -soundhw ac97 -net user -net nic,model=rtl8139
VirtualBox
Support for VirtualBox has improved in this release. For best results, configure your VM with 512MB of RAM and use the default settings for other options and then use the ISO release as a CD. Network support on VirtualBox is not yet available, but a PCNet driver is in the works, so please check back later.
Notice
This release is not being marked as "pre-release" on github, but please remember that ToaruOS is a hobby project and not in any way designed or intended for use on production systems.