- Katılım
- 21 Nis 2025
- Mesajlar
- 357
- Tepkime puanı
- 58
Selamlar beyler, bir süredir üzerinde çalıştığım, tamamen x86 Assembly (NASM) ile geliştirdiğim mini işletim sistemi çekirdeği KPOS'un v0.4.8 sürümünü tamamladım. Proje şu an için herhangi bir üst seviye dil (C/C++) içermiyor, tamamen "bare-metal" seviyede donanımla konuşuyor.
Teknik Detaylar olarak :
Sistem 16-bit Real Mode üzerinde koşturuluyor. Henüz korumalı moda (Protected Mode) geçiş yapmadım çünkü BIOS interrupt servislerinin (IVT) stabilitesinden faydalanmak istedim.
Bootloader: MBR (Master Boot Record) standardında, 0x7C00 adresinden mapping yapılarak başlıyor. BIOS 0x13 interrupt'ı üzerinden diskin sonraki 4 sektörünü (2048 byte) doğrudan RAM'e dump edip kernel'a zıplıyor (JMP).
Kernel: 2048 byte'lık kompakt bir yapıda. Bellek yönetimi şu an için statik segmentasyon üzerinden ilerliyor.
Video Yönetimi: Standart VGA 80x25 metin modu (0x03) kullanılıyor. Renk paleti doğrudan video bellek buffer'ları üzerinden değil, BIOS'un TTY servisleri manipüle edilerek dinamikleştirildi.
Real Time Clock (RTC): Anakart üzerindeki CMOS/RTC yongasından INT 0x1A ile BCD (Binary Coded Decimal) formatında veri çekilerek, register seviyesinde decode ediliyor. Sağ alt köşedeki saat, ana shell döngüsünde HLT komutuna düşmeden hemen önce saniye saniye güncelleniyor.
Görseller :
Teknik Detaylar olarak :
Sistem 16-bit Real Mode üzerinde koşturuluyor. Henüz korumalı moda (Protected Mode) geçiş yapmadım çünkü BIOS interrupt servislerinin (IVT) stabilitesinden faydalanmak istedim.
Bootloader: MBR (Master Boot Record) standardında, 0x7C00 adresinden mapping yapılarak başlıyor. BIOS 0x13 interrupt'ı üzerinden diskin sonraki 4 sektörünü (2048 byte) doğrudan RAM'e dump edip kernel'a zıplıyor (JMP).
Kernel: 2048 byte'lık kompakt bir yapıda. Bellek yönetimi şu an için statik segmentasyon üzerinden ilerliyor.
Video Yönetimi: Standart VGA 80x25 metin modu (0x03) kullanılıyor. Renk paleti doğrudan video bellek buffer'ları üzerinden değil, BIOS'un TTY servisleri manipüle edilerek dinamikleştirildi.
Real Time Clock (RTC): Anakart üzerindeki CMOS/RTC yongasından INT 0x1A ile BCD (Binary Coded Decimal) formatında veri çekilerek, register seviyesinde decode ediliyor. Sağ alt köşedeki saat, ana shell döngüsünde HLT komutuna düşmeden hemen önce saniye saniye güncelleniyor.
Görseller :
