Ironclad 0.7.0 Released
May 27, 2025 - By
Cristian <streaksu@ironclad-os.org>
The project has grown a bit since last release, and this release brings a lot
of changes, updates on how we do things in Ironclad, and a big flow of
developers into the project!
The next release, which should be ready by the end of June or beginning of July,
will include USB support, and improvements to the formal verification of the
project, along with bug fixes.
The release can be found and downloaded at Codeberg’s
releases page.
Here is a list of all the changes worth mentioning:
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 fork
syscall 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
.
- 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.
The people behind this release
Feedback
For any feedback, please contact us at one of
Ironclad’s communities, or, as a
second option, contact the people behind this release.