Skip to content

assembler-0/VoidFrame

Repository files navigation

[VoidFrame] - a syscall-less monolithic kernel 💫

A fast, simple, secure 64-bit monolithic written in C and assembly. With modern capabilities.



Status

License

Version

Build

About

VoidFrame is a 64-bit syscall-less monolithic kernel (sounds weird and contradicting right?) designed for the x86_64 architecture written in C and assembly (nasm). This kernel was intended and targeted for people who want to learn about operating systems and want to make a piece of their own. As the designer of this kernel, I wanted to make something that is simple, fast, secure and easy to understand. Which obviously means that it is not a perfect kernel. And it breaks all the time. But I have tried my hardest to bring many security features to the kernel. If you were to come across a bug, feel free to open an issue. Fork the repo and make a pull request. It would be amazing if you could contribute to this project!

Prerequisites

  • meson >= 1.0.0
  • ninja >= 1.11
  • clang >= 18.0.0 (or any C-compliant compiler)
  • nasm >= 2.16
  • qemu >= 7.0.0 (minimum, failed to run on Limbo emulator (v5.x))
  • mkfs.fat (dosfstools)
  • mkfs.ext2
  • grub-mkrescue
    • Note: depending on your distro, grub-mkrescue may require xorriso and mtools packages.

Quickstart

Full development setup

git clone https://github.com/assembler-0/VoidFrame.git
cd VoidFrame
python scripts/vfconfig.py
meson setup build
cd build
ninja
ninja img
ninja extra-img
ninja run

Minimal setup

git clone https://github.com/assembler-0/VoidFrame.git
cd VoidFrame
meson setup build -Dexclude_extra_objects=true
cd build
ninja
ninja runmin

Features

Architecture

  • x86_64
  • AArch64
  • MIPS
  • SPARC
  • RISC-V (RV64)
  • Power (modern)

Boot

  • Multiboot2
  • GRUB (BIOS)
  • GRUB (UEFI)
  • GRUB (Hybrid)
  • Vesa (VBE)
  • Multiboot2 Info parsing

Core

  • Multi-tasking (MLFQ)
  • Per-process authentication check (Astra)
  • Dynamic ML-inspired PIT frequency scaling (DynamoX)
  • Virtual Memory (canonical)
  • Physical Memory
  • Memory Pool
  • AVX2/SSE2 accelerated memory operations
  • Memory & user protection
  • Memory canaries, guard pages
  • Per-process memory checks (Cerberus)
  • Stack guard
  • Stack trace
  • Heap (Class-based)
  • Paging
  • Interrupts
  • Process Management
  • Locks (MCS/RW/norm)
  • Atomics
  • IPC
  • Compositor
  • Embedded shell
  • Builtin Editor
  • ELF64 loader
  • PE32+/COFF loader
  • a.out loader

Filesystems

  • FAT1x
    • Read
    • Write
    • Create
    • Delete
    • List
  • EXT2
    • Read
    • Write
    • Create
    • Delete
    • List
  • VFRFS (VoidFrame RAMFS)
    • Read
    • Write
    • Create
    • Delete
    • List
  • ISO9660 (RO)
    • Read
    • List
  • VFS (Virtual File System)
    • Full abstraction
    • EXT2
    • FAT1x
    • VFRFS
    • ISO9660

Drivers

  • Network
    • RTL8139 (PCI)
    • E1000 (PCI)
  • Sound
    • SB16 (PCI)
    • Generic PC speaker
  • USB
    • xHCI
  • VirtIO
    • Block
  • Graphics
    • Vesa (VBE)
    • VMWare SVGA II
    • VGA text mode
  • Timer
    • PIT
    • PIC
    • APIC (not working)
    • RTC
  • Generic
    • PCI
    • ISA
    • xHCI
    • Serial
    • PS/2
    • LPT
  • Storage
    • PATA (IDE)
    • VirtIO Block
    • AHCI