wiki:ReleaseNotes/0.5.0

Version 15 (modified by Jakub Jermář, 13 years ago) ( diff )

Record progress from the previous release, part 2.

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 version (codename) was released on date.

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

Special Notes for this Release

Text.

Features Introduced in This Release

General

  • 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.
  • 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).

Kernel

  • 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.
    • New root driver.
    • New virtual root driver and a set of sample test drivers.
    • New DDF platform driver for each platform.
    • New DDF driver for the Intel PCI bus controller.
    • New DDF driver for the ns8250 serial port.
  • file_bd can take the block size as a parameter.
  • Minimalistic support for ATAPI CD-ROM in ata_bd.

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.

Networking

  • 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.

Applications

  • 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.
  • 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.

Libraries

  • 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.

Miscellaneous

  • 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/check.sh 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.

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.