MentOSMentoring Operating System · University of Verona

Department of Engineering for Innovation Medicine · University of Verona

Mentoring Operating System

MentOS is an open-source educational operating system. It is realistic enough to show how a real kernel works — the same data structures and algorithms Linux uses — and small enough that a student can read it, modify it, and see the result boot in seconds.

avalon login: root
Password:
Call `man` to have a list of all the commands.

root@avalon [09:14:22] [/]
-> % uname -a
MentOS 0.9.4

root@avalon [09:14:31] [/]
-> % ls /
bin  etc  home  root  usr

root@avalon [09:14:36] [/]
-> % 

What MentOS is for

Learnthekernel.Understandthe system.Shapeit.

MentOS in numbers

77
system callshandlers actually registered in the dispatch table
39
userspace programsa shell, the core utilities, and the tools to inspect a running system
56
test programsrun from userspace against the kernel they exercise
7
scheduling policiesround-robin and priority are implemented; the rest are the exercise

Why MentOS

An operating system you can actually read

  • It follows Linux

    MentOS uses the same data structures and algorithms Linux does — task lists, a VFS, EXT2, System V IPC — so what you learn here transfers to a kernel you cannot read in an afternoon.

  • It is small enough to read

    A 32-bit x86 kernel with no PAE, no SMP and no device zoo. Two-level paging, one interrupt gate for system calls, and a source tree you can hold in your head.

  • It is meant to be modified

    Several of the scheduling policies ship as exercises rather than as implementations: selecting one stops the build at the placeholder until you write it. Being incomplete on purpose is the point.

Start here

Three ways in

  • Read the documentation

    The Wiki covers the architecture, the kernel, the C library and the system-call interface, page by page.

  • Get the course material

    Lecture slides for the Operating Systems course and for MentOS itself, published as downloadable PDFs.

  • Build it yourself

    Clone, run cmake, make, and make qemu. It compiles in seconds and boots into a shell.