From 624c90ce88bd10193d802c2461567afd982d926d Mon Sep 17 00:00:00 2001 From: nub31 Date: Sat, 23 Aug 2025 19:20:42 +0200 Subject: [PATCH] ... --- grub.cfg | 1 - makefile | 11 ++++------- src/boot.asm | 27 +++++++++++++++++++++++++++ src/entry.asm | 21 --------------------- src/kernel.c | 2 +- src/mem.c | 26 -------------------------- src/mem.h | 3 --- 7 files changed, 32 insertions(+), 59 deletions(-) create mode 100644 src/boot.asm delete mode 100644 src/entry.asm delete mode 100644 src/mem.c delete mode 100644 src/mem.h diff --git a/grub.cfg b/grub.cfg index 08a2ab9..36868e9 100644 --- a/grub.cfg +++ b/grub.cfg @@ -1,4 +1,3 @@ menuentry "nub-os" { multiboot /boot/kernel.bin - boot } diff --git a/makefile b/makefile index fb31639..36dd030 100644 --- a/makefile +++ b/makefile @@ -17,17 +17,14 @@ build-dir: cp .build/kernel.bin .build/iso/boot/ grub-mkrescue -o .build/nub-os.iso .build/iso/ -.build/kernel.bin: build-dir .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.bin: build-dir .build/boot.o .build/kernel.o .build/print.o + $(LD) -Ttext 0x100000 -o .build/kernel.bin .build/boot.o .build/kernel.o .build/print.o .build/kernel.o: build-dir src/kernel.c $(CC) $(CFLAGS) -c -o .build/kernel.o src/kernel.c -.build/mem.o: build-dir src/mem.c - $(CC) $(CFLAGS) -c -o .build/mem.o src/mem.c - .build/print.o: build-dir src/print.c $(CC) $(CFLAGS) -c -o .build/print.o src/print.c -.build/entry.o: build-dir src/entry.asm - nasm -f elf -o .build/entry.o src/entry.asm +.build/boot.o: build-dir src/boot.asm + nasm -f elf32 -o .build/boot.o src/boot.asm \ No newline at end of file diff --git a/src/boot.asm b/src/boot.asm new file mode 100644 index 0000000..c557ab3 --- /dev/null +++ b/src/boot.asm @@ -0,0 +1,27 @@ +extern kernel_main + +%define MAGIC 0x1BADB002 +%define FLAGS 0x0 +%define CHECKSUM -(MAGIC + FLAGS) + +section .multiboot +align 4 + dd MAGIC + dd FLAGS + dd CHECKSUM + +section .bss +align 16 +stack_bottom: +resb 16384 +stack_top: + +section .text +global _start +_start: + mov esp, stack_top + call kernel_main + cli +hang: + hlt + jmp hang \ No newline at end of file diff --git a/src/entry.asm b/src/entry.asm deleted file mode 100644 index addeaf4..0000000 --- a/src/entry.asm +++ /dev/null @@ -1,21 +0,0 @@ -extern kernel_init - -section .multiboot -align 4 - dd 0x1BADB002 ; multiboot magic number - dd 0x0 ; flags - dd -(0x1BADB002+0x0) ; checksum - -section .text -global _start -_start: - cli - mov esp, stack_top - call kernel_init -.hang: - hlt - jmp .hang - -section .bss -resb 8192 -stack_top: diff --git a/src/kernel.c b/src/kernel.c index 0104bbd..694ca13 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -1,6 +1,6 @@ #include "print.h" -void kernel_init(void) +void kernel_main(void) { print("Starting nub-os\n"); } diff --git a/src/mem.c b/src/mem.c deleted file mode 100644 index 37c55a8..0000000 --- a/src/mem.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "mem.h" - -void* memcpy(void* dest, const void* src, long n) -{ - char* d = dest; - const char* s = src; - for (long i = 0; i < n; i++) - d[i] = s[i]; - return dest; -} - -void* memset(void* dest, int val, long n) -{ - char* d = dest; - for (long i = 0; i < n; i++) - d[i] = val; - return dest; -} - -long strlen(const char* str) -{ - long len = 0; - while (str[len]) - len++; - return len; -} \ No newline at end of file diff --git a/src/mem.h b/src/mem.h deleted file mode 100644 index c097f60..0000000 --- a/src/mem.h +++ /dev/null @@ -1,3 +0,0 @@ -void* memcpy(void* dest, const void* src, long n); -void* memset(void* dest, int val, long n); -long strlen(const char* str);