Changes between Version 84 and Version 85 of ReleaseNotes/Mainline


Ignore:
Timestamp:
2018-12-02T11:17:30Z (5 years ago)
Author:
Jakub Jermář
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseNotes/Mainline

    v84 v85  
    2222   * Replaced AVL trees (storing task and thread structures)
    2323   * Replaced some uses of B+trees
    24  * The kernel was passing kernel addresses of IPC phone objects (a.k.a. phone hashes) as connection identifiers to userspace. This intentional information leak was replaced 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.
    25  * A couple of years ago, 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.
    26  * 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.
     24 * 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.
     25 * 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.
     26 * 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.
    2727
    2828=== Services and Drivers ===