diff --git a/Makefile b/Makefile
index d983334..afa65c7 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ CC = ${HOME}/opt/cross/bin/i686-elf-gcc
CPP = ${HOME}/opt/cross/bin/i686-elf-g++
CFLAGS = -ffreestanding -O2 -Wall -Wextra
-OFILES = $(BUILD_DIR)/boot.o $(BUILD_DIR)/kterm.o $(BUILD_DIR)/kernel.o $(BUILD_DIR)/PhysicalMemoryManager.o $(BUILD_DIR)/io.o $(BUILD_DIR)/PageDirectory.o $(BUILD_DIR)/gdtc.o $(BUILD_DIR)/idt.o $(BUILD_DIR)/pic.o $(BUILD_DIR)/string.o
+OFILES = $(BUILD_DIR)/boot.o $(BUILD_DIR)/kterm.o $(BUILD_DIR)/kernel.o $(BUILD_DIR)/PhysicalMemoryManager.o $(BUILD_DIR)/io.o $(BUILD_DIR)/PageDirectory.o $(BUILD_DIR)/gdtc.o $(BUILD_DIR)/idt.o $(BUILD_DIR)/pic.o $(BUILD_DIR)/string.o
SRC_DIR = src
BUILD_DIR = build
@@ -19,30 +19,26 @@ OBJ_LINK_LIST = $(CRTI_OBJ) $(CRTBEGIN_OBJ) $(OFILES) $(CRTEND_OBJ) $(CRTN_OBJ)
INTERNAL_OBJS = $(CRTI_OBJ) $(OFILES) $(CRTN_OBJ)
-all: clean build clean_up
+all: clean build
-build: build_kernel
+build: build_kernel iso
clean_iso:
- if [[ -a isodir/* ]] ; then rm isodir/* -d ; fi
- if [ -f barinkOS.iso ] ; then rm barinkOS.iso ; fi
+ if [[ -a isodir/boot ]] ; then rm root/boot -rd ; fi
+ if [ -f build/barinkOS.iso ] ; then rm build/barinkOS.iso ; fi
-iso: clean_iso build
- mkdir -p isodir/boot/grub
- cp build/myos.bin isodir/boot/myos.bin
- cp src/grub.cfg isodir/boot/grub/grub.cfg
- grub-mkrescue -o barinkOS.iso isodir
+iso: clean_iso clean build
+ mkdir -p root/boot/grub
+ cp build/myos.bin root/boot/myos.bin
+ cp src/grub.cfg root/boot/grub/grub.cfg
+ grub-mkrescue -o build/barinkOS.iso root
-clean_up:
- rm build/*.o
-
test:
- $(EMULATOR) -kernel $(BUILD_DIR)/myos.bin -serial file:CON -vga std -monitor stdio -display gtk -m 2G -cpu core2duo
+ $(EMULATOR) -kernel $(BUILD_DIR)/myos.bin -serial stdio -vga std -monitor stdio -display gtk -m 2G -cpu core2duo
build_kernel: $(OBJ_LINK_LIST)
-
$(CC) -T $(SRC_DIR)/kernel//linker.ld -o $(BUILD_DIR)/myos.bin \
-ffreestanding -O2 -nostdlib $(OBJ_LINK_LIST) -lgcc
diff --git a/TODO.md b/features.md
similarity index 80%
rename from TODO.md
rename to features.md
index 5f9d63f..53b1cf0 100644
--- a/TODO.md
+++ b/features.md
@@ -12,7 +12,7 @@
Detect CPU speed \
Interrupt / exception system (API) \
- Plan your memory map (virtual, and physical) : decide where you want the data to be. \
+ Plan your memory map (virtual, and physical) : decide where you want the data to be. \
The heap: allocating memory at runtime (malloc and free) is almost impossible to go without. \
Enable SIMD Extensions (SSE)
@@ -23,13 +23,13 @@
ACPI support ( Or some other basic way to support shutdown, reboot and possibly hibernation ) \
ATAPI support \
Keyboard support ( P/S2 Keyboard) \
- Memory Management (MMU)\
- Preemptive multi tasking
- Processes
+ Memory Management (MMU)
+ Preemptive multi tasking \
+ Processes \
Threads
Scheduling (SRV2 Unix OR Priority Based Round Robin) \
- System V ABI compliance (partially)
- POSIX compliance (partially)
+ System V ABI compliance (partially) \
+ POSIX compliance (partially) \
RPC - for interprocess communication \
Sync primitives - Semaphores, Mutexes, spinlocks et al. \
Basic Terminal \
@@ -37,4 +37,4 @@
Basic Window server/client \
## Support for more filesystems if I like the challenge in writing these ...
FAT Filesystem \
- EXT2 Filesystem \
+ EXT2 Filesystem
diff --git a/todo.md b/todo.md
new file mode 100644
index 0000000..e69de29