Skip to content
Galfurian edited this page Aug 19, 2026 · 8 revisions

MentOS (Mentoring Operating System) is an open-source educational operating system designed to provide a realistic yet understandable environment for learning OS development.

🚀 Quick Links

📚 Core Components

  • Bootloader - First code executed, loads the kernel
  • Kernel - Core OS functionality (processes, memory, drivers)
  • C Library - Standard library and system call wrappers
  • Userspace Programs - User applications and utilities

🛠️ Advanced Topics

🎯 What is MentOS?

MentOS is an educational operating system that aims to:

  • Follow Linux guidelines - Uses Linux-inspired data structures and design patterns
  • Be beginner-friendly - Well-documented, simple enough to understand
  • Provide realistic experience - Real OS features (processes, filesystems, drivers)
  • Enable hands-on learning - Students can modify and extend it

Why MentOS?

There are many educational operating systems, but MentOS stands out by:

  1. Following Linux's design patterns and structures
  2. Providing comprehensive documentation
  3. Offering a build-time choice of scheduling policy (RR, Priority, CFS, EDF, RM, AEDF), where Round-Robin is the complete default and the others are deliberately left as guided student exercises
  4. Including a project-provided C library and a set of userspace programs
  5. Building quickly on modern hardware (typically seconds)

Credits

Parts of MentOS are inherited or inspired by DreamOS by Ivan Gualandri.

✅ Source-Verified Highlights

The following items are directly supported by the current codebase:

  • Scheduling policy: selectable at build time through the CMake SCHEDULER_TYPE option (SCHEDULER_RR, SCHEDULER_PRIORITY, SCHEDULER_CFS, SCHEDULER_EDF, SCHEDULER_RM, SCHEDULER_AEDF; see kernel/CMakeLists.txt). Only SCHEDULER_RR — the default — is fully implemented; the other branches in kernel/src/process/scheduler_algorithm.c contain /*...*/ placeholders and fall back to Round-Robin until a student completes them. See Scheduling.
  • File systems: VFS with EXT2 and procfs implementations; EXT2 on /dev/hda is mounted as / and procfs is mounted at /proc
  • Userspace stack: project-provided C library (lib/) + statically linked user programs under userspace/
  • Boot flow: Multiboot boot path in boot/ and iso/; MentOS is started by a Multiboot-compliant loader such as GRUB and its own bootstrap code runs in 32-bit protected mode

🎓 Learning Paths

Choose a path based on your interests and experience level:

👶 Path 1: Getting Started (Beginner)

  1. Getting Started - Install prerequisites and tools
  2. Building MentOS - Compile the OS
  3. Running MentOS - Boot and interact with the OS
  4. Development Guide - Make your first change
  5. Debugging - Learn basic debugging with GDB

🧠 Path 2: Core Concepts (Intermediate)

  1. Architecture - Project structure and layers
  2. Bootloader - How the OS starts
  3. Kernel - Process management, memory, filesystems
  4. Scheduling - How the CPU is shared between processes
  5. System Calls - How user programs request kernel services
  6. IPC - How processes communicate

💻 Path 3: Hands-On Development (Advanced)

  1. System Calls - Learn syscall architecture
  2. Userspace Programs - Write C programs for MentOS
  3. File Systems - Understand how files work
  4. Debugging - Advanced debugging techniques
  5. Development Guide - Add new features

🧯 Path 4: Troubleshooting

🎯 Quick Reference by Topic

I want to understand...


🤝 Contributing

Interested in contributing? See the Contributing guide for:

  • Code style guidelines
  • Git workflow
  • Testing procedures
  • Documentation standards

📊 Features

See Features for a complete list of implemented and planned features.

🐛 Troubleshooting

Having issues? Check:

📬 Contact


Happy hacking! 🎉

Clone this wiki locally