Skip to main content

Architecture Overview

Sinux is organized into clearly separated subsystems. Architecture-specific code lives under arch/, while the portable kernel logic, memory managers, drivers, and userspace are kept apart.

Source tree

sinux/
├── arch/x86_64/ Architecture-specific (GDT, IDT, PIC, PIT, syscall, boot)
├── kernel/
│ ├── core/ kernel_main, panic, multiboot2 parser
│ ├── proc/ Process management, ELF loader, scheduler, usermode
│ ├── fs/ VFS, ramfs, ext2, procfs
│ ├── ipc/ Pipes, signals
│ └── syscall/ Syscall dispatch table
├── mm/ Physical (PMM) and virtual (VMM) memory managers
├── drivers/ VGA, serial, keyboard, TTY, ATA
├── lib/ string, printk, io.h
├── userspace/
│ ├── libc/ Minimal C library
│ └── hello/ Example userspace program
├── boot/ grub.cfg, linker.ld
└── scripts/ iso.mk, qemu.mk, mkdisk.sh

Subsystem summary

SubsystemResponsibility
arch/x86_64Low-level CPU setup: GDT, IDT, PIC, PIT, syscall entry, boot stub
kernel/coreEntry point, panic handling, Multiboot2 parsing
kernel/procProcesses, scheduler, ELF64 loader, ring-3 transitions
kernel/fsVFS abstraction over ramfs, ext2, and procfs
kernel/ipcPipes and signal delivery
kernel/syscallSyscall dispatch table (Linux x86_64 ABI)
mmPhysical (PMM) and virtual (VMM) memory management
driversVGA text, serial COM1, PS/2 keyboard, TTY, ATA PIO
userspaceMinimal libc and example programs

Continue to the boot flow to see how the kernel comes up, or jump to the memory layout.