7 puan yazan GN⁺ 2024-09-15 | 1 yorum | WhatsApp'ta paylaş
  • Blog OS deposu, os.phil-opp.com'daki Writing an OS in Rust serisinde kullanılan kaynak kodu içeriyor
  • Her yazının kodu ayrı bir git branch üzerinde bulunuyor; böylece yazıyı takip ettikten sonraki ara durumu görebilirsiniz
  • Şu anda ikinci edisyon yazıları Bare Bones, Interrupts, Memory Management, Multitasking kategorilerinden oluşuyor ve en güncel yazı kodu post-12 branch'inde yer alıyor
  • Branch adları post-XX biçimini kullanıyor; örneğin post-03, VGA Text Mode; post-07 ise Hardware Interrupts yazısının kodunu içeriyor
  • İlk edisyon artık bakım almıyor, ancak hâlâ referans olarak kullanılabiliyor; proje kodu blog/content klasörü hariç Apache-2.0 veya MIT lisanslarından biriyle kullanılabiliyor

Blog OS deposunun amacı

  • Bu depo, Writing an OS in Rust serisinin kaynak kodunu sağlıyor
  • Sorular GitHub issue açılarak veya Gitter sohbeti üzerinden sorulabiliyor

Yazılara göre kod yapısı

  • Her yazının kodu ayrı bir git branch üzerinde bulunuyor
    • Yazıyı takip ederek ilerledikten sonraki ara durumu görebilirsiniz
    • En güncel yazının kodu post-12 branch'inde yer alıyor
  • Her yazının branch'i, aşağıdaki yazı listesindeki (source code) bağlantısında bulunabiliyor
  • Branch adları post-XX biçimini kullanıyor
    • post-03: VGA Text Mode
    • post-07: Hardware Interrupts
  • Derleme yöntemi için her branch'in README dosyasına bakmak gerekiyor
  • git worktree kullanılarak belirli bir branch alt dizine checkout edilebiliyor
git worktree add code post-10
  • Yukarıdaki komut, 10. yazı olan Heap Allocation kodunu içeren code alt dizinini oluşturuyor

Mevcut edisyondaki yazı listesi

İlk edisyon

  • Mevcut blog ikinci edisyondur
  • İlk edisyon eski kalmıştır ve artık bakım almamaktadır, ancak yine de faydalı olabilir
  • İlk edisyonda Bare Bones, Memory Management, Exceptions, Additional Resources kategorilerindeki yazılar yer alır

Lisans ve katkılar

  • blog/content klasörü dışındaki proje, kullanıcı tercihine göre Apache License 2.0 veya MIT license ile kullanılabilir
  • blog/content klasörünün lisansı için blog/content/README.md dosyasına bakmak gerekir
  • Aksi ayrıca belirtilmediği sürece, projeye dahil edilmek üzere kasıtlı olarak gönderilen katkılar, Apache-2.0 tanımına uygun şekilde ek koşul olmadan yukarıdaki çift lisans kapsamında değerlendirilir

