Skip to content
/ osdev Public

64-bit UNIX hobby operating system with a UEFI bootloader

License

Notifications You must be signed in to change notification settings

aar10n/osdev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hobby Operating System

This is a modern 64-bit UEFI based UNIX-like hobby operating system. It has been an ongoing project for a while and I treat it like a sandbox to learn about operating system design and other low-level concepts. It is not yet fully working (no userspace or shell), but I have been slowly working towards the goal of running doom in userspace.

Currently, it has a working bootloader, memory management, scheduler, usb support (hid, mass storage), and a few other things. I read a lot of source code from other projects while working on this so maybe this could be useful to someone else.

β”œβ”€β”€ boot          uefi edk2 bootloader
β”œβ”€β”€ drivers       external device drivers
β”œβ”€β”€ fs            filesystem types
β”‚  └── ramfs        generic in-memory filesystem driver 
β”œβ”€β”€ include       header files
β”œβ”€β”€ kernel        core kernel code
β”‚  β”œβ”€β”€ acpi         acpi drivers
β”‚  β”œβ”€β”€ bus          pci & pcie drivers
β”‚  β”œβ”€β”€ cpu          cpu related code and assembly routines
β”‚  β”œβ”€β”€ debug        debugging facilities (DWARF, stacktrace, etc)
β”‚  β”œβ”€β”€ device       apic, ioapic and other related drivers
β”‚  β”œβ”€β”€ gui          graphics code
β”‚  β”œβ”€β”€ mm           memory management (physical and virtual)
β”‚  β”œβ”€β”€ sched        scheduler and scheduling algorithms
β”‚  β”œβ”€β”€ usb          usb and usb device drivers
β”‚  └── vfs          virtual filesystem code
β”œβ”€β”€ lib           data structure, algorithm and other useful libraries
β”œβ”€β”€ sbin          system binaries
β”œβ”€β”€ scripts       build related scripts and support files
β”œβ”€β”€ third-party   third party dependencies
└── toolchain     toolchain build files and patches 

Toolchain

To build the full toolchain from source:

make -C toolchain all -j$(nproc)

About

64-bit UNIX hobby operating system with a UEFI bootloader

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published