-
Notifications
You must be signed in to change notification settings - Fork 30
Build Instructions
To build Aquila you'll need to install a few packages.
-
texinfo
for newlib -
grub-pc-bin
for GrUB bootloader in iso image (you do not need that if you don't intend to build an iso image) -
xorriso
for 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.iso
That'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} kernel
where {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 kernel
CONFIG
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