1 yorum

 
GN⁺ 2024-09-15
Hacker News yorumları
  • Birkaç yıl önce 2. baskıyı baştan sona okudum ve gerçekten ufuk açıcıydı.
    İşletim sistemi geliştirmesini anlatması çok iyiydi ama Rust kitabını okuduktan sonra Rust’ı daha ileri öğrenmek için de faydalıydı.
    Yazar Rust deyimlerine çok hakim, bu yüzden kodun benim yazacağımdan farklı olarak nasıl ifade edildiğini görmek de çok şey öğretti; özellikle de Rust’ta future’ların nasıl uygulandığını açıklayan async-await in Rust bu konuda gördüklerimin en iyisiydi.
    Phil’in yeniden motive olup EFI tabanlı 3. baskı üzerinde çalışmayı sürdürmesini isterim. Git branch commit’lerine bakınca durmuş gibi görünüyor; GitHub sponsorluğunu da yaklaşık 1 yıl sürdürdüm ama her “This Month In Rust OSDev” yazısında eksik olduğunu görmek üzücüydü.
    Yine de 2. baskı, hafta sonu geliştirme zamanı için harika bir kaynak ve içine konan emeği açıkça hissettiriyor.

  • 5 yıl önce bu öğreticiyi bitirdikten sonra MOROS üzerinde çalışmaya başladım; Rust ve işletim sistemi geliştirmesiyle ilgilenen herkese şiddetle tavsiye ederim.
    Phil gerçekten çok emek vermiş ve bu belli oluyor. Proje çok fazla içeriği kapsıyor, sonrasında da osdev wiki ile devam edebilirsiniz.
    MOROS: http://moros.cc, https://github.com/vinc/moros

    • Oldukça havalı görünüyor. Şimdiye kadar en sevdiğim proje xv6 olmuştu; çünkü kod tabanı birkaç hafta içinde anlaşılabilecek kadar küçük, paket yöneticisinin sunduğu standart GCC ile derlenebiliyor, yani kaynaktan özel bir GCC derlemeye gerek kalmıyor, ayrıca kullanıcı alanı da var.
      MOROS da bu koşulları sağlıyor gibi görünüyor, o yüzden yer imlerine ekledim.
    • http://moros.cc sitesinde TLS yok mu? :(
    • Uzun zamandır RSS feed’ini takip ediyorum; MOROS gerçekten çok havalı bir proje gibi görünüyor.
      Sadece bir nedenle QEMU’da başlamadığı için henüz deneyemedim; bunun işletim sisteminin kendisinden çok benim tarafımdaki bir sorun olma ihtimali yüksek.
  • Rust ve işletim sistemi geliştirmesi konusuna derinlemesine daldıktan sonra bugün bu kaynağı keşfettim ve içeriğin kalitesine hayran kaldım.
    İşletim sistemlerinin tarihi ve tasarımı hakkında çok şey öğrenirken aynı anda Rust tarafını da doğal biçimde kavrıyorsunuz. Phil bunu gerçekten mükemmel yapmış.

  • Rustconf’tan yeni döndüm; Rust tarafında kabaca beş kadar önemli işletim sistemi yayını var gibi görünüyordu ve özellikle gerçek zamanlı sistemlere odaklananların sayısı fazlaydı.
    Yalnız hepsi açık kaynak değil.

    • Başlıca gerçek zamanlı işletim sistemleri (RTOS) arasında Tock-OS, Oxid-OS (Tock-OS’un güvenlik odaklı sürümü; freertos/safertos ile benzer bir konumda) ve Oxide Computers’ın Hubris’i var; Embassy ve RTIC ise bare-metal sistemlerde zamanlama ve kaynak yönetimi için sık kullanılan framework’ler ama geleneksel anlamda RTOS değiller.
      Bunların dışında daha niş ya da kamuya açık olmayan başka örnekler de var.
      Geleneksel işletim sistemleri, yani gerçek zamanlı olmayan tarafta ise Redox öne çıkıyor; ayrıca bu rehber/gönderideki Blog OS dahil olmak üzere araştırma, deney ve eğitim amaçlı pek çok işletim sistemi var.
  • Bu yazıların ilk baskısını özellikle tavsiye ederim.
    Mevcut baskı, bootloading işinin tamamını özel bir crate ile hallederek biraz fazla yardımcı oluyor gibiydi.

    • Bootloading kısmını atlayabilmenin bir yolu olması hoşuma gitti.
      Bu yorumu görünce gerçekten denemek istedim. Eğlencesine küçük bir işletim sistemi yapmak istiyorum ama bir şeyler yapabilecek düzgün bir makine durumuna gelmek için büyü gibi görünen prosedürlerden geçmekten hoşlanmıyorum.
      Tabii bunun kötü olduğunu söylemiyorum; sadece herkesin sevdiği kısım farklı.
  • Bu kaynak sayesinde 2021’de Rust kullanmaya başladım ve böyle bir kaynak olduğu için gerçekten minnettarım.

  • Phil’in işletim sistemi geliştirmesi yazıları her zaman keyifle okunuyor.

  • Gelecek ay GOSIM konferansında konuşma yapacağı söyleniyor.
    https://china2024.gosim.org/speakers#philipp-oppermann
    Yüz yüze tanışıp konuşabilsek güzel olurdu.

  • https://harvey-os.org/ emekliye ayrıldı; ekip artık şu proje üzerinde çalışıyor: https://github.com/r9os/r9

  • Profesyonel bir geliştirici değilim ama “Y üzerinde X yazmak” ifadesini görünce aklıma Ryan Reynolds’ın “But why?” mem’i geliyor: https://screenrant.com/ryan-reynolds-but-why-gif-harold-kuma...
    Öğrenme amacıyla yapılıyorsa bence ne istersen yap. İnsan ne kadar çok kod yazarsa o kadar gelişiyor.
    Ayrıca MOROS da hem proje hem de sayfa olarak çok havalı görünüyor.