BeskarOS is a basic kernel for the x86_64 architecture.
The kernel is a monolithic x86_64 kernel written in pure Rust (with the exception of a single x86 ASM file for bootstrapping APs). I am not planning on writing a Linux-like kernel, as I am mainly focusing on learning the basics.
- Arch
- aarch64
- x86_64
- AP startup
- APIC
- LAPIC
- IOAPIC
- CPUID
- SIMD
- AVX
- FPU/SSE
- GDT/TSS
- Interrupts
- Randomness
- Systemcalls
- Drivers
- ACPI
- DSDT (partial)
- Minimal AML (
_S5) - Full AML
- Minimal AML (
- FADT (partial)
- HPET
- MADT
- MCFG
- RSDT/XSDT
- DSDT (partial)
- NIC
- Intel e1000e
- PCI
- PCI/PCI-X
- MSI
- PCIe
- MSI-X
- Devices
- PCI/PCI-X
- PS/2
- Keyboard
- Mouse
- Storage
- AHCI
- NVMe
- Time
- HPET
- x86_64
- APIC Timer
- TSC
- USB
- Controllers
- EHCI
- xHCI (partial)
- USB
- USB 2
- USB 3
- Devices
- Generic Keyboard
- Controllers
- ACPI
- Memory
- Paging
- Physical/Virtual Allocators
- Address spaces / VMM
- Network
- Network stack
- L2
- Ethernet
- L3
- ARP
- IP
- IPv4
- IPv6
- L4
- ICMP
- UDP
- TCP
- L2
- Services
- DHCP
- DNS
- Sockets
- Network stack
- Processes
- Scheduling
- Context save/switch
- Priority handling
- Thread parking
- Futexes
- User space
- Binary loading
- ELF
- IPC
- Message Passing
- Shared Memory
- Scheduling
- Storage
- Partitions
- MBR
- GPT
- FS
- Device files
- Ramfs
- FAT12/16/32
- ext2
- ext4
- VFS
- Partitions
- Video
- Character rendering
- Logging
- Graphics API
- GPU drivers (🤠)