A simple OS kernel for research, teaching, and fun logo

A simple OS kernel for research, teaching, and fun

Free
FreeFree tier
Type
Open Source

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.