A simple OS kernel for research, teaching, and fun
FreeFreeFree tier
About A simple OS kernel for research, teaching, and fun
Basekernel is a simple operating system kernel designed for research, teaching, and fun. It is not a complete operating system, but a starting point for studying and developing new OS code. It boots on Intel PC-compatible virtual machines in 32-bit protected mode, supporting VESA framebuffer graphics, ATA hard disks, ATAPI optical devices, process management, memory protection, simple graphics, and a basic filesystem. Users can interact via a kernel shell, run user-level programs (e.g., a simple window manager), and expand the system. The project is led by Prof. Douglas Thain at the University of Notre Dame and is licensed under GPL-2.0.
Key Features
32-bit protected mode boot on Intel PC-compatible virtual machines
VESA framebuffer graphics support
ATA hard disk and ATAPI optical device support
Process management and memory protection
Basic filesystem and kernel shell
Simple graphics and window manager example (manager.exe)
Cross-compiler toolchain for non-Linux x86 builds
GPL-2.0 open source license
Pros & Cons
Pros
- Open source with GPL-2.0 license encourages modification and sharing
- Educational: well-documented with a wiki and quick start guide
- Supports essential hardware abstractions (graphics, disks, process management)
- Provides a working kernel shell for interactive experimentation
- Easy to build and run on Linux x86 with QEMU
- Led by an academic expert (Prof. Douglas Thain) with student contributions
Cons
- Not a production-ready system; intended only for learning and research
- Requires cross-compiler setup on non-Linux x86 platforms (e.g., macOS, ARM)
- Limited to 32-bit protected mode (no 64-bit or UEFI support)
- Significant prior knowledge of low-level programming and OS concepts required
- Only boots in virtual machines (no real hardware support mentioned)
Best For
Research and experimentation in operating system designTeaching OS concepts in academic coursesLearning low-level kernel programming and hardware interactionPrototyping new OS features or architectures
FAQ
What is Basekernel?
Basekernel is a simple operating system kernel designed for research, teaching, and fun. It is not a full OS but a starting point for learning and experimenting with kernel development.
What hardware does Basekernel support?
It supports VESA framebuffer graphics, ATA hard disks, ATAPI optical devices, process management, memory protection, simple graphics, and basic filesystem. It boots on Intel PC-compatible virtual machines in 32-bit protected mode.
How do I build and run Basekernel?
On a Linux x86 machine with QEMU, clone the repo, run 'make', and boot with 'qemu-system-i386 -cdrom basekernel.iso'. For other platforms, run './build-cross-compiler.sh' to create a cross-compiler toolchain, then set CROSS_COMPILE=true in Makefile.config and build.
Is Basekernel suitable for production use?
No, it is raw low-level code intended for educational purposes, not for running on a laptop or in production.