-
Notifications
You must be signed in to change notification settings - Fork 69
Home
MentOS (Mentoring Operating System) is an open-source educational operating system designed to provide a realistic yet understandable environment for learning OS development.
- Getting Started - Set up your development environment
- Building MentOS - Compile and build the OS
- Running MentOS - Launch MentOS in QEMU or GRUB
- Architecture - Understand the project structure
- Development Guide - Add programs and features
Choose a path based on your learning goals:
Start here to understand how MentOS boots and runs programs:
- Getting Started - Set up development environment
- Architecture - Understand high-level structure
- Bootloader - See first code that runs
- Kernel - Learn core OS functionality
- C Library - Understand program support
- Userspace Programs - Write your own programs
- System Calls - Create custom system calls
Outcome: You understand the full boot-to-shell pipeline and can modify any layer.
Deep dive into OS internals:
- Architecture - Project layout
- System Calls - How programs talk to kernel
- Scheduling - Process scheduling algorithms
- File Systems - EXT2 filesystem implementation
- IPC - Inter-process communication
- Debugging - Debug kernel issues
Outcome: You can implement new kernel features and fix kernel bugs.
Build programs on MentOS:
- Getting Started - Setup
- C Library - Available functions
- Userspace Programs - How to write programs
- System Calls - Available syscalls
- Debugging - Debug your programs
Outcome: You can write and test userspace applications on MentOS.
- Debugging - GDB, kernel logs, common issues
- Running MentOS - Boot problems
- System Calls - Syscall issues
- 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
- Debugging - GDB debugging and kernel logging
- Scheduling - CPU scheduling algorithms
- System Calls - Adding and using system calls
- File Systems - EXT2 and VFS implementation
- IPC - Inter-process communication mechanisms
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
There are many educational operating systems, but MentOS stands out by:
- Following Linux's design patterns and structures
- Providing comprehensive documentation
- Supporting multiple scheduling algorithms
- Including a full C library and userspace programs
- Compiling quickly on modern laptops (seconds!)
Parts of MentOS are inherited or inspired by DreamOS by Ivan Gualandri.
Choose a path based on your interests and experience level:
Goal: Get MentOS running on your machine
- Getting Started (10 min) - Install prerequisites and tools
- Building MentOS (10 min) - Compile the OS
- Running MentOS (10 min) - Boot and interact with the OS
- Development Guide (20 min) - Make your first change (add a simple program)
- Debugging (10 min) - Learn basic debugging with GDB
What you'll learn: How to build and run a complete OS from source.
Goal: Understand how OS kernels work
- Architecture (20 min) - Project structure and layers
- Bootloader (15 min) - How the OS starts
- Kernel (30 min) - Process management, memory, filesystems
- Scheduling (20 min) - How the CPU is shared between processes
- System Calls (20 min) - How user programs request kernel services
- IPC (15 min) - How processes communicate
What you'll learn: The fundamental components of an operating system.
Goal: Write code that runs in the kernel or userspace
- Architecture (20 min) - Understand the structure
- System Calls (25 min) - Learn syscall architecture
- Userspace Programs (30 min) - Write C programs for MentOS
- File Systems (25 min) - Understand how files work
- Debugging (20 min) - Advanced debugging techniques
- Development Guide (20 min) - Add new features
- Contributing (10 min) - Submit your changes
What you'll learn: How to develop both userspace and kernel code.
Goal: Understand every layer from hardware to applications
Order:
- Getting Started → Building MentOS → Running MentOS
- Architecture → Bootloader → Kernel
- Scheduling → File Systems → IPC
- System Calls → Userspace Programs → C Library
- Debugging → Development Guide → Contributing
What you'll learn: Complete OS architecture from boot to applications.
I want to understand...
- How processes work → Kernel (Process Management section)
- How memory is managed → Kernel (Memory Management section)
- How files are stored → File Systems
- How programs run → Userspace Programs
- How processes talk → IPC
- How programs communicate with kernel → System Calls
- How the OS starts → Bootloader
- How to write a program → Userspace Programs → Development Guide
- How to debug issues → Debugging
- How to contribute code → Contributing
New to OS development? Start with:
Familiar with Linux? Jump to:
Want to modify kernel? Read:
Want to write programs? Read:
Interested in contributing? See the Contributing guide for:
- Code style guidelines
- Git workflow
- Testing procedures
- Documentation standards
See Features for a complete list of implemented and planned features.
Having issues? Check:
- Debugging - Common debugging techniques
- GitHub Issues - Report bugs or ask questions
- GitHub: mentos-team/MentOS
- Issues: Report bugs or request features
Happy hacking! 🎉