51 puan yazan GN⁺ 2025-03-22 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-03-22
Hacker News yorumu
  • osdev'i seviyorum. Nihai hedefin ne olduğunu bilmiyorum ama istediğin şeyi yapabilmek gerçekten harika

    • Temel x86 kesmelerini ve sistem çağrılarını çalıştırdığımda her şey anlam kazandı
    • Sistem çağrılarına başladığında dünya senin oluyor
    • Hobi olarak OS kurcalamayı şiddetle tavsiye ederim
    • Bunu Rust öğrenmek için bir fırsat olarak kullandım ve beklediğimden fazlasını aldım
    • Artık Rust'a bir ölçüde alıştım ve çoğu insandan daha fazla double ve triple fault üretebilirim
  • Pek çok kişi sevdiği alternatifleri öneriyor ama ben hâlâ Project Oberon'un büyük bir hayranıyım

    • 2025'in bilgi işlem dünyası için uygun olmayabilir ama bellek güvenli sistem diliyle yazılmış küçük, grafik tabanlı bir OS
    • OS geliştirme hakkında öğrenmek için yeterince içerik var
    • Project Oberon web sitesi
  • Bu kitap, osdev eğitimlerinin klasik kusuruna sahip

    • x86 ayrıntıları hakkında çok fazla açıklama var ama osdev hakkında neredeyse hiçbir şey yok
    • x86 ayrıntıları osdev değildir
    • Temel bir OS'nin ele alması gereken şeylerin son derece küçük bir parçasıdır
  • En sevdiğim OS kitabı Operating Systems: Three Easy Pieces

    • Geliştirmeden ziyade nasıl çalıştığına daha çok odaklanıyor
    • HTML ve PDF olarak ücretsiz sunuluyor, ayrıca basılı kitabı da satılıyor
    • OSTEP web sitesi
  • Teşekkürler! Bu konu hakkında harika bir kaynak gibi görünüyor

    • Keşke gençlik yıllarımda yaptığım "OS"'in kaynak kodunu hâlâ elimde tutuyor olsaydım
    • MBR boot loader yazmayı, protected mode'a geçmeyi, ekranda karakter göstermeyi ve klavye girdisini bile yazmıştım
    • Eğlenceli bir meydan okuma arıyorsanız şiddetle tavsiye ederim
  • Bu yorum 2000'lere dair nostalji uyandırıyor

    • planet-source-code.com adlı bir web sitesi geliştirici topluluğunda popülerdi
    • Üyelerin yazdığı yüzlerce mini işletim sistemi vardı
    • Çoğunun boot loader'ı C/C++ ve assembly ile yazılmıştı, Mingw32 ile derleniyordu ve normal disketlerden boot ediyordu
  • Kitap iyi. GitHub'daki issue'lara bakmak iyi olur

    • Düzeltilmesi gereken kısımlar var
    • Son commit 10 yıl önce yapılmış
  • Japonya'daki iki işletim sistemi geliştirme kitabının İngilizceye çevrilmiş olmasını isterdim

    • Grafik ortamda pencereleri çalıştırmaya kadar yönlendiriyorlar
    • Bunlardan biri 30 günlük bir meydan okuma
    • MikanOS GitHub
    • 30-days Homemade OS GitHub
    • "30-days Homemade OS"u İngilizceye çevirme girişimi olmuştu ama fazla ilerlemedi
    • os-in-30-days GitHub
    • İngilizcede bu kadar ileri giden bir kitap ya da makale bilmiyorum
    • Fusion'ın grafik ortam bölümü henüz tamamlanmadı
    • Fusion OS web sitesi
  • 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

    • Bilgisayar tarihi boyunca yolculuk yaparken işletim sistemlerini öğreten bir oyun yapmak istiyordum
    • Oyuncu, süreç zamanlayıcısı ve kesme işleyicisi rolünü üstlenecek
    • Çok sınırlı RAM'e sahip tek CPU'lu bir sistemle başlayıp SMP sistemlerine büyüyebilir ve günümüzün çok sistemli dağıtık bilgi işlem platformlarına ulaşabilir