Skip to content

Sid110307/Mesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mesh

A lightweight OS kernel with SMP, paging, and basic IO, written in C++ and x86 Assembly.

Features

Current

  • x86_64 architecture
  • Limine bootloader
  • SMP and AP boot
  • GDT, per-CPU TSS, and IST
  • IDT with exceptions and interrupts
  • LAPIC and APIC support
  • Spinlock
  • Atomic operations
  • 4-level paging (4KB/2MB/1GB)
  • Thread-safe page map/unmap
  • Bitmap frame allocator
  • Serial (UART) console output
  • Framebuffer text + ANSI color output

Planned

  • Keyboard driver (PS/2, USB)
  • PIT Timer interrupts
  • Kernel panic and stack trace
  • Scheduler
  • Virtual memory management
  • Memory protection and COW

Future

  • ELF loader
  • Filesystem (FAT32, ext2, etc.)
  • PCI/ACPI support
  • Basic network stack (TCP/IP)
  • IPC/event system
  • Multitasking
  • Userspace

Requirements

Installing Limine

$ git clone --branch=v9.x https://github.com/limine-bootloader/limine.git
$ cd limine
$ ./bootstrap
$ ./configure
$ make
$ sudo make install
$ git clone --branch=v9.x-binary https://github.com/limine-bootloader/limine.git limine-binary
$ cd limine-binary
$ make
$ sudo make install

Quick Start

  • Clone the repository
$ git clone https://github.com/Sid110307/Mesh.git
$ cd Mesh
  • Build and run on QEMU
$ ./run.sh

License

MIT

About

A lightweight OS kernel with SMP, paging, and basic IO, written in C++ and x86 Assembly.

Resources

License

Stars

Watchers

Forks