-
Notifications
You must be signed in to change notification settings - Fork 63
Features
Enrico Fraccaroli (Galfurian) edited this page Jan 29, 2026
·
3 revisions
Complete list of implemented and planned features in MentOS.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- Network stack (TCP/IP)
- Socket API (Berkeley sockets)
- Ethernet driver
- IP protocol
- TCP protocol
- UDP protocol
- ICMP (ping)
- DNS resolution
- 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
- 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)
- ACPI support (Advanced Configuration and Power Interface)
- CPU frequency scaling
- Suspend/resume
- Hibernation
- Power profiles
- Framebuffer support
- VGA graphics mode
- Windowing system
- GUI framework
- Mouse cursor
- Terminal emulator (graphical)
- init system (PID 1)
- Login/authentication
- Shell (command-line interface)
- Daemon management (systemd-like)
- Cron (scheduled tasks)
- Syslog (system logging daemon)
- 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)
- 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)
- Loadable kernel modules (LKM)
- Dynamic linking (shared libraries)
- Kernel configuration (Kconfig-like)
- Hot-plugging (USB, PCI)
- Virtualization support (KVM-like)
- Container support (namespaces)
Implemented: See checked items above Planned: See unchecked items above
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
Features that enhance functionality and usability:
- Advanced IPC mechanisms
- Network stack
- Security features
- More device drivers
Advanced or specialized features:
- Power management
- Graphics/UI
- Advanced scheduling
- Optional system services
- Add named pipes (FIFOs)
- Improve VGA driver
- Basic network stack (IP/TCP)
- Thread support
- Multi-core support (SMP)
- Advanced scheduling (CPU affinity)
- More filesystems (FAT32, tmpfs)
- USB support
- Sound drivers
- Graphics subsystem
- Windowing system
- Package manager
- Compiler toolchain
- Container support
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)
Have an idea for a new feature? Open an issue with:
- Feature description
- Use case
- Priority justification
Previous: Debugging | Next: Scheduling →