diff --git a/Makefile b/Makefile index 71806a0..3f9e2aa 100644 --- a/Makefile +++ b/Makefile @@ -9,12 +9,13 @@ LDFLAGS=-melf_i386 -Ttext 0x1000 --oformat binary basicos: mkdir -p $(BIN) $(ASM) boot_sect.asm $(AFLAGS) -o boot_sect.bin + $(ASM) kernel_entry.asm -f elf -o kernel_entry.o $(CC) $(CFLAGS) -c kernel.c -o kernel.o - $(LD) $(LDFLAGS) -o kernel.bin kernel.o + $(LD) $(LDFLAGS) -o kernel.bin kernel_entry.o kernel.o cat boot_sect.bin kernel.bin > $(BIN)/os-image .PHONY: clean clean: - rm *.bin *.o + rm -f *.bin *.o diff --git a/kernel_entry.asm b/kernel_entry.asm new file mode 100644 index 0000000..aa73e23 --- /dev/null +++ b/kernel_entry.asm @@ -0,0 +1,4 @@ +[bits 32] +[extern main] ; reference an external label + call main ; call the main function of our kernel + jmp $ ; hang