summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 🌭 efi-kernel/: настоящий EFI-загрузчик + amd64-ядро ↵HEADmainclaude8 hours
| | | | | | | | | | | | | | (Plan9 a.out) По уточнению @lzcnt (нужен EFI-загрузчик, не a.out-парсер, и amd64-ядро): - kernel.c + kern64.s -> 6c/6a/6l -> amd64 Plan9 a.out (S_MAGIC 0x8A97, entry 0x100000), kmain пишет строку в VGA 0xB8000. - efi_load.c -> PE32+ bootx64.efi (через pe64.s из 9legacy + dd skip=40): под UEFI печатает через ConOut, разбирает встроенный a.out (big-endian 40-байтный заголовок), копирует сегменты по entry, прыгает в ядро (long mode). - Проверено: валидный PE32+ x64 EFI_APPLICATION, ядро встроено и парсится, ESP собран. Co-Authored-By: Claude Opus 4.8 <[email protected]>
* 🌭 kernel/: болваночное ядро (пишет в 0xB8000) + ↵claude17 hours
| | | | | | | | | | | | | | загрузчик 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]>
* 🌭 plan9-kencc-linux: кросс-тулчейн Plan9 (cc/as/ld) + ↵claude18 hours
EFI-болванка - build_arch.sh / build_al.sh: сборка kencc-компиляторов, ассемблеров, линкеров всех арок (5/6/8/v/q/k) на Linux-хосте через plan9port. - патчи под musl/gcc: sbrk->mmap, round/log2->p9*, Runemask, swcmp const, -fcommon, machcap/omachcap, /sys рантайм-файлы. Подробно в PATCHES.md. - bin/: готовые 8c 6c 5c vc qc kc + 6a 6l (Linux/musl x86_64). - efi/: болваночный bootx64.efi (PE32+) тем же тулчейном (6a+6c+6l+dd), референс — 9legacy nboot/efi; ESP-образ через mkesp.py. Co-Authored-By: Claude Opus 4.8 <[email protected]>