-
gitlab/v0.9
Release version 0.9 New features and major improvements since v0.8: - Linux ABI breadth: implemented the remaining 36 missing syscalls and 37 RISC-V64 syscalls to close the gap with Linux, plus keyring, fanotify, acct, AIO, pidfd, epoll_pwait2, and module syscalls; fixed syscall numbers so every RISC-V64 entry is reachable. - Linux ABI depth: real in-kernel splice/tee/vmsplice engine; full membarrier command set with cross-CPU barrier; eventfd live O_NONBLOCK and futex CLOCK_REALTIME validation; userfaultfd, perf_event_open, and PI futexes with remaining stub/ENOSYS markers dropped; PTRACE_SEIZE and PTRACE_INTERRUPT; openat2 RESOLVE_CACHED (dropping the conflicting NO_TRAILING flag); posix timer struct sigevent parsing with SIGEV_THREAD_ID; completed the Linux input ABI so libinput enumerates evdev; exposed /sys/devices/virtual/<subsystem>/<name> for udev and replayed device uevents when udevd's KOBJECT_UEVENT socket binds. - Desktop and graphics: integrated the XFCE desktop environment with Wayland; added the labwc compositor (wlroots) as the Wayland compositor; wired labwc's DRM path into the GUI image; completed the KMS ioctls and PRIME support to drive labwc; built a real libdrm instead of the header-only stub; integrated Mesa EGL/GLES/GBM and the GTK3 stack; virtio-gpu virgl (3D) feature negotiation and capset query with DRM passthrough and test; boots a stock Alpine XFCE Wayland rootfs via `make distro-run`; dropped WLR_LIBINPUT_NO_DEVICES and tidied init now that input works. - Performance overhaul: per-bucket locks and second-chance LRU in page_cache, block_cache, and dcache; fsync scoped per inode instead of the whole mount; writeback serialized per vnode instead of globally; 128 KiB sequential readahead window; batched deferred frame frees so munmap/exit take pfa.lock once per chunk; COW fault TLB shootdown targeted at mm active CPUs instead of broadcasting; loongarch64 user vDSO so clock_gettime/gettimeofday avoid full traps; spinlock contention telemetry with callsite attribution; proc_lock taken once per context switch. - Park/Wake protocol: split the Park/Wake state machine to a per-task park_lock, read the wake reason after sched() without proc_lock, lock-free proc_park_finish after a wake, and fully removed proc_lock from the Park/Wake path. - Contest stage7 (BuildStorm): restored proven virtio-blk polling completions, ext4 blockwise file reads, and the in-kernel accept path; disabled unsafe batched page fill; acknowledged TLB shootdown after fence; prevented stale TLB frame reuse under parallel builds; silenced false idle hang reports in release builds; added device hotplug lifecycle for USB/PCI and serialized driver progress with lifecycle updates; prevented BuildStorm data corruption; recovered ext4 journal and fixed directory tail split; reclaimed idle vnode and page caches. - Filesystems and devices: completed the standard fbdev ioctls on /dev/fb0, minimal DRM/KMS and ALSA audio device interfaces, the mem/rtc backend split of devfs.c, and the classic Linux proc files missing vs Uinxed-Kernel; extended /proc, /dev, and tty ioctl file interfaces; mounted ext4 with deferred journal cleanup on flush failure; ext4 namespace lookups take the metadata lock in read mode; made the offset_lock mutex recursive and moved user copies out of it. - Networking: implemented SCM_CREDENTIALS, SO_PASSCRED and SO_PEERCRED; unified the hybrid network stack, wait layer, and Linux-ABI channel access. - mm/proc hardening: cleared deferred VMA state across fork, kept the riscv vDSO below the maximum user stack, isolated the fdtable before multithreaded exec, restarted shebang parsing at file offset zero, enlarged VMA index capacity so compiler address spaces keep binary search, and skipped the global shared-dirty harvest scan when the vnode has no MAP_SHARED mappings. - Toolchain and structure: added support for the Lamina1 toolchain; exported drvmod kallsyms_print so lock.h consumers load; skipped the LVGL desktop in text-mode dev builds; made `make all` reliable from a fresh checkout; kept submodules pristine for the XFCE Wayland desktop by hardening the kernel; reorganized external submodules into categorized subdirectories; added robust final test discovery and the reproducible Linux BuildStorm baseline. Notable fixes and compatibility: - drvmod: supported far riscv64 data references and module calls, completed the driver deployment refactor with arch-boundary cleanup. - Restored proven paths (virtio-blk polling, ext4 blockwise reads, in-kernel accept) reverted by earlier performance experiments. - Fixed struct sigevent parsing for posix timers and the clone TLS argument order in the aarch64 syscall hook. - Hardened the VisionFive 2 and LS2K1000 drivers and adaptations.
-
gitlab/v0.8
Release version 0.8 New features and major improvements since v0.7: - Hybrid kernel (phase 1-4): native-ipc fused channel_call RPC fast path with direct-switch time-slice donation, global service registry (svc) with object counters, handle quota and crash-leak audit, and the svcman supervisor with crash self-healing; shared-VMO SPSC ring (shmring) data plane; trap-free clock_gettime/gettimeofday vDSO for Linux ABI tasks; user-space driver framework (udriver) with a goldfish RTC pilot and contiguous DMA heap; kernel block proxy plus user-space virtio-blk driver (udisk) with driver-crash failure propagation. - Hybrid network stack: user-space lwIP sources, kernel-to-userspace frame transport, socket proxy transport with host-to-guest TCP proxying, AF_UNIX socketpair bridging onto the internal channel, and service manifests with health probes. - IOMMU and device claims: SV39 translation with hardware fault checks, versioned IDL RTCD request/reply bindings, exclusive device ownership claims, and a Linux-compatible fd/synchronization personality with pipe stream semantics. - Kernel extension points: restricted eBPF-encoded extension programs (kep) and the dual-placement driver framework with a user-space virtio-input driver sample and DMA operations. - drvmod: cross-architecture module loader with hardened allocation and LoongArch relocations; migrated platform, PS/2, virtio-input, Intel HDA, NVMe, and TPM drivers to modules; kallsyms generated during linking with an architecture-independent process debug interface. - IPC and scheduling: SMP time-slice donation for channel calls, sharded futex waiter locks with dynamic waiter allocation, and serialized global network progress. - Memory management: fixed Linux mprotect/mremap lock re-entry, buddy allocator re-entry and TLB release ordering, SMP channel bulk corruption and VMA locking fixes, and a contiguous DMA heap for user-space drivers. Notable fixes and compatibility: - Restricted the channel_call donation fast path to UP after documenting SMP findings. - Fixed PCI INTx routing and LoongArch IRQ handling.
-
gitlab/v0.7
Release version 0.7 New features and major improvements since v0.6: - Scheduler: replaced the MLFQ with an EEVDF proportional-share core, strict eligibility with sleeper-bonus clamp and slice knob, and idle-task stealing for SMP load balance. - USB: added USB core, XHCI host controller, HID class, bulk transfers, and a Mass Storage (BOT/SCSI) class driver. - Filesystems: clean-room read/write NTFS driver, ISO9660, ext4 64-bit/hard-link/truncate, FAT32 and NTFS rename, overlay modes, and inotify event delivery. - Security: TPM 2.0 (TIS/FIFO) driver; x86_64 hardware RNG entropy source. - Audio: stabilized HDA media playback, enabled HDA on riscv64 QEMU virt, and added a virtio-sound playback backend. - Native ABI: mlibc runtime support, checkpoint-based signal simulation, interruptible thread_sleep, cross-process kill, and path/cwd/checkpoint extensions. - Memory management: VMO moved into core with native VMAR backed by core mmap helpers, cgroup VMO page charging, and MAP_FIXED shadowing of the brk heap. - ppc64le: fixed task switch, radix PTE/process-table walk and byte order, user PC recovery for storage faults, ran the interactive mksh shell end to end, and ported the native ABI libc (liba20c) to ELFv2. - Networking: expanded e1000/e1000e device coverage. - Structure: split the VFS, ext4/NTFS/FAT32 drivers, console TTY line discipline, and mm/vm into focused units; added LICENSE/ACKNOWLEDGMENTS/THIRD_PARTY_NOTICES. Notable fixes and compatibility: - ELF: fixed pgdir leaks and preserved start info across dynamic exec. - Weston: bumped to the A20 libinput-seat adaptation.
-
v0.9
Release version 0.9 New features and major improvements since v0.8: - Linux ABI breadth: implemented the remaining 36 missing syscalls and 37 RISC-V64 syscalls to close the gap with Linux, plus keyring, fanotify, acct, AIO, pidfd, epoll_pwait2, and module syscalls; fixed syscall numbers so every RISC-V64 entry is reachable. - Linux ABI depth: real in-kernel splice/tee/vmsplice engine; full membarrier command set with cross-CPU barrier; eventfd live O_NONBLOCK and futex CLOCK_REALTIME validation; userfaultfd, perf_event_open, and PI futexes with remaining stub/ENOSYS markers dropped; PTRACE_SEIZE and PTRACE_INTERRUPT; openat2 RESOLVE_CACHED (dropping the conflicting NO_TRAILING flag); posix timer struct sigevent parsing with SIGEV_THREAD_ID; completed the Linux input ABI so libinput enumerates evdev; exposed /sys/devices/virtual/<subsystem>/<name> for udev and replayed device uevents when udevd's KOBJECT_UEVENT socket binds. - Desktop and graphics: integrated the XFCE desktop environment with Wayland; added the labwc compositor (wlroots) as the Wayland compositor; wired labwc's DRM path into the GUI image; completed the KMS ioctls and PRIME support to drive labwc; built a real libdrm instead of the header-only stub; integrated Mesa EGL/GLES/GBM and the GTK3 stack; virtio-gpu virgl (3D) feature negotiation and capset query with DRM passthrough and test; boots a stock Alpine XFCE Wayland rootfs via `make distro-run`; dropped WLR_LIBINPUT_NO_DEVICES and tidied init now that input works. - Performance overhaul: per-bucket locks and second-chance LRU in page_cache, block_cache, and dcache; fsync scoped per inode instead of the whole mount; writeback serialized per vnode instead of globally; 128 KiB sequential readahead window; batched deferred frame frees so munmap/exit take pfa.lock once per chunk; COW fault TLB shootdown targeted at mm active CPUs instead of broadcasting; loongarch64 user vDSO so clock_gettime/gettimeofday avoid full traps; spinlock contention telemetry with callsite attribution; proc_lock taken once per context switch. - Park/Wake protocol: split the Park/Wake state machine to a per-task park_lock, read the wake reason after sched() without proc_lock, lock-free proc_park_finish after a wake, and fully removed proc_lock from the Park/Wake path. - Contest stage7 (BuildStorm): restored proven virtio-blk polling completions, ext4 blockwise file reads, and the in-kernel accept path; disabled unsafe batched page fill; acknowledged TLB shootdown after fence; prevented stale TLB frame reuse under parallel builds; silenced false idle hang reports in release builds; added device hotplug lifecycle for USB/PCI and serialized driver progress with lifecycle updates; prevented BuildStorm data corruption; recovered ext4 journal and fixed directory tail split; reclaimed idle vnode and page caches. - Filesystems and devices: completed the standard fbdev ioctls on /dev/fb0, minimal DRM/KMS and ALSA audio device interfaces, the mem/rtc backend split of devfs.c, and the classic Linux proc files missing vs Uinxed-Kernel; extended /proc, /dev, and tty ioctl file interfaces; mounted ext4 with deferred journal cleanup on flush failure; ext4 namespace lookups take the metadata lock in read mode; made the offset_lock mutex recursive and moved user copies out of it. - Networking: implemented SCM_CREDENTIALS, SO_PASSCRED and SO_PEERCRED; unified the hybrid network stack, wait layer, and Linux-ABI channel access. - mm/proc hardening: cleared deferred VMA state across fork, kept the riscv vDSO below the maximum user stack, isolated the fdtable before multithreaded exec, restarted shebang parsing at file offset zero, enlarged VMA index capacity so compiler address spaces keep binary search, and skipped the global shared-dirty harvest scan when the vnode has no MAP_SHARED mappings. - Toolchain and structure: added support for the Lamina1 toolchain; exported drvmod kallsyms_print so lock.h consumers load; skipped the LVGL desktop in text-mode dev builds; made `make all` reliable from a fresh checkout; kept submodules pristine for the XFCE Wayland desktop by hardening the kernel; reorganized external submodules into categorized subdirectories; added robust final test discovery and the reproducible Linux BuildStorm baseline. Notable fixes and compatibility: - drvmod: supported far riscv64 data references and module calls, completed the driver deployment refactor with arch-boundary cleanup. - Restored proven paths (virtio-blk polling, ext4 blockwise reads, in-kernel accept) reverted by earlier performance experiments. - Fixed struct sigevent parsing for posix timers and the clone TLS argument order in the aarch64 syscall hook. - Hardened the VisionFive 2 and LS2K1000 drivers and adaptations.
-
v0.8
Release version 0.8 New features and major improvements since v0.7: - Hybrid kernel (phase 1-4): native-ipc fused channel_call RPC fast path with direct-switch time-slice donation, global service registry (svc) with object counters, handle quota and crash-leak audit, and the svcman supervisor with crash self-healing; shared-VMO SPSC ring (shmring) data plane; trap-free clock_gettime/gettimeofday vDSO for Linux ABI tasks; user-space driver framework (udriver) with a goldfish RTC pilot and contiguous DMA heap; kernel block proxy plus user-space virtio-blk driver (udisk) with driver-crash failure propagation. - Hybrid network stack: user-space lwIP sources, kernel-to-userspace frame transport, socket proxy transport with host-to-guest TCP proxying, AF_UNIX socketpair bridging onto the internal channel, and service manifests with health probes. - IOMMU and device claims: SV39 translation with hardware fault checks, versioned IDL RTCD request/reply bindings, exclusive device ownership claims, and a Linux-compatible fd/synchronization personality with pipe stream semantics. - Kernel extension points: restricted eBPF-encoded extension programs (kep) and the dual-placement driver framework with a user-space virtio-input driver sample and DMA operations. - drvmod: cross-architecture module loader with hardened allocation and LoongArch relocations; migrated platform, PS/2, virtio-input, Intel HDA, NVMe, and TPM drivers to modules; kallsyms generated during linking with an architecture-independent process debug interface. - IPC and scheduling: SMP time-slice donation for channel calls, sharded futex waiter locks with dynamic waiter allocation, and serialized global network progress. - Memory management: fixed Linux mprotect/mremap lock re-entry, buddy allocator re-entry and TLB release ordering, SMP channel bulk corruption and VMA locking fixes, and a contiguous DMA heap for user-space drivers. Notable fixes and compatibility: - Restricted the channel_call donation fast path to UP after documenting SMP findings. - Fixed PCI INTx routing and LoongArch IRQ handling.
-
v0.7
Release version 0.7 New features and major improvements since v0.6: - Scheduler: replaced the MLFQ with an EEVDF proportional-share core, strict eligibility with sleeper-bonus clamp and slice knob, and idle-task stealing for SMP load balance. - USB: added USB core, XHCI host controller, HID class, bulk transfers, and a Mass Storage (BOT/SCSI) class driver. - Filesystems: clean-room read/write NTFS driver, ISO9660, ext4 64-bit/hard-link/truncate, FAT32 and NTFS rename, overlay modes, and inotify event delivery. - Security: TPM 2.0 (TIS/FIFO) driver; x86_64 hardware RNG entropy source. - Audio: stabilized HDA media playback, enabled HDA on riscv64 QEMU virt, and added a virtio-sound playback backend. - Native ABI: mlibc runtime support, checkpoint-based signal simulation, interruptible thread_sleep, cross-process kill, and path/cwd/checkpoint extensions. - Memory management: VMO moved into core with native VMAR backed by core mmap helpers, cgroup VMO page charging, and MAP_FIXED shadowing of the brk heap. - ppc64le: fixed task switch, radix PTE/process-table walk and byte order, user PC recovery for storage faults, ran the interactive mksh shell end to end, and ported the native ABI libc (liba20c) to ELFv2. - Networking: expanded e1000/e1000e device coverage. - Structure: split the VFS, ext4/NTFS/FAT32 drivers, console TTY line discipline, and mm/vm into focused units; added LICENSE/ACKNOWLEDGMENTS/THIRD_PARTY_NOTICES. Notable fixes and compatibility: - ELF: fixed pgdir leaks and preserved start info across dynamic exec. - Weston: bumped to the A20 libinput-seat adaptation.
-
gitlab/v0.6
Release version 0.6 New features and major improvements since v0.5: - SMP: enabled multicore scheduling on 64-bit QEMU platforms, distributed work across CPUs, added remote TLB shootdown and shared address-space fault serialization. - Scheduler: introduced tokenized park/wake, CPU ownership tracking, task lifetime/pinning/blocking-point/signal-stop/timeout protocols, SMP runqueue preemption, and split the local runqueue selection lock. - Desktop: integrated the Wayland stack and booted into a full interactive Weston desktop; fbdev mmap, evdev Linux ioctls, signalfd4, and SCM_RIGHTS support. - Audio: added portable HDA audio with PCI class matching and QEMU audio support. - Drivers: dynamic class devices with x86 backends, verified portable NVMe data path, drivers aligned to the A20 standard driver model. - Userland: Fedora RISC-V glibc runtime bootstrap, validated Rust glibc runtime, usable Vim runtime, parallel user-space compilation. - Memory management: exec PT_LOAD on-demand loading fixes, page-cache fill and ext4 directory metadata serialization. Notable fixes and compatibility: - ABI: report a Linux-compatible kernel release; LoongArch exec argv fix. - VFS: correct tty input readiness reporting. - Networking: prevented cross-page socket reads from blocking. - Build: isolated extra package builds and headless runs.
-
v0.6
Release version 0.6 New features and major improvements since v0.5: - SMP: enabled multicore scheduling on 64-bit QEMU platforms, distributed work across CPUs, added remote TLB shootdown and shared address-space fault serialization. - Scheduler: introduced tokenized park/wake, CPU ownership tracking, task lifetime/pinning/blocking-point/signal-stop/timeout protocols, SMP runqueue preemption, and split the local runqueue selection lock. - Desktop: integrated the Wayland stack and booted into a full interactive Weston desktop; fbdev mmap, evdev Linux ioctls, signalfd4, and SCM_RIGHTS support. - Audio: added portable HDA audio with PCI class matching and QEMU audio support. - Drivers: dynamic class devices with x86 backends, verified portable NVMe data path, drivers aligned to the A20 standard driver model. - Userland: Fedora RISC-V glibc runtime bootstrap, validated Rust glibc runtime, usable Vim runtime, parallel user-space compilation. - Memory management: exec PT_LOAD on-demand loading fixes, page-cache fill and ext4 directory metadata serialization. Notable fixes and compatibility: - ABI: report a Linux-compatible kernel release; LoongArch exec argv fix. - VFS: correct tty input readiness reporting. - Networking: prevented cross-page socket reads from blocking. - Build: isolated extra package builds and headless runs.
-
gitlab/v0.5
Release version 0.5 New features and major improvements since v0.4: - STM32F103: added MCU platform support with a kernel scheduler, preemptive scheduling, multi-process support, and power-saving modes. - Embedded peripherals: ESP8266 WiFi, BLE, touch screen, Xuanwu light/touch sensors, DHT11, IR NEC decoding, LED pad, and Live2D support; fat32lite merged into the kernel. - NOMMU: added support for MMU-less operation. - 32-bit architectures: added riscv32 and arm32 support. - GPU: implemented a GPU driver; enabled QEMU GUI on x86_64 and arm64 and fixed the VirtualBox GPU path. - Linux compatibility: SysV semaphore state/status, POSIX lock release on close, nonblocking pipe/FIFO semantics, proc fd symlink resolution, scheduler reset-on-fork, LoongArch page-permission faults. - Native ABI: strengthened native ABI behavior. - Build: Linux and macOS development support and compatible cross-toolchain detection. Notable fixes and compatibility: - Startup: fixed ARM and x86_64 early boot paths. - Filesystem: statfs path errors, stream reads across user pages, readlinkat path semantics, pipe fd-limit handling. - Userland: gettimeofday timezone validation, getrandom flag rejection, resource syscall selector validation.
-
v0.5
Release version 0.5 New features and major improvements since v0.4: - STM32F103: added MCU platform support with a kernel scheduler, preemptive scheduling, multi-process support, and power-saving modes. - Embedded peripherals: ESP8266 WiFi, BLE, touch screen, Xuanwu light/touch sensors, DHT11, IR NEC decoding, LED pad, and Live2D support; fat32lite merged into the kernel. - NOMMU: added support for MMU-less operation. - 32-bit architectures: added riscv32 and arm32 support. - GPU: implemented a GPU driver; enabled QEMU GUI on x86_64 and arm64 and fixed the VirtualBox GPU path. - Linux compatibility: SysV semaphore state/status, POSIX lock release on close, nonblocking pipe/FIFO semantics, proc fd symlink resolution, scheduler reset-on-fork, LoongArch page-permission faults. - Native ABI: strengthened native ABI behavior. - Build: Linux and macOS development support and compatible cross-toolchain detection. Notable fixes and compatibility: - Startup: fixed ARM and x86_64 early boot paths. - Filesystem: statfs path errors, stream reads across user pages, readlinkat path semantics, pipe fd-limit handling. - Userland: gettimeofday timezone validation, getrandom flag rejection, resource syscall selector validation.
-
gitlab/v0.4
Release version 0.4 New features and major improvements since v0.3: - A20 Native ABI: realized and documented the native application binary interface. - x86_64 support: added support for the x86_64 architecture. - SMP multi-core: implemented SMP infrastructure with HAL abstraction. - Driver model: refactored and improved the driver framework. - FPU acceleration: enhanced FPU usage to speed up floating-point operations. - RISC-V TLB: optimized RISC-V TLB handling. - Init: implemented a better init process. - epoll: extended event polling support. - fastfetch: added fastfetch support. Notable fixes and compatibility: - Scheduler: fixed fork priority inheritance and aging for cyclictest/iozone. - Signals: per-thread signal masks, sigtimedwait timeout, tgkill validation, musl signal frame layout. - Futex: robust owner death handling. - Process/clone: clone3 validation, pidfd signal delivery, set_tid_address correctness. - Filesystem: ext4/ramfs/devfs updates, close_range, futimens, fchownat checks. - Networking: local socket backpressure, virtio_net TX deadlock prevention. - Memory: MAP_SHARED page-cache pin lifetime, fork/ext4 sleep-under-lock deadlocks. - Contest/LTP: expanded bounded LTP coverage, enabled more contest entries, fixed LTP syscall numbers and musl/glibc compatibility.
-
v0.4
Release version 0.4 New features and major improvements since v0.3: - A20 Native ABI: realized and documented the native application binary interface. - x86_64 support: added support for the x86_64 architecture. - SMP multi-core: implemented SMP infrastructure with HAL abstraction. - Driver model: refactored and improved the driver framework. - FPU acceleration: enhanced FPU usage to speed up floating-point operations. - RISC-V TLB: optimized RISC-V TLB handling. - Init: implemented a better init process. - epoll: extended event polling support. - fastfetch: added fastfetch support. Notable fixes and compatibility: - Scheduler: fixed fork priority inheritance and aging for cyclictest/iozone. - Signals: per-thread signal masks, sigtimedwait timeout, tgkill validation, musl signal frame layout. - Futex: robust owner death handling. - Process/clone: clone3 validation, pidfd signal delivery, set_tid_address correctness. - Filesystem: ext4/ramfs/devfs updates, close_range, futimens, fchownat checks. - Networking: local socket backpressure, virtio_net TX deadlock prevention. - Memory: MAP_SHARED page-cache pin lifetime, fork/ext4 sleep-under-lock deadlocks. - Contest/LTP: expanded bounded LTP coverage, enabled more contest entries, fixed LTP syscall numbers and musl/glibc compatibility.
-
gitlab/v0.3
Release version 0.3 New features and major improvements since v0.2: - Networking: integrated lwIP, added VirtIO network support, socket APIs, and user tools including ping, wget, netstat, and UDP utilities. - Linux ABI: greatly expanded syscall coverage, including epoll, futex, eventfd, timerfd, BPF, xattr, memfd, IPC, scheduling, and namespace operations. - Process model: split process management into task, scheduling, fork, exec, exit, wait, PID, and signal subsystems. - Filesystems: expanded VFS behavior and added devfs, file-descriptor tables, pipes, page cache, file locks, inotify, and extended attributes. - Memory management: added page-fault handling, object caches, out-of-memory handling, and broader mmap support. - User environment: added infrastructure to build and run vim, git, GCC, binutils, and related libraries. - Contest/LTP: simplified the contest runner and enabled substantially more Linux Test Project cases. Notable fixes and compatibility: - Dynamic linking: improved runtime setup and library loading on supported architectures. - Signals and processes: fixed lifecycle, waiting, scheduling, and signal-delivery behavior. - Filesystem and IPC: corrected VFS, procfs, dcache, shared-memory, and descriptor handling. - Runtime stability: fixed issues found while exercising larger applications and syscall test suites.
-
v0.3
Release version 0.3 New features and major improvements since v0.2: - Networking: integrated lwIP, added VirtIO network support, socket APIs, and user tools including ping, wget, netstat, and UDP utilities. - Linux ABI: greatly expanded syscall coverage, including epoll, futex, eventfd, timerfd, BPF, xattr, memfd, IPC, scheduling, and namespace operations. - Process model: split process management into task, scheduling, fork, exec, exit, wait, PID, and signal subsystems. - Filesystems: expanded VFS behavior and added devfs, file-descriptor tables, pipes, page cache, file locks, inotify, and extended attributes. - Memory management: added page-fault handling, object caches, out-of-memory handling, and broader mmap support. - User environment: added infrastructure to build and run vim, git, GCC, binutils, and related libraries. - Contest/LTP: simplified the contest runner and enabled substantially more Linux Test Project cases. Notable fixes and compatibility: - Dynamic linking: improved runtime setup and library loading on supported architectures. - Signals and processes: fixed lifecycle, waiting, scheduling, and signal-delivery behavior. - Filesystem and IPC: corrected VFS, procfs, dcache, shared-memory, and descriptor handling. - Runtime stability: fixed issues found while exercising larger applications and syscall test suites.
-
gitlab/v0.1
Release version 0.1 Initial release highlights: - Kernel foundation: established process scheduling, signals, system calls, traps, and ELF user-program loading. - Filesystems: implemented VFS, FAT32, procfs, ext4, and a block cache. - Storage: added a VirtIO block driver, including VirtIO MMIO v2 and large-disk fixes. - Userland: provided basic commands, the A20 editor, and an interactive shell environment. - libc and shell: integrated musl and adopted mksh as the default shell. - Memory management: expanded virtual-memory and allocator support and fixed early VFS issues. - Testing: added automated kernel and user-space test support. Notable compatibility and fixes: - ELF loader: corrected user-program load addresses. - Console: fixed UART input detection. - Build environment: fixed compilation in the official Docker environment. - Source integration: included the musl and mksh sources needed for reproducible builds.
-
gitlab/v0.2
Release version 0.2 New features and major improvements since v0.1: - HAL: introduced architecture-independent platform interfaces for the kernel. - LoongArch64: added and stabilized boot, interrupt, timer, PCI, memory-management, and signal support. - AArch64: added initial ARM64 boot, trap, timer, firmware, and VirtIO platform support. - RISC-V: reorganized architecture code around the new HAL and expanded platform tests. - Userland: adopted sbase as the default Unix utility suite. - Contest environment: added setup and runner infrastructure for basic, BusyBox, musl, and glibc test workloads. - Testing: introduced reusable platform-test and RISC-V kernel test frameworks. Notable fixes and compatibility: - Memory and signals: improved memory management and signal handling across architectures. - Dynamic loading: fixed external-library compilation and dynamic loader behavior. - mmap: corrected mapping behavior needed by dynamically linked programs. - Contest mode: shut down cleanly after panic and made shutdown tests reliable.
-
v0.2
Release version 0.2 New features and major improvements since v0.1: - HAL: introduced architecture-independent platform interfaces for the kernel. - LoongArch64: added and stabilized boot, interrupt, timer, PCI, memory-management, and signal support. - AArch64: added initial ARM64 boot, trap, timer, firmware, and VirtIO platform support. - RISC-V: reorganized architecture code around the new HAL and expanded platform tests. - Userland: adopted sbase as the default Unix utility suite. - Contest environment: added setup and runner infrastructure for basic, BusyBox, musl, and glibc test workloads. - Testing: introduced reusable platform-test and RISC-V kernel test frameworks. Notable fixes and compatibility: - Memory and signals: improved memory management and signal handling across architectures. - Dynamic loading: fixed external-library compilation and dynamic loader behavior. - mmap: corrected mapping behavior needed by dynamically linked programs. - Contest mode: shut down cleanly after panic and made shutdown tests reliable.
-
v0.1
Release version 0.1 Initial release highlights: - Kernel foundation: established process scheduling, signals, system calls, traps, and ELF user-program loading. - Filesystems: implemented VFS, FAT32, procfs, ext4, and a block cache. - Storage: added a VirtIO block driver, including VirtIO MMIO v2 and large-disk fixes. - Userland: provided basic commands, the A20 editor, and an interactive shell environment. - libc and shell: integrated musl and adopted mksh as the default shell. - Memory management: expanded virtual-memory and allocator support and fixed early VFS issues. - Testing: added automated kernel and user-space test support. Notable compatibility and fixes: - ELF loader: corrected user-program load addresses. - Console: fixed UART input detection. - Build environment: fixed compilation in the official Docker environment. - Source integration: included the musl and mksh sources needed for reproducible builds.