Skip to content
Enrico Fraccaroli (Galfurian) edited this page Feb 9, 2026 · 6 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. Supporting multiple scheduling algorithms (RR, Priority, CFS, EDF, RM, AEDF)
  4. Including a full C library and 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 algorithms: RR, Priority, CFS, EDF, RM, AEDF (build-time selection)
  • File systems: VFS with EXT2 and procfs implementations
  • Userspace stack: C library + user programs under userspace/
  • Boot flow: Multiboot/GRUB boot path in boot/ and iso/

πŸŽ“ 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