"No matter where you are, everyone is always connected."
LainOS (Abyss) is an experimental RISC-V kernel written in C. It features a temporal fracture scheduler and a predictive shell with Markov chain-based command prediction.
- Temporal Fracture Scheduler: Process scheduling based on timeline priorities
- Predictive Shell: Tab completion using Markov chains that learn from your commands
- Memory Management: Physical and virtual memory management with paging
- Process Management: Full process lifecycle with fork/exec/exit
- Virtual File System: In-memory filesystem with basic operations
- System Calls: Standard Unix-like system call interface
Requirements:
- riscv64-unknown-elf-gcc
- riscv64-unknown-elf-binutils
- qemu-system-riscv64
make clean
makemake runTo exit QEMU, press Ctrl+A then X.
make debugIn another terminal:
riscv64-unknown-elf-gdb build/bin/kernel.elf
(gdb) target remote :1234
(gdb) continuehelp- Show available commandsneofetch- Display system informationps- List running processeskill <pid>- Terminate a processmem- Show memory statisticsclear- Clear the screenecho <text>- Print textascend- Trigger system state dump
graph TD
subgraph Hardware
QEMU[QEMU RISC-V]
end
subgraph AbyssCore
START[start.S] --> KMAIN[kmain.c]
KMAIN --> HEAP[Heap Allocator]
KMAIN --> PAGING[Page Tables]
end
subgraph Subsystems
KMAIN --> SCHEDULER[Scheduler<br/>← temporal]
KMAIN --> VFS[NeuroVFS]
KMAIN --> SHELL[Predictive Shell]
KMAIN --> EGO[Ego Containers]
end
subgraph Tools
SHELL --> DECOMPILER[Live Disassembler]
SHELL --> PATCHER[Hot Patcher]
SHELL --> ASCENSION[Ascension Trigger]
end
subgraph Drivers
KMAIN --> QUANTUM[Quantum Driver]
QEMU --> UART[UART @ 0x10000000]
end
SCHEDULER -- "creates / schedules" --> PROCESSES[Processes]
PAGING -- "maps" --> PROCESSES
VFS -- "files" --> FILESYSTEM["/home/lain"]
UART -->|"characters in"| SHELL
SHELL -->|"characters out"| UART
abyss/
├── arch/riscv64/ RISC-V specific code
├── kernel/ Core kernel (processes, scheduler, syscalls)
├── mm/ Memory management
├── fs/ Filesystem
├── drivers/ Device drivers
├── shell/ Shell and Markov predictor
├── lib/ Kernel library functions
└── init/ Kernel initialization
HA-HA-HA-HA-HA.
