-
v1.3.0 Stable
released this
2026-03-28 22:40:05 -04:00 | 10 commits to main since this releaseRaw console & line editor
The shell now uses a full line editor (user/src/line.rs) with cursor movement, word editing (Ctrl-A/E/U/W), 16-entry history, and Ctrl-C/D support. The kernel console gains raw mode and foreground PID tracking to support this. Ctrl-C now delivers a kill signal to the foreground child process rather than panicking.
A new ioctl syscall (23) provides the mode-switching interface, with device commands grouped under a single Ioctl struct in the ABI.
User-space I/O is refactored around new Read and Write traits (mirroring std::io), with Stdin, Stdout, Stderr, and Fd all implementing them. User programs updated to use the trait methods and print!/println! macros throughout.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v1.2.0 Stable
released this
2026-03-26 20:06:41 -04:00 | 24 commits to main since this releaseLazy 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.1.0 Stable
released this
2026-03-19 22:13:55 -04:00 | 35 commits to main since this releaseuart::write_sync()bypassedUART.lock()entirely, allowing kernel print and panic output to interleave with interrupt-driven user-space writes on the wire.Fix by acquiring
UART.lock()inwrite_sync(), and abortinguart::write()onpanickingso the lock is released promptly.
The panic message is pre-formatted into a stack buffer soUART.lock()is held for the entire message in onewrite_sync()call.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.0.0 Stable
released this
2026-03-04 20:11:43 -05:00 | 37 commits to main since this releaseDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)