alma is a toy kernel written in C++ for x86_64 machines with the mere purpose of learning OS development
- f. Sustancia o parte principal de cualquier cosa.
Note: GIF quality is vastly reduced and native executions look clear
alma build system | |
---|---|
|
alma kernel | |
---|---|
|
alma bootloader | |
---|---|
|
Install qemu:
Ubuntu:
apt install qemu-system-x86 qemu-system-gui
Arch Linux:
pacman -S qemu qemu-arch-extra
Find a build to test https://ls.ecomaikgolf.com/alma/builds/
Download a build with wget:
wget https://ls.ecomaikgolf.com/alma/builds/CHANGEME.tar.gz
tar xf CHANGEME.tar.gz
cd CHANGEME
qemu-system-x86_64 -machine q35 -cpu qemu64 -m 256M -bios bios.bin -netdev user,id=user.0 -device rtl8139,netdev=user.0,mac=ca:fe:c0:ff:ee:00 -object filter-dump,id=f1,netdev=user.0,file=log.pcap -boot d -cdrom alma.iso
If you want to run it in real hardware, flash it to a USB device:
sudo dd bs=4M if=alma.iso of=/dev/CHANGEME conv=fdatasync status=progress
Remember that you must have certain hardware for it to work (PS2 keyboard, RTL8139 NIC, PCIe...). Even with that, running in real hardware is a dark dark place... things can go wrong.
Note: Instructions tested on Ubuntu 20.04
apt install nasm iasl cmake make qemu-system-x86 qemu-system-gui git uuid-dev python python3-distutils bash texinfo bison flex build-essential mtools
make -C toolchain/
cmake -B build
or cmake -B build -GNinja
make -C build run
or ninja -C build run
git@github.com:ecomaikgolf/alma.git
, https://github.com/ecomaikgolf/alma.git
git@gitlab.com:ecomaikgolf/os-dev.git
, https://gitlab.com/ecomaikgolf/os-dev.git
git@ecomaikgolf.com:alma.git
Please explain them to me: me ๐๐ ecomaikgolf ๊ฯ๐ c0m
Take into acccount this is a Bachelor Final Project and has been developed under the pressure of a deadline among other subjects. Some things could be improved, for example, with better (and more complex) data structures, but it's not the goal of the project.
Q: Muh tons of dependencies
A: I'm compiling binutils, gdb, edk2 and posix-uefi from source
Q: 6.31GB VM
A: I can't do more. Xubuntu + "zeroed" free memory before exporting so it can be compressed.
Q: Frequently asked questions?
A: More like preanswered questions
The list is longer but I can't put each site where I read something. This list is a good place to start
Ernesto Martรญnez Garcรญa
C79F 01CE 017F 57A4 FBBB 4E22 33DD FB0A EB94 20CB