วิศวกรรมระบบปฏิบัติการ (6.1810)
แนะนำ xv6
- xv6: ระบบปฏิบัติการเพื่อการศึกษาที่พัฒนาขึ้นในฤดูร้อนปี 2006 โดยมีพื้นฐานมาจาก Unix V6
- วัตถุประสงค์: ถูกพอร์ตไปยัง RISC-V สำหรับวิชาใหม่ระดับปริญญาตรี 6.1810
ซอร์สโค้ดและตำราของ xv6
Unix เวอร์ชัน 6
- แรงบันดาลใจ: ได้รับแรงบันดาลใจจาก Unix V6 และหนังสือ 'Lions' Commentary on UNIX' 6th Edition' ของ John Lions
- โค้ดต้นฉบับ: เข้าถึงออนไลน์ได้ผ่าน The Unix Heritage Society
- เอกสารอ้างอิง:
- 'The PDP11/40 Processor Handbook', Digital Equipment Corporation, 1972.
- มีทั้งเวอร์ชัน PDF และเวอร์ชันบนเว็บ
ข้อเสนอแนะ
- ช่องทางติดต่อ: หากคุณเคยใช้ xv6 หรือเคยใช้ในการสอน ยินดีรับข้อเสนอแนะ
- Russ Cox: rsc@swtch.com
- Frans Kaashoek: kaashoek@mit.edu
- Robert Morris: rtm@mit.edu
- 61810-staff@lists.csail.mit.edu
ความเห็นจาก GN⁺
- คุณค่าทางการศึกษา: xv6 มีพื้นฐานจาก Unix V6 จึงมีประโยชน์ต่อการเรียนรู้หลักการพื้นฐานของระบบปฏิบัติการ
- การพอร์ตไปยัง RISC-V: ถูกพอร์ตให้เข้ากับสถาปัตยกรรมฮาร์ดแวร์สมัยใหม่ จึงเหมาะกับสภาพแวดล้อมการเรียนการสอนยุคปัจจุบัน
- การเข้าถึงแบบโอเพนซอร์ส: ทุกคนสามารถเข้าถึงและแก้ไขซอร์สโค้ดได้ จึงเอื้อต่อการเรียนรู้และการวิจัย
- ระบบรับข้อเสนอแนะ: เปิดรับฟังความคิดเห็นจากผู้ใช้อย่างจริงจัง จึงมีโอกาสได้รับการปรับปรุงอย่างต่อเนื่อง
- แหล่งข้อมูลที่เกี่ยวข้อง: มีเอกสารอ้างอิงและข้อมูลประกอบหลากหลาย ช่วยส่งเสริมการเรียนรู้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เคยเรียนวิชานี้ที่ MIT แนะนำอย่างยิ่งโดยเฉพาะสำหรับคนที่ไม่มีพื้นฐานด้านระบบ หนังสือเรียนเข้าใจง่าย และแบบฝึกหัดก็ช่วยตรวจสอบความเข้าใจได้ดี ควรข้าม network driver ไปก่อนในครั้งแรกที่ลอง
เคยเรียนวิชาที่ใช้ระบบปฏิบัติการนี้ที่ MIT ยอดเยี่ยมมาก บนเว็บไซต์ของรายวิชาสามารถดู lecture notes, แบบฝึกหัด และเวอร์ชันต่าง ๆ ของ xv6 ได้ทั้งหมด เปิดกว้างมาก
ตอนเรียนวิชาระบบปฏิบัติการในมหาวิทยาลัย เคยทำโปรเจกต์บนพื้นฐานของระบบปฏิบัติการ xv6 มีโปรเจกต์ทำ scheduler และมันดีมากสำหรับการเรียนรู้ส่วนต่าง ๆ ของระบบปฏิบัติการ
มีมหาวิทยาลัยแห่งหนึ่งในสเปนที่ใช้ Plan9 เพื่อการศึกษา
ตอนอ่านชื่อครั้งแรก นึกว่าเป็นเวอร์ชันใหม่ของโปรแกรมดูภาพ xv รุ่นเก่า
อยากเข้าใจเคอร์เนล Windows NT ได้ยินมาว่าเวอร์ชันแรก ๆ เรียบง่ายกว่า และมีข่าวลือว่าคล้ายกับ VMS เลยสงสัยว่ามีแหล่งข้อมูลเกี่ยวกับ VMS หรือไม่ OpenVMS เป็นโอเพนซอร์ส แต่เวอร์ชันสูงเกินไป
สงสัยว่าทำไมถึงใช้ Unix v6 ไม่แน่ใจว่าการสอนพื้นฐานระบบปฏิบัติการด้วยดีไซน์ที่มีอายุ 50 ปีจะเหมาะหรือไม่ ถ้าจะสอนเรื่อง scheduling, IPC, การจัดการ address space ฯลฯ ดูเหมือนว่าดีไซน์แบบ microkernel อาจเหมาะกว่า
สงสัยว่าคนที่เรียนด้วยตัวเองจะเรียนคอร์สนี้อย่างไรได้บ้าง
Plan 9 ก็เป็น codebase ที่เข้าใจได้ง่ายเหมือนกัน
เทอมที่แล้วใช้ PintOS ในวิชาระบบปฏิบัติการ อยากให้มีวิชาภาคสองที่ลงลึกกว่านี้