Skip to content

Features

Enrico Fraccaroli (Galfurian) edited this page Jan 29, 2026 · 3 revisions

Complete list of implemented and planned features in MentOS.

High Priority Features

Processes and Events

  • Memory protection (User vs Kernel mode, ring 0/3)
  • Process management (fork, exec, exit, wait)
  • Scheduler (multiple algorithms)
  • Interrupts and exceptions (IDT, ISR handlers)
  • Signals (POSIX-like signal handling)
  • Timers and RTC (Real-Time Clock driver)
  • Wait queues (process synchronization)
  • System calls (INT 0x80 interface)
  • Multi-core support (SMP)
  • Thread support (POSIX threads)

Memory Management

  • Paging (virtual memory with page tables)
  • Buddy system (physical page allocator)
  • Slab allocation (object caching)
  • Zone allocator (memory zones)
  • Cache allocator (kmem_cache)
  • Heap management (userspace heap)
  • Virtual addressing (separate address spaces)
  • Memory mapping (mmap/munmap)
  • Swapping (disk-based virtual memory)
  • Huge pages (2MB/4MB pages)
  • Memory cgroups (resource limits)

File Systems

  • Virtual Filesystem (VFS layer)
  • Initramfs (initial RAM filesystem)
  • EXT2 filesystem (second extended filesystem)
  • Procfs (process information filesystem)
  • Pipes (anonymous pipes for IPC)
  • Named pipes (FIFOs)
  • Tmpfs (RAM-based temporary filesystem)
  • FAT32 support (DOS filesystem)
  • EXT3/EXT4 (journaling filesystems)
  • Symlinks (symbolic links)

Input/Output

  • PIC drivers (Programmable Interrupt Controller)
  • PS/2 drivers (keyboard/mouse)
  • ATA drivers (IDE hard disk)
  • RTC drivers (Real-Time Clock)
  • Keyboard drivers (US/IT/DE layouts)
  • Video drivers (text mode)
  • VGA drivers (graphics mode)
  • AHCI drivers (SATA)
  • USB drivers (USB 2.0/3.0)
  • Network drivers (Ethernet)
  • Sound drivers (AC97/HDA)

Medium Priority Features

Inter-Process Communication (IPC)

  • Semaphores (System V semaphores)
  • Message queues (System V message queues)
  • Shared memory (System V shared memory)
  • POSIX semaphores
  • POSIX message queues
  • Pipes (anonymous)
  • Named pipes (FIFOs)
  • Unix domain sockets
  • Signals (enhanced POSIX compliance)

Security

  • User/group management (passwd, group, shadow)
  • File permissions (Unix-style permissions)
  • Process privileges (UID/GID)
  • Capabilities (fine-grained privileges)
  • SELinux (Security-Enhanced Linux)
  • Seccomp (syscall filtering)
  • ASLR (Address Space Layout Randomization)

Networking

  • Network stack (TCP/IP)
  • Socket API (Berkeley sockets)
  • Ethernet driver
  • IP protocol
  • TCP protocol
  • UDP protocol
  • ICMP (ping)
  • DNS resolution

Development Tools

  • GDB support (remote debugging)
  • Serial console output
  • Kernel logging (pr_debug, pr_info, etc.)
  • Build system (CMake)
  • Kernel profiler (performance analysis)
  • Memory leak detector
  • Code coverage tools

Low Priority Features

Advanced Scheduling

  • Round-Robin (RR)
  • Priority-based
  • Completely Fair Scheduler (CFS)
  • Earliest Deadline First (EDF - real-time)
  • Rate Monotonic (RM - real-time)
  • Adaptive EDF (AEDF - real-time)
  • O(1) scheduler
  • CPU affinity
  • cgroups (control groups)
  • Nice values (priority adjustment)

Power Management

  • ACPI support (Advanced Configuration and Power Interface)
  • CPU frequency scaling
  • Suspend/resume
  • Hibernation
  • Power profiles

Graphics and UI

  • Framebuffer support
  • VGA graphics mode
  • Windowing system
  • GUI framework
  • Mouse cursor
  • Terminal emulator (graphical)

System Services

  • init system (PID 1)
  • Login/authentication
  • Shell (command-line interface)
  • Daemon management (systemd-like)
  • Cron (scheduled tasks)
  • Syslog (system logging daemon)

Userspace Programs

  • Core utilities (cat, ls, mkdir, rm, cp, etc.) - 40+ programs
  • System tools (ps, kill, uptime, uname, etc.)
  • Text editor (edit)
  • Manual pages (man)
  • Package manager
  • Compiler toolchain (gcc, ld)
  • Text processing (grep, sed, awk)
  • Scripting language (sh, python)

Testing and Quality

  • Test suite (50+ tests)
  • CI/CD pipeline (GitHub Actions)
  • Documentation (Doxygen)
  • Unit tests (kernel unit tests)
  • Integration tests (automated)
  • Stress tests (memory, CPU, I/O)
  • Fuzzing (security testing)

Miscellaneous

  • Loadable kernel modules (LKM)
  • Dynamic linking (shared libraries)
  • Kernel configuration (Kconfig-like)
  • Hot-plugging (USB, PCI)
  • Virtualization support (KVM-like)
  • Container support (namespaces)

Feature Status Summary

Implemented: See checked items above Planned: See unchecked items above

Prioritization Rationale

High Priority

Features essential for a functional, educational operating system:

  • Core OS functionality (processes, memory, syscalls)
  • Basic I/O and drivers
  • File system support
  • Development/debugging tools

Medium Priority

Features that enhance functionality and usability:

  • Advanced IPC mechanisms
  • Network stack
  • Security features
  • More device drivers

Low Priority

Advanced or specialized features:

  • Power management
  • Graphics/UI
  • Advanced scheduling
  • Optional system services

Roadmap

Near-term (next 6 months)

  • Add named pipes (FIFOs)
  • Improve VGA driver
  • Basic network stack (IP/TCP)
  • Thread support

Mid-term (6-12 months)

  • Multi-core support (SMP)
  • Advanced scheduling (CPU affinity)
  • More filesystems (FAT32, tmpfs)
  • USB support
  • Sound drivers

Long-term (12+ months)

  • Graphics subsystem
  • Windowing system
  • Package manager
  • Compiler toolchain
  • Container support

Contributing

Want to help implement a feature? See Contributing for guidelines.

Suggested starter features:

  • Named pipes (medium difficulty)
  • Tmpfs (medium difficulty)
  • Additional keyboard layouts (easy)
  • More test programs (easy)
  • Documentation improvements (easy)

Feature Requests

Have an idea for a new feature? Open an issue with:

  • Feature description
  • Use case
  • Priority justification

Previous: Debugging | Next: Scheduling

Clone this wiki locally