- x86 işletim sistemini doğrudan nasıl geliştireceğinize dair pratik bir rehber
- Teknik ayrıntılar sunarken, kod örnekleri veya örnek projeler üzerinden fazla bilgi ifşa etmeyecek şekilde yazılmıştır
- İşletim sistemi teorisini ya da belirli bir işletim sisteminin nasıl çalıştığını açıklamaz
- İlk bölümler, kod yazmaya hızla alışabilmeniz için ayrıntılı ve somut açıklamalar içerir
- Sonraki bölümler, kavramları ve gereksinimleri genel hatlarıyla açıklar; uygulama ve tasarımı okuyucunun yapmasına yönlendirir
- İşletim sistemi teorisi öğrenmeniz gerekiyorsa, Andrew Tanenbaum'ın Modern Operating Systems kitabı önerilir
Başlıca bölüm içerikleri
- İlk bölümler
- 2~3. bölümler: geliştirme ortamının kurulumu ve sanal makinede OS çekirdeğinin önyüklenmesi → C dilinde kod yazmaya başlama
- 4. bölüm: ekrana çıktı verme ve seri port çıktısı
- 5. bölüm: segmentasyon
- 6. bölüm: kesmeler ve girdi işleme
- İşlevsel bir çekirdek geliştirildikten sonraki süreç
- 7. bölüm: kullanıcı modu uygulamaları desteğine hazırlık
- 8~9. bölümler: sayfalama yoluyla sanal bellek kurulumu
- 10. bölüm: bellek tahsisi
- 11. bölüm: kullanıcı uygulamalarını çalıştırma
- İleri düzey konular
- 12. bölüm: dosya sistemi
- 13. bölüm: sistem çağrıları
- 14. bölüm: çoklu görev
Kitabın arka planı ve geliştirme süreci
- Bu kitap ve OS çekirdeği, İsveç'teki Royal Institute of Technology bünyesindeki ileri düzey bireysel bir ders kapsamında geliştirildi
- Yazarlar daha önce OS teorisi dersi almıştı, ancak gerçek çekirdek geliştirme deneyimleri sınırlıydı
- Teoriyi pratikte uygulamak ve daha derin anlamak için yeni bir ders açıp bu kitabı yazdılar
- x86 mimarisi, uzun süre boyunca en yaygın kullanılan donanım mimarisi oldu ve çok sayıda referans materyali ile emülatör mevcut
- Donanım ayrıntılarına ilişkin belgeler çoğu zaman karmaşık ve anlaşılması zordu
Geliştirme yaklaşımı
- Yaklaşık 6 hafta boyunca tam zamanlı çalışıldı
- Küçük adımlarla uygulama yapılıp her adımda manuel test gerçekleştirildi → hata nedenlerini belirlemek kolaylaştı
- Kodun büyük bölümü eşli programlama (pair programming) ile yazıldı → hataları azaltma etkisi beklendi
Hedef okur kitlesi
- Aşağıdaki arka plan bilgilerine sahip okurlar için uygundur:
- UNIX/Linux ve sistem programlamaya aşina olmak
- C diline aşina olmak
- bilgisayar sistemleri ve onaltılık gösterim gibi konularda anlayış sahibi olmak
- Yeni başlayanlar da bir öğrenme aracı olarak kullanabilir, ancak zorluk seviyesi yüksektir
1 yorum
Hacker News yorumu
osdev'i seviyorum. Nihai hedefin ne olduğunu bilmiyorum ama istediğin şeyi yapabilmek gerçekten harika
Pek çok kişi sevdiği alternatifleri öneriyor ama ben hâlâ Project Oberon'un büyük bir hayranıyım
Bu kitap, osdev eğitimlerinin klasik kusuruna sahip
En sevdiğim OS kitabı Operating Systems: Three Easy Pieces
Teşekkürler! Bu konu hakkında harika bir kaynak gibi görünüyor
Bu yorum 2000'lere dair nostalji uyandırıyor
Kitap iyi. GitHub'daki issue'lara bakmak iyi olur
Japonya'daki iki işletim sistemi geliştirme kitabının İngilizceye çevrilmiş olmasını isterdim
Küçük kırmızı OS kitabının belgelerinin nerede olduğunu merak ediyorum
OS geliştirmeden söz etmişken, oyunlar öğrenmeyi eğlenceli hale getiriyor