Skip to content

Shiritai/xv6-ntu-mp

 
 

Repository files navigation

💻 xv6-ntu-mp: Operating Systems CSIE 3310

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.

🌟 Why This New System?

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.

📂 Project Structure

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.

⚡ Documentation Guide

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.sh commands, 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.

4. Assignment Specification (e.g., doc/mp0.md)

📋 Task Requirements. Detailed technical specifications and goals for the current Machine Problem (find the specific mpX.md in the current branch).

📚 References

About

NTU OS Machine Problem Base Repo (before: [mp2-2025] Implement a simple SLAB allocator on the xv6 system)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 77.3%
  • Python 14.0%
  • Shell 4.1%
  • Assembly 2.1%
  • Makefile 1.8%
  • Linker Script 0.5%
  • Other 0.2%