Welcome to the official repository for the Operating Systems course at National Taiwan University. This platform provides a modern, automated development environment for xv6 assignments.
In the past, students often struggled with complex, manual toolchain setups that varied across operating systems, leading to "it works on my machine" frustrations. The xv6-ntu-mp system replaces this with a modern, integrated approach:
- Unified & Transparent Environment: We leverage Docker and GitHub Actions to provide a strictly identical development and grading environment for everyone—from your local laptop to the cloud.
- Instant Professional Feedback: No more waiting for manual TA checks. Automated cloud grading provides immediate scores and detailed logs as soon as you push your code.
- Human-Centric Guidance: Instead of simple "blocking" errors, our system includes Git hooks and protective scripts that act as a development assistant, catching common mistakes (like missing identity or accidental file overwrites) before they become grading issues.
- Continuous Learning Loop: Even after the deadline, private tests are released into your repository. This allows you to identify subtle concurrency bugs or edge cases and continue refining your skills long after the assignment is over.
A quick guide to navigating this repository:
xv6/: The core source code of the operating system.user/: Where you add and modify user programs.kernel/: The core kernel logic (process management, traps, etc.).Makefile: Standard build configuration for the xv6 kernel.
doc/: Comprehensive documentation module.grade/: Internal grading engine logic (Do not modify).tests/: Contains both official public tests and your custom debug tests.mp.sh: The centralized assignment management script—your primary interface.student.conf: Your identity binding configuration.
For a tailored onboarding experience, explore our modular guides:
🆕 Start Here. Learn how to fork the template, invite TAs, and initialize your local workspace.
🛠️ Technical Reference. Dive into
mp.shcommands, QEMU shortcuts, and the system architecture diagram.
🔄 Mastering the Cycle. Understand how to create custom tests, interpret GitHub Actions results, and the rules of the grading cycle.
📋 Task Requirements. Detailed technical specifications and goals for the current Machine Problem (find the specific
mpX.mdin the current branch).
- xv6: A Simple Unix-like OS (PDF): The primary textbook for the course.
- GitHub: xv6-riscv Upstream: Original MIT source code.
- RISC-V ISA Reference: For deep-dives into the architecture.