Skip to content

Sid110307/Mesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mesh

An x86 OS kernel with SMP, paging, and IO, written in C++ and x86 Assembly.

Features

Current

  • x86_64 architecture
  • Limine bootloader
  • UEFI and BIOS support
  • SSE/SSE2 support
  • SMP and AP boot
  • GDT
  • Per-CPU TSS and IST stacks
  • IDT with exceptions and IRQ handlers
  • APIC, LAPIC, and IOAPIC support
  • PCI/ACPI support with RSDP/RSDT/XSDT parsing
  • 4-level paging (4KB/2MB/1GB)
  • Bitmap frame allocator
  • Spinlock
  • Atomic operations
  • Serial (UART) console output
  • Framebuffer text + ANSI color output
  • Keyboard driver (PS/2)
  • Mouse driver (PS/2)
  • LAPIC timer interrupts and sleep functions
  • Kernel panic and stack trace
  • Kernel heap allocator (buddy and slab)
  • Per-CPU data structures
  • Kernel threads
  • Scheduler
  • Virtual memory management

Planned

  • Process management and address spaces
  • Context switching
  • Memory protection and COW

Future (userland)

  • Syscall interface
  • ELF loader
  • VFS layer
  • Filesystem (FAT32, ext2, etc.)
  • PCI enumeration and drivers
  • Storage drivers (AHCI, NVMe, etc.)
  • USB drivers
  • Better terminal (scrolling, cursor, line editing, etc.)
  • Framebuffer graphics primitives (2D/3D drawing, font rendering, etc.)
  • Window compositor
  • Networking (TCP/IP stack, Ethernet drivers, etc.)
  • IPC event system
  • SMP task scheduling and load balancing
  • Power management (ACPI S3 sleep, etc.)
  • RTC/CMOS clock support

Requirements

Installing Limine

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

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

An x86 OS kernel with SMP, paging, and IO, written in C++ and x86 Assembly.

Resources

License

Stars

Watchers

Forks

Contributors