feat(microkernel): implement pure microkernel architecture with vfs_server, net_server, and procmgr
- Added vfs_server in Ring 3 (Endpoint 5) managing unified VFS tree (/, /bin, /etc, /proc, /dev, /tmp) - Added net_server in Ring 3 (Endpoint 6) owning RTL8139 hardware NIC, DHCP, DNS, and TCP/IPv4 stack - Refactored procmgr in Ring 3 (Endpoint 4) to handle userspace process spawning via PROC_OP_SPAWN - Added primitive microkernel syscalls in Ring 0: SYS_TASK_CREATE (29), SYS_TASK_MAP_PAGE (30), SYS_TASK_START (31) - Updated shell (sh) and desktop GUI (gui_server) to delegate process management and I/O to Ring 3 daemons - Expanded boot pipeline to orchestrate 7 concurrent Ring 3 servers across dedicated SMP CPU cores
This commit is contained in:
@@ -35,6 +35,8 @@ KERNEL_BIN := target/x86_64-unknown-none/release/opencore_kernel
|
||||
KERNEL_ELF := $(BUILD_DIR)/opencore_kernel.elf
|
||||
INIT_SERVER := $(BUILD_DIR)/init_server.elf
|
||||
UART_DRIVER := $(BUILD_DIR)/uart_driver.elf
|
||||
VFS_SERVER := $(BUILD_DIR)/vfs_server.elf
|
||||
NET_SERVER := $(BUILD_DIR)/net_server.elf
|
||||
SH_SERVER := $(BUILD_DIR)/sh.elf
|
||||
PROCMGR := $(BUILD_DIR)/procmgr.elf
|
||||
GUI_SERVER := $(BUILD_DIR)/gui_server.elf
|
||||
@@ -53,7 +55,7 @@ all: kernel libc hal servers
|
||||
@echo "======================================================="
|
||||
@echo " [SUCCESS] opencoreC Build Complete!"
|
||||
@echo " Kernel: $(KERNEL_ELF)"
|
||||
@echo " Servers: $(INIT_SERVER), $(UART_DRIVER), $(SH_SERVER), $(PROCMGR), $(GUI_SERVER)"
|
||||
@echo " Servers: $(INIT_SERVER), $(UART_DRIVER), $(VFS_SERVER), $(NET_SERVER), $(PROCMGR), $(SH_SERVER), $(GUI_SERVER)"
|
||||
@echo " Run: make run (Serial CLI) or make gui (LVGL Desktop Window)"
|
||||
@echo "======================================================="
|
||||
|
||||
@@ -99,6 +101,14 @@ servers: libc hal $(LVGL_LIB)
|
||||
@$(CC) $(CFLAGS) -I$(HAL_DIR)/include -c $(SERVERS_DIR)/uart_driver/main.c -o $(BUILD_DIR)/uart_driver_main.o
|
||||
@$(LD) -T $(CONFIG_DIR)/user.ld -nostdlib -static -o $(UART_DRIVER) \
|
||||
$(BUILD_DIR)/uart_driver_main.o $(BUILD_DIR)/uart.o $(LIBC_OBJS)
|
||||
@# Standalone Virtual File System Server
|
||||
@$(CXX) $(CXXFLAGS) -c $(SERVERS_DIR)/vfs_server/main.cpp -o $(BUILD_DIR)/vfs_server_main.o
|
||||
@$(LD) -T $(CONFIG_DIR)/user.ld -nostdlib -static -o $(VFS_SERVER) \
|
||||
$(BUILD_DIR)/vfs_server_main.o $(BUILD_DIR)/ipc.o $(LIBC_OBJS)
|
||||
@# Standalone Network Stack Server
|
||||
@$(CXX) $(CXXFLAGS) -c $(SERVERS_DIR)/net_server/main.cpp -o $(BUILD_DIR)/net_server_main.o
|
||||
@$(LD) -T $(CONFIG_DIR)/user.ld -nostdlib -static -o $(NET_SERVER) \
|
||||
$(BUILD_DIR)/net_server_main.o $(BUILD_DIR)/ipc.o $(NET_OBJS) $(LIBC_OBJS)
|
||||
@# Interactive Shell with Networking & Framebuffer
|
||||
@$(CXX) $(CXXFLAGS) -c $(SERVERS_DIR)/sh/main.cpp -o $(BUILD_DIR)/sh_main.o
|
||||
@$(LD) -T $(CONFIG_DIR)/user.ld -nostdlib -static -o $(SH_SERVER) \
|
||||
@@ -137,8 +147,10 @@ image: all limine-setup
|
||||
@mcopy -i $(DISK_IMG)@@1M $(KERNEL_ELF) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(INIT_SERVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(UART_DRIVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(SH_SERVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(VFS_SERVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(NET_SERVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(PROCMGR) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(SH_SERVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(GUI_SERVER) ::/boot/
|
||||
@mcopy -i $(DISK_IMG)@@1M $(HELLO_APP) ::/boot/
|
||||
@# Bootloader config
|
||||
|
||||
Reference in New Issue
Block a user