Basit Unix benzeri eğitim işletim sistemi Xv6
(pdos.csail.mit.edu)- 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-bookGit 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
- En güncel Xv6 kaynak kodu şu komutla alınabilir
- En güncel Xv6 belgeleri ayrı bir depo olarak sunulur
- Xv6, Unix V6 ve John Lions'ın Commentary on UNIX' 6th Edition eserinden ilham almıştır
- Lions commentary çevrimiçi sürümü
- Unix V6 source code
- The Unix Heritage Society üzerinden V6 kaynak kodu
Ö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
- İletişim adresi
1 yorum
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
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
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
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
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
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
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
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
İ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
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ı