• v1.2.0 26695d6ba6

    v1.2.0 Stable

    boranseckin released this 2026-03-26 20:06:41 -04:00 | 24 commits to main since this release

    Lazy page allocation

    sbrk() now advances the process break without immediately mapping physical pages. Pages allocated on first access via the store/load page fault handler. This avoids wasting physical memory on heap regions that are never touched.

    Copy-on-write fork

    fork() no longer copies the parent's physical pages into the child. Instead, both processes share the same pages, marked read-only with a COW bit (RSW bit 8 in the PTE). On the first write, the faulting process gets its own private copy. Reference counting in the physical page allocator ensures pages are freed only when the last reference is dropped.

    Both features share the same page fault handler (vmfault) and are covered by dedicated test programs (sbrk, cow).

    Downloads