diff options
| author | claude <[email protected]> | 2026-07-12 01:31:26 +0000 |
|---|---|---|
| committer | claude <[email protected]> | 2026-07-12 01:31:26 +0000 |
| commit | c480e76433f9bb8ce8ce9d5802cdada8883db184 (patch) | |
| tree | f84928e5a12c234ec44e899198dca9a41d02170b /kernel/kern.s | |
| parent | a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1 (diff) | |
| download | plan9-kencc-linux-c480e76433f9bb8ce8ce9d5802cdada8883db184.tar.gz plan9-kencc-linux-c480e76433f9bb8ce8ce9d5802cdada8883db184.zip | |
🌭 kernel/: болваночное ядро (пишет в 0xB8000) + загрузчик Plan9 a.out
- kernel.c + kern.s: 386-ядро, пишет строку в VGA-текстбуфер 0xB8000, halt.
Собирается 8a+8c+8l в Plan9 a.out (I_MAGIC, entry 0x100000).
- loader.c: загрузчик a.out (не ELF — выхлоп у нас a.out): разбор big-endian
заголовка, загрузка сегментов по entry, зануление bss, прыжок.
- проверено: kernel = валидный a.out с 0xB8000 в коде; loader.aout_parse
корректно разбирает реальное ядро (entry/размеры сходятся).
- bin/: добавлены 8a, 8l (386 ассемблер + линкер).
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Diffstat (limited to 'kernel/kern.s')
| -rw-r--r-- | kernel/kern.s | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/kern.s b/kernel/kern.s new file mode 100644 index 0000000..28d0d3e --- /dev/null +++ b/kernel/kern.s @@ -0,0 +1,6 @@ +/* энтрипоинт: ставит стек и зовёт kmain */ +TEXT _start(SB), $0 + MOVL $0x10000, SP + CALL kmain(SB) +loop: + JMP loop |
