Daniel Samson
5940864958
test the trampoline is inert (zeroed + NX) when dormant
...
Adds paging.isExecutable and arch.trampolinePage; the smp case now asserts the frame is zeroed and non-executable after bring-up. Teeth-checked against a no-op disarm.
2026-07-08 13:46:53 +01:00
Daniel Samson
91f2cfa17b
add smp-retry test for the AP wake retry path
...
Test hook forces the first wake to fail; the case asserts every core still comes online. Verified it fails when retry is disabled.
2026-07-08 13:41:14 +01:00
Daniel Samson
debe815a5c
keep the AP trampoline inert between wakes, and retry failed cores
...
Arm the low frame (copy blob, make executable) only while a core climbs, then zero it and restore RW+NX; the frame stays reserved so cores can be re-woken. startSecondary is one re-runnable attempt; boot retries a non-responding core 3x. Validated the retry path by forcing a first-attempt failure.
2026-07-08 13:32:34 +01:00
Daniel Samson
dba3939a0f
add an SMP lock-stress test case
...
Four pairs push 400k sequenced messages through small channels; checks FIFO order and cross-core execution. Verified to fail with the lock disabled.
2026-07-08 12:45:02 +01:00
Daniel Samson
43afe6bf2e
schedule tasks across all cores
...
Per-core GDT/TSS and AP scheduler entry; fix AP SSE + single_threaded.
2026-07-08 12:35:30 +01:00
Daniel Samson
ed7f542006
wake application processors to long mode
...
INIT-SIPI-SIPI plus a self-relocating real-mode trampoline.
2026-07-08 12:35:30 +01:00
Daniel Samson
36c29d2d6d
move the running task into per-CPU state
...
PerCpu.current via the GS base; ready queues stay global.
2026-07-08 12:35:30 +01:00
Daniel Samson
941ab091db
add a big kernel lock for SMP
...
Guards the scheduler and IPC; held across the context switch.
2026-07-08 12:35:30 +01:00
Daniel Samson
cf7c6df41c
enumerate usable CPU cores from the MADT
...
Keep each Local APIC's id and expose platform.cpus().
2026-07-08 12:35:30 +01:00
Daniel Samson
26d2f5259c
document the multi-sink logging model
2026-07-08 10:41:47 +01:00
Daniel Samson
cb63d2e31b
add multi-sink diagnostic log; make framebuffer optional
2026-07-08 10:40:22 +01:00
Daniel Samson
7d3417fe86
refactor kernel to use device platform discovery
2026-07-08 10:06:46 +01:00
Daniel Samson
2ee898a91e
add device platform module with ACPI support
2026-07-08 09:23:41 +01:00
Daniel Samson
53a33a7332
fix debug typos
2026-07-05 19:07:22 +01:00
Daniel Samson
3f17ebf175
rename sched to scheduler
2026-07-05 19:03:07 +01:00
Daniel Samson
6f6ccc8bc9
moving kernel code to kernel/
2026-07-05 10:19:11 +01:00
Daniel Samson
7c3cffb337
moving efi code to boot
2026-07-05 10:01:01 +01:00
Daniel Samson
ae1552414d
printing debug messages to serial only
2026-07-05 09:48:06 +01:00
Daniel Samson
6cd6669a8d
Add RAM and VRAM footprint
2026-07-05 09:10:59 +01:00
Daniel Samson
d055de7141
documenting things to research
2026-07-03 21:40:59 +01:00
Daniel Samson
a6de418e42
documenting smp and scheduling to research
2026-07-03 21:24:44 +01:00
Daniel Samson
f9f0511ac2
documenting research for arm and device discovery
2026-07-03 20:22:48 +01:00
Daniel Samson
99d6bf5ce3
renaming run-efi to run-x86-64
2026-07-03 19:45:44 +01:00
Daniel Samson
21b9691486
reclaiming uefi memory
2026-07-03 19:31:32 +01:00
Daniel Samson
50f3610768
Update build to run qemu on MacOS
2026-07-03 16:43:00 +01:00
Daniel Samson
31bf86af56
IPC
2026-07-03 15:09:16 +01:00
Daniel Samson
df774691c8
Fixed-priority preemptive scheduler
2026-07-03 14:30:33 +01:00
Daniel Samson
e80043b611
Calibrated timer / clock
2026-07-03 14:17:00 +01:00
Daniel Samson
9a834c91ff
Pin zig version to 0.16 LTS
2026-07-03 13:49:47 +01:00
Daniel Samson
269729f2f2
Built heap allocation
2026-07-03 13:41:55 +01:00
Daniel Samson
20b4661ff3
Hardened paging into a real VMM
2026-07-03 13:29:34 +01:00
Daniel Samson
d910e6261a
Documenting sysv
2026-07-03 13:06:43 +01:00
Daniel Samson
56219b4050
Documenting sysv
2026-07-03 13:06:27 +01:00
Daniel Samson
5ea521d054
Built device interrupts
2026-07-03 12:57:40 +01:00
Daniel Samson
c8e89e8115
Cross-architecture test suite
2026-07-03 12:39:26 +01:00
Daniel Samson
9cf135302d
Built paging / the kernel's own page tables (with a TSS+IST)
2026-07-03 12:23:55 +01:00
Daniel Samson
0cc71ec8aa
Built GDT + IDT + exception handlers
2026-07-03 12:05:41 +01:00
Daniel Samson
6312e84262
added physical memory manager
2026-07-03 11:43:14 +01:00
Daniel Samson
cb2f49cb48
added physical memory manager
2026-07-03 11:24:26 +01:00
Daniel Samson
628c4f6d57
Move to multi arch support and added memory map
2026-07-03 11:11:19 +01:00
Daniel Samson
c2435760c4
Add README file in docs
2026-07-03 10:31:08 +01:00
Daniel Samson
6a08081bfe
selecting the displays native resolution
2026-07-03 10:07:51 +01:00
Daniel Samson
21cc0c87e4
setup framebuffer with console
2026-07-03 09:32:15 +01:00
Daniel Samson
ca3c3d131c
booting into the kernel
2026-07-01 19:51:06 +01:00
Daniel Samson
3c8656fb25
started project with basic efi setup
2026-07-01 18:32:56 +01:00