Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kernel Development

Kernel development project that models core OS subsystems in C. This repository is structured like a teaching kernel but runs as a user-space simulation so it can be built and tested on any Unix-like machine.

Highlights

  • Process management with lightweight process objects and lifecycle helpers.
  • Thread scheduling with a runnable queue and explicit thread states.
  • Synchronization primitives (mutex) with contention reporting.
  • Virtual memory model with page-fault handling, protection checks, and file-backed mappings.
  • Virtual file system interface with a simple in-memory node table used for paging.
  • Page allocator with fixed-size page frames for deterministic tests.

Project Structure

  • src/kernel.c entry point and system initialization
  • src/proc/process.c process model
  • src/sched/scheduler.c cooperative scheduler
  • src/sync/mutex.c mutex primitive
  • src/vm/vm.c virtual memory subsystem with file-backed mapping
  • src/vfs/vfs.c virtual file system layer
  • src/mm/page.c page allocator
  • include/ public headers
  • docs/ design notes and usage
  • tests/ unit tests for core subsystems

Build and Run

make
./bin/kernel_sim

Run Tests

make test

Debugging with GDB

gdb ./bin/kernel_sim
(gdb) break vm_handle_page_fault
(gdb) run

Docs

  • docs/architecture.md
  • docs/build.md
  • docs/testing.md
  • docs/gdb.md

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages