Türkçe işletim sistemi geliştirme ve düşük seviye programlama kaynakları.
Bu repository, işletim sistemi geliştirmeye ilgi duyan geliştiriciler için Türkçe teknik notlar, açıklamalar, örnekler ve kaynaklar içerir.
Amaç, farklı kaynaklara dağılmış bilgileri tek bir yerde toplamak ve Türkçe bir OSDev bilgi tabanı oluşturmaktır.
Notlar, işletim sistemi geliştirmenin temel bileşenlerinden başlayarak daha ileri konulara doğru ilerler.
- Giriş — OSDev nedir, nereden başlanır, geliştirme ortamı
- Mimari — x86, x86-64, ARM64, RISC-V
- Boot — BIOS, UEFI, bootloader ve boot protokolleri
- Assembly — assembly, register'lar, calling convention ve interrupt'lar
- Kernel — kernel yapısı, GDT, IDT, exception'lar ve system call'lar
- Memory — fiziksel ve sanal bellek, paging, heap ve allocator'lar
- Process — process'ler, thread'ler, context switch ve scheduling
- Drivers — donanım, PCI, USB, depolama ve giriş aygıtları
- Filesystems — filesystem'ler, VFS ve filesystem implementasyonları
- Userspace — libc, ELF, executable format'ları ve shell
- Networking — Ethernet, ARP, IPv4, UDP ve TCP
- Graphics — framebuffer, DRM, KMS ve grafik sistemleri
- Kaynaklar — kitaplar, dokümantasyonlar, makaleler ve faydalı projeler
Buradaki notlar yalnızca kavramların tanımlarını vermeyi amaçlamaz.
Mümkün olduğunda:
- kavramın neden gerekli olduğu,
- donanım seviyesinde nasıl çalıştığı,
- kernel tarafından nasıl kullanıldığı,
- gerçek bir implementasyonda nasıl ele alınabileceği
açıklanır.
Kod örnekleri, kavramı göstermek için mümkün olduğunca küçük ve anlaşılır tutulur. Bir konunun farklı mimarilerdeki davranışı değişiyorsa bu farklar ayrıca belirtilir.
İngilizce teknik terimler, aramalarda ve resmi dokümantasyonda kullanılabilmeleri için gerektiğinde korunur.
OSDev konusunda resmi dokümantasyon ve mimari referanslar önemlidir. Notlarda kullanılan bilgiler mümkün olduğunca birincil kaynaklara dayandırılır.
Özellikle:
- CPU üreticilerinin architecture manual'ları
- donanım ve protokol spesifikasyonları
- resmi standartlar
- kernel ve toolchain dokümantasyonları
- güvenilir teknik kaynaklar
referans alınır.
Kaynakların amacı yalnızca bilgi vermek değil, okuyucunun konuyu daha derin inceleyebileceği bir başlangıç noktası sağlamaktır.
Bu repository topluluk katkılarına açıktır.
Eksik bir konu ekleyebilir, hatalı veya eksik bir açıklamayı düzeltebilir, örnek kod ekleyebilir veya mevcut bir konunun daha iyi anlatılmasına yardımcı olabilirsiniz.
Yeni bir konu eklerken:
- Konunun mevcut içerikle nerede yer alacağını belirleyin.
- Teknik bilgileri güvenilir kaynaklarla doğrulayın.
- Gereksiz teori yerine anlaşılır ve teknik bir anlatım kullanın.
- Kod örneklerini mümkün olduğunca küçük ve açıklayıcı tutun.
- Kullanılan önemli kaynakları notun sonunda belirtin.
Her bölümün README dosyasında, o bölüm için planlanan konular ve durumları listelenir. ⬜ ile işaretli konulardan herhangi birini üstlenebilirsiniz.
Başlamadan önce okunması gereken dosyalar:
- CONTRIBUTING.md — katkı süreci ve içerik standartları
- SABLON.md — notların takip ettiği yapı
- TERIMLER.md — hangi terimin Türkçe, hangisinin İngilizce kullanıldığı
- CODE_OF_CONDUCT.md — topluluk davranış kuralları
Bu repository'nin lisansı için LICENSE dosyasına bakabilirsiniz.
TürkOSDev topluluğu tarafından geliştirilmektedir.