GitOS
Loading...
Searching...
No Matches
GitOS

My personal graphical operating system project

Graphical shell

Links

You can access the documentation here.

There is a simple v86-based demo available here!

Note that the speed is not real-time.

Goals

Boot

  • Custom bootloader - GitBoot
    • Loading kernel from ATA drive
    • BIOS memory mapping routine
    • Set VBE to 1024x768x32
    • Load kernel.elf from partition

Kernel

  • Global Descriptor Table
  • Interrupt Descriptor Table and handlers

Drivers

  • Disk driver with streaming support
  • Graphics driver with text mode and VBE support
  • PIC handling routines
  • PS2 keyboard support
  • PS2 mouse support
  • Serial port communication

Formats

  • Support for the ELF executable format

Filesystem

  • File operations and management routines
  • FAT16 filesystem support (w/o writing)
  • Memory-based filesystem
  • Pipe-based filesystem support
  • Path parsing functionality

Memory Management

  • Heap management
  • Paging support
  • Dynamic memory allocation

Task Management

  • Process management functionality
  • Task switching mechanisms
  • Recovering from task crashes
  • Multitasking support
    • Round robin scheduler
  • Process arguments and environment passing

Syscalls

  • Syscall interface
  • File operations support
  • Dynamic memory allocation
  • Executing processes

Userland

  • Developed blank application
  • Graphical shell functionality
    • Drawing background
    • Graphical cursor
    • Compositor
  • C/C++ application support
  • Basic printing to kernel stdio
  • Debugging userland applications