2 2.0 release announcement draft
K Lange edited this page 2021-08-17 10:13:19 +09:00

This is an in-progress draft of the release notes for ToaruOS 2.0. Some functionality described may be unimplemented, and all information is subject to change as development progresses.

ToaruOS 2.0

Screenshots here, like in the 1.0 announcement.

ToaruOS is a complete hobby operating system, including a kernel and userspace with many graphical applications. These release represents the culmination of five years of development effort since version 1.0. ToaruOS 2.0 brings many improvements over previous releases, including a brand new x86-64 kernel with support for symmetric multiprocessing.

History

ToaruOS has been in development for over ten years, and the goals of the project have changed through out its life time.

When it was initiated in December 2010, the OS was a personal project, and its focus was on the individual learning of its author.

With time, ToaruOS's relatively advanced graphical interface and other features have inspired new hobby OSes, and the goals of the project shifted towards providing a reliable learning resource.

From its initial release through the middle of 2018, ToaruOS's userspace was built on top of the Newlib C standard library implementation as well as various third-party libraries such as Cairo and Freetype.

Since the release of 1.6.x, all third-pary runtime dependencies have been removed or replaced, and ToaruOS has been entirely "in-house".

With the release of ToaruOS 2.0 comes a brand new, portable kernel initially targeted at x86-64 PCs, with support for symmetric multiprocessing.

What's new in ToaruOS 2.0

Backwards-incompatible changes

Generally, source compatibility remains high with previous releases using the in-house libc. However, with the new kernel, some necessary API changes have been introduced and this opportunity has been taken to clean up some library interfaces:

  • There is no binary compatibility with previous releases. 32-bit ELF binaries are not supported.
  • Support for 32-bit x86 has been dropped, and there are no plans to backport the new kernel to 32-bit systems.
  • The SDF font rasterizing library has been removed; applications should be migrated to the TrueType rasterizer.
  • The /dev/net virtual filesystem for obtaining sockets has been removed. Applications should be migrated to the traditional BSD sockets API.
  • /proc/netif is also gone, replaced with a series of ioctl calls. See apps/ifconfig.c for an example.

Changes since 1.14.1

  • Misaka, the newly rewritten portable kernel, brings x86-64 and SMP support. As this is a new kernel, the number of changes to device drivers is too great to cover in separate bullet points.
  • Several improvements to the graphics library, including the addition of affine transformations.
  • Several improvements to the window compositing framework.
  • A new TrueType text renderer.
  • The BIOS CD loader has been improved and should support a wider range of hardware configurations.
  • A new text formatting mechanism has been added.
  • The panel has been redesigned, and widgets have been improved with better dynamic sizing and new popovers.