.**.
.=###.
.==.##%
.===.###
.=====###.
.======.###
.======..###.
.===. ###.
.***
A minimal x86 operating system kernel written in C and Assembly
Features β’ Getting Started β’ Installation β’ Usage β’ Documentation β’ Contributing
AuriOS is a simple, educational operating system kernel built from scratch for x86 architecture. It's designed to help understand the fundamentals of operating system development, including memory management, interrupt handling, and hardware interaction.
This project demonstrates low-level system programming concepts and serves as a learning platform for OS development enthusiasts.
-
π§ Core System Components
- Global Descriptor Table (GDT) initialization
- Interrupt Descriptor Table (IDT) with ISR handlers
- Programmable Interrupt Controller (PIC) remapping
- Custom bootloader
-
πΎ Memory Management
- Basic memory initialization
- Dynamic memory allocation (malloc)
- Memory utility functions
-
βοΈ Hardware Drivers
- Keyboard driver with input handling
- Programmable Interval Timer (PIT)
- VGA text mode terminal
-
π₯οΈ User Interface
- Interactive shell
- Terminal with color support
- Command-line interface
-
π οΈ Development Tools
- Comprehensive Makefile
- QEMU integration for testing
- ISO generation for bootable media
Thank to all the contributors, you are the flame burning in our heart β€οΈ
| Profile | GitHub | Role |
|---|---|---|
| nymii | Founder & MaintainerΒ | |
| Maddie | Co-Founder & Maintainer | |
| pepedinho | Co-Maintainer | |
| switchcodeur | Contributor | |
| proxzr | Contributor | |
| Aomitsu | Contributor | |
| Ivy-js | Contributor | |
| gittihub-jpg | Contributor | |
| Jesuiskoriel | Contributor | |
| Kudasai | Contributor & Bug Hunter | |
| frenchcast1234 | Contributor |
Before building AuriOS, ensure you have the following tools installed:
- Cross-compiler:
i686-elf-gcc(GCC configured for i686-elf target) - Assembler:
nasm(Netwide Assembler) - Linker:
i686-elf-ld - Emulator:
qemu-system-i386for arm - orqemu-system-x86_64for x86 - Build tools:
make,grub-mkrescue(for ISO creation) - Additional:
xorriso,mtools(for ISO generation)
git clone https://github.com/Auri-OS/AuriOS.git
cd AuriOSmake installNote: For detailed installation instructions for your platform, see Requirements & environment from the documentation.
make allThis will:
- Compile all C source files
- Assemble all assembly files
- Link everything into a kernel binary
- Generate a bootable ISO image
make runβ― make
======================= AuriOS Makefile =======================
Installation (requires admin rights):
make install - Install dependencies (cross-platform)
Compilation targets:
make all - Build everything
make iso - Build OS binary and create bootable ISO
make iso-debug - Build bootable ISO with Test Mode enabled (serial output)
Execution targets:
make run - Build and run in QEMU (x86_64)
make clean - Remove all build artifacts
===============================================================Once AuriOS boots, you'll see the initialization sequence followed by an interactive shell. The shell supports keyboard input, command history and tab-completion.
| Command | Description |
|---|---|
help |
Show the list of commands |
fetch |
Show information about AuriOS |
clear |
Clear the terminal (also CTRL + L) |
uptime |
Show uptime since boot (-h for options) |
memdump |
Print the PMM bitmap to the log |
memtest |
Allocate/free on the kernel heap (self-test) |
mia |
Force a page fault for MMU testing |
mmap |
Print current virtual memory mappings |
peek |
Read and print memory at a hex address |
poke |
Write a hex byte at a hex address |
echo |
Repeat your input to the console |
setprompt |
Set the shell prompt user/os (setprompt <user> <os>) |
reboot |
Restart the machine |
exit |
Shut the machine down (QEMU/Bochs) |
crash |
Freeze the machine (fun command) |
AuriOS/
βββ scripts/
βΒ Β βββ install.sh
βββ src/
βΒ Β βββ boot/
βΒ Β βΒ Β βββ loader.s
βΒ Β βββ commands/
βΒ Β βΒ Β βββ crash.c
βΒ Β βΒ Β βββ echo.c
βΒ Β βΒ Β βββ fetch.c
βΒ Β βΒ Β βββ help.c
βΒ Β βΒ Β βββ memdump.c
βΒ Β βΒ Β βββ memtest.c
βΒ Β βΒ Β βββ mia.c
βΒ Β βΒ Β βββ peek.c
βΒ Β βΒ Β βββ poke.c
βΒ Β βΒ Β βββ poweroff.c
βΒ Β βΒ Β βββ reboot.c
βΒ Β βΒ Β βββ setprompt.c
βΒ Β βΒ Β βββ uptime.c
βΒ Β βββ cpu/
βΒ Β βΒ Β βββ gdt.c
βΒ Β βΒ Β βββ gdt_flush.asm
βΒ Β βΒ Β βββ idt.c
βΒ Β βΒ Β βββ idt_flush.asm
βΒ Β βΒ Β βββ irq.c
βΒ Β βΒ Β βββ isr.c
βΒ Β βΒ Β βββ isr_stubs.asm
βΒ Β βΒ Β βββ pic.c
βΒ Β βββ drivers/
βΒ Β βΒ Β βββ framebuffer.c
βΒ Β βΒ Β βββ keyboard.c
βΒ Β βΒ Β βββ serial.c
βΒ Β βΒ Β βββ timer.c
βΒ Β βββ include/
βΒ Β βΒ Β βββ ansi.h
βΒ Β βΒ Β βββ colors.h
βΒ Β βΒ Β βββ commands.h
βΒ Β βΒ Β βββ fetch.h
βΒ Β βΒ Β βββ font.h
βΒ Β βΒ Β βββ framebuffer.h
βΒ Β βΒ Β βββ gdt.h
βΒ Β βΒ Β βββ history.h
βΒ Β βΒ Β βββ idt.h
βΒ Β βΒ Β βββ integer.h
βΒ Β βΒ Β βββ io.h
βΒ Β βΒ Β βββ isr.h
βΒ Β βΒ Β βββ keyboard.h
βΒ Β βΒ Β βββ log.h
βΒ Β βΒ Β βββ memory.h
βΒ Β βΒ Β βββ mm.h
βΒ Β βΒ Β βββ multiboot.h
βΒ Β βΒ Β βββ pic.h
βΒ Β βΒ Β βββ serial.h
βΒ Β βΒ Β βββ shell.h
βΒ Β βΒ Β βββ string.h
βΒ Β βΒ Β βββ terminal.h
βΒ Β βΒ Β βββ timer.h
βΒ Β βΒ Β βββ types.h
βΒ Β βββ kernel/
βΒ Β βΒ Β βββ ainsi.zig
βΒ Β βΒ Β βββ history.c
βΒ Β βΒ Β βββ kernel.c
βΒ Β βΒ Β βββ log.c
βΒ Β βΒ Β βββ shell.c
βΒ Β βΒ Β βββ terminal.c
βΒ Β βββ lib/
βΒ Β βΒ Β βββ integer.c
βΒ Β βΒ Β βββ memory.c
βΒ Β βΒ Β βββ string.c
βΒ Β βββ mm/
βΒ Β βββ mmu.zig
βΒ Β βββ pmm.zig
βββ tests/
βΒ Β βββ integrations
βΒ Β βββ error_handling.yml
βΒ Β βββ memory_tools.yml
βΒ Β βββ shell.yml
βΒ Β βββ timer_flags.yml
βΒ Β βββ walkman.yaml
βββ LICENSE
βββ linker.ld
βββ Makefile
βββ README.md
βββ walkman.yaml
Check out our full documentation !
- Requirements & environment - Detailed setup instructions
- Contributing Guidelines - How to contribute
- Building & running - Development environment setup
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please read Contributing Guidelines for details on our code of conduct and development process.
This project is licensed under the MIT License - see the LICENSE file for details.
- The OSDev community for extensive documentation
- The creators of GRUB for the bootloader
- All contributors who have helped improve AuriOS
Project Link: https://github.com/Auri-OS/AuriOS
Discord Server: AuriOS Discord
X: @tryAuriOS
Website: auri-os.org
Documentation: auri-os.org/docs
Taskboard: @Auri-OS 's Todo-List !
Made with β€οΈ by the AuriOS Team
β Star this repository if you find it helpful!