c running
This commit is contained in:
BIN
build/kernel.o
Normal file
BIN
build/kernel.o
Normal file
Binary file not shown.
BIN
build/kernel_entry.o
Normal file
BIN
build/kernel_entry.o
Normal file
Binary file not shown.
29
makefile
29
makefile
@@ -1,13 +1,26 @@
|
|||||||
build: src/boot.bin src/kernel_entry.bin
|
build: build/os.bin
|
||||||
|
@echo "Build succeded"
|
||||||
|
|
||||||
src/boot.bin: src/boot.asm
|
build/boot.bin: src/boot.asm
|
||||||
nasm -o src/boot.bin src/boot.asm
|
nasm -f bin -o build/boot.bin src/boot.asm
|
||||||
|
|
||||||
src/kernel_entry.bin: src/kernel_entry.asm
|
build/kernel_entry.o: src/kernel_entry.asm
|
||||||
nasm -felf -o src/kernel_entry.bin src/kernel_entry.asm
|
nasm -f elf -o build/kernel_entry.o src/kernel_entry.asm
|
||||||
|
|
||||||
run: src/boot.bin
|
build/kernel.o: src/kernel.c
|
||||||
qemu-system-x86_64 -drive file=src/boot.bin,format=raw,index=0,media=disk
|
i386-elf-gcc -ffreestanding -m32 -c -o build/kernel.o src/kernel.c
|
||||||
|
|
||||||
|
build/kernel.bin:build/kernel.o build/kernel_entry.o
|
||||||
|
i386-elf-ld -o build/kernel.bin -Ttext 0x1000 build/kernel_entry.o build/kernel.o --oformat binary
|
||||||
|
|
||||||
|
build/zeroes.bin:
|
||||||
|
dd if=/dev/zero of=build/zeroes.bin bs=1 count=10240
|
||||||
|
|
||||||
|
build/os.bin: build/boot.bin build/kernel.bin build/zeroes.bin
|
||||||
|
cat build/boot.bin build/kernel.bin build/zeroes.bin > build/os.bin
|
||||||
|
|
||||||
|
run: build/os.bin
|
||||||
|
qemu-system-x86_64 -drive file=build/os.bin,format=raw,index=0,media=disk
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm src/boot.bin
|
@rm build/* 2>/dev/null || true
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
*(char*)0xb8000 = 'A';
|
*(char*)0xb8000 = 'A';
|
||||||
|
*(char*)0xb8001 = 'B';
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user