Xv6, một hệ điều hành giáo dục đơn giản giống Unix
(pdos.csail.mit.edu)- Xv6 là một hệ điều hành giáo dục đơn giản giống Unix, được tạo ra để học cấu trúc hệ điều hành và được dùng trong môn 6.1810 bậc đại học của MIT
- Sau khi được phát triển vào mùa hè năm 2006, Xv6 đã được port sang RISC-V cho lớp 6.1810, phù hợp với môi trường giáo dục hiện đại
- Mã nguồn và tài liệu được cung cấp qua các kho Git
xv6-riscv,xv6-riscv-book, nên có thể tự build và đọc trực tiếp - Bối cảnh thiết kế và học tập bắt nguồn từ Unix V6 và Commentary on UNIX' 6th Edition của John Lions
- Nếu muốn đọc cả mã Unix V6 gốc, các tài liệu tham khảo như phần chú giải của Lions, mã nguồn V6 và PDP11/40 Processor Handbook sẽ hữu ích
Xv6 và 6.1810
- Xv6 là một hệ điều hành giáo dục đơn giản giống Unix
- Được phát triển vào mùa hè năm 2006 và được port sang RISC-V cho môn 6.1810 bậc đại học của MIT
Mã nguồn và tài liệu học tập
- Có thể lấy mã nguồn Xv6 mới nhất bằng lệnh sau
- Tài liệu Xv6 mới nhất được cung cấp trong một kho riêng
- Xv6 lấy cảm hứng từ Unix V6 và Commentary on UNIX' 6th Edition của John Lions
- Phiên bản trực tuyến của Lions commentary
- Mã nguồn Unix V6
- Mã nguồn V6 thông qua The Unix Heritage Society
Tài liệu tham khảo để đọc Unix V6 gốc
- The PDP11/40 Processor Handbook là tài liệu hữu ích để hiểu mã Unix V6 gốc
- Bản PDF dựa trên ảnh scan nên không tìm kiếm văn bản được
- Cũng có phiên bản web được lập chỉ mục theo tên lệnh
Yêu cầu phản hồi
- Nhóm đang nhận phản hồi về trải nghiệm sử dụng Xv6, kinh nghiệm đưa vào giảng dạy, các điểm cải thiện để giúp việc áp dụng dễ hơn, cũng như những gì hoạt động tốt và chưa tốt
- Địa chỉ liên hệ là
61810-staff@lists.csail.mit.edu
- Địa chỉ liên hệ là
1 bình luận
Ý kiến trên Hacker News
Tôi đã học lớp này ở MIT và khuyến nghị 20/10, đặc biệt phù hợp với những ai không có nền tảng về hệ thống
Giáo trình khá dễ hiểu, còn các bài thực hành rất tốt để kiểm tra mức độ hiểu. Tuy nhiên, ở lần thử đầu tiên có lẽ nên bỏ qua phần driver mạng
Tôi đã học một lớp ở MIT dùng HĐH này và nó thực sự xuất sắc
Hôm nay tôi lại xem qua website của lớp, và thực tế là có thể tự học một mình. Ghi chú bài giảng, bài thực hành, repo xv6 có nhánh cho từng bài thực hành, cả cách tự chạy đều được đăng lên, mức độ công khai đáng kinh ngạc
Bài thực hành đầu tiên: https://pdos.csail.mit.edu/6.1810/2023/labs/util.html
Tôi dự định sớm tự làm lại toàn bộ khóa học đến cuối
Nhiều dự án trong môn hệ điều hành ở đại học của tôi là xây dựng thứ gì đó trên hệ điều hành xv6
Một trong số đó là dự án viết scheduler cho xv, và đó chắc chắn là một cách tốt để học nhiều thành phần khác nhau của hệ điều hành
Ở một trường đại học tại Tây Ban Nha, họ đã hoặc đang dùng Plan 9 cho mục đích giảng dạy
Lúc mới nhìn tiêu đề, tôi tưởng đây là bản phát hành mới của trình xem ảnh xv cũ: http://www.trilon.com/xv/
Từ lâu tôi đã muốn hiểu kernel Windows NT. Có lẽ các phiên bản đầu sẽ đơn giản hơn nên phù hợp hơn
Tôi nghe nói phiên bản đầu gần với VMS, không biết có đúng không. Cũng tò mò liệu có tài liệu VMS không; tôi nghe nói OpenVMS là mã nguồn mở, nhưng có vẻ phiên bản quá cao
Đúng là Dave Cutler đã dẫn dắt nhiều dự án trong nội bộ DEC, bao gồm cả các dự án liên quan đến VMS, nhưng thứ mà kernel Microsoft New Technology thừa hưởng từ VMS chỉ là di sản tinh thần ở mức thiết kế và kiến trúc
Trước khi nhóm của Dave bị gạt ra ở DEC, ông đã đang làm một cuộc đại tu lớn hoặc một thế hệ kế nhiệm của VMS, và phần lớn tầm nhìn đó đã chuyển sang Windows, dù cũng có mặt phải hy sinh các mẫu thiết kế vững chắc của thế giới minicomputer
Cutler xem đội MSDOS như những lập trình viên non tay đang chất chồng các giải pháp spaghetti cho sai vấn đề, nhưng vì Bill Gates đã nắm chặt thị trường bằng các hợp đồng OEM, Bill về cơ bản đã trao cho ông một tấm séc trắng để đưa ra một kernel thật sự nhằm cạnh tranh với thứ Steve đang xây ở NeXT
Vì vậy, về tính năng hay hình thái, NT hoàn toàn không giống VMS, và về triển khai cũng hoàn toàn khác. VMS có một thư viện chuẩn C gọn gàng và bộ sản phẩm compiler. Tuy nhiên có thể xem đây là làn sóng những người từ phía minicomputer đi xuống để cạnh tranh trong thế giới microcomputer
Muốn cảm nhận thêm bối cảnh thì nên xem các cuộc phỏng vấn Dave Plummer và Cutler trên YouTube
Tài liệu VMS có rất nhiều, ban đầu đi kèm cả vài mét tài liệu. Hiện vẫn đang được bán và cũng có thể tải image VM miễn phí cho người dùng sở thích
OpenVMS không phải mã nguồn mở, và nói phiên bản quá cao cũng không đúng
Trước khi đặt câu hỏi, luôn cần kiểm tra tiền đề. Nếu muốn hỏi “vì A nên có thể B không?”, trước hết hãy kiểm tra xem A có đúng không
Tôi thắc mắc vì sao lại là Unix v6. Không hiểu tại sao lại dạy bằng một thiết kế 50 năm tuổi
Nếu muốn dạy các nền tảng của hệ điều hành như lập lịch, giao tiếp liên tiến trình, quản lý không gian địa chỉ, có vẻ thiết kế microkernel sẽ tốt hơn
Khi sau này tiếp xúc với công nghệ mới, bạn có thể hiểu sâu hơn, và nó cũng mở rộng tầm nhìn cho sự nghiệp về sau
Với tư cách người đã bỏ lỡ một phần lịch sử đó, tôi nghĩ nếu được học ở đại học thì hẳn đã rất tuyệt
Có lẽ họ chọn vì nó đủ tốt, đơn giản, và dễ dạy trong một học kỳ khi sinh viên còn học các môn khác. Tôi thắc mắc ý bạn có phải là thiết kế microkernel không chỉ tốt hơn mà còn dễ dạy hơn không
Các trừu tượng cơ bản của Unix v6 vẫn còn hợp lệ đến nay
Khác biệt cốt lõi giữa microkernel và monolithic kernel là cách chia sẻ không gian địa chỉ giữa user space và kernel, và tôi không rõ vì sao thiết kế microkernel lại tốt hơn. Tôi cũng thắc mắc vì sao phải dạy một thiết kế không được dùng rộng rãi
Phần lớn phần mềm chạy trên Internet cũng không chạy trên microkernel, và phần lớn phần mềm có thể tải từ Internet cũng vậy. Một lớp như thế có vẻ khó chuẩn bị đủ để hiểu các kernel mà bạn xử lý hoặc gặp trong công việc
Tôi thắc mắc một người tự học nên tiếp cận thế nào nếu muốn tự tay thử cái này
Plan 9 cũng là một codebase khá đơn giản để hiểu
Namespace theo từng process, bind, và cách xử lý mọi thứ như file mang lại một sự thanh lịch khó thấy ở các hệ điều hành họ Unix khác
Học kỳ trước trong môn hệ điều hành, chúng tôi dùng PintOS; giá mà có một lớp phần 2 đi sâu hơn