Skip to content
Enrico Fraccaroli (Galfurian) edited this page Jan 28, 2026 · 8 revisions

Welcome to the MentOS Wiki

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

🎓 Learning Paths

Choose a path based on your learning goals:

Path 1: Understanding Boot-to-Shell (Recommended for beginners)

Start here to understand how MentOS boots and runs programs:

  1. Getting Started - Set up development environment
  2. Architecture - Understand high-level structure
  3. Bootloader - See first code that runs
  4. Kernel - Learn core OS functionality
  5. C Library - Understand program support
  6. Userspace Programs - Write your own programs
  7. System Calls - Create custom system calls

Outcome: You understand the full boot-to-shell pipeline and can modify any layer.

Path 2: Kernel Development (For systems students)

Deep dive into OS internals:

  1. Architecture - Project layout
  2. System Calls - How programs talk to kernel
  3. Scheduling - Process scheduling algorithms
  4. File Systems - EXT2 filesystem implementation
  5. IPC - Inter-process communication
  6. Debugging - Debug kernel issues

Outcome: You can implement new kernel features and fix kernel bugs.

Path 3: Userspace Development (For application developers)

Build programs on MentOS:

  1. Getting Started - Setup
  2. C Library - Available functions
  3. Userspace Programs - How to write programs
  4. System Calls - Available syscalls
  5. Debugging - Debug your programs

Outcome: You can write and test userspace applications on MentOS.

Path 4: Troubleshooting (When things break)

📚 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 similar data structures and algorithms as Linux
  • 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
  4. Including a full C library and userspace programs
  5. Compiling quickly on modern laptops (seconds!)

Credits

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

📖 Learning Paths

Choose a path based on your interests and experience level:

👶 Path 1: Getting Started (Beginner - ~1 hour)

Goal: Get MentOS running on your machine

  1. Getting Started (10 min) - Install prerequisites and tools
  2. Building MentOS (10 min) - Compile the OS
  3. Running MentOS (10 min) - Boot and interact with the OS
  4. Development Guide (20 min) - Make your first change (add a simple program)
  5. Debugging (10 min) - Learn basic debugging with GDB

What you'll learn: How to build and run a complete OS from source.


🧠 Path 2: Core Concepts (Intermediate - ~2 hours)

Goal: Understand how OS kernels work

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

What you'll learn: The fundamental components of an operating system.


💻 Path 3: Hands-On Development (Advanced - ~3 hours)

Goal: Write code that runs in the kernel or userspace

  1. Architecture (20 min) - Understand the structure
  2. System Calls (25 min) - Learn syscall architecture
  3. Userspace Programs (30 min) - Write C programs for MentOS
  4. File Systems (25 min) - Understand how files work
  5. Debugging (20 min) - Advanced debugging techniques
  6. Development Guide (20 min) - Add new features
  7. Contributing (10 min) - Submit your changes

What you'll learn: How to develop both userspace and kernel code.


🏗️ Path 4: Deep Dive - The Full Stack (Expert - ~6 hours)

Goal: Understand every layer from hardware to applications

Order:

  1. Getting StartedBuilding MentOSRunning MentOS
  2. ArchitectureBootloaderKernel
  3. SchedulingFile SystemsIPC
  4. System CallsUserspace ProgramsC Library
  5. DebuggingDevelopment GuideContributing

What you'll learn: Complete OS architecture from boot to applications.


🎯 Quick Reference by Topic

I want to understand...


📖 Navigation by Experience

New to OS development? Start with:

Familiar with Linux? Jump to:

Want to modify kernel? Read:

Want to write programs? Read:

🤝 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