Загрузка данных



cd ~/XirexOS && cat > Makefile <<'EOF'
BUILD=build
ISO=$(BUILD)/xirex-os.iso
KERNEL=$(BUILD)/kernel.bin

all: $(ISO)

$(BUILD):
	mkdir -p $(BUILD)

$(KERNEL): src/boot.asm src/kernel.c src/linker.ld | $(BUILD)
	nasm -f elf64 src/boot.asm -o $(BUILD)/boot.o
	gcc -m64 -ffreestanding -fno-stack-protector -fno-pie -mno-red-zone -nostdinc -c src/kernel.c -o $(BUILD)/kernel.o
	ld -nostdlib -z max-page-size=0x1000 -T src/linker.ld $(BUILD)/boot.o $(BUILD)/kernel.o -o $(KERNEL)

$(ISO): $(KERNEL) src/grub.cfg
	mkdir -p $(BUILD)/isodir/boot/grub
	cp $(KERNEL) $(BUILD)/isodir/boot/kernel.bin
	cp src/grub.cfg $(BUILD)/isodir/boot/grub/grub.cfg
	grub-mkrescue -o $(ISO) $(BUILD)/isodir

run: $(ISO)
	qemu-system-x86_64 -cdrom $(ISO)

clean:
	rm -rf $(BUILD)
EOF

make