diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index faa52ed..36272c2 100755 Binary files a/iso/boot/kernel.elf and b/iso/boot/kernel.elf differ diff --git a/makefile b/makefile index f85980f..70cd968 100644 --- a/makefile +++ b/makefile @@ -3,18 +3,23 @@ CFLAGS = -m32 -nostdlib -nostdinc -fno-builtin -fno-stack-protector -nostartfile LDFLAGS = -T link.ld -melf_i386 AS = nasm ASFLAGS = -f elf + SRC_DIR = src +KERNEL_DIR = $(SRC_DIR)/kernel +LIBC_DIR = $(SRC_DIR)/libc +PROGRAMS_DIR = $(SRC_DIR)/programs OBJ_DIR = build -C_SOURCES = $(wildcard $(SRC_DIR)/*.c) -ASM_SOURCES = $(wildcard $(SRC_DIR)/*.s) -OBJECTS = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(C_SOURCES)) \ - $(patsubst $(SRC_DIR)/%.s, $(OBJ_DIR)/%.o, $(ASM_SOURCES)) +C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c) $(wildcard $(LIBC_DIR)/*.c) $(wildcard $(PROGRAMS_DIR)/*.c) +ASM_SOURCES = $(wildcard $(KERNEL_DIR)/*.s) $(wildcard $(LIBC_DIR)/*.s) $(wildcard $(PROGRAMS_DIR)/*.s) + +OBJECTS = $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(C_SOURCES:.c=.o) $(ASM_SOURCES:.s=.o)) all: $(OBJ_DIR) kernel.elf $(OBJ_DIR): mkdir -p $(OBJ_DIR) + mkdir -p $(OBJ_DIR)/kernel $(OBJ_DIR)/libc $(OBJ_DIR)/programs kernel.elf: $(OBJECTS) ld $(LDFLAGS) $(OBJECTS) -o kernel.elf @@ -42,4 +47,5 @@ run: os.iso bochs -f bochsrc.txt -q clean: - rm -rf $(OBJ_DIR) *.o kernel.elf os.iso + rm -rf $(OBJ_DIR) kernel.elf os.iso + diff --git a/os.iso b/os.iso new file mode 100644 index 0000000..390cb51 Binary files /dev/null and b/os.iso differ diff --git a/src/gdt.c b/src/kernel/gdt.c similarity index 100% rename from src/gdt.c rename to src/kernel/gdt.c diff --git a/src/gdt.h b/src/kernel/gdt.h similarity index 100% rename from src/gdt.h rename to src/kernel/gdt.h diff --git a/src/idt.c b/src/kernel/idt.c similarity index 100% rename from src/idt.c rename to src/kernel/idt.c diff --git a/src/idt.h b/src/kernel/idt.h similarity index 100% rename from src/idt.h rename to src/kernel/idt.h diff --git a/src/io.h b/src/kernel/io.h similarity index 89% rename from src/io.h rename to src/kernel/io.h index 24fba56..6480303 100644 --- a/src/io.h +++ b/src/kernel/io.h @@ -1,7 +1,7 @@ #ifndef INCLUDE_IO_H #define INCLUDE_IO_H -#include "stdint.h" +#include "../libc/stdint.h" void outb(unsigned short port, unsigned char data); unsigned char inb(unsigned short port); diff --git a/src/io.s b/src/kernel/io.s similarity index 100% rename from src/io.s rename to src/kernel/io.s diff --git a/src/irq.c b/src/kernel/irq.c similarity index 100% rename from src/irq.c rename to src/kernel/irq.c diff --git a/src/isr.c b/src/kernel/isr.c similarity index 99% rename from src/isr.c rename to src/kernel/isr.c index 373bf95..049d722 100644 --- a/src/isr.c +++ b/src/kernel/isr.c @@ -1,5 +1,5 @@ #include "system.h" -#include "stdio.h" +#include "../libc/stdio.h" #include "idt.h" extern void isr0(); diff --git a/src/kb.c b/src/kernel/kb.c similarity index 98% rename from src/kb.c rename to src/kernel/kb.c index 23e75ca..3152868 100644 --- a/src/kb.c +++ b/src/kernel/kb.c @@ -1,5 +1,5 @@ #include "io.h" -#include "stdio.h" +#include "../libc/stdio.h" #include "system.h" unsigned char kbdus[128] = diff --git a/src/kmain.c b/src/kernel/kmain.c similarity index 92% rename from src/kmain.c rename to src/kernel/kmain.c index 413814b..5edeba0 100644 --- a/src/kmain.c +++ b/src/kernel/kmain.c @@ -1,4 +1,4 @@ -#include "stdio.h" +#include "../libc/stdio.h" #include "serial.h" #include "gdt.h" #include "idt.h" @@ -29,7 +29,6 @@ int kmain(int retvalue) // TODO: Fix scrolling bug (framebuffer driver) // TODO: Fix keyboard driver bug (some keys mapped weirdly) + add suport for SHIFT and backspace (deleting character) // TODO: Grub modules to load programs - // TODO: Folder and build process restructuration //timer_install(); keyboard_install(); diff --git a/src/loader.s b/src/kernel/loader.s similarity index 100% rename from src/loader.s rename to src/kernel/loader.s diff --git a/src/serial.c b/src/kernel/serial.c similarity index 100% rename from src/serial.c rename to src/kernel/serial.c diff --git a/src/serial.h b/src/kernel/serial.h similarity index 100% rename from src/serial.h rename to src/kernel/serial.h diff --git a/src/system.c b/src/kernel/system.c similarity index 100% rename from src/system.c rename to src/kernel/system.c diff --git a/src/system.h b/src/kernel/system.h similarity index 100% rename from src/system.h rename to src/kernel/system.h diff --git a/src/timer.c b/src/kernel/timer.c similarity index 92% rename from src/timer.c rename to src/kernel/timer.c index ddc308e..36539a7 100644 --- a/src/timer.c +++ b/src/kernel/timer.c @@ -1,5 +1,5 @@ #include "system.h" -#include "stdio.h" +#include "../libc/stdio.h" int timer_ticks = 0; diff --git a/src/stdint.h b/src/libc/stdint.h similarity index 100% rename from src/stdint.h rename to src/libc/stdint.h diff --git a/src/stdio.c b/src/libc/stdio.c similarity index 99% rename from src/stdio.c rename to src/libc/stdio.c index 1a7b730..f4d8994 100644 --- a/src/stdio.c +++ b/src/libc/stdio.c @@ -1,4 +1,4 @@ -#include "io.h" +#include "../kernel/io.h" #include "stdio.h" #include "string.h" #include "stdint.h" diff --git a/src/stdio.h b/src/libc/stdio.h similarity index 100% rename from src/stdio.h rename to src/libc/stdio.h diff --git a/src/string.c b/src/libc/string.c similarity index 100% rename from src/string.c rename to src/libc/string.c diff --git a/src/string.h b/src/libc/string.h similarity index 100% rename from src/string.h rename to src/libc/string.h