# PepperOS Manual # Table of Contents - [Overview](#i-overview) - [Supported Hardware](#a-supported-hardware) - [Features](#b-features) - [Kernel architecture](#ii-kernel-architecture) - [Boot process](#a-boot-process) - [Memory management](#b-memory-management) - [Scheduling](#c-scheduling) - [Input/output](#d-inputoutput) - [Syscall table](#iii-syscall-table) ## I. Overview ## a. Supported Hardware The recommended hardware to run PepperOS is the following: - UEFI/BIOS - Any x86 processor, 64-bits only - PS/2 Keyboard - Minimum 128MB of memory ## b. Features - Round robin preemptive scheduling - Coexistence of ring 0 and ring 3 processes ## II. Kernel architecture ### a. Boot process ### b. Memory management ### c. Scheduling ### d. Input/Output ## III. Syscall table The syscall interface in the Pepper kernel uses the System V ABI convention for argument order. Name | Number (%rax) | arg0 (%rdi) | arg1 (%rsi) | arg2 (%rdx) | |---|---|---|---|---| | sys_write | 1 | unsigned int fd | const char* buf | size_t count | | | sys_exit | 60 | int error_code | | | |