Skip to content

Latest commit

Β 

History

287 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 AuriOS

          .**.
         .=###.
        .==.##%
       .===.###
      .=====###.
     .======.###
    .======..###.
   .===.     ###.
             .***

A minimal x86 operating system kernel written in C and Assembly

License Version Build

Features β€’ Getting Started β€’ Installation β€’ Usage β€’ Documentation β€’ Contributing


πŸ“– About

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.

✨ Features

  • πŸ”§ 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

❀️ Contributors

Thank to all the contributors, you are the flame burning in our heart ❀️

Profile GitHub Role
nymiitechtips nymii Founder & MaintainerΒ 
llmaddie 2 Maddie Co-Founder & Maintainer
pepedinho pepedinho Co-Maintainer
switchcodeur switchcodeur Contributor
proxzr proxzr Contributor
Aomitsu Aomitsu Contributor
ivy-js Ivy-js Contributor
gittihub-jpg gittihub-jpg Contributor
jesuiskoriel Jesuiskoriel Contributor
kudasaixc Kudasai Contributor & Bug Hunter
frenchcast1234 frenchcast1234 Contributor

πŸš€ Getting Started

Prerequisites

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-i386 for arm - or qemu-system-x86_64 for x86
  • Build tools: make, grub-mkrescue (for ISO creation)
  • Additional: xorriso, mtools (for ISO generation)

πŸ”¨ Installation

1. Clone the Repository

git clone https://github.com/Auri-OS/AuriOS.git
cd AuriOS

2. Quick Install Dependencies

Cross Platform install :

make install

Note: For detailed installation instructions for your platform, see Requirements & environment from the documentation.

3. Build the Kernel

make all

This will:

  • Compile all C source files
  • Assemble all assembly files
  • Link everything into a kernel binary
  • Generate a bootable ISO image

4. Run in QEMU

make run

Available Make Targets

❯ 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

===============================================================

πŸ“š Usage

Once AuriOS boots, you'll see the initialization sequence followed by an interactive shell. The shell supports keyboard input, command history and tab-completion.

Available shell commands

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)

πŸ“ Project Structure

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

πŸ“– Documentation

Check out our full documentation !

🀝 Contributing

Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please read Contributing Guidelines for details on our code of conduct and development process.

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • The OSDev community for extensive documentation
  • The creators of GRUB for the bootloader
  • All contributors who have helped improve AuriOS

πŸ“§ Contact

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!

About

A from scratch Kernel and Operating System based on privacy.

Topics

Resources

Stars

72 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages