3 puan yazan GN⁺ 2024-06-09 | 1 yorum | WhatsApp'ta paylaş
  • Xv6, işletim sistemi yapısını öğrenmek için oluşturulmuş basit, Unix benzeri bir eğitim işletim sistemidir ve MIT lisans dersi 6.1810'da kullanılır
  • 2006 yazında geliştirildikten sonra, 6.1810 dersi için RISC-V'ye taşınarak modern eğitim ortamına uyarlandı
  • Kaynak kodu ve belgeleri xv6-riscv, xv6-riscv-book Git depoları olarak sunulur; doğrudan derleyip okuyabilirsiniz
  • Tasarım ve öğrenme bağlamı, Unix V6 ve John Lions'ın Commentary on UNIX' 6th Edition eserine dayanır
  • Özgün Unix V6 kodunu da birlikte okumak için Lions açıklamaları, V6 kaynak kodu, PDP11/40 Processor Handbook gibi başvuru kaynakları yardımcı olur

Xv6 ve 6.1810

  • Xv6, basit, Unix benzeri bir eğitim işletim sistemidir
  • 2006 yazında geliştirildi ve MIT lisans dersi 6.1810 için RISC-V'ye taşındı

Kaynak kodu ve öğrenme materyalleri

Özgün Unix V6'yı okumak için başvuru kaynakları

  • The PDP11/40 Processor Handbook, özgün Unix V6 kodunu anlamak için yararlı bir kaynaktır
    • Taranmış görsellerden oluşan PDF metin aramayı desteklemez
    • Komut adlarına göre indekslenmiş bir web sürümü de sunulur

Geri bildirim isteği

  • Xv6 kullanım deneyimi, derse dahil etme deneyimi, benimsemeyi kolaylaştıracak iyileştirmeler, iyi çalışan ve çalışmayan noktalar hakkında geri bildirim alınıyor
    • İletişim adresi 61810-staff@lists.csail.mit.edu'dir

