Commit Graph
21 Commits
Author SHA1 Message Date
daniel 9b23d99082 feat: overhaul userspace heap and virtual memory 2026-08-10 12:25:27 +02:00
daniel b1c55073c7 fix: kernel concurrency, interrupt context, and user VA safety 2026-08-01 15:43:38 +02:00
daniel 8e6b619b02 feat: port gcc to MontaukOS 2026-07-17 15:47:45 +02:00
danielandClaude Fable 5 75184e0651 feat: process exit codes, posix_spawn, 4 KiB command lines
Groundwork for the GCC driver: a compiler driver must spawn cc1/as/ld
and know whether each stage succeeded.

Kernel: the scheduler keeps an exit-code ledger (pid -> code; pids are
monotonic so entries never alias), published during teardown right
before waiters wake. SYS_EXIT records main()'s return value, SYS_KILL
records 256+SIGKILL, and the exception handler records 256+signal
mapped from the fault vector (#PF/#GP -> SIGSEGV, #DE/FP -> SIGFPE,
#UD -> SIGILL). SYS_WAITPID now returns the code: 0..255 for a normal
exit, 256+signal for a violent death. Process args grow from 256
bytes to 4 KiB (cc1 invocations do not fit in 256), with crt1 now
parsing up to 255 argv entries from a static buffer.

libc: new spawn.h with posix_spawn/posix_spawnp over SYS_SPAWN -
libiberty's pex layer has a posix_spawn backend, so GCC's driver works
without fork. argv is joined into the kernel args string (spaces in
arguments rejected; no kernel quoting), envp is not transferred, and
non-empty file actions fail loudly with ENOTSUP until the kernel can
redirect stdio on spawn. waitpid() now decodes real POSIX status and
the sys/wait.h macros distinguish exited from signaled children.

Shell: prints [exit code N] after nonzero exits and [terminated by
signal N] for killed or crashed children.

Verified on the OS: cat on a missing file reports exit code 1; a
window-close (clean exit 0) stays silent as it should.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-16 16:59:17 +02:00
daniel bbb6fcf0ee feat: add support for console sessions to crashpad and crash handling in kernel 2026-06-18 12:56:29 +02:00
daniel 8b8c8cee95 feat: audio mixer, Audio app, fix Installer crash 2026-05-19 07:48:09 +02:00
daniel 856b431fde fix: various kernel bug fixes 2026-04-10 23:16:02 +02:00
daniel ec186d076d feat: use PIC code model for shared libraries, fix shared library bugs 2026-04-08 17:07:55 +02:00
daniel 09d855aea7 feat: move CrashReport.cpp/hpp 2026-04-08 07:45:51 +02:00
daniel 9e04e51daa feat: add process crash popups 2026-04-07 20:15:56 +02:00
daniel 9b4dfe3e0e fix: improve scheduling, memory, timer implementations 2026-03-24 07:40:37 +01:00
daniel 41ad1f6404 feat: Symmetric Multiprocessing, text editor improvements, merge doom libc, implement math functions 2026-03-23 20:09:11 +01:00
daniel 94433d679b feat: S3 sleep, PDF viewer graphics rendering, live user environment 2026-03-15 18:46:54 +01:00
daniel 641ec4681b feat: Local/IO APIC, PS/2 keyboard & mouse 2026-02-17 12:44:31 +01:00
daniel 8721194aeb fix(IDT): Fixed IDT reference bug 2025-12-06 17:55:06 +01:00
Daniel Hammer 2515149f28 feat(vmm): Add Paging support 2025-04-17 21:54:25 +02:00
Daniel Hammer fcd81be1c5 feat: Various improvements 2025-04-16 10:32:11 +02:00
Daniel Hammer bf2cf6a59e feat(pfa): Add PageFrameAllocator class 2025-03-12 14:34:48 +01:00
Daniel Hammer cc094a9172 fix(kcp, IDT, Heap, kernel): Various fixes, scrap broken memory allocator 2025-03-11 20:00:04 +01:00
Daniel Hammer b774f82625 fix(IDT): Fix use of runtime loop 2025-03-08 10:46:19 +01:00
Daniel Hammer 942adef65f feat(IDT): IDT and exception handling support 2025-03-08 10:40:12 +01:00