Reference
Documentation
MentOS is documented in the Wiki of its source repository, so the documentation is edited by the same people, in the same pull requests, as the code it describes.
Getting started
Set up a toolchain, build the kernel, and boot it.
Getting Started
What to install, on Linux or WSL.
Building MentOS
CMake options, build targets, and the filesystem image.
Running MentOS
Booting under QEMU, and with GRUB from an ISO.
Debugging
Attaching GDB, and reading kernel log output.
How it works
The kernel, subsystem by subsystem.
Architecture
The source tree, and how the parts fit together.
Kernel
Boot, interrupts, paging, and the core data structures.
Process management
Tasks, fork, exec, wait, and signals.
Scheduling
The policies that ship, and the ones left as exercises.
File systems
The VFS layer, EXT2, and procfs.
System calls
The int 0x80 path, the table, and how to add one.
IPC
System V semaphores, message queues and shared memory.
C library
The libc MentOS ships, and its syscall wrappers.
Working on MentOS
Adding to it, testing it, and getting a change merged.
Development guide
Adding a userspace program or a kernel feature.
Userspace programs
The shell and the utilities around it.
Unit testing
The kernel test runner and the userspace test suite.
Contributing
Coding style, commit conventions, and pull requests.
Features
What is implemented, and what is planned.
API documentation
MentOS is documented inline with Doxygen. The previous version of this website committed the generated HTML — some 17 MB of it, for a source tree that had since moved on. It is not published here any more; generate it against the revision you are actually reading:
mkdir build && cd build
cmake ..
make docThe Building MentOS page covers the build options, including what make doc needs installed.
