Ç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.
This commit is contained in:
2026-10-17 13:09:50 +03:00
parent e0e4a0d6c7
commit c5468f5d0a
24 changed files with 2279 additions and 2 deletions
+29
View File
@@ -0,0 +1,29 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
#
# Çekirdeğin sabit adresli durum alanı (statik veri bölgesi).
#
# Yalın kipte yığın (heap) yoktur; değişen durum bu adreslerde tutulur.
# İlk 1 GB birebir eşlendiği için (boot.S) adresler fiziksel adrestir.
ALAN = 0x300000
TIK = ALAN + 0x00 # zamanlayıcı kesmesi sayacı (100 Hz)
KB_YAZ = ALAN + 0x08 # klavye kuyruğu: yazma konumu
KB_OKU = ALAN + 0x10 # klavye kuyruğu: okuma konumu
SATIR = ALAN + 0x18 # ekran imleci satırı
SUTUN = ALAN + 0x20 # ekran imleci sütunu
RENK = ALAN + 0x28 # geçerli yazı rengi
SATIR_UZUNLUK = ALAN + 0x30 # kabuk satırındaki karakter sayısı
SAYFA_SONRAKI = ALAN + 0x38 # sayfa ayırıcı: henüz dağıtılmamış ilk adres
SAYFA_SON = ALAN + 0x40 # sayfa ayırıcı: bölgenin sonu
SAYFA_BOS = ALAN + 0x48 # sayfa ayırıcı: geri verilen sayfaların listesi
SAYFA_AYRILAN = ALAN + 0x50 # şu an dağıtılmış sayfa sayısı
BELLEK_TOPLAM = ALAN + 0x58 # kullanılabilir RAM (bayt)
KB_SHIFT = ALAN + 0x60 # klavye: shift basılı mı (1/0)
KB_DUZEN = ALAN + 0x68 # klavye düzeni: 0 Türkçe Q, 1 ABD
KB_TAMPON = ALAN + 0x100 # 256 baytlık klavye kuyruğu
KABUK_TAMPON = ALAN + 0x200 # 128 baytlık komut satırı
IDT = ALAN + 0x1000 # kesme tanımlayıcı tablosu (48 × 16 bayt)