Files
ornekler/cekirdek/minimal-kernel/README.md
T
semih c5468f5d0a Çekirdek örnekleri: KabaLang Minimal Kernel (MPL-2.0) ve üç küçük çekirdek
KabaLang'ın --yalin kipiyle yazılmış, işletim sistemi olmadan açılan
x86-64 çekirdeği: kesmeler, 100 Hz zamanlayıcı, Türkçe Q klavye,
Türkçe karakterli VGA ekranı, bellek haritası, sayfa ayırıcı, kabuk.
Ek örnekler: merhaba, asal sayılar, VGA renkleri.
2026-10-17 13:09:50 +03:00

43 lines
1.9 KiB
Markdown

# KabaLang Minimal Kernel
KabaLang ile yazılmış, LLVM ile derlenen küçük bir x86-64 çekirdeği.
Assembly yalnız açılış parçasındadır (`calisma/boot.S`); çekirdeğin mantığı KabaLang'dir.
![KabaLang Minimal Kernel](../../medya/minimal-kernel.png)
## İçindekiler
| Modül | Görevi |
|---|---|
| `ana.kbl` | Giriş noktası: donanımı sırayla hazırlar, ana döngü |
| `durum.kbl` | Sabit adresli durum alanı (modüller durum tutmaz) |
| `seri.kbl` | COM1 seri port, açılış günlüğü |
| `ekran.kbl` | VGA metin ekranı, imleç, kaydırma, Türkçe yazı tipi (CP857 yerleşimi) |
| `kesme.kbl` | Kesme tablosu (IDT), PIC, 100 Hz zamanlayıcı |
| `klavye.kbl` | PS/2 klavye: Türkçe Q ve ABD düzeni, shift |
| `bellek.kbl` | Önyükleyici bellek haritası, 4 KB fiziksel sayfa ayırıcı |
| `kabuk.kbl` | Komut satırı (UTF-8 tampon), yerleşik komutlar |
| `arayuz.kbl` | Açılış paneli, Türkçe karakter vitrini |
| `calisma/` | Açılış parçası, bağlayıcı betiği ve yalın çalışma zamanı (derleyiciyle gelir; başvuru için burada) |
Kabuk komutları Türkçe ya da ASCII yazılabilir: `yardım`, `panel`, `türkçe`,
`hakkında`, `zaman`, `yaz METİN`, `uzunluk METİN`, `klavye tr|us`, `bellek`,
`ayır`, `yığın`, `temizle`, `kapat`.
## Derleyip çalıştırmak
```bash
kabalang derle --yalin ana.kbl -o cekirdek.elf
qemu-system-x86_64 -kernel cekirdek.elf -serial stdio
```
`--yalin` kipinde işletim sistemi ve libc yoktur: donanıma `port_yaz8`,
`bellek_yaz16` gibi yerleşiklerle doğrudan erişilir. Ayrıntı:
[dev.kabaforce.com/kabalang/cekirdek](https://dev.kabaforce.com/kabalang/cekirdek/)
## Lisans
[Mozilla Public License 2.0](LICENSE). Bu çekirdeği temel alıp kendi çekirdeğinizi
geliştirebilirsiniz; dağıttığınızda bu dosyalarda yaptığınız değişiklikleri
açık tutarsınız. Yeni dosyalarınız için lisansı siz seçersiniz.