web analytics
Newspapers

 
Categories: OS-Kernel

IronClad v0.70

v0.7.0

Non-breaking changes

  • Greatly improved block device (SATA, NVMe) caching. Leading to big performance improvements.
  • Added a basic NVMe driver.
  • Implement support for x86's SMAP, and expose it in an architecture-independent way.
  • Harden syscall memory argument checks.
  • Added AT_REMOVEDIR for the unlink syscall.
  • Added a kernel-side terminal for easier early boot debugging for the
    x86_64-limine target.
  • Improve PS2 device detection as to avoid false positives and false negatives.
  • Reworked x86_64-limine's clock subsystem.
  • Add support for pipe sockets with socketpair.
    Improved internal kernel printing by adding support for more 'Image uses.
  • Better handle Out Of Memory (OOM) conditions with fallible allocations.
  • Improve ACPI power button handling by exposing them to userland with the
    pwrbutton/sleepbutton devices, which can be polled by userland daemons
    for power commands.
  • Expand program loading ASLR applications by also using it for dynamic
    program bases.
  • Tons of bug fixes.
  • Improve signal handling.

Breaking changes

  • Removed the spawn syscall, modified the forksyscall` to take a
    FORK_VFORK argument that makes it not copy the parent process's tables. For
    the rationale, visit our blog's article on the matter.
  • Removed power handling interfaces replaced by the pwrbutton/sleepbutton
    changes.
  • Changed the mapping of the signal numbers handled by Ironclad due to POSIX
    requirements, affecting SIGHUP, SIGINT, SIGQUIT, SIGABRT, SIGKILL, SIGALRM,
    and `SIGTERM☠.
  • Replaced the getrandom syscall for the POSIX-compliant getentropy.

Non-code related changes

  • Moved our infrastructure from Savannah and Github to Codeberg.
  • Coalesced project web presence to (https://ironclad-os.org).
  • Started work on the project's blog, a
    hub for Ironclad news, articles, and all Ironclad, with RSS feeds for easy
    following.

EEC GDPR compliant