GDT finally works

This commit is contained in:
2025-08-10 21:29:16 +02:00
parent f8f00cc608
commit 8ee1ea1292
36 changed files with 868 additions and 206 deletions

View File

@ -1,30 +1,41 @@
.PHONY: all disk clean
.PHONY: all clean prepare cleanall iso
disk:
all:
make -C kernel all
prepare:
if [ ! -d limine ]; then \
git clone https://github.com/limine-bootloader/limine.git --branch=v9.x-binary --depth=1; \
make -C limine; \
mkdir limine; \
cd limine; \
git init; \
git remote add origin https://github.com/limine-bootloader/limine.git; \
git fetch origin 9246bb78f446962aae5b0a291db4be32f9866ba6; \
git reset --hard FETCH_HEAD; \
make; \
fi
make -C kernel
rm -f disk.hdd
dd if=/dev/zero bs=1M count=0 seek=64 of=disk.hdd
PATH=$$PATH:/usr/sbin:/sbin sgdisk disk.hdd -n 1:2048 -t 1:ef00 -m 1
./limine/limine bios-install disk.hdd
mformat -i disk.hdd@@1M
mmd -i disk.hdd@@1M ::/EFI ::/EFI/BOOT ::/boot ::/boot/limine
mcopy -i disk.hdd@@1M kernel/mop2 ::/boot
mcopy -i disk.hdd@@1M limine.conf limine/limine-bios.sys ::/boot/limine
mcopy -i disk.hdd@@1M limine/BOOTX64.EFI ::/EFI/BOOT
cleanall:
make clean
rm -rf limine
clean:
rm -rf limine disk.hdd
make -C kernel clean
rm -f mop2.iso
all: disk
run:
qemu-system-x86_64 \
-d guest_errors \
-serial stdio \
-hda disk.hdd
iso:
rm -rf iso_root
mkdir -p iso_root/boot
cp -v kernel/mop2 iso_root/boot
mkdir -p iso_root/boot/limine
cp -v limine.conf limine/limine-bios.sys limine/limine-bios-cd.bin \
limine/limine-uefi-cd.bin iso_root/boot/limine
mkdir -p iso_root/EFI/BOOT
cp -v limine/BOOTX64.EFI iso_root/EFI/BOOT
cp -v limine/BOOTIA32.EFI iso_root/EFI/BOOT
xorriso -as mkisofs -R -r -J -b boot/limine/limine-bios-cd.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table -hfsplus \
-apm-block-size 2048 --efi-boot boot/limine/limine-uefi-cd.bin \
-efi-boot-part --efi-boot-image --protective-msdos-label \
iso_root -o mop2.iso
./limine/limine bios-install mop2.iso