Repository navigation
Build Instructions
To build Aquila you'll need to install a few packages.
-
texinfofor newlib -
grub-pc-binfor GrUB bootloader in iso image (you do not need that if you don't intend to build an iso image) -
xorrisofor bootable iso image (you do not need that if you don't intend to build an iso image)
You may use the following command to install the required packages
- Ubuntu:
sudo apt install texinfo grub-pc-bin xorriso- Fedora
sudo dnf install texinfo grub-pc-bin xorriso- Arch Linux
sudo pacman -S texinfo grub libisoburn- Please edit this page to add instructions for other distros.
I'll assume you've cloned the repository and cd-ed into it.
To build the dependencies for Aquila use the following commands:
cd build-tools
bash build.sh
cd ..NOTE: This will download a few relatively large packages, the process is not recoverable on failure, make sure your connection can withhold this process.
If you don't know what you need to build, this is probably it. To build a bootable iso image, use the following command (in the top directory):
make aquila.isoThat's it! You should now find aquila.iso in the top directory. Have fun with it!
If you want to build the kernel only without producing an iso image, you can run
make CONFIG={config file} kernelwhere {config file} is one of the configuration files listed in kernel/configs without .mk extension, for example, for i686-pc the command would be
make CONFIG=i686-pc kernelCONFIG is a mandatory argument for building the kernel. You can then find the kernel image in kernel/arch/{ARCH}/kernel.elf. You can then load the kernel with any multiboot compliant bootloader.
- Why do we need to build a cross-compiler?
The compiler packaged in your system most likely targets your system (e.g. Linux) and does a few things that depend on your system (e.g. linking with libc). You can use your system GCC but you'd need to pass a few extra flags and modify some other things.
- Build Instructions
- Boot Process
- CPU Initialization
- Memory Management
- Processes
- Threads
- Scheduler
- System Calls
- Devices Manager
- Virtual Filesystem