-
Notifications
You must be signed in to change notification settings - Fork 63
Home
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.
- 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
- Features - Feature overview and roadmap
- 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
- Unit Testing - Writing kernel unit tests safely
- 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 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
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 (RR, Priority, CFS, EDF, RM, AEDF)
- Including a full C library and userspace programs
- Building quickly on modern hardware (typically seconds)
Parts of MentOS are inherited or inspired by DreamOS by Ivan Gualandri.
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/
Choose a path based on your interests and experience level:
- Getting Started - Install prerequisites and tools
- Building MentOS - Compile the OS
- Running MentOS - Boot and interact with the OS
- Development Guide - Make your first change
- Debugging - Learn basic debugging with GDB
- Architecture - Project structure and layers
- Bootloader - How the OS starts
- Kernel - Process management, memory, filesystems
- Scheduling - How the CPU is shared between processes
- System Calls - How user programs request kernel services
- IPC - How processes communicate
- System Calls - Learn syscall architecture
- Userspace Programs - Write C programs for MentOS
- File Systems - Understand how files work
- Debugging - Advanced debugging techniques
- Development Guide - Add new features
- Debugging - GDB, kernel logs, common issues
- Running MentOS - Boot problems
- System Calls - Syscall issues
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 test my kernel changes β Unit Testing
- How to debug issues β Debugging
- How to contribute code β Contributing
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! π