diff options
| author | claude <[email protected]> | 2026-07-12 01:19:32 +0000 |
|---|---|---|
| committer | claude <[email protected]> | 2026-07-12 01:19:32 +0000 |
| commit | a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1 (patch) | |
| tree | b0a0ad513792f5c0ddc524d67f6ab89e2044c642 /README.md | |
| download | plan9-kencc-linux-a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1.tar.gz plan9-kencc-linux-a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1.zip | |
π plan9-kencc-linux: ΠΊΡΠΎΡΡ-ΡΡΠ»ΡΠ΅ΠΉΠ½ Plan9 (cc/as/ld) + 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]>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba80bb4 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# plan9-kencc-linux + +ΠΡΠΎΡΡ-ΡΠ±ΠΎΡΠΊΠ° **ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² / Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² / Π»ΠΈΠ½ΠΊΠ΅ΡΠΎΠ² Plan 9 (kencc)** Π΄Π»Ρ Π²ΡΠ΅Ρ
+Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ **Ρ Linux-Ρ
ΠΎΡΡΠ°**, ΠΏΠ»ΡΡ Π±ΠΎΠ»Π²Π°Π½ΠΎΡΠ½ΠΎΠ΅ **UEFI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅** (PE32+), +ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΡΡΠΈΠΌ ΠΆΠ΅ ΡΡΠ»ΡΠ΅ΠΉΠ½ΠΎΠΌ. ΠΠΈΡΠ΅Π³ΠΎ ΡΠ½ΠΈΠΊΡΠΎΠ²ΠΎΠ³ΠΎ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°ΠΌΠΈΡ
`.efi`. + +Π‘ΠΎΠ±ΡΠ°Π½ΠΎ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π° Linux/musl. ΠΠΈΠ»ΠΈΠ»ΠΎΡΡ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-Π±ΠΎΡΠΎΠΌ (Claude) ΠΏΠΎ Π·Π°ΠΊΠ°Π·Ρ +ΡΠ°ΡΠ° ancap.in.ua. + +## Π§ΡΠΎ Π²Π½ΡΡΡΠΈ +``` +bin/ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ½Π°ΡΠΈ: 8c 6c 5c vc qc kc (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ) + 6a 6l +scripts/ + setup.sh ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅Ρ plan9foundation + plan9port, ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ plan9port + build_arch.sh <X> ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ C-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π°ΡΠΊΠΈ X (5|6|8|v|q|k) + build_al.sh <Xa|Xl> ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ/Π»ΠΈΠ½ΠΊΠ΅Ρ + build_all.sh ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π²Π΅ΡΡ ΠΊΡΠΎΡΡ-ΠΊΠΈΡ +efi/ + hello.c ΡΠ°ΠΌ EFI-Π°ΠΏΠΏ (Π½Π°Ρ ΠΊΠΎΠ΄) + fetch_ref.sh ΡΡΠ½Π΅Ρ pe64.s/efi.h/mem.h ΠΈΠ· 9legacy (nboot/efi) + efi_build.sh 6a+6c+6l -> dd -> bootx64.efi (PE32+) + mkesp.py Π·Π°Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ .efi Π² Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ESP (FAT16) +patches/ ΠΏΠ°ΡΡΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠ°Π²ΠΊΠ΅ (Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ) +PATCHES.md ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΡ Π½ΡΠΆΠ΅Π½ +``` + +## ΠΠ΄Π΅Ρ +Π€ΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Plan 9 (`cc/`) + ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π°ΡΠΎΠΊ (`5c`,`6c`,`8c`,`vc`,`qc`,`kc`) +ΠΏΠΈΡΡΡΡΡ Π½Π° Plan 9 C ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΡΠΎΠ΄Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ Π² Plan 9. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΈΡ
Π½Π° Linux, +ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡ **plan9port**-ΠΎΠ²ΡΠΊΠΈΠΌ `9c`/`9l` (ΠΎΠ½ΠΈ Π΄Π°ΡΡ `lib9`/`libbio`/`libmach` ΠΈ +Π΄ΡΡΠΆΠ°Ρ Ρ Ρ
ΠΎΡΡΠΎΠ²ΡΠΌ gcc/musl). ΠΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ, Π»Π΅ΡΠΈΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΡΠ°ΠΌΠΈ (ΡΠΌ. `PATCHES.md`). + +| Π°ΡΠΊΠ° | ΠΊΠΎΠΌΠΏ | Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ | Π»ΠΈΠ½ΠΊΠ΅Ρ | +|------|------|-----------|--------| +| 386 | 8c | 8a | 8l | +| amd64 | 6c | 6a | 6l | +| arm | 5c | 5a | 5l | +| mips | vc | va | vl | +| power | qc | qa | ql | +| sparc | kc | ka | kl | + +## ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ +```sh +# 1. Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (plan9foundation + plan9port) +bash scripts/setup.sh +export PLAN9SRC=$PWD/deps/plan9foundation +export PLAN9PORT=$PWD/deps/plan9port +# (ΠΎΠΏΡ. musl: export MUSL_ENV=/path/to/env.sh) + +# 2. ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΡ +bash scripts/build_all.sh # -> build/*/{6c,6a,6l,...} + +# 3. ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ +bash scripts/build_arch.sh 6 # -> build/6c/6c + +# 4. ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ +echo 'int f(void){return 42;}' > t.c +build/6c/6c t.c && ls t.6 # ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΈΠΊ Plan9 .6 +``` + +## EFI-Π±ΠΎΠ»Π²Π°Π½ΠΊΠ° +```sh +cd efi +./fetch_ref.sh # pe64.s/efi.h/mem.h ΠΈΠ· 9legacy +PLAN9SRC=$PWD/../deps/plan9foundation ./efi_build.sh +# -> bootx64.efi : PE32+ x64 EFI_APPLICATION +python3 mkesp.py bootx64.efi esp.img # -> Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ESP (/EFI/BOOT/BOOTX64.EFI) +# Π·Π°ΠΏΡΡΠΊ: qemu-system-x86_64 -bios OVMF.fd -drive format=raw,file=esp.img +``` + +## ΠΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ½Π°ΡΠΈ +Π `bin/` Π»Π΅ΠΆΠ°Ρ ΡΠΆΠ΅ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ/Π°ΡΠΌ/Π»ΠΈΠ½ΠΊΠ΅Ρ (Linux/musl x86_64). +ΠΠΎΠ΄ ΡΠ²ΠΎΠΉ Ρ
ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±Π΅ΡΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ β Π±Π°ΠΉΡ-Π²-Π±Π°ΠΉΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎ. + +ΠΠΈΡΠ΅Π½Π·ΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΡΡΠ²ΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² β ΡΠΌ. `NOTICE`. |
