48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
# 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 | | | | |