AquilaOS is a UNIX-like Operating System that started in 2016. Based on another OS I developed and many trials and failures since 2012, it finally came to light.
The goal behind AquilaOS is to make a UNIX-like OS adhering to a quote by K. Thompson in UNIX Implementation.
The kernel is the only UNIX code that cannot be substituted by a user to his own liking. For this reason, the kernel should make as few real decisions as possible. This does not mean to allow the user a million options to do the same thing. Rather, it means to allow only one way to do one thing, but have that way be the least-common divisor of all the options that might have been provided.
From the start, AquilaOS focused on being as transparent and architecture-agnostic as possible. To even raise the challenge, strict compliance with C standard (C99) is a must which allows compiling with "-O3" (strict optimization in GCC) and "-Wall -Wextra -Werror". Currently AquilaOS v0.0.1a is released and awaiting testers and contributors.
Features
AquilaOS is mostly written in C with a few assembly parts when absolutely needed. It consists of a monolithic kernel and a set of user utilities.
Kernel Features:
- Monolithic kernel
- Supports x86 archticture (all arch dependent code is seperate from the kernel)
- Multitasking and Multithreading using POSIX threads
- Supports ELF format
- Signals
- Blocking and Non-blocking I/O
- Sessions, process groups and job control
- Virtual file system (VFS) with support for initramfs, tmpfs, devfs, devpts, procfs and ext2
- Devices subsystem using devices files with major/minor numbers
- Supported devices include: PS/2 Keyboard, IDE/ATA Harddisk, Framebuffer device (fbdev, Linux API) with VESA 3.0, 8250 UART
- Memory management subsystem (with demand paging and copy-on-write)
System Utilities:
- aqbox: several UNIX/POSIX utilities in one binary (similar to BusyBox)
- fbterm: Framebuffer based terminal (with wallpaper) with VT100 emulation using libvterm
- lua: Lightweight, multi-paradigm programming language
- kilo: Simple text editor for ANSI/VT100 terminal
- tcc: Tiny C Compiler by Fabrice Bellard (Who made Qemu and FFmpeg)
- nuklear: Immediate mode graphics library - experimental
The source code is released under GPLv3 licence and hosted on Github, https://github.com/mohamed-anwar/Aquila. Make sure to check it out and follow up with suggestions, or better yet, contributions.