Skip to content

Latest commit

 

History

History
39 lines (35 loc) · 1.18 KB

README.md

File metadata and controls

39 lines (35 loc) · 1.18 KB

maiOS

Why

This project exists for the sole purpose of learning about low-level programming and the fundamentals of operating systems. This project was ultimately inspired by the SerenityOS project but will be much less grand in scale.

Goals

These are some of the long term goals that I'd like the project to eventually achieve.

  • Unix like terminal
  • Ability to switch between kernel and user level privelage modes
  • Basic file system (probably FAT)
  • Driver modules for qemu "hardware"
  • Scheduler
    • Processes and threads
    • Maybe multi-core utilization
  • Basic suite of built in software like cat, grep, top, etc
  • Basic networking capabilites
    • Basic ping program at minimum
    • Maybe http/s capabilities, i.e. curl
  • Maybe get gcc working within OS

Tasks

  • Boot from GRUB
  • Switch to 64-bit long mode
  • IO
  • Basic stdlib
  • Interrupts
  • Dynamic paging
  • Memory allocation
  • FPU/SSE
  • Basic terminal
  • Timers
  • Virtual file system
  • Basic file system driver
  • Process scheduler

Building

See Building for more information.

License

BSD-3-Clause License