Version 21 (modified by Jiri Svoboda, 13 years ago) ( diff )

Add special notes

Release Notes for HelenOS mainline

Note: This document is a draft describing a future HelenOS release and is subject to change. The software described here has not been released yet. To get these latest and greatest features now, check out our Bazaar mainline. (But you will also get the latest bugs).

HelenOS 0.4.3 (Sashimi) was released on date.

This document contains a summary of changes made to HelenOS since release 0.4.2.

Special Notes for this Release

  • The new device manager is not started by default in this release and normally you don't need to start it since most drivers still don't use it.
  • Most users will not find networking usable since TCP is not working yet (although UDP is)

Features Introduced in This Release


  • New boot infrastructure
    • The new boot infrastructure is more unified and offers similar boot behavior on all supported platforms.
    • Except for HelenOS/ia32 and HelenOS/amd64, the boot image will be deflated to conserve space. Unfortunately, this also increases the boot time of such images because they first need to be inflated.
  • PearPC support discontinued
    • PearPC was the original PowerPC simulator used for the development of HelenOS/ppc32 port. However, since this simulator is no longer in active development and even severe flaws have not been fixed for more that 4 years (OFW memory management calls, etc.), we have decided to drop support for this simulator completely instead of adding more quirks to our bootloader and kernel code. Qemu/PPC is currently our PowerPC simulator of choice.
  • Added support for the Neo FreeRunner smartphone (based on the ARMv4 architecture).
    • A u-Boot image is provided which you can simply load on an SD card and boot from it.
    • Output goes to the LCD, the serial debug console is used for keyboard input.
    • Touch screen input also works, but since the screen is 480x640 you cannot do anything except moving the mouse pointer.


  • Observability
    • Kernel panics now have a more unified look and print more informative, meaningful and compact messages.
    • Experimental support for kernel stack traces on mips32, ppc32 and sparc64.
  • Robustness
    • The debug kernel will detect and report programming errors such as sleeping while holding a spinlock or when locks are not being held as necessary or when interrupts are not in the desired state.

Services and Drivers

  • New device driver framework (DDF) and a set of DDF-compatible drivers (not started by default)
    • New root driver.
    • New virtual root driver and a set of sample test drivers.
    • New platform driver for the PC platform (ia32 and amd64).
    • New driver for the Intel PCI bus controller.
    • New driver for the ns8250 serial port.
  • Removed the old pci driver.
  • file_bd can take the block size as a parameter.
  • Minimalistic support for ATAPI CD-ROM in ata_bd (only works in Qemu so far).

File Systems

  • FAT file system server
    • Sequential file I/O has linear time complexity in number of blocks for most use patterns. Previously, time complexity of sequential I/O was always quadratic in number of blocks.
  • DEVFS was improved to handle recursive requests better.
  • VFS now supports file systems that wish to serialize I/O on files themselves.
  • VFS uses async framework sessions to allow making parallel requests to endpoint file systems.
  • VFS now maintains per-client tables of open files as compared to per-connection tables.


  • The bundle build of the networking subsystem was discontinued and the only supported option is the modular build in which all networking modules run as separate tasks.
  • The networking code has been cleaned-up, streamlined and better integrated with the rest of the system.
  • The dp8390 NIC driver has been almost entirely rewritten.
  • The ARP module will now wait for answer to each request it sends so that e.g. the first ping will not time out.
  • The TCP module got some fixes, but is still not working as expected.


  • Statistics
    • Added top utility which can print nearly real-time statistics for various system entities.
    • Added stats utility which prints various system statistics, such as list of tasks, threads, processors, and the information about the system load.
  • Programming languages
    • Added sbi interpreter of the Sysel experimental programming language.
  • klog writes its output also to /log/klog.
  • Task termination
    • Added kill command to kill a specific task by its task ID.
    • Added killall command to kill all tasks of the given name.
  • Added simple sysinfo command to allow basic sysinfo tree inspection from user interface.


  • Standard library
    • Heap allocator
      • The allocator was made thread-safe.
      • The allocator strategy was changed from first-fit to next-fit.
      • The allocator can now span discontinuous virtual memory regions.
    • Robustness
      • The standard library will detect and report programming errors such as certain types of deadlocks, improper mixing of serialization means, and when locks are not being held as necessary.
    • Concurrency
      • Added the concept of sessions to the async framework, giving async framework clients a standard means of making parallel requests.
      • The VFS client code was rewritten to make use of the async framework sessions.
  • Added clui library to be used by applications with some form of text input.
    • CLUI-based applications can be terminated by pressing Ctrl-Q when waiting for text input.


  • Build system
    • It is now possible to perform a hands-off build of HelenOS by simply typing make PROFILE=profile_name HANDS_OFF=y.
    • make check or tools/ can be used to report build breakages.
    • The build system now auto-detects essential information about the build system and the target architecture, and performs sanity checks before starting the compilation.
    • It is now possible to do a barebone build in which only essential binaries are included.
    • Support for GCC 4.5+ link-time optimizations.
  • The temporary file system is mounted under /tmp.

Regressions in This Release

  • Temporary HelenOS/ia64 regressions
    • Removed support for running on real hardware.
    • Removed support for detecting and booting on SMP hardware.
    • These will be eventually fixed in some of the future releases.

Known Bugs

  • For the known bugs, please see the list of defects logged for the next releases.
Note: See TracWiki for help on using the wiki.