- Xv6 adalah OS pendidikan sederhana mirip Unix yang dibuat untuk mempelajari struktur sistem operasi, dan digunakan dalam mata kuliah sarjana MIT 6.1810
- Setelah dikembangkan pada musim panas 2006, Xv6 di-port ke RISC-V untuk kelas 6.1810 agar sesuai dengan lingkungan pendidikan modern
- Kode sumber dan dokumentasi tersedia melalui repositori Git
xv6-riscvdanxv6-riscv-book, sehingga dapat dibangun dan dipelajari langsung - Desain dan konteks pembelajarannya berakar pada Unix V6 dan Commentary on UNIX' 6th Edition karya John Lions
- Jika ingin membaca kode asli Unix V6 juga, referensi seperti komentar Lions, kode sumber V6, dan PDP11/40 Processor Handbook akan sangat membantu
Xv6 dan 6.1810
- Xv6 adalah sistem operasi pendidikan sederhana mirip Unix
- Dikembangkan pada musim panas 2006, lalu di-port ke RISC-V untuk mata kuliah sarjana MIT 6.1810
Kode sumber dan materi pembelajaran
- Kode sumber Xv6 terbaru dapat diperoleh dengan perintah berikut
- Dokumentasi Xv6 terbaru disediakan dalam repositori terpisah
- Xv6 terinspirasi oleh Unix V6 dan Commentary on UNIX' 6th Edition karya John Lions
- Lions commentary versi online
- Unix V6 source code
- V6 source code melalui The Unix Heritage Society
Referensi untuk membaca Unix V6 asli
- The PDP11/40 Processor Handbook adalah referensi yang berguna untuk memahami kode asli Unix V6
Permintaan masukan
- Mereka menerima masukan tentang pengalaman menggunakan Xv6, pengalaman memperkenalkannya di kelas, perbaikan agar adopsinya lebih mudah, serta hal-hal yang berjalan baik maupun tidak
- Kontaknya adalah
61810-staff@lists.csail.mit.edu
- Kontaknya adalah
1 komentar
Komentar Hacker News
Saya mengambil kelas ini di MIT dan merekomendasikannya 20/10, terutama untuk orang yang tidak punya latar belakang sistem
Materinya cukup mudah dipahami, dan praktikumnya sangat bagus untuk mengecek pemahaman. Namun, untuk percobaan pertama mungkin lebih baik melewati driver jaringan
Saya mengambil kelas di MIT yang menggunakan OS ini dan itu benar-benar luar biasa
Hari ini saya melihat-lihat situs web kelasnya, dan sebenarnya kursus itu pada dasarnya bisa diikuti sendiri. Catatan kuliah, praktikum, repositori xv6 dengan branch untuk tiap praktikum, bahkan cara menjalankannya sendiri semuanya tersedia, jadi keterbukaannya benar-benar mengejutkan
Praktikum pertama: https://pdos.csail.mit.edu/6.1810/2023/labs/util.html
Dalam waktu dekat saya berencana menyelesaikan seluruh rangkaian kursus itu lagi sendiri dari awal sampai akhir
Banyak proyek di kelas sistem operasi kampus saya berupa membangun sesuatu di atas sistem operasi xv6
Salah satunya adalah proyek membuat scheduler untuk xv, dan itu jelas merupakan cara yang bagus untuk mempelajari berbagai komponen sistem operasi
Di sebuah universitas di Spanyol, Plan 9 pernah atau sedang digunakan untuk pengajaran
Saat pertama melihat judulnya, saya kira ini rilisan baru dari image viewer xv yang lama: http://www.trilon.com/xv/
Sudah lama saya ingin memahami kernel Windows NT. Mungkin versi-versi awal lebih sederhana jadi lebih cocok
Saya pernah dengar versi pertamanya dekat dengan VMS, dan saya penasaran apakah itu benar. Saya juga penasaran apakah ada materi tentang VMS; saya dengar OpenVMS itu open source, tapi versinya terasa terlalu baru
Memang benar Dave Cutler memimpin sejumlah proyek di dalam DEC, termasuk proyek terkait VMS, tetapi yang diwarisi kernel Microsoft New Technology dari VMS paling-paling hanya warisan konseptual di tingkat desain dan arsitektur
Di DEC, bahkan sebelum timnya disingkirkan, Dave sudah mengerjakan perombakan besar VMS atau penerusnya, dan banyak dari visi itu berpindah ke Windows, meski dengan pengorbanan beberapa pola desain kokoh dari dunia minicomputer
Cutler menganggap tim MSDOS sebagai programmer pemula yang menumpuk solusi spaghetti untuk masalah yang salah, tetapi karena Bill Gates sudah menguasai pasar lewat kontrak OEM, Bill pada dasarnya memberi dia cek kosong untuk menghadirkan kernel sungguhan yang bisa bersaing dengan apa yang sedang Steve bangun di NeXT
Jadi dari segi fitur maupun bentuk, NT sama sekali tidak sama dengan VMS, dan dari sisi implementasi juga benar-benar berbeda. VMS punya pustaka standar C yang rapi dan rangkaian produk kompilernya sendiri. Namun, bisa dibilang ini adalah arus orang-orang minicomputer yang turun ke dunia mikrokomputer untuk bersaing
Untuk nuansa yang lebih jelas, wawancara Dave Plummer dan Cutler di YouTube layak ditonton
Materi VMS sangat banyak; dulu bahkan datang dengan dokumentasi setinggi beberapa meter. Sampai sekarang masih dijual, dan image VM gratis untuk hobi juga bisa diunduh
OpenVMS bukan open source, dan anggapan bahwa versinya terlalu baru juga tidak benar
Sebelum bertanya, asumsi dasar sebaiknya selalu diperiksa. Kalau ingin bertanya, “karena A maka B mungkin dilakukan?”, pastikan dulu apakah A itu benar
Saya penasaran kenapa Unix v6. Saya tidak paham kenapa mengajarkan dengan desain berusia 50 tahun
Kalau ingin mengajarkan dasar-dasar sistem operasi seperti scheduling, komunikasi antarproses, dan manajemen ruang alamat, menurut saya desain microkernel akan lebih baik
Saat nanti menemui teknologi baru, pemahamannya bisa lebih dalam, dan itu juga memperluas wawasan untuk karier ke depan
Sebagai orang yang melewatkan bagian sejarah itu, saya rasa akan sangat bagus kalau saya mempelajarinya di kampus
Kemungkinan besar karena sistem ini cukup bagus, sederhana, dan mudah diajarkan dalam satu semester sambil mahasiswa tetap mengambil mata kuliah lain. Saya penasaran apakah maksudnya desain microkernel bukan hanya lebih baik, tetapi juga lebih mudah diajarkan
Abstraksi dasar Unix v6 masih tetap berlaku sampai sekarang
Perbedaan inti antara microkernel dan kernel monolitik adalah bagaimana ruang alamat dibagi antara ruang pengguna dan kernel, dan saya tidak terlalu paham kenapa desain microkernel dianggap lebih baik. Saya juga ragu kenapa harus mengajarkan desain yang tidak banyak dipakai
Sebagian besar perangkat lunak yang berjalan di internet juga tidak berjalan di atas microkernel, dan sebagian besar perangkat lunak yang bisa ditemukan di internet juga sama. Kelas seperti itu tampaknya kurang memadai untuk benar-benar menyiapkan pemahaman tentang kernel yang akan ditangani atau ditemui secara profesional
Saya penasaran cara terbaik bagi orang yang belajar mandiri untuk benar-benar mencoba ini sendiri
Plan 9 juga punya codebase yang cukup sederhana untuk dipahami
Namespace per-proses, bind, dan pendekatan memperlakukan semuanya sebagai file memberi tingkat keanggunan yang sulit ditemukan di OS turunan Unix lain
Semester lalu saya memakai PintOS di kelas sistem operasi, dan saya berharap ada kelas lanjutan bagian dua yang bisa masuk lebih dalam