From 47735bb1bdffb567827bee92393a5c0a074e32ee Mon Sep 17 00:00:00 2001 From: Karina Date: Sat, 4 Apr 2026 19:44:39 +0400 Subject: [PATCH] REF: Renamed kernel -> System; userspace -> Runtime; bootloader -> Boot del: KSH --- {bootloader => Boot}/CMakeLists.txt | 0 .../cmake/x86_64-uefi.toolchain.cmake | 0 {bootloader => Boot}/src/main.c | 0 {bootloader => Boot}/src/uefi/Makefile | 0 {bootloader => Boot}/src/uefi/crt_aarch64.c | 0 {bootloader => Boot}/src/uefi/crt_riscv64.c | 0 {bootloader => Boot}/src/uefi/crt_x86_64.c | 0 {bootloader => Boot}/src/uefi/dirent.c | 0 {bootloader => Boot}/src/uefi/qsort.c | 0 {bootloader => Boot}/src/uefi/stat.c | 0 {bootloader => Boot}/src/uefi/stdio.c | 0 {bootloader => Boot}/src/uefi/stdlib.c | 0 {bootloader => Boot}/src/uefi/string.c | 0 {bootloader => Boot}/src/uefi/time.c | 0 {bootloader => Boot}/src/uefi/uefi.h | 0 {bootloader => Boot}/src/uefi/unistd.c | 0 CMakeLists.txt | 8 +- {userspace => Runtime}/CMakeLists.txt | 0 {userspace => Runtime}/debug/CMakeLists.txt | 0 {userspace => Runtime}/debug/src/main.c | 0 {userspace => Runtime}/init/CMakeLists.txt | 0 {userspace => Runtime}/init/src/main.c | 0 {userspace => Runtime}/libterm/CMakeLists.txt | 3 +- {userspace => Runtime}/libterm/inc/Console.h | 0 {userspace => Runtime}/libterm/inc/Memory.h | 0 {userspace => Runtime}/libterm/inc/Process.h | 0 {userspace => Runtime}/libterm/inc/String.h | 0 {userspace => Runtime}/libterm/inc/Types.h | 0 {userspace => Runtime}/libterm/inc/Varargs.h | 0 {userspace => Runtime}/libterm/inc/termOS.h | 0 {userspace => Runtime}/libterm/linker.ld | 0 .../libterm/src/Character.c | 0 {userspace => Runtime}/libterm/src/Console.c | 0 {userspace => Runtime}/libterm/src/Memory.c | 0 .../libterm/src/OSServices.asm | 0 {userspace => Runtime}/libterm/src/Process.c | 0 .../libterm/src/RuntimeEntry.asm | 0 {userspace => Runtime}/libterm/src/String.c | 0 {userspace => Runtime}/termosh/CMakeLists.txt | 0 {userspace => Runtime}/termosh/inc/handlers.h | 0 {userspace => Runtime}/termosh/inc/parser.h | 0 {userspace => Runtime}/termosh/inc/tokens.h | 0 .../termosh/src/handlers/misc.c | 0 .../termosh/src/handlers/spawn.c | 0 {userspace => Runtime}/termosh/src/main.c | 0 .../termosh/src/modules/parser.c | 0 {kernel => System}/CMakeLists.txt | 1 - {kernel => System}/inc/Data/VGAFont.h | 0 {kernel => System}/inc/Data/cats.h | 0 {kernel => System}/inc/Data/logo.h | 0 {kernel => System}/inc/FS/CPIO.h | 0 {kernel => System}/inc/FS/VFS.h | 0 {kernel => System}/inc/IO/IOConsole.h | 0 {kernel => System}/inc/IO/IOGraphics.h | 0 {kernel => System}/inc/IO/IOKeyboard.h | 0 {kernel => System}/inc/IO/IOSerial.h | 0 {kernel => System}/inc/IO/IOTimer.h | 0 {kernel => System}/inc/OS/Exec/HOTLoader.h | 0 {kernel => System}/inc/OS/Exec/OSLoader.h | 2 +- {kernel => System}/inc/OS/OSPanic.h | 0 {kernel => System}/inc/OS/OSScheduler.h | 0 {kernel => System}/inc/OS/OSSpinlock.h | 0 .../inc/OS/Services/OSServiceIO.h | 0 .../inc/OS/Services/OSServiceMemory.h | 0 .../inc/OS/Services/OSServiceProcess.h | 0 {kernel => System}/inc/VM/Heap.h | 0 {kernel => System}/inc/VM/PMM.h | 0 {kernel => System}/inc/VM/VMM.h | 0 {kernel => System}/inc/arch/x86_64/GDT.h | 0 {kernel => System}/inc/arch/x86_64/IDT.h | 0 {kernel => System}/inc/arch/x86_64/IO.h | 0 {kernel => System}/inc/arch/x86_64/OSCPU.h | 0 {kernel => System}/inc/arch/x86_64/PIC.h | 0 {kernel => System}/inc/arch/x86_64/syscall.h | 0 {kernel => System}/inc/lib/Math.h | 0 {kernel => System}/inc/lib/Rand.h | 0 {kernel => System}/inc/lib/Splash.h | 0 {kernel => System}/inc/lib/String.h | 0 {kernel => System}/inc/types.h | 0 {kernel => System}/linker.ld | 0 {kernel => System}/src/FS/CPIO.c | 0 {kernel => System}/src/FS/VFS.c | 0 {kernel => System}/src/IO/IOConsole.c | 0 {kernel => System}/src/IO/IOGraphics.c | 0 {kernel => System}/src/IO/IOKeyboard.c | 0 {kernel => System}/src/IO/IOSerial.c | 0 {kernel => System}/src/IO/IOTimer.c | 0 {kernel => System}/src/OS/Exec/HOTLoader.c | 0 {kernel => System}/src/OS/Exec/OSLoader.c | 2 +- {kernel => System}/src/OS/OSPanic.c | 0 {kernel => System}/src/OS/OSScheduler.c | 0 {kernel => System}/src/OS/OSSpinlock.c | 0 .../src/OS/Services/OSServiceIO.c | 0 .../src/OS/Services/OSServiceMemory.c | 0 .../src/OS/Services/OSServiceProcess.c | 0 {kernel => System}/src/VM/Heap.c | 0 {kernel => System}/src/VM/PMM.c | 0 {kernel => System}/src/VM/VMM.c | 0 {kernel => System}/src/arch/x86_64/GDT.c | 0 {kernel => System}/src/arch/x86_64/IDT.c | 0 {kernel => System}/src/arch/x86_64/OSCPU.c | 0 {kernel => System}/src/arch/x86_64/PIC.c | 0 {kernel => System}/src/arch/x86_64/entry.asm | 0 .../src/arch/x86_64/interrupts.asm | 0 .../src/arch/x86_64/interrupts.c | 0 .../src/arch/x86_64/syscall.asm | 0 {kernel => System}/src/arch/x86_64/syscall.c | 0 {kernel => System}/src/kmain.c | 18 +-- {kernel => System}/src/lib/Rand.c | 0 {kernel => System}/src/lib/Splash.c | 0 {kernel => System}/src/lib/String.c | 0 kernel/inc/KSH/KSHBuiltins.h | 13 --- kernel/inc/KSH/KSHDebug.h | 7 -- kernel/inc/KSH/KSHEntry.h | 6 - kernel/src/KSH/KSHBuiltins.c | 106 ----------------- kernel/src/KSH/KSHDebug.c | 9 -- kernel/src/KSH/KSHEntry.c | 109 ------------------ 117 files changed, 10 insertions(+), 274 deletions(-) rename {bootloader => Boot}/CMakeLists.txt (100%) rename {bootloader => Boot}/cmake/x86_64-uefi.toolchain.cmake (100%) rename {bootloader => Boot}/src/main.c (100%) rename {bootloader => Boot}/src/uefi/Makefile (100%) rename {bootloader => Boot}/src/uefi/crt_aarch64.c (100%) rename {bootloader => Boot}/src/uefi/crt_riscv64.c (100%) rename {bootloader => Boot}/src/uefi/crt_x86_64.c (100%) rename {bootloader => Boot}/src/uefi/dirent.c (100%) rename {bootloader => Boot}/src/uefi/qsort.c (100%) rename {bootloader => Boot}/src/uefi/stat.c (100%) rename {bootloader => Boot}/src/uefi/stdio.c (100%) rename {bootloader => Boot}/src/uefi/stdlib.c (100%) rename {bootloader => Boot}/src/uefi/string.c (100%) rename {bootloader => Boot}/src/uefi/time.c (100%) rename {bootloader => Boot}/src/uefi/uefi.h (100%) rename {bootloader => Boot}/src/uefi/unistd.c (100%) rename {userspace => Runtime}/CMakeLists.txt (100%) rename {userspace => Runtime}/debug/CMakeLists.txt (100%) rename {userspace => Runtime}/debug/src/main.c (100%) rename {userspace => Runtime}/init/CMakeLists.txt (100%) rename {userspace => Runtime}/init/src/main.c (100%) rename {userspace => Runtime}/libterm/CMakeLists.txt (94%) rename {userspace => Runtime}/libterm/inc/Console.h (100%) rename {userspace => Runtime}/libterm/inc/Memory.h (100%) rename {userspace => Runtime}/libterm/inc/Process.h (100%) rename {userspace => Runtime}/libterm/inc/String.h (100%) rename {userspace => Runtime}/libterm/inc/Types.h (100%) rename {userspace => Runtime}/libterm/inc/Varargs.h (100%) rename {userspace => Runtime}/libterm/inc/termOS.h (100%) rename {userspace => Runtime}/libterm/linker.ld (100%) rename {userspace => Runtime}/libterm/src/Character.c (100%) rename {userspace => Runtime}/libterm/src/Console.c (100%) rename {userspace => Runtime}/libterm/src/Memory.c (100%) rename {userspace => Runtime}/libterm/src/OSServices.asm (100%) rename {userspace => Runtime}/libterm/src/Process.c (100%) rename {userspace => Runtime}/libterm/src/RuntimeEntry.asm (100%) rename {userspace => Runtime}/libterm/src/String.c (100%) rename {userspace => Runtime}/termosh/CMakeLists.txt (100%) rename {userspace => Runtime}/termosh/inc/handlers.h (100%) rename {userspace => Runtime}/termosh/inc/parser.h (100%) rename {userspace => Runtime}/termosh/inc/tokens.h (100%) rename {userspace => Runtime}/termosh/src/handlers/misc.c (100%) rename {userspace => Runtime}/termosh/src/handlers/spawn.c (100%) rename {userspace => Runtime}/termosh/src/main.c (100%) rename {userspace => Runtime}/termosh/src/modules/parser.c (100%) rename {kernel => System}/CMakeLists.txt (98%) rename {kernel => System}/inc/Data/VGAFont.h (100%) rename {kernel => System}/inc/Data/cats.h (100%) rename {kernel => System}/inc/Data/logo.h (100%) rename {kernel => System}/inc/FS/CPIO.h (100%) rename {kernel => System}/inc/FS/VFS.h (100%) rename {kernel => System}/inc/IO/IOConsole.h (100%) rename {kernel => System}/inc/IO/IOGraphics.h (100%) rename {kernel => System}/inc/IO/IOKeyboard.h (100%) rename {kernel => System}/inc/IO/IOSerial.h (100%) rename {kernel => System}/inc/IO/IOTimer.h (100%) rename {kernel => System}/inc/OS/Exec/HOTLoader.h (100%) rename {kernel => System}/inc/OS/Exec/OSLoader.h (89%) rename {kernel => System}/inc/OS/OSPanic.h (100%) rename {kernel => System}/inc/OS/OSScheduler.h (100%) rename {kernel => System}/inc/OS/OSSpinlock.h (100%) rename {kernel => System}/inc/OS/Services/OSServiceIO.h (100%) rename {kernel => System}/inc/OS/Services/OSServiceMemory.h (100%) rename {kernel => System}/inc/OS/Services/OSServiceProcess.h (100%) rename {kernel => System}/inc/VM/Heap.h (100%) rename {kernel => System}/inc/VM/PMM.h (100%) rename {kernel => System}/inc/VM/VMM.h (100%) rename {kernel => System}/inc/arch/x86_64/GDT.h (100%) rename {kernel => System}/inc/arch/x86_64/IDT.h (100%) rename {kernel => System}/inc/arch/x86_64/IO.h (100%) rename {kernel => System}/inc/arch/x86_64/OSCPU.h (100%) rename {kernel => System}/inc/arch/x86_64/PIC.h (100%) rename {kernel => System}/inc/arch/x86_64/syscall.h (100%) rename {kernel => System}/inc/lib/Math.h (100%) rename {kernel => System}/inc/lib/Rand.h (100%) rename {kernel => System}/inc/lib/Splash.h (100%) rename {kernel => System}/inc/lib/String.h (100%) rename {kernel => System}/inc/types.h (100%) rename {kernel => System}/linker.ld (100%) rename {kernel => System}/src/FS/CPIO.c (100%) rename {kernel => System}/src/FS/VFS.c (100%) rename {kernel => System}/src/IO/IOConsole.c (100%) rename {kernel => System}/src/IO/IOGraphics.c (100%) rename {kernel => System}/src/IO/IOKeyboard.c (100%) rename {kernel => System}/src/IO/IOSerial.c (100%) rename {kernel => System}/src/IO/IOTimer.c (100%) rename {kernel => System}/src/OS/Exec/HOTLoader.c (100%) rename {kernel => System}/src/OS/Exec/OSLoader.c (98%) rename {kernel => System}/src/OS/OSPanic.c (100%) rename {kernel => System}/src/OS/OSScheduler.c (100%) rename {kernel => System}/src/OS/OSSpinlock.c (100%) rename {kernel => System}/src/OS/Services/OSServiceIO.c (100%) rename {kernel => System}/src/OS/Services/OSServiceMemory.c (100%) rename {kernel => System}/src/OS/Services/OSServiceProcess.c (100%) rename {kernel => System}/src/VM/Heap.c (100%) rename {kernel => System}/src/VM/PMM.c (100%) rename {kernel => System}/src/VM/VMM.c (100%) rename {kernel => System}/src/arch/x86_64/GDT.c (100%) rename {kernel => System}/src/arch/x86_64/IDT.c (100%) rename {kernel => System}/src/arch/x86_64/OSCPU.c (100%) rename {kernel => System}/src/arch/x86_64/PIC.c (100%) rename {kernel => System}/src/arch/x86_64/entry.asm (100%) rename {kernel => System}/src/arch/x86_64/interrupts.asm (100%) rename {kernel => System}/src/arch/x86_64/interrupts.c (100%) rename {kernel => System}/src/arch/x86_64/syscall.asm (100%) rename {kernel => System}/src/arch/x86_64/syscall.c (100%) rename {kernel => System}/src/kmain.c (81%) rename {kernel => System}/src/lib/Rand.c (100%) rename {kernel => System}/src/lib/Splash.c (100%) rename {kernel => System}/src/lib/String.c (100%) delete mode 100644 kernel/inc/KSH/KSHBuiltins.h delete mode 100644 kernel/inc/KSH/KSHDebug.h delete mode 100644 kernel/inc/KSH/KSHEntry.h delete mode 100644 kernel/src/KSH/KSHBuiltins.c delete mode 100644 kernel/src/KSH/KSHDebug.c delete mode 100644 kernel/src/KSH/KSHEntry.c diff --git a/bootloader/CMakeLists.txt b/Boot/CMakeLists.txt similarity index 100% rename from bootloader/CMakeLists.txt rename to Boot/CMakeLists.txt diff --git a/bootloader/cmake/x86_64-uefi.toolchain.cmake b/Boot/cmake/x86_64-uefi.toolchain.cmake similarity index 100% rename from bootloader/cmake/x86_64-uefi.toolchain.cmake rename to Boot/cmake/x86_64-uefi.toolchain.cmake diff --git a/bootloader/src/main.c b/Boot/src/main.c similarity index 100% rename from bootloader/src/main.c rename to Boot/src/main.c diff --git a/bootloader/src/uefi/Makefile b/Boot/src/uefi/Makefile similarity index 100% rename from bootloader/src/uefi/Makefile rename to Boot/src/uefi/Makefile diff --git a/bootloader/src/uefi/crt_aarch64.c b/Boot/src/uefi/crt_aarch64.c similarity index 100% rename from bootloader/src/uefi/crt_aarch64.c rename to Boot/src/uefi/crt_aarch64.c diff --git a/bootloader/src/uefi/crt_riscv64.c b/Boot/src/uefi/crt_riscv64.c similarity index 100% rename from bootloader/src/uefi/crt_riscv64.c rename to Boot/src/uefi/crt_riscv64.c diff --git a/bootloader/src/uefi/crt_x86_64.c b/Boot/src/uefi/crt_x86_64.c similarity index 100% rename from bootloader/src/uefi/crt_x86_64.c rename to Boot/src/uefi/crt_x86_64.c diff --git a/bootloader/src/uefi/dirent.c b/Boot/src/uefi/dirent.c similarity index 100% rename from bootloader/src/uefi/dirent.c rename to Boot/src/uefi/dirent.c diff --git a/bootloader/src/uefi/qsort.c b/Boot/src/uefi/qsort.c similarity index 100% rename from bootloader/src/uefi/qsort.c rename to Boot/src/uefi/qsort.c diff --git a/bootloader/src/uefi/stat.c b/Boot/src/uefi/stat.c similarity index 100% rename from bootloader/src/uefi/stat.c rename to Boot/src/uefi/stat.c diff --git a/bootloader/src/uefi/stdio.c b/Boot/src/uefi/stdio.c similarity index 100% rename from bootloader/src/uefi/stdio.c rename to Boot/src/uefi/stdio.c diff --git a/bootloader/src/uefi/stdlib.c b/Boot/src/uefi/stdlib.c similarity index 100% rename from bootloader/src/uefi/stdlib.c rename to Boot/src/uefi/stdlib.c diff --git a/bootloader/src/uefi/string.c b/Boot/src/uefi/string.c similarity index 100% rename from bootloader/src/uefi/string.c rename to Boot/src/uefi/string.c diff --git a/bootloader/src/uefi/time.c b/Boot/src/uefi/time.c similarity index 100% rename from bootloader/src/uefi/time.c rename to Boot/src/uefi/time.c diff --git a/bootloader/src/uefi/uefi.h b/Boot/src/uefi/uefi.h similarity index 100% rename from bootloader/src/uefi/uefi.h rename to Boot/src/uefi/uefi.h diff --git a/bootloader/src/uefi/unistd.c b/Boot/src/uefi/unistd.c similarity index 100% rename from bootloader/src/uefi/unistd.c rename to Boot/src/uefi/unistd.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 943e9f2..aa5503b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ find_program(MCOPY_EXE mcopy) find_program(MKFS_EXE mkfs.fat) find_program(CPIO_EXE cpio) find_program(QEMU_EXE qemu-system-x86_64) -set(OVMF_PATH "/usr/share/edk2/ovmf/OVMF_CODE.fd" CACHE FILEPATH "Path to OVMF bios") +set(OVMF_PATH "/usr/share/edk2/x64/OVMF.4m.fd" CACHE FILEPATH "Path to OVMF bios") execute_process( COMMAND git describe --tags --always --dirty @@ -26,9 +26,9 @@ endif() message(STATUS "Building termOS version: ${KERNEL_VERSION}") add_compile_definitions(TERMOS_VERSION=\"${KERNEL_VERSION}\") -add_subdirectory(bootloader) -add_subdirectory(kernel) -add_subdirectory(userspace) +add_subdirectory(Boot) +add_subdirectory(System) +add_subdirectory(Runtime) set(SYSTEM_SERVICES init diff --git a/userspace/CMakeLists.txt b/Runtime/CMakeLists.txt similarity index 100% rename from userspace/CMakeLists.txt rename to Runtime/CMakeLists.txt diff --git a/userspace/debug/CMakeLists.txt b/Runtime/debug/CMakeLists.txt similarity index 100% rename from userspace/debug/CMakeLists.txt rename to Runtime/debug/CMakeLists.txt diff --git a/userspace/debug/src/main.c b/Runtime/debug/src/main.c similarity index 100% rename from userspace/debug/src/main.c rename to Runtime/debug/src/main.c diff --git a/userspace/init/CMakeLists.txt b/Runtime/init/CMakeLists.txt similarity index 100% rename from userspace/init/CMakeLists.txt rename to Runtime/init/CMakeLists.txt diff --git a/userspace/init/src/main.c b/Runtime/init/src/main.c similarity index 100% rename from userspace/init/src/main.c rename to Runtime/init/src/main.c diff --git a/userspace/libterm/CMakeLists.txt b/Runtime/libterm/CMakeLists.txt similarity index 94% rename from userspace/libterm/CMakeLists.txt rename to Runtime/libterm/CMakeLists.txt index 50cd6f0..fa84390 100644 --- a/userspace/libterm/CMakeLists.txt +++ b/Runtime/libterm/CMakeLists.txt @@ -44,7 +44,8 @@ function(add_termos_executable NAME SOURCES) target_sources(${NAME} PRIVATE $) - target_compile_options(${NAME} PRIVATE $<$:${USER_C_FLAGS}>) + target_compile_options(${NAME} PRIVATE $<$:${USER_C_FLAGS}> + -fno-stack-protector) # fixme: what the fuck. ugly this works user_c_flags apparently not target_link_libraries(${NAME} PRIVATE term) target_link_options(${NAME} PRIVATE diff --git a/userspace/libterm/inc/Console.h b/Runtime/libterm/inc/Console.h similarity index 100% rename from userspace/libterm/inc/Console.h rename to Runtime/libterm/inc/Console.h diff --git a/userspace/libterm/inc/Memory.h b/Runtime/libterm/inc/Memory.h similarity index 100% rename from userspace/libterm/inc/Memory.h rename to Runtime/libterm/inc/Memory.h diff --git a/userspace/libterm/inc/Process.h b/Runtime/libterm/inc/Process.h similarity index 100% rename from userspace/libterm/inc/Process.h rename to Runtime/libterm/inc/Process.h diff --git a/userspace/libterm/inc/String.h b/Runtime/libterm/inc/String.h similarity index 100% rename from userspace/libterm/inc/String.h rename to Runtime/libterm/inc/String.h diff --git a/userspace/libterm/inc/Types.h b/Runtime/libterm/inc/Types.h similarity index 100% rename from userspace/libterm/inc/Types.h rename to Runtime/libterm/inc/Types.h diff --git a/userspace/libterm/inc/Varargs.h b/Runtime/libterm/inc/Varargs.h similarity index 100% rename from userspace/libterm/inc/Varargs.h rename to Runtime/libterm/inc/Varargs.h diff --git a/userspace/libterm/inc/termOS.h b/Runtime/libterm/inc/termOS.h similarity index 100% rename from userspace/libterm/inc/termOS.h rename to Runtime/libterm/inc/termOS.h diff --git a/userspace/libterm/linker.ld b/Runtime/libterm/linker.ld similarity index 100% rename from userspace/libterm/linker.ld rename to Runtime/libterm/linker.ld diff --git a/userspace/libterm/src/Character.c b/Runtime/libterm/src/Character.c similarity index 100% rename from userspace/libterm/src/Character.c rename to Runtime/libterm/src/Character.c diff --git a/userspace/libterm/src/Console.c b/Runtime/libterm/src/Console.c similarity index 100% rename from userspace/libterm/src/Console.c rename to Runtime/libterm/src/Console.c diff --git a/userspace/libterm/src/Memory.c b/Runtime/libterm/src/Memory.c similarity index 100% rename from userspace/libterm/src/Memory.c rename to Runtime/libterm/src/Memory.c diff --git a/userspace/libterm/src/OSServices.asm b/Runtime/libterm/src/OSServices.asm similarity index 100% rename from userspace/libterm/src/OSServices.asm rename to Runtime/libterm/src/OSServices.asm diff --git a/userspace/libterm/src/Process.c b/Runtime/libterm/src/Process.c similarity index 100% rename from userspace/libterm/src/Process.c rename to Runtime/libterm/src/Process.c diff --git a/userspace/libterm/src/RuntimeEntry.asm b/Runtime/libterm/src/RuntimeEntry.asm similarity index 100% rename from userspace/libterm/src/RuntimeEntry.asm rename to Runtime/libterm/src/RuntimeEntry.asm diff --git a/userspace/libterm/src/String.c b/Runtime/libterm/src/String.c similarity index 100% rename from userspace/libterm/src/String.c rename to Runtime/libterm/src/String.c diff --git a/userspace/termosh/CMakeLists.txt b/Runtime/termosh/CMakeLists.txt similarity index 100% rename from userspace/termosh/CMakeLists.txt rename to Runtime/termosh/CMakeLists.txt diff --git a/userspace/termosh/inc/handlers.h b/Runtime/termosh/inc/handlers.h similarity index 100% rename from userspace/termosh/inc/handlers.h rename to Runtime/termosh/inc/handlers.h diff --git a/userspace/termosh/inc/parser.h b/Runtime/termosh/inc/parser.h similarity index 100% rename from userspace/termosh/inc/parser.h rename to Runtime/termosh/inc/parser.h diff --git a/userspace/termosh/inc/tokens.h b/Runtime/termosh/inc/tokens.h similarity index 100% rename from userspace/termosh/inc/tokens.h rename to Runtime/termosh/inc/tokens.h diff --git a/userspace/termosh/src/handlers/misc.c b/Runtime/termosh/src/handlers/misc.c similarity index 100% rename from userspace/termosh/src/handlers/misc.c rename to Runtime/termosh/src/handlers/misc.c diff --git a/userspace/termosh/src/handlers/spawn.c b/Runtime/termosh/src/handlers/spawn.c similarity index 100% rename from userspace/termosh/src/handlers/spawn.c rename to Runtime/termosh/src/handlers/spawn.c diff --git a/userspace/termosh/src/main.c b/Runtime/termosh/src/main.c similarity index 100% rename from userspace/termosh/src/main.c rename to Runtime/termosh/src/main.c diff --git a/userspace/termosh/src/modules/parser.c b/Runtime/termosh/src/modules/parser.c similarity index 100% rename from userspace/termosh/src/modules/parser.c rename to Runtime/termosh/src/modules/parser.c diff --git a/kernel/CMakeLists.txt b/System/CMakeLists.txt similarity index 98% rename from kernel/CMakeLists.txt rename to System/CMakeLists.txt index 691cbc0..3635de8 100644 --- a/kernel/CMakeLists.txt +++ b/System/CMakeLists.txt @@ -24,7 +24,6 @@ file(GLOB_RECURSE KERNEL_SOURCES CMAKE_CONFIGURE_DEPENDS "src/lib/*.c" "src/IO/*.c" "src/VM/*.c" - "src/KSH/*.c" "src/FS/*.c" "Data/*.c" diff --git a/kernel/inc/Data/VGAFont.h b/System/inc/Data/VGAFont.h similarity index 100% rename from kernel/inc/Data/VGAFont.h rename to System/inc/Data/VGAFont.h diff --git a/kernel/inc/Data/cats.h b/System/inc/Data/cats.h similarity index 100% rename from kernel/inc/Data/cats.h rename to System/inc/Data/cats.h diff --git a/kernel/inc/Data/logo.h b/System/inc/Data/logo.h similarity index 100% rename from kernel/inc/Data/logo.h rename to System/inc/Data/logo.h diff --git a/kernel/inc/FS/CPIO.h b/System/inc/FS/CPIO.h similarity index 100% rename from kernel/inc/FS/CPIO.h rename to System/inc/FS/CPIO.h diff --git a/kernel/inc/FS/VFS.h b/System/inc/FS/VFS.h similarity index 100% rename from kernel/inc/FS/VFS.h rename to System/inc/FS/VFS.h diff --git a/kernel/inc/IO/IOConsole.h b/System/inc/IO/IOConsole.h similarity index 100% rename from kernel/inc/IO/IOConsole.h rename to System/inc/IO/IOConsole.h diff --git a/kernel/inc/IO/IOGraphics.h b/System/inc/IO/IOGraphics.h similarity index 100% rename from kernel/inc/IO/IOGraphics.h rename to System/inc/IO/IOGraphics.h diff --git a/kernel/inc/IO/IOKeyboard.h b/System/inc/IO/IOKeyboard.h similarity index 100% rename from kernel/inc/IO/IOKeyboard.h rename to System/inc/IO/IOKeyboard.h diff --git a/kernel/inc/IO/IOSerial.h b/System/inc/IO/IOSerial.h similarity index 100% rename from kernel/inc/IO/IOSerial.h rename to System/inc/IO/IOSerial.h diff --git a/kernel/inc/IO/IOTimer.h b/System/inc/IO/IOTimer.h similarity index 100% rename from kernel/inc/IO/IOTimer.h rename to System/inc/IO/IOTimer.h diff --git a/kernel/inc/OS/Exec/HOTLoader.h b/System/inc/OS/Exec/HOTLoader.h similarity index 100% rename from kernel/inc/OS/Exec/HOTLoader.h rename to System/inc/OS/Exec/HOTLoader.h diff --git a/kernel/inc/OS/Exec/OSLoader.h b/System/inc/OS/Exec/OSLoader.h similarity index 89% rename from kernel/inc/OS/Exec/OSLoader.h rename to System/inc/OS/Exec/OSLoader.h index 4ae260d..428d479 100644 --- a/kernel/inc/OS/Exec/OSLoader.h +++ b/System/inc/OS/Exec/OSLoader.h @@ -6,4 +6,4 @@ #include Int32 OSLoaderProcessSpawn(const char* executablePath, const char* processName); -void init_task_entry(); \ No newline at end of file +void initTask(); \ No newline at end of file diff --git a/kernel/inc/OS/OSPanic.h b/System/inc/OS/OSPanic.h similarity index 100% rename from kernel/inc/OS/OSPanic.h rename to System/inc/OS/OSPanic.h diff --git a/kernel/inc/OS/OSScheduler.h b/System/inc/OS/OSScheduler.h similarity index 100% rename from kernel/inc/OS/OSScheduler.h rename to System/inc/OS/OSScheduler.h diff --git a/kernel/inc/OS/OSSpinlock.h b/System/inc/OS/OSSpinlock.h similarity index 100% rename from kernel/inc/OS/OSSpinlock.h rename to System/inc/OS/OSSpinlock.h diff --git a/kernel/inc/OS/Services/OSServiceIO.h b/System/inc/OS/Services/OSServiceIO.h similarity index 100% rename from kernel/inc/OS/Services/OSServiceIO.h rename to System/inc/OS/Services/OSServiceIO.h diff --git a/kernel/inc/OS/Services/OSServiceMemory.h b/System/inc/OS/Services/OSServiceMemory.h similarity index 100% rename from kernel/inc/OS/Services/OSServiceMemory.h rename to System/inc/OS/Services/OSServiceMemory.h diff --git a/kernel/inc/OS/Services/OSServiceProcess.h b/System/inc/OS/Services/OSServiceProcess.h similarity index 100% rename from kernel/inc/OS/Services/OSServiceProcess.h rename to System/inc/OS/Services/OSServiceProcess.h diff --git a/kernel/inc/VM/Heap.h b/System/inc/VM/Heap.h similarity index 100% rename from kernel/inc/VM/Heap.h rename to System/inc/VM/Heap.h diff --git a/kernel/inc/VM/PMM.h b/System/inc/VM/PMM.h similarity index 100% rename from kernel/inc/VM/PMM.h rename to System/inc/VM/PMM.h diff --git a/kernel/inc/VM/VMM.h b/System/inc/VM/VMM.h similarity index 100% rename from kernel/inc/VM/VMM.h rename to System/inc/VM/VMM.h diff --git a/kernel/inc/arch/x86_64/GDT.h b/System/inc/arch/x86_64/GDT.h similarity index 100% rename from kernel/inc/arch/x86_64/GDT.h rename to System/inc/arch/x86_64/GDT.h diff --git a/kernel/inc/arch/x86_64/IDT.h b/System/inc/arch/x86_64/IDT.h similarity index 100% rename from kernel/inc/arch/x86_64/IDT.h rename to System/inc/arch/x86_64/IDT.h diff --git a/kernel/inc/arch/x86_64/IO.h b/System/inc/arch/x86_64/IO.h similarity index 100% rename from kernel/inc/arch/x86_64/IO.h rename to System/inc/arch/x86_64/IO.h diff --git a/kernel/inc/arch/x86_64/OSCPU.h b/System/inc/arch/x86_64/OSCPU.h similarity index 100% rename from kernel/inc/arch/x86_64/OSCPU.h rename to System/inc/arch/x86_64/OSCPU.h diff --git a/kernel/inc/arch/x86_64/PIC.h b/System/inc/arch/x86_64/PIC.h similarity index 100% rename from kernel/inc/arch/x86_64/PIC.h rename to System/inc/arch/x86_64/PIC.h diff --git a/kernel/inc/arch/x86_64/syscall.h b/System/inc/arch/x86_64/syscall.h similarity index 100% rename from kernel/inc/arch/x86_64/syscall.h rename to System/inc/arch/x86_64/syscall.h diff --git a/kernel/inc/lib/Math.h b/System/inc/lib/Math.h similarity index 100% rename from kernel/inc/lib/Math.h rename to System/inc/lib/Math.h diff --git a/kernel/inc/lib/Rand.h b/System/inc/lib/Rand.h similarity index 100% rename from kernel/inc/lib/Rand.h rename to System/inc/lib/Rand.h diff --git a/kernel/inc/lib/Splash.h b/System/inc/lib/Splash.h similarity index 100% rename from kernel/inc/lib/Splash.h rename to System/inc/lib/Splash.h diff --git a/kernel/inc/lib/String.h b/System/inc/lib/String.h similarity index 100% rename from kernel/inc/lib/String.h rename to System/inc/lib/String.h diff --git a/kernel/inc/types.h b/System/inc/types.h similarity index 100% rename from kernel/inc/types.h rename to System/inc/types.h diff --git a/kernel/linker.ld b/System/linker.ld similarity index 100% rename from kernel/linker.ld rename to System/linker.ld diff --git a/kernel/src/FS/CPIO.c b/System/src/FS/CPIO.c similarity index 100% rename from kernel/src/FS/CPIO.c rename to System/src/FS/CPIO.c diff --git a/kernel/src/FS/VFS.c b/System/src/FS/VFS.c similarity index 100% rename from kernel/src/FS/VFS.c rename to System/src/FS/VFS.c diff --git a/kernel/src/IO/IOConsole.c b/System/src/IO/IOConsole.c similarity index 100% rename from kernel/src/IO/IOConsole.c rename to System/src/IO/IOConsole.c diff --git a/kernel/src/IO/IOGraphics.c b/System/src/IO/IOGraphics.c similarity index 100% rename from kernel/src/IO/IOGraphics.c rename to System/src/IO/IOGraphics.c diff --git a/kernel/src/IO/IOKeyboard.c b/System/src/IO/IOKeyboard.c similarity index 100% rename from kernel/src/IO/IOKeyboard.c rename to System/src/IO/IOKeyboard.c diff --git a/kernel/src/IO/IOSerial.c b/System/src/IO/IOSerial.c similarity index 100% rename from kernel/src/IO/IOSerial.c rename to System/src/IO/IOSerial.c diff --git a/kernel/src/IO/IOTimer.c b/System/src/IO/IOTimer.c similarity index 100% rename from kernel/src/IO/IOTimer.c rename to System/src/IO/IOTimer.c diff --git a/kernel/src/OS/Exec/HOTLoader.c b/System/src/OS/Exec/HOTLoader.c similarity index 100% rename from kernel/src/OS/Exec/HOTLoader.c rename to System/src/OS/Exec/HOTLoader.c diff --git a/kernel/src/OS/Exec/OSLoader.c b/System/src/OS/Exec/OSLoader.c similarity index 98% rename from kernel/src/OS/Exec/OSLoader.c rename to System/src/OS/Exec/OSLoader.c index 3d1d49e..51345fd 100644 --- a/kernel/src/OS/Exec/OSLoader.c +++ b/System/src/OS/Exec/OSLoader.c @@ -71,7 +71,7 @@ Int32 OSLoaderProcessSpawn(const char* executablePath, const char* processName) return newProcess->processId; } -void init_task_entry() { +void initTask() { Int32 pid = OSLoaderProcessSpawn("/System/CoreServices/init", "init"); if (pid < 0) { OSPanic("FATAL: Failed to spawn /System/CoreServices/init"); diff --git a/kernel/src/OS/OSPanic.c b/System/src/OS/OSPanic.c similarity index 100% rename from kernel/src/OS/OSPanic.c rename to System/src/OS/OSPanic.c diff --git a/kernel/src/OS/OSScheduler.c b/System/src/OS/OSScheduler.c similarity index 100% rename from kernel/src/OS/OSScheduler.c rename to System/src/OS/OSScheduler.c diff --git a/kernel/src/OS/OSSpinlock.c b/System/src/OS/OSSpinlock.c similarity index 100% rename from kernel/src/OS/OSSpinlock.c rename to System/src/OS/OSSpinlock.c diff --git a/kernel/src/OS/Services/OSServiceIO.c b/System/src/OS/Services/OSServiceIO.c similarity index 100% rename from kernel/src/OS/Services/OSServiceIO.c rename to System/src/OS/Services/OSServiceIO.c diff --git a/kernel/src/OS/Services/OSServiceMemory.c b/System/src/OS/Services/OSServiceMemory.c similarity index 100% rename from kernel/src/OS/Services/OSServiceMemory.c rename to System/src/OS/Services/OSServiceMemory.c diff --git a/kernel/src/OS/Services/OSServiceProcess.c b/System/src/OS/Services/OSServiceProcess.c similarity index 100% rename from kernel/src/OS/Services/OSServiceProcess.c rename to System/src/OS/Services/OSServiceProcess.c diff --git a/kernel/src/VM/Heap.c b/System/src/VM/Heap.c similarity index 100% rename from kernel/src/VM/Heap.c rename to System/src/VM/Heap.c diff --git a/kernel/src/VM/PMM.c b/System/src/VM/PMM.c similarity index 100% rename from kernel/src/VM/PMM.c rename to System/src/VM/PMM.c diff --git a/kernel/src/VM/VMM.c b/System/src/VM/VMM.c similarity index 100% rename from kernel/src/VM/VMM.c rename to System/src/VM/VMM.c diff --git a/kernel/src/arch/x86_64/GDT.c b/System/src/arch/x86_64/GDT.c similarity index 100% rename from kernel/src/arch/x86_64/GDT.c rename to System/src/arch/x86_64/GDT.c diff --git a/kernel/src/arch/x86_64/IDT.c b/System/src/arch/x86_64/IDT.c similarity index 100% rename from kernel/src/arch/x86_64/IDT.c rename to System/src/arch/x86_64/IDT.c diff --git a/kernel/src/arch/x86_64/OSCPU.c b/System/src/arch/x86_64/OSCPU.c similarity index 100% rename from kernel/src/arch/x86_64/OSCPU.c rename to System/src/arch/x86_64/OSCPU.c diff --git a/kernel/src/arch/x86_64/PIC.c b/System/src/arch/x86_64/PIC.c similarity index 100% rename from kernel/src/arch/x86_64/PIC.c rename to System/src/arch/x86_64/PIC.c diff --git a/kernel/src/arch/x86_64/entry.asm b/System/src/arch/x86_64/entry.asm similarity index 100% rename from kernel/src/arch/x86_64/entry.asm rename to System/src/arch/x86_64/entry.asm diff --git a/kernel/src/arch/x86_64/interrupts.asm b/System/src/arch/x86_64/interrupts.asm similarity index 100% rename from kernel/src/arch/x86_64/interrupts.asm rename to System/src/arch/x86_64/interrupts.asm diff --git a/kernel/src/arch/x86_64/interrupts.c b/System/src/arch/x86_64/interrupts.c similarity index 100% rename from kernel/src/arch/x86_64/interrupts.c rename to System/src/arch/x86_64/interrupts.c diff --git a/kernel/src/arch/x86_64/syscall.asm b/System/src/arch/x86_64/syscall.asm similarity index 100% rename from kernel/src/arch/x86_64/syscall.asm rename to System/src/arch/x86_64/syscall.asm diff --git a/kernel/src/arch/x86_64/syscall.c b/System/src/arch/x86_64/syscall.c similarity index 100% rename from kernel/src/arch/x86_64/syscall.c rename to System/src/arch/x86_64/syscall.c diff --git a/kernel/src/kmain.c b/System/src/kmain.c similarity index 81% rename from kernel/src/kmain.c rename to System/src/kmain.c index 8a2d069..572c882 100644 --- a/kernel/src/kmain.c +++ b/System/src/kmain.c @@ -3,8 +3,6 @@ #include "bootinfo.h" -#include - #include #include @@ -94,24 +92,12 @@ void kmain(Bootinfo* info) { SplashShow(&sIOGraphicsContext); - bool rescueMode = false; if (!info->initramfs.address) { - IOConsoleLog("^rWARNING^!: Failed to load ^yStartupVolume^!! Staying in kernel rescue shell!\n\n"); - rescueMode = true; - } - - if (!rescueMode) { - IOConsoleLog("Press any key to continue booting. \nPress ^yq^! to stay in ^gksh^!\n"); - char c = '\n'; - c = IOKeyboardGetCharacter(); - if (c == 'q') rescueMode = true; + OSPanic("Failed to load StartupVolume."); } - if (rescueMode) OSSchedulerSpawn(KSHEntry, nullptr, false, 0); - else OSSchedulerSpawn(init_task_entry, nullptr, false, 0); + OSSchedulerSpawn(initTask, nullptr, false, 0); __asm__ volatile("sti"); - while (true) __asm__ volatile("hlt"); - OSPanic("How in the name of God you got here?"); } \ No newline at end of file diff --git a/kernel/src/lib/Rand.c b/System/src/lib/Rand.c similarity index 100% rename from kernel/src/lib/Rand.c rename to System/src/lib/Rand.c diff --git a/kernel/src/lib/Splash.c b/System/src/lib/Splash.c similarity index 100% rename from kernel/src/lib/Splash.c rename to System/src/lib/Splash.c diff --git a/kernel/src/lib/String.c b/System/src/lib/String.c similarity index 100% rename from kernel/src/lib/String.c rename to System/src/lib/String.c diff --git a/kernel/inc/KSH/KSHBuiltins.h b/kernel/inc/KSH/KSHBuiltins.h deleted file mode 100644 index 9096742..0000000 --- a/kernel/inc/KSH/KSHBuiltins.h +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// Copyright (c) 2026 0xKarinyash - -#pragma once - -void KSHCommandKernelFetch(); -void KSHCommandMeow(); -void KSHCommandHelp(); -void KSHCommandRegisters(); -void KSHCommandSleep(); -void KSHCommandDebug(); -void KSHCommandRand(); -void KSHCommandVer(); \ No newline at end of file diff --git a/kernel/inc/KSH/KSHDebug.h b/kernel/inc/KSH/KSHDebug.h deleted file mode 100644 index daa3a60..0000000 --- a/kernel/inc/KSH/KSHDebug.h +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// Copyright (c) 2026 0xKarinyash - -#pragma once -#include - -UInt64 KSHDebug(); diff --git a/kernel/inc/KSH/KSHEntry.h b/kernel/inc/KSH/KSHEntry.h deleted file mode 100644 index 7cc1141..0000000 --- a/kernel/inc/KSH/KSHEntry.h +++ /dev/null @@ -1,6 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// Copyright (c) 2026 0xKarinyash - -#pragma once - -void KSHEntry(); diff --git a/kernel/src/KSH/KSHBuiltins.c b/kernel/src/KSH/KSHBuiltins.c deleted file mode 100644 index 20c0639..0000000 --- a/kernel/src/KSH/KSHBuiltins.c +++ /dev/null @@ -1,106 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// Copyright (c) 2026 0xKarinyash - -#include -#include - -#include -#include - -#include -#include - -#include - -#include -#include - -#include - -#include - - -const char* asciiLogo[] = { - " /\\___/\\ ", - " | > < | ", - " | w | ", - " |=======|__ ", - " | | | ", - " |TERMOS | | ", - " | |__| ", - " |_______| " -}; - -void KSHCommandKernelFetch() { - UInt64 uptimeSeconds = IOTimerGetTicks() / 1000; - - IOConsoleLog("\n\n"); - IOConsoleLog("^p %s ^!\t\t^g kernel^!@^gtermos\n^0", asciiLogo[0]); - IOConsoleLog("^p %s ^!\t\t^!-------------\n^!", asciiLogo[1]); - IOConsoleLog("^p %s ^!\t\t^gOS^!: termOS %s\n^!", asciiLogo[2], TERMOS_VERSION); - IOConsoleLog("^p %s ^!\t\t^gKernel^!: Dewar (x86_64), build: %s %s\n^!", asciiLogo[3], __DATE__, __TIME__); - IOConsoleLog("^p %s ^!\t\t^gUptime^!: %d seconds\n^!", asciiLogo[4], uptimeSeconds); - IOConsoleLog("^p %s ^!\t\t^gShell^!: ksh\n^!", asciiLogo[5]); - IOConsoleLog("^p %s ^!\t\t^gDE^!: shitgui\n^!", asciiLogo[6]); - IOConsoleLog("^p %s ^!\t\t^gCPU^!: %s (^yFamily^!: %d; ^yModel^!: %d)\n^!", asciiLogo[7], gOSBootCPU.vendorID, gOSBootCPU.family, gOSBootCPU.model); - IOConsoleLog("\n\n"); -} - -void KSHCommandMeow() { - UInt64 catsCount = sizeof(cats) / sizeof(cats[0]); - UInt8 randomNumber = Rand() % catsCount; - IOConsoleLog("Nyaaa!!\n\n%s\n\n", cats[randomNumber]); -} - -void KSHCommandHelp() { - IOConsoleLog("Welcome to ^ptermOS^!'s ^gk^!ernel ^gsh^!ell!\n"); - IOConsoleLog("It loads when userspace is failed to load and acts as a basic rescue environment\n"); - IOConsoleLog("Available commands:\n"); - - IOConsoleLog("\t^rDebug^!:\n"); - IOConsoleLog("\t\t^ysleep^! \t\tSleep for 3seconds\n"); - IOConsoleLog("\t\t^ydbg^! \t\tTest new stuff\n"); - IOConsoleLog("\t\t^yregs^! \t\tPrint current regs\n"); - IOConsoleLog("\t\t^ypanic^! \t\tPanics (lol)\n"); - IOConsoleLog("\t\t^yud2^! \t\tPanics with #UD\n"); - IOConsoleLog("\t\t^ypf^! \t\tPanics with #PF\n"); - - IOConsoleLog("\t^pFun^!:\n"); - IOConsoleLog("\t\t^ysplash^! \t\tShows splash (works kinda unstable)\n"); - IOConsoleLog("\t\t^ymeow^! \t\tcats!!!\n"); - IOConsoleLog("\t\t^ykfetch^! \t\tr/unixporn compatible\n"); - - IOConsoleLog("\t^bMisc^!:\n"); - IOConsoleLog("\t\t^yclear^! \t\tClear console\n"); - IOConsoleLog("\t\t^yhelp^! \t\tShow this menu\n"); - IOConsoleLog("\t\t^yrand^! \t\tGet a random number\n"); - IOConsoleLog("\t\t^yver^! \t\tDisplays termOS's version\n"); -} - -void KSHCommandRegisters() { - __asm__ volatile ("int3"); -} - -void KSHCommandSleep() { - OSSchedulerYield(3000); -} - -void KSHCommandRand() { - IOConsoleLog("Your rand number (0..100) is ... ^y%d^!!\n", Rand() % 100); -} - -void KSHCommandDebug() { - UInt64 status = KSHDebug(); - IOConsoleLog("\nDebug ended with code %d\n", status); - return; -} - -void KSHCommandVer() { - IOConsoleLog("termOS version %s\n", TERMOS_VERSION); - IOConsoleLog("Dewar Kernel (x86_64), build: %s %s\n", __DATE__, __TIME__); - IOConsoleLog("License: GPL-3.0-or-later\n"); -} - -void cmd_userspace() { - IOConsoleLog("Command disabled due to be really broken\n"); -} \ No newline at end of file diff --git a/kernel/src/KSH/KSHDebug.c b/kernel/src/KSH/KSHDebug.c deleted file mode 100644 index 29813d4..0000000 --- a/kernel/src/KSH/KSHDebug.c +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// Copyright (c) 2026 0xKarinyash - -#include -#include - -UInt64 KSHDebug() { - return 0; -} \ No newline at end of file diff --git a/kernel/src/KSH/KSHEntry.c b/kernel/src/KSH/KSHEntry.c deleted file mode 100644 index 59d1366..0000000 --- a/kernel/src/KSH/KSHEntry.c +++ /dev/null @@ -1,109 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -// Copyright (c) 2026 0xKarinyash - -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include - -typedef enum { - TOKEN_EMPTY, - - TOKEN_NULL, - TOKEN_ILLEGAL, - - TOKEN_HELP, - TOKEN_SPLASH, - - TOKEN_KFETCH, - TOKEN_MEOW, - - TOKEN_SLEEP, - - TOKEN_REGS, - TOKEN_DEBUG, - TOKEN_RECTEST, - TOKEN_PANIC, - TOKEN_PANIC_UD2, - TOKEN_PANIC_PF, - - TOKEN_CLEAR, - TOKEN_RAND, - TOKEN_VER, - - TOKEN_BACK, - TOKEN_FORWARD, -} KSHToken; - -typedef struct { - char* str; - KSHToken token; -} KSHCommandMap; - -static const KSHCommandMap CommandMap[] = { - {"", TOKEN_EMPTY}, - // debug - {"sleep", TOKEN_SLEEP}, - {"dbg", TOKEN_DEBUG}, - {"regs", TOKEN_REGS}, - {"panic", TOKEN_PANIC}, - {"ud2", TOKEN_PANIC_UD2}, - {"pf", TOKEN_PANIC_PF}, - - // fun - {"meow", TOKEN_MEOW}, - {"splash", TOKEN_SPLASH}, - {"kfetch", TOKEN_KFETCH}, - - // misc - {"help", TOKEN_HELP}, - {"clear", TOKEN_CLEAR}, - {"rand", TOKEN_RAND}, - {"ver", TOKEN_VER}, - - {nullptr, TOKEN_NULL} -}; - -KSHToken KSHCharacter2Token(char* token) { - for (Int32 i = 0; CommandMap[i].str != nullptr; i++) { - if (StringCompare(token, CommandMap[i].str) == 0) return CommandMap[i].token; - } - return TOKEN_ILLEGAL; -} - -void KSHEntry() { - while (true) { - IOConsoleLog("ksh_> "); - char cmdbuff[256]; - IOConsoleReadLine(cmdbuff, 256); - switch(KSHCharacter2Token(cmdbuff)) { - case TOKEN_EMPTY: continue; - - case TOKEN_CLEAR: IOConsoleClear((UInt32) IOConsoleGetColors() & 0xFFFFFFFF); break; - case TOKEN_RAND: KSHCommandRand(); break; - case TOKEN_VER: KSHCommandVer(); break; - - case TOKEN_SLEEP: KSHCommandSleep(); break; - case TOKEN_DEBUG: KSHCommandDebug(); break; - case TOKEN_REGS: KSHCommandRegisters(); break; - case TOKEN_PANIC: OSPanic("Manually initiated panic"); - case TOKEN_PANIC_UD2: __asm__ volatile ("ud2"); - case TOKEN_PANIC_PF: UInt64* bad_ptr = (UInt64*)0xDEADBEEF; *bad_ptr = 666; - - case TOKEN_SPLASH: SplashShow(IOConsoleGetGraphicsContext()); break; - case TOKEN_KFETCH: KSHCommandKernelFetch(); break; - case TOKEN_MEOW: KSHCommandMeow(); break; - - case TOKEN_HELP: KSHCommandHelp(); break; - default: IOConsoleLog("Unknown command!!\n"); break; - } - } -} \ No newline at end of file