Merge into main the new state of the operating system/kernel #1
26
Makefile
26
Makefile
@ -5,7 +5,7 @@ CC = ${HOME}/opt/cross/bin/i686-elf-gcc
|
|||||||
CPP = ${HOME}/opt/cross/bin/i686-elf-g++
|
CPP = ${HOME}/opt/cross/bin/i686-elf-g++
|
||||||
CFLAGS = -ffreestanding -O2 -Wall -Wextra
|
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
|
SRC_DIR = src
|
||||||
BUILD_DIR = build
|
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)
|
INTERNAL_OBJS = $(CRTI_OBJ) $(OFILES) $(CRTN_OBJ)
|
||||||
|
|
||||||
|
|
||||||
all: clean build clean_up
|
all: clean build
|
||||||
|
|
||||||
build: build_kernel
|
build: build_kernel iso
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
clean_iso:
|
clean_iso:
|
||||||
if [[ -a isodir/* ]] ; then rm isodir/* -d ; fi
|
if [[ -a isodir/boot ]] ; then rm root/boot -rd ; fi
|
||||||
if [ -f barinkOS.iso ] ; then rm barinkOS.iso ; fi
|
if [ -f build/barinkOS.iso ] ; then rm build/barinkOS.iso ; fi
|
||||||
|
|
||||||
iso: clean_iso build
|
iso: clean_iso clean build
|
||||||
mkdir -p isodir/boot/grub
|
mkdir -p root/boot/grub
|
||||||
cp build/myos.bin isodir/boot/myos.bin
|
cp build/myos.bin root/boot/myos.bin
|
||||||
cp src/grub.cfg isodir/boot/grub/grub.cfg
|
cp src/grub.cfg root/boot/grub/grub.cfg
|
||||||
grub-mkrescue -o barinkOS.iso isodir
|
grub-mkrescue -o build/barinkOS.iso root
|
||||||
|
|
||||||
clean_up:
|
|
||||||
rm build/*.o
|
|
||||||
|
|
||||||
test:
|
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)
|
build_kernel: $(OBJ_LINK_LIST)
|
||||||
|
|
||||||
$(CC) -T $(SRC_DIR)/kernel//linker.ld -o $(BUILD_DIR)/myos.bin \
|
$(CC) -T $(SRC_DIR)/kernel//linker.ld -o $(BUILD_DIR)/myos.bin \
|
||||||
-ffreestanding -O2 -nostdlib $(OBJ_LINK_LIST) -lgcc
|
-ffreestanding -O2 -nostdlib $(OBJ_LINK_LIST) -lgcc
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<input type="checkbox" /> Detect CPU speed \
|
<input type="checkbox" /> Detect CPU speed \
|
||||||
<input type="checkbox" checked/> Interrupt / exception system (API) \
|
<input type="checkbox" checked/> Interrupt / exception system (API) \
|
||||||
|
|
||||||
<input type="checkbox" /> Plan your memory map (virtual, and physical) : decide where you want the data to be. \
|
<input type="checkbox" checked/> Plan your memory map (virtual, and physical) : decide where you want the data to be. \
|
||||||
<input type="checkbox" /> The heap: allocating memory at runtime (malloc and free) is almost impossible to go without. \
|
<input type="checkbox" /> The heap: allocating memory at runtime (malloc and free) is almost impossible to go without. \
|
||||||
<input type="checkbox" /> Enable SIMD Extensions (SSE)
|
<input type="checkbox" /> Enable SIMD Extensions (SSE)
|
||||||
|
|
||||||
@ -23,13 +23,13 @@
|
|||||||
<input type="checkbox" /> ACPI support ( Or some other basic way to support shutdown, reboot and possibly hibernation ) \
|
<input type="checkbox" /> ACPI support ( Or some other basic way to support shutdown, reboot and possibly hibernation ) \
|
||||||
<input type="checkbox" /> ATAPI support \
|
<input type="checkbox" /> ATAPI support \
|
||||||
<input type="checkbox" /> Keyboard support ( P/S2 Keyboard) \
|
<input type="checkbox" /> Keyboard support ( P/S2 Keyboard) \
|
||||||
<input type="checkbox" /> Memory Management (MMU)\
|
<input type="checkbox" checked/> Memory Management (MMU)
|
||||||
<input type="checkbox" /> Preemptive multi tasking
|
<input type="checkbox" /> Preemptive multi tasking \
|
||||||
<input type="checkbox" /> Processes
|
<input type="checkbox" /> Processes \
|
||||||
<input type="checkbox" /> Threads
|
<input type="checkbox" /> Threads
|
||||||
<input type="checkbox" /> Scheduling (SRV2 Unix OR Priority Based Round Robin) \
|
<input type="checkbox" /> Scheduling (SRV2 Unix OR Priority Based Round Robin) \
|
||||||
<input type="checkbox" /> System V ABI compliance (partially)
|
<input type="checkbox" /> System V ABI compliance (partially) \
|
||||||
<input type="checkbox" /> POSIX compliance (partially)
|
<input type="checkbox" /> POSIX compliance (partially) \
|
||||||
<input type="checkbox" /> RPC - for interprocess communication \
|
<input type="checkbox" /> RPC - for interprocess communication \
|
||||||
<input type="checkbox" /> Sync primitives - Semaphores, Mutexes, spinlocks et al. \
|
<input type="checkbox" /> Sync primitives - Semaphores, Mutexes, spinlocks et al. \
|
||||||
<input type="checkbox" /> Basic Terminal \
|
<input type="checkbox" /> Basic Terminal \
|
||||||
@ -37,4 +37,4 @@
|
|||||||
<input type="checkbox" /> Basic Window server/client \
|
<input type="checkbox" /> Basic Window server/client \
|
||||||
## Support for more filesystems if I like the challenge in writing these ...
|
## Support for more filesystems if I like the challenge in writing these ...
|
||||||
<input type="checkbox" /> FAT Filesystem \
|
<input type="checkbox" /> FAT Filesystem \
|
||||||
<input type="checkbox" /> EXT2 Filesystem \
|
<input type="checkbox" /> EXT2 Filesystem
|
Loading…
Reference in New Issue
Block a user