Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microkernel OS — Minimal Simulation

Project Description

Design and implement a microkernel-based operating system with minimal kernel functionality and user-space services. This repo provides a working IPC router (the "kernel") plus three user-space services to demonstrate microkernel separation, message passing, fault isolation, and IPC overhead.

Structure

  • docs/: project requirements and design notes
  • include/: public headers for kernel and services
  • src/kernel/: kernel skeleton and IPC interface
  • src/services/: example user-space services (console, fs, network)
  • build/: build outputs
  • Makefile: build targets for kernel and services

Quick start

To build the kernel, services, and CLI tools (requires a C toolchain):

make
make tools

This creates binaries in build/. See docs/requirements.md for project requirements.

Run the microkernel + services:

./build/kernel > /tmp/kernel.log 2>&1 &
./build/console_service > /tmp/console.log 2>&1 &
./build/fs_service > /tmp/fs.log 2>&1 &
./build/net_service > /tmp/net.log 2>&1 &

Use the CLI to send IPC requests or benchmark:

./build/bench_client console "hello"
./build/bench_client fs "readme.txt"
./build/bench_client net "ping"
./build/bench_client bench 1000
./build/bench_client monolithic 1000

Fault isolation demo:

kill <console_service_pid>
./build/bench_client console "hello"  # reports kernel error
./build/bench_client fs "readme.txt"  # still works
./build/console_service &

Web GUI

There is a minimal web GUI that runs in WSL without external dependencies. It now includes a styled layout with connection status. Start the kernel and then the GUI server:

make kernel
./build/kernel > /tmp/kernel.log 2>&1 &
python3 src/gui/server.py &
# then open http://localhost:8000/ in your browser

Use the GUI to run IPC round-trip benchmarks and view results. Ensure the kernel and console service are running first.

GUI screenshot

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages