X
XXX
XXXXX
X XXXXX
XXX XXXXX
XXXXX XXXXX
XXXXXX XXXXX
XXXXXX XXXXX
XXXXXX XXXXX
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
<<<<<<< develop
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-i386orqemu-system-x86_64 - Build tools:
make,grub-mkrescue(for ISO creation) - Additional:
xorriso,mtools(for ISO generation)
make install-fedoramake install-archmake install-debianbrew install i686-elf-gcc nasm qemu xorrisoNote: For detailed installation instructions for your platform, see docs/INSTALLATION.MD
git clone https://github.com/Auri-OS/AuriOS.git
cd AuriOS=======
## Installation :
if you are on x86 :
>>>>>>> v0.2.0
```bash
make all
<<<<<<< develop
This will:
- Compile all C source files
- Assemble all assembly files
- Link everything into a kernel binary
- Generate a bootable ISO image
make run # For x86_64 QEMU
make run32 # For i386 QEMU
make run-mac # For macOS (direct boot)Once AuriOS boots, you'll see the initialization sequence followed by an interactive shell. The shell supports basic commands and keyboard input.
make all # Build everything
make iso # Generate bootable ISO
make run # Build and run in QEMU (x86_64)
make run32 # Build and run in QEMU (i386)
make run-mac # Build and run on macOS
make clean # Remove all build artifacts
make help # Show all available targetsAuriOS/
├── src/
│ ├── boot/ # Bootloader code
│ │ └── loader.s # Assembly bootloader
│ ├── cpu/ # CPU-related code
│ │ ├── gdt.c # Global Descriptor Table
│ │ ├── idt.c # Interrupt Descriptor Table
│ │ ├── isr.c # Interrupt Service Routines
│ │ ├── irq.c # IRQ handlers
│ │ └── pic.c # PIC configuration
│ ├── drivers/ # Hardware drivers
│ │ ├── keyboard.c # Keyboard driver
│ │ └── timer.c # Timer driver
│ ├── kernel/ # Kernel core
│ │ ├── kernel.c # Main kernel entry
│ │ ├── shell.c # Interactive shell
│ │ └── terminal.c # Terminal output
│ ├── lib/ # Standard library functions
│ │ ├── malloc.c # Memory allocation
│ │ ├── memory.c # Memory utilities
│ │ └── string.c # String operations
│ └── include/ # Header files
├── build/ # Build artifacts
├── output/ # Final binaries and ISO
├── docs/ # Documentation
├── linker.ld # Linker script
└── Makefile # Build configuration
- Installation Guide - Detailed setup instructions
- Bootloader Documentation - How the bootloader works
- Contributing Guidelines - How to contribute
- Setup & Installation - 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.md for details on our code of conduct and development process.
- ✅ Basic kernel initialization
- ✅ GDT and IDT setup
- ✅ Keyboard driver
- ✅ Timer driver
- ✅ Interactive shell
- ✅ Memory management basics
- Virtual memory management
- File system support (FAT32)
- Multi-tasking and process scheduling
- System calls interface
- Extended driver support (ATA, VFS)
- More shell commands
- GUI framework
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
Made with ❤️ by the AuriOS Team
⭐ Star this repository if you find it helpful!
dont forget to look at the requirement in /docs to install every package
v0.2.0