126 puan yazan GN⁺ 2025-01-09 | 14 yorum | WhatsApp'ta paylaş
  • Bu kitap, küçük bir işletim sisteminin en baştan adım adım nasıl inşa edileceğini açıklıyor
  • İşletim sistemi (OS) ya da çekirdek geliştirme dendiğinde gözünüz korkabilir, ancak OS’nin temel işlevleri (özellikle çekirdek) şaşırtıcı derecede basittir
  • Linux da başlangıçta 8.413 satır kodla başladı; bugünün Linux çekirdeği çok büyük olsa da, hobi projesi gibi küçük bir kod tabanıyla yola çıkmıştı

Başlarken

  • Temel context switch, paging, user mode, komut satırı shell’i, disk aygıt sürücüsü ve dosya okuma/yazma işlemlerini C diliyle gerçekleştireceğiz
  • Bütün bunlar 1.000 satır kodla mümkün
  • Kendi OS’nizi yaparken en zor kısım debugging’dir
  • printf debugging’ini uygulayana kadar onu kullanamazsınız; ayrıca uygulama geliştirmede ihtiyaç duymadığınız çeşitli debugging tekniklerini ve becerilerini öğrenmeniz gerekir
  • Özellikle "en baştan" başladığınızda boot süreci ve paging gibi zor kısımlarla karşılaşırsınız
  • Ama endişelenmeyin! OS debugging yöntemlerini de öğreneceksiniz
  • Debugging ne kadar zorsa, başardığınızda alacağınız tatmin de o kadar büyüktür
  • Hadi OS geliştirmenin heyecan verici dünyasına dalalım!

Diğer bilgiler

  • Gerçekleme örnekleri GitHub’dan indirilebilir.
  • Bu kitap CC BY 4.0 lisansı altında sunuluyor; gerçekleme örnekleri ve kaynak kodlar ise MIT lisansı altında
  • C dili ve UNIX benzeri bir ortama aşina olmanız gerekir; gcc hello.c && ./a.out komutunu çalıştırabiliyorsanız hazırsınız demektir
  • Bu kitap, aslen Japonca yazılmış "Mikroçekirdeğin Tasarımı ve Gerçeklenmesi" kitabının eki olarak hazırlanmıştır
  • Keyifli OS hacking’ler!

Kitabın içindekiler

  1. Intro
  2. Getting Started
  3. RISC-V 101
  4. Overview
  5. Boot
  6. Hello World!
  7. C Standard Library
  8. Kernel Panic
  9. Exception
  10. Memory Allocation
  11. Process
  12. Page Table
  13. Application
  14. User Mode
  15. System Call
  16. Disk I/O
  17. File System
  18. Outro

14 yorum

 
princox 2025-01-15

İşletim sistemi denen şeyi hep sadece kitaplardan görmüştüm; onu gerçek kodda görebilmek çok güzel.

Bu güzel kaynağı paylaştığınız için teşekkür ederim.

 
yuhyun 2025-01-13

Harika kaynak, teşekkürler!!!!!!!!

 
reagea0 2025-01-10
  • Bu kitap, aslında Japonca yazılmış "Mikrokernelin Tasarımı ve Gerçekleştirilmesi" kitabının eki olarak hazırlanmış.

Bu söz çok kıskandırıyor. Japonya'da uzmanlık kitapları gerçekten çok fazla ve çok iyi çıkıyor gibi görünüyor. Herhalde mesele nüfus sayısıdır?

 
gurugio 2025-01-11

Çevrilen kitaplara bakınca teknik olarak çok derine inen kitaplar pek yok gibi görünüyor, ama sadece farklı alanlardan kitapların çıktığı da anlaşılıyor. Muhtemelen pazar daha büyük olduğu için böyledir.

 
romakus 2025-01-10

Güzel kaynak için teşekkürler.

 
skrevolve 2025-01-09

Bir kez yapmayı deneyin ya da anlayacak seviyeye geldiğinizde, ileride Linux sisteminin nasıl çalıştığını görürsünüz; bu da Linux kullanırken işinize yarar.

 
gurugio 2025-01-09

