Skip to content

brymer-meneses/nimble-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NimbleOS

Nimble
adjective
Quick and light in movement in action; agile

NimbleOS, is a work in progress operating system made from scratch using C++, it is an attempt to understand the inner workings of an operating system, by making one from scratch.

Progress

  • Interrupts
  • Graphics
    • Print strings to the screen
    • Window Management
  • Custom Testing Framework (inspired by GTest)
  • Serial Output
  • Robust Logger
  • Use APIC instead of PIC
  • Keyboard Support
  • Memory Management
    • Physical Memory Manager (Bitmap for now)
    • Virtual Memory Manager (Bump Allocator for now)
    • Heap Allocation (malloc and friends)
      • Implement Block Coalescing
  • Stack Trace (with demangling)!
  • Kernel STL
    • Vector
    • Linked List
    • Spin Mutex
  • Scheduler
  • Virtual File System
    • Ext2
  • NVMe Driver
  • Basic Shell
  • Ports
    • Doom
    • GCC
    • Cargo
    • Vim

Building

Currently, this project can only be built using clang++ with version >= 16.0.6.

make <run|build> MODE=<debug|test|release>

Invoking make, will default to

make run MODE=debug

About

[WIP] Operating System from scratch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published