Changes between Version 96 and Version 97 of ReleaseNotes/Mainline
- Timestamp:
- 2018-12-15T10:01:50Z (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ReleaseNotes/Mainline
v96 v97 3 3 '''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). 4 4 5 HelenOS '' version (codename)'' was released on ''date''.5 HelenOS ''0.8.0 (Speranza)'' was released on ''date''. 6 6 7 This document contains a summary of changes made to HelenOS since release previous release.7 This document contains a summary of changes made to HelenOS since release 0.7.2. 8 8 9 9 == Special Notes for this Release == … … 14 14 15 15 * 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 targetin 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. 17 17 18 18 === Kernel === 19 19 20 * Kernel is now stored in standard ELF format 20 * Kernel is now stored in standard ELF format 21 21 * Ordered dictionary ({{{odict.h}}}) now available in kernel 22 22 * Container based on red-black trees … … 25 25 * 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. 26 26 * 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 user pace 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. 28 28 29 29 === Services and Drivers === … … 41 41 42 42 * {{{fdisk}}} can now configure mount point for a volume 43 * We can now create Ext4 (Ext2, actually ,) file systems43 * We can now create Ext4 (Ext2, actually) file systems 44 44 * Support volume labels with Ext4 45 45 * Ext4(2) is the default new file system type for fdisk … … 51 51 * Tetris will now store high-score table under /w 52 52 * Allowing it to persist across reboots - on a system installed by sysinst 53 54 === Networking ===55 53 56 54 === Applications === … … 73 71 * libc 74 72 * 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 76 74 * added {{{strtold}}} 77 75 * replaced {{{<atomic.h>}}} with standard {{{<stdatomic.h>}}} … … 85 83 * Eliminate use of custom linker scripts for user space code 86 84 * 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) 88 86 * Init data can now be configured to be uncompressed (used by default on GTA02 and ski) for faster boot 89 87 * Can compile with undefined behavior sanitizer in either kernel, user space or both