1 yorum

 
GN⁺ 2024-06-09
Hacker News yorumları
  • MIT'te bu dersi aldım ve 20/10 tavsiye ederim; özellikle sistem geçmişi olmayanlar için çok iyi
    Ders materyali anlaşılması oldukça kolay ve alıştırmalar da kavrayışı kontrol etmek için çok iyi. Yalnız, ilk denemede ağ sürücüsünü atlamak daha iyi olabilir

    • Bu dersin çevrimiçi sunulup sunulmadığını merak ediyorum. OpenCourseWare'de ders kayıtlarını bulamadım; MIT'ye ait değil ama xv6 ile ilgili bir YouTube oynatma listesi buldum, oldukça iyi görünüyor: https://www.youtube.com/playlist?list=PLbtzT1TYeoMhTPzyTZboW...
    • UCI'da MIT dersinin büyük bölümünü alıp çok daha kolay hale getiren bir ders aldım, ama onu da tavsiye ederim
  • MIT'te bu OS'yi kullanan bir ders aldım ve gerçekten harikaydı
    Bugün yine dersin web sitesine baktım; aslında neredeyse tek başınıza da takip edebilirsiniz. Ders notları, alıştırmalar, her alıştırma için branch'leri olan xv6 deposu ve bunu kendiniz nasıl çalıştıracağınız dahil her şey yayımlanmış; açıklık düzeyi şaşırtıcı
    İlk alıştırma: https://pdos.csail.mit.edu/6.1810/2023/labs/util.html
    Yakında tüm süreci baştan sona tekrar kendi başıma tamamlamayı düşünüyorum

  • Üniversitedeki işletim sistemleri derslerinde birçok proje, xv6 işletim sistemi üzerinde bir şeyler inşa etme şeklindeydi
    Bunlardan biri xv için bir zamanlayıcı yapma projesiydi ve işletim sisteminin çeşitli bileşenlerini öğrenmek için kesinlikle iyi bir yöntemdi

  • İspanya'daki bir üniversitede Plan 9 eğitim amaçlı kullanılıyordu ya da hâlâ kullanılıyor

  • Başlığı ilk gördüğümde bunun eski xv görüntüleyicisinin yeni bir sürümü olduğunu sandım: http://www.trilon.com/xv/

  • Uzun zamandır Windows NT çekirdeğini anlamak istiyordum. Muhtemelen ilk sürümler daha basittir, o yüzden onlar daha iyi olabilir
    İlk sürümün VMS'e yakın olduğunu duymuştum; bunun doğru olup olmadığını merak ediyorum. VMS materyalleri olup olmadığını da merak ediyorum ve OpenVMS'in açık kaynak olduğunu duydum ama sürümü fazla yeni gibi geliyor

    • NT çekirdeğinin geliştirilme sürecini iyi görmek için 1996 tarihli Show Stopper kitabını okuyabilirsiniz
      Dave Cutler'ın DEC içinde VMS ile ilgili projeler dahil çeşitli projelere liderlik ettiği doğru, ancak Microsoft New Technology çekirdeğinin VMS'ten miras aldığı şey daha çok tasarım ve mimari düzeyde bir zihinsel mirastı
      Dave, DEC'de ekibi dışlanmadan önce zaten VMS'in büyük çaplı bir yeniden düzenlemesi ya da halefi üzerinde çalışıyordu ve bu vizyonun önemli bir kısmı Windows'a taşındı, ancak minicomputer tarafındaki sağlam tasarım kalıplarından bazıları feda edildi
      Cutler, MSDOS ekibini yanlış probleme spagetti tarzı çözümler yığan acemi programcılar olarak görüyordu; ancak Bill Gates OEM anlaşmalarıyla pazarı tamamen kapatmış olduğundan Bill, NeXT'te Steve'in yapmakta olduğu şeyle rekabet edecek gerçek bir çekirdek çıkarsın diye ona fiilen açık çek verdi
      Dolayısıyla NT, işlev veya biçim açısından VMS'e hiç benzemez ve uygulama açısından da tamamen farklıdır. VMS'in temiz bir C standart kütüphanesi ve derleyici araç takımı vardı. Yine de bunu, minicomputer dünyasındaki insanların mikro bilgisayar dünyasında rekabet etmek için aşağı inmesinin bir örneği olarak görebilirsiniz
      Daha fazla atmosfer için YouTube'daki Dave Plummer ve Cutler röportajlarına bakabilirsiniz
    • Windows Internals kitap serisine, eski MSTech Journal ve DDJ sayılarına, ayrıca Digital arşivindeki VMS kılavuzlarına bakabilirsiniz
    • Windows 2000 kaynak kodu internete sızdırılmış durumda ve daha yeni sürümlerin de sızmış olması muhtemel. Hatta fiilen eğitim aracı olarak da kullanıldı
    • İlk NT sürümünün VMS'e yakın olduğu doğru değil
      VMS hakkında çok fazla materyal var; orijinalinde onunla birlikte metrelerce dokümantasyon gelirdi. Hâlâ satılıyor ve ücretsiz hobi amaçlı VM imajlarını da indirebilirsiniz
      OpenVMS açık kaynak değildir ve sürümün fazla yüksek olduğu da doğru değil
      Soru sormadan önce varsayımlarınızı her zaman kontrol etmelisiniz. “A olduğu için B mümkün mü?” diye sormak istiyorsanız, önce A'nın doğru olup olmadığını doğrulamalısınız
    • OpenVMS açık kaynak mıydı?
  • Neden Unix v6 olduğunu merak ediyorum. Neden 50 yıllık bir tasarımla öğretildiğini anlamıyorum
    İşletim sistemlerinin temelleri olan zamanlama, süreçler arası iletişim ve adres alanı yönetimini öğretmek için mikroçekirdek tasarımı daha iyi olur gibi geliyor

    • Bugün yaygın olarak kullanılan teknolojilerin öncüllerini incelemek, buraya nasıl geldiğimizi, hangi ödünleşimlerin neden yapıldığını ve neleri kaybetmiş olabileceğimizi öğrenmenin iyi bir yoludur
      Daha sonra yeni teknolojilerle karşılaştığınızda daha derin bir anlayış sağlar ve gelecekteki kariyerinizde de bakış açınızı genişletir
      O tarihin bir kısmını kaçırmış biri olarak, bunu üniversitede öğrenmiş olmayı gerçekten isterdim
    • Koşmadan önce yürümeyi öğrenmeniz gerekir. Xv6 temel düzeydedir, ancak bu kavramlarla ilk kez karşılaşan öğrencilerin bir dönem içinde işletim sistemi temellerini öğrenmesi için çok iyi bir başlangıçtır
    • Birçok profesörün Xv6'yı işletim sistemleri dersi için seçmesinin nedeni sadece harika bir tasarım olması değildir diye düşünüyorum
      Yeterince iyi, basit ve öğrenciler başka dersler de alırken bir dönem içinde öğretmesi kolay olduğu için seçiliyordur. Mikroçekirdek tasarımının sadece daha iyi değil, öğretmesi de daha kolay olduğunu mu düşünüyorsunuz, bunu merak ediyorum
    • Von Neumann mimarisi 80 yıllık. Tasarımın ne kadar eski olduğunun neden önemli olduğunu anlamıyorum; hâlâ en ilgili ve en yaygın kullanılan mimariyse
      Unix v6'nın temel soyutlamaları bugün de geçerliliğini koruyor
      Mikroçekirdek ile monolitik çekirdek arasındaki temel fark, kullanıcı alanı ile çekirdek arasında adres alanının nasıl paylaşıldığıdır; mikroçekirdek tasarımının neden daha iyi olduğunu pek bilmiyorum. Yaygın kullanılmayan bir tasarımı neden öğretmemiz gerektiğini de sorguluyorum
    • Mikroçekirdekler yazılım ekosisteminde önemli bir rol oynar, ancak karşılaştığımız yazılımların çoğu mikroçekirdekler tarafından orkestre edilmez
      İnternette çalışan yazılımların büyük çoğunluğu da mikroçekirdek üzerinde çalışmaz ve internetten edinebileceğiniz yazılımların çoğu için de aynısı geçerlidir. Böyle bir dersin, çekirdeklerle uğraşmaya ya da meslek hayatında karşılaşacağınız çekirdekleri anlamaya yeterince hazırlık sağlayacağını sanmıyorum
  • Kendi kendine öğrenen birinin bunu bizzat kurcalamaya başlaması için en iyi yaklaşımın ne olacağını merak ediyorum

  • Plan 9 da anlaması oldukça basit bir kod tabanına sahip

    • Plan 9'ın bazı tasarım kararları takdiri hak ediyor
      Süreç başına namespace, bind ve her şeyi dosya olarak ele alma yaklaşımı, diğer Unix türevi işletim sistemlerinde pek görülmeyen bir zarafet sağlıyor
  • Geçen dönem işletim sistemleri dersimizde PintOS kullandık; keşke daha derine inen ikinci bir ders de olsaydı