...
This commit is contained in:
11
makefile
11
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
|
||||
27
src/boot.asm
Normal file
27
src/boot.asm
Normal file
@@ -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
|
||||
@@ -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:
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "print.h"
|
||||
|
||||
void kernel_init(void)
|
||||
void kernel_main(void)
|
||||
{
|
||||
print("Starting nub-os\n");
|
||||
}
|
||||
|
||||
26
src/mem.c
26
src/mem.c
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user