Split the current kTask_t monolith into a process descriptor
(kProc_t) and a thread descriptor (kThread_t).
Enables clone() / rfork(), thread-local storage via the
GS register, and eventually libc pthreads wired to clone() + futex.
vm_map_entry already carries vm_vnode + vm_offset.
The remaining work: on page fault to a file-backed VMA, allocate a physical page, read
PAGE_SIZE bytes from the vnode, and map it. This is the foundation for
loading ELF PT_LOAD segments directly from disk instead of copying them into anonymous memory.
Two runtime-selectable boot modes: Graphical (Views compositor + guilogin)
and Headless (serial TTY on COM1, no display). Controlled by which
services are enabled in sys:/etc/init.d/ — no kernel rebuild required.
Services: logd, ubistry, authd, views, ttyd.
Restructuring the source tree to isolate i386-specific code under sys/arch/i386/
and harden build-system abstractions, so a future x86_64 port has a clean place to land
without breaking the i386 build. Each phase ends in a bootable i386 kernel.
Long-form goal: boot uBixOS in long mode. Prerequisites are the cross-arch portability restructuring and a working 64-bit cross-toolchain. The i386 build will remain the primary target during transition.
Three-stage Clang bootstrap: macOS cross-compiles a Clang binary that runs on uBixOS (Stage 0), uBixOS uses Stage 0 to compile Clang from source (Stage 1), Stage 1 compiles again reproducibly (Stage 2). After Stage 2, the Mac cross-compiler is never needed for Clang again. Apache 2.0 license — compatible with BSD, unlike GCC GPLv3.
Replace the BIOS/GRUB boot path with a native UEFI application loader. Required for booting on modern hardware without legacy BIOS support.
madvise(MADV_SEQUENTIAL) prefetches ahead on file-backed VMAs.
madvise(MADV_DONTNEED) immediately reclaims pages (useful for malloc trim).
msync flushes dirty file-backed pages back to the vnode.
Wire musl's pthread implementation to clone() and a futex syscall.
Depends on the Scheduler Phase 4 thread split. Unlocks multi-threaded userland programs
and eventually a multi-threaded kernel.
The in-kernel lwIP stack now does DHCP and static configuration. Next: expose a
full BSD socket API to userland and port network tools (wget, SSH)
on top of it — the path to network-based package delivery.
Alternate signal stack for signal handlers that need isolated stack space —
required for stack overflow detection (SIGSEGV from stack guard page).
Also: full ucontext_t population for SA_SIGINFO handlers.
A selection of the major milestones already shipped in uBixOS.