Fork us on GitHub Follow us on Google+ Follow us on Facebook Follow us on Twitter

Changes between Version 96 and Version 97 of ReleaseNotes/Mainline


Ignore:
Timestamp:
2018-12-15T10:01:50Z (6 weeks ago)
Author:
Jakub Jermář
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseNotes/Mainline

    v96 v97  
    33'''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 Git master. (But you will also get the latest bugs).
    44
    5 HelenOS ''version (codename) '' was released on ''date''.
     5HelenOS ''0.8.0 (Speranza)'' was released on ''date''.
    66
    7 This document contains a summary of changes made to HelenOS since release previous release.
     7This document contains a summary of changes made to HelenOS since release 0.7.2.
    88
    99== Special Notes for this Release ==
     
    1414
    1515 * We partially revived the Doxygen [http://ci.helenos.org/latest/doxygen/ reference documentation] and plan to further improve it.
    16  * HelenOS abandoned the `*-linux-gnu and` `*-unknown-elf` toolchain target in favor of its [https://github.com/HelenOS/gcc/tree/8_2_0-helenos own] `-helenos` target. Utilizing the compiler-provided headers and libraries avoids a number of problems and reduces the amount of architecture-support code that otherwise needs to be provided directly in HelenOS.
     16 * HelenOS abandoned the `*-linux-gnu` and `*-unknown-elf` toolchain targets in favor of its [https://github.com/HelenOS/gcc/tree/8_2_0-helenos own] `-helenos` target. Utilizing the compiler-provided headers and libraries avoids a number of problems and reduces the amount of architecture-support code that otherwise needs to be provided directly in HelenOS.
    1717
    1818=== Kernel ===
    1919
    20  * Kernel is now stored in standard ELF format 
     20 * Kernel is now stored in standard ELF format
    2121 * Ordered dictionary ({{{odict.h}}}) now available in kernel
    2222   * Container based on red-black trees
     
    2525 * The kernel used to pass kernel addresses of IPC phone objects (a.k.a. phone hashes) as connection identifiers to userspace. This intentional but unfortunate information leak was replaced in this release by purely user-defined labels negotiated during IPC connection setup handshake. Each connected phone now has a user-defined label and imprints this label on each IPC call which is routed through it.
    2626 * In 2014 HelenOS got its own implementation of RCU (Read-Copy-Update) synchronization primitive along with a CHT (Concurrent Hash Table) data type based on RCU. Although sophisticated and interesting from the technological point of view, the RCU and CHT were mostly unused and unmaintained. We therefore decided to remove these very complex features.
    27  * The kernel waitq synchronization primitive was made available to userpace via capabilities. Consequently the userspace implementation of futexes was rewritten to use waitq's as the underlying synchronization mechanism. The custom support for futexes was removed from the kernel. One ramification of this change is that the underlying kernel object is no longer allocated lazily. This increases startup times of components that use futexes, but provides better failure modes, and better resource management possibilities in the future.
     27 * The kernel waitq synchronization primitive was made available to userspace via capabilities. Consequently the userspace implementation of futexes was rewritten to use waitq's as the underlying synchronization mechanism. The custom support for futexes was removed from the kernel. One ramification of this change is that the underlying kernel object is no longer allocated lazily. This increases startup times of components that use futexes, but provides better failure modes, and better resource management possibilities in the future.
    2828
    2929=== Services and Drivers ===
     
    4141
    4242 * {{{fdisk}}} can now configure mount point for a volume
    43  * We can now create Ext4 (Ext2, actually,) file systems
     43 * We can now create Ext4 (Ext2, actually) file systems
    4444 * Support volume labels with Ext4
    4545 * Ext4(2) is the default new file system type for fdisk
     
    5151   * Tetris will now store high-score table under /w
    5252     * Allowing it to persist across reboots - on a system installed by sysinst
    53 
    54 === Networking ===
    5553
    5654=== Applications ===
     
    7371 * libc
    7472    * Clean separation of fibrils and async framework
    75     * The async framework defines the label stored in connected IPC phones to be the userspace address of the connection structure. Because of this, the connection lookup hash table could have been dropped entirely as each incoming call already knows the connection from the label.
     73    * The async framework defines the label stored in connected IPC phones to be the userspace address of the connection structure. Because of this, the connection lookup hash table could have been dropped entirely as each incoming call already knows the connection from the label
    7674    * added {{{strtold}}}
    7775    * replaced {{{<atomic.h>}}} with standard {{{<stdatomic.h>}}}
     
    8583 * Eliminate use of custom linker scripts for user space code
    8684 * Init data is now stored as a tar archive of gzip-compressed files
    87  * Server binaries under {{{/srv}}} are now in sub-directories (and /srv is no longer a search dir for commands)
     85 * Server binaries under {{{/srv}}} are now in sub-directories (and /srv is no longer a search directory for commands)
    8886 * Init data can now be configured to be uncompressed (used by default on GTA02 and ski) for faster boot
    8987 * Can compile with undefined behavior sanitizer in either kernel, user space or both