This commit is contained in:
nub31
2025-08-23 17:23:03 +02:00
parent 597f749470
commit a422756b8c
2 changed files with 35 additions and 25 deletions

View File

@@ -11,8 +11,19 @@
## Building ## Building
```sh ```sh
# Create iso make
make iso ```
# Run virtual machine with your iso
## Running
After building, run the following:
```sh
qemu-system-x86_64 -cdrom .build/nub-os.iso qemu-system-x86_64 -cdrom .build/nub-os.iso
``` ```
Or all in once build and run
```sh
make && qemu-system-x86_64 -cdrom .build/nub-os.iso
```

View File

@@ -1,34 +1,33 @@
BUILDDIR=mkdir-build CC = i386-elf-gcc
CC = i386-elf-gcc -ffreestanding -m32 LD = i386-elf-ld
iso: .build/ .build/nub-os.iso CFLAGS = -ffreestanding -m32
.build/nub-os.iso: .build/kernel.bin all: .build/nub-os.iso
clean:
@rm -r .build 2>/dev/null || true
build-dir:
mkdir .build 2>/dev/null || true
.build/nub-os.iso: build-dir .build/kernel.bin
mkdir -p .build/iso/boot/grub mkdir -p .build/iso/boot/grub
cp grub.cfg .build/iso/boot/grub cp grub.cfg .build/iso/boot/grub
cp .build/kernel.bin .build/iso/boot/ cp .build/kernel.bin .build/iso/boot/
grub-mkrescue -o .build/nub-os.iso .build/iso/ grub-mkrescue -o .build/nub-os.iso .build/iso/
.build/kernel.bin: .build/entry.o .build/kernel.o .build/mem.o .build/print.o .build/kernel.bin: build-dir .build/entry.o .build/kernel.o .build/mem.o .build/print.o
i386-elf-ld -Ttext 0x100000 -o .build/kernel.bin .build/entry.o .build/kernel.o .build/mem.o .build/print.o $(LD) -Ttext 0x100000 -o .build/kernel.bin .build/entry.o .build/kernel.o .build/mem.o .build/print.o
.build/kernel.o: src/kernel.c .build/kernel.o: build-dir src/kernel.c
$(CC) -c -o .build/kernel.o src/kernel.c $(CC) $(CFLAGS) -c -o .build/kernel.o src/kernel.c
.build/mem.o: src/mem.c .build/mem.o: build-dir src/mem.c
$(CC) -c -o .build/mem.o src/mem.c $(CC) $(CFLAGS) -c -o .build/mem.o src/mem.c
.build/print.o: src/print.c .build/print.o: build-dir src/print.c
$(CC) -c -o .build/print.o src/print.c $(CC) $(CFLAGS) -c -o .build/print.o src/print.c
.build/entry.o: src/entry.asm .build/entry.o: build-dir src/entry.asm
nasm -f elf -o .build/entry.o src/entry.asm nasm -f elf -o .build/entry.o src/entry.asm
run: .build/nub-os.iso
qemu-system-x86_64 -cdrom .build/nub-os.iso
.build/:
mkdir .build
clean:
@rm -r .build 2>/dev/null || true