A public page for exactly what MayteraOS enforces against exploitation
Added a hardening & mitigations page that states, mitigation by mitigation, what is enforced today, what is partially done, and what is only planned, each with the evidence behind it: binary counts, syscall counts, and the exact commands to check it yourself against a downloaded image. See the Security page.
Every system call that takes a pointer from an app is now checked
Pointer validation for system calls moved to a single checkpoint that every system call passes through before it runs, closing a gap where most pointer-taking calls had no validation at all. A build check now refuses to compile if a new pointer-taking system call omits how its pointer should be validated, so the gap cannot silently reopen.
HTTPS connections now really check the server's certificate signature
The TLS client's certificate verification was hardened: the server's proof-of-possession signature is now actually checked rather than parsed and left unverified, the negotiated cipher suite is checked against what the server actually offered, and several other validation gaps were closed. A handshake with a forged or incomplete certificate now fails instead of completing.
Apps are position-independent, and no page is ever both writable and runnable
Every shipped application and game now loads at a randomized address instead of a fixed one, and the loader enforces that no page in a running app can be writable and executable at the same time. A build check fails if any shipped app has a writable-and-executable segment, so this cannot quietly regress.
Stack protection and address randomization now draw from a real random number source
The stack canaries that catch buffer overflows, and the randomized load address every app gets, both now draw their entropy from the kernel's cryptographic random number generator mixed with per-boot and per-process variation, instead of a predictable timer-based source alone.
DOS and Windows 3.1 programs can now run at the same time
The DOS and Windows 3.1 (Win16) compatibility layers used to share a single interrupt-handler slot, so starting the second one broke the first. Each guest now gets its own interpreter environment, and both can run and be used side by side in the same session.
The kernel is more than a quarter smaller
A focused cleanup pass removed unreachable code across the kernel and re-encoded the boot splash image, cutting the compiled kernel from about 4.3 MB to 3.2 MB, a 26% reduction, with no loss of functionality: every path removed was proven dead first by rebuilding and re-testing, including re-verifying that the built-in text-mode recovery desktop (a fallback if the graphical shell can't start) still works. The boot splash image itself shrank from about 750 KB to 140 KB, pixel-for-pixel identical to before and simply compressed.
MayteraOS can now check its own disk for damage
A read-only filesystem checker now runs automatically at boot and reports whether the root filesystem is clean, and the same check is available as a Terminal command. It catches corruption before it can turn into lost files.
App Store installs are fast, and every package is verified
A typical 100+ MB application now installs in about a minute. Every downloaded package is checked against its signature before installation, and a tampered or corrupted download is refused rather than silently accepted.
OpenArena is playable
OpenArena, an open-source multiplayer arena shooter, now runs with working 3D rendering, mouse look, movement and weapon fire, verified through live gameplay testing. It installs straight from the App Store.
A visual refresh across window chrome, buttons and colour themes
A systematic pass through the desktop's shared style system fixed contrast issues, inconsistent borders and missing focus indicators across window title bars, buttons, form controls and all three built-in colour themes (a light theme, a dark theme, and a retro Unix-styled theme), making the interface more consistent and easier to read.
The Rust port keeps growing
More of the kernel's untrusted-input parsing (filesystem directory records, partition-table parsing, USB descriptor parsing and more) now runs through memory-safe Rust behind a build flag, each one checked against its old C implementation on hundreds of thousands of real and malformed inputs before shipping. See the Security page for what that work has found.