From a67d249f497f95de045f2e1624fe088904ab3bf4 Mon Sep 17 00:00:00 2001 From: nub31 Date: Fri, 22 Aug 2025 22:32:04 +0200 Subject: [PATCH] c running --- build/kernel.o | Bin 0 -> 536 bytes build/kernel_entry.o | Bin 0 -> 480 bytes makefile | 29 +++++++++++++++++++++-------- src/kernel.c | 1 + 4 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 build/kernel.o create mode 100644 build/kernel_entry.o diff --git a/build/kernel.o b/build/kernel.o new file mode 100644 index 0000000000000000000000000000000000000000..cc28f2971e1740fbb47a9965932926c5997b5792 GIT binary patch literal 536 zcmb<-^>JflWMqH=Mh0dE1doB?22{cXOlvT3Ft9U(c0S#~(7?@bjKOgSBbavD0g{eA z%;4_qY^9*#?iZ@5U}&mmsAmAxjzS@u&%*HWKNnP13P=lqY|lMT%*DP0cGou@4_d8Yl^J4;xew z$e$p0zyQpxia-Gnn;9zM2U7s0Vd~U@d=4Ncq)rE@2BZfTKp^vkffxoraxlyU69m#J wKn&6YaxX}n1&9TJm=lO$b^@6UQ-GKs#DD^r`vie}WOa*yd{dYrAPrLo03>cJH~;_u literal 0 HcmV?d00001 diff --git a/build/kernel_entry.o b/build/kernel_entry.o new file mode 100644 index 0000000000000000000000000000000000000000..6dd6b740870fe76dd3e049fbfdcc4b71531686a7 GIT binary patch literal 480 zcmb<-^>JflWMqH=Mh0dE1doBi0V-hvrZpJY7?@y6Nuoh!f-oCYmjRH&j%0!WlnoMN zMiO@bs?$c|gUkQ{K_EtUNdZv80Vu`-#32138f2yikJVdg0U*_=q? z7l0BRKt9MUkQ$JAApVO#|NsAg{SU~30=<&diV_CB;*8>wqLRcUAgeMLLPPmQsW}ie zFdZl~%zls{3&Y3%$daI#5JM6Ghf#4+vVL}IQC@0Jd}>}vQKepDaV|q{VrCvhA;>%? HqyPi}y4fb3 literal 0 HcmV?d00001 diff --git a/makefile b/makefile index 78c3f6c..ebd01ee 100644 --- a/makefile +++ b/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 - nasm -o src/boot.bin src/boot.asm +build/boot.bin: src/boot.asm + nasm -f bin -o build/boot.bin src/boot.asm -src/kernel_entry.bin: src/kernel_entry.asm - nasm -felf -o src/kernel_entry.bin src/kernel_entry.asm +build/kernel_entry.o: src/kernel_entry.asm + nasm -f elf -o build/kernel_entry.o src/kernel_entry.asm -run: src/boot.bin - qemu-system-x86_64 -drive file=src/boot.bin,format=raw,index=0,media=disk +build/kernel.o: src/kernel.c + 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: - rm src/boot.bin \ No newline at end of file + @rm build/* 2>/dev/null || true diff --git a/src/kernel.c b/src/kernel.c index 9b6317e..c60b5b2 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -1,5 +1,6 @@ int main(void) { *(char*)0xb8000 = 'A'; + *(char*)0xb8001 = 'B'; return 0; } \ No newline at end of file