2000’lerin başlarına kadar, bireylerin böyle küçük bir kernel yapmayı denemesi epey modaydı; ben de denemiştim ve bunun sayesinde birkaç yıl Linux kernel geliştirme işi yapabildim. Ülkede de işletim sistemi yapımıyla ilgili pek çok kitap çıkmıştı; iyi araştırırsanız bunu daha ayrıntılı anlatan kitaplar bulabilirsiniz.
İlgili alana geçiş yapmayacaksanız ve sadece hobi için yapacaksanız fena değildir ama ben olsam bugünlerde AI ya da k8s ile ilgili çalışmalar önerirdim. Hâlâ ara sıra KLDP gibi yerlerde kernel geliştiricisi olmak istediğini yazanlar oluyor; ama yorumlara bakınca herkesin söylediği tek şey yurt dışına gitmeleri gerektiği.

 
bbulbum 2025-01-10

Muhtemelen ülke içinde kernel seviyesine yatırım yapan şirket olmadığı içindir sanırım..? hehe

 
gurugio 2025-01-11

Gerek olmadığı için yapmıyorlar mı, yoksa yapamadıkları için mi bilmiyorum ama gerçekten yok.

 
coma333 2025-01-09

İyi kaynak için teşekkür ederim.

 
tsboard 2025-01-09

Tam da böyle kitaplar, wuxia romanlarında sözü edilen dövüş sanatları gizli el kitapları gibidir, değil mi? haha

 
bbulbum 2025-01-09

Çok ilgi çekici görünüyor. Bir gün sistem programlamayı çalışmak istemiştim; başlangıç olarak işletim sisteminin nasıl çalıştığını programlama açısından anlayabileceğim beklentisini veriyor!

 
GN⁺ 2025-01-09
Hacker News görüşleri
  • Yazar, hafta sonunda doğrudan kendi işletim sistemini yapabilmek için bir kitap yazmış; C yerine Rust veya Zig gibi sevdiğiniz bir programlama dilini kullanabiliyorsunuz

    • UNIX'e benzemeyecek şekilde yalnızca gerekli kısımlar bırakılmış; Linux veya Windows'tan farklarını düşünmek de eğlenceli
    • İşletim sistemi tasarlamak, kendi dünyanızı yaratmak gibi
    • Bazı paragraflar makine çevirisi hissi verebilir; zamanı olanlardan PR göndermeleri isteniyor
    • İçerik Markdown ile yazılmış
  • "hobby" işletim sistemi programlama deneyimine dayanarak, GDB hata ayıklama kurulumunu mümkün olan en erken aşamada eklemek iyi olur

    • QEMU'da yerleşik bir GDB sunucusu var; hedef mimarinin (riscv) GDB istemcisini ağ üzerinden QEMU GDB sunucusuna bağlamak gerekiyor
  • RISC-V için küçük bir işletim sistemi yapmanın harika olduğunu düşünüyor

    • Kişisel olarak Nim ile x86-64 için bir kernel yazmış ve bir JetBrains eklentisi geliştiriyor
  • Rust meraklıları için phil-opp'un rehberi eğlenceli bir alıştırma olabilir

    • İlk denemesinde ancak %5 kadarını anlayabilmiş, ama 2-3 yıl sonra yeniden deneyip konuyu tek tek gözden geçirmiş
  • RISC-V üzerine çalışmaya yeni başlamış; okuduğu kitabın sunduğu emülatörün QEMU'dan daha basit olduğunu ve garip bir lisansa sahip bulunduğunu söylüyor

    • Akademik bir proje gibi görünüyor; gerçekten kullanılıp kullanılmadığını merak ediyor
  • xv6-riscv ile karşılaştırmanın ilginç olacağını düşünüyor

    • xv6 kitabının HTML sürümünü sunuyor
  • Düşük seviyeli tartışmalar her zaman ilgi çekici

    • "RISC-V 101 sayfası"nda küçük bir yazım hatası bulmuş; "ISA" yerine yanlışlıkla "CPU" yazıyor
  • İşletim sistemi yaparken en zor kısım hata ayıklama

    • Yaş aldıkça, karmaşık uzmanlık bilgisi gerektirmeyen sorunların tekrarlı denemelerle çözülebileceğini düşündüğünü söylüyor
  • İki projeden bahsediliyor

    • nuta/microkernel-book
    • mit-pdos/xv6-riscv
  • İyi bir kaynak; hafta sonunda okumak için kaydetmiş

 
mhcoma 2025-01-14

Çekirdeği Nim ile...
Eğlenceli olacak gibi.