From cfea7a9b5fcefffb6446a57436bab8c2eb74afb6 Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Thu, 23 Apr 2026 20:52:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 263 ++++-------------------- README.md | 2 +- README.zh-CN.md | 2 +- cleonos/CMakeLists.txt | 3 +- clks | 2 +- configs/menuconfig/.config.cleonos.json | 70 +++++++ configs/menuconfig/.config.clks.json | 47 +++++ configs/menuconfig/config.cleonos.cmake | 71 +++++++ configs/menuconfig/config.clks.cmake | 58 ++++++ 9 files changed, 287 insertions(+), 231 deletions(-) create mode 100644 configs/menuconfig/.config.cleonos.json create mode 100644 configs/menuconfig/.config.clks.json create mode 100644 configs/menuconfig/config.cleonos.cmake create mode 100644 configs/menuconfig/config.clks.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 132f7d0..e69e0b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,7 +138,6 @@ set(LIMINE_SETUP_STAMP "${LIMINE_DIR_ABS}/.cleonos-limine-setup.stamp") set(LIMINE_BUILD_STAMP "${LIMINE_DIR_ABS}/.cleonos-limine-build.stamp") set(CLKS_ARCH "x86_64" CACHE STRING "Target CLKS arch") -set(LINKER_SCRIPT "${CMAKE_SOURCE_DIR}/clks/arch/${CLKS_ARCH}/linker.ld") set(USER_LINKER_SCRIPT "${CMAKE_SOURCE_DIR}/cleonos/c/user.ld") set(KELF_LINKER_SCRIPT "${CMAKE_SOURCE_DIR}/cleonos/c/kelf.ld") set(CLEONOS_MENUCONFIG_CMAKE "${CMAKE_SOURCE_DIR}/configs/menuconfig/config.cmake" CACHE FILEPATH "menuconfig generated CMake config") @@ -148,231 +147,7 @@ if(EXISTS "${CLEONOS_MENUCONFIG_CMAKE}") cl_log_info("menuconfig loaded from ${CLEONOS_MENUCONFIG_CMAKE}") endif() -function(cl_set_bool_cache VAR_NAME DEFAULT_VALUE DOC_TEXT) - set(_raw_value "") - set(_has_value OFF) - - if(DEFINED ${VAR_NAME}) - set(_raw_value "${${VAR_NAME}}") - set(_has_value ON) - elseif(DEFINED ${VAR_NAME}_IS_ENABLED) - set(_raw_value "${${VAR_NAME}_IS_ENABLED}") - set(_has_value ON) - endif() - - if(NOT _has_value) - set(${VAR_NAME} ${DEFAULT_VALUE} CACHE BOOL "${DOC_TEXT}") - else() - string(TOUPPER "${_raw_value}" _raw_upper) - if(_raw_upper STREQUAL "Y" OR _raw_upper STREQUAL "M" OR _raw_upper STREQUAL "ON" OR _raw_upper STREQUAL "TRUE" OR _raw_upper STREQUAL "1") - set(_bool_value ON) - else() - set(_bool_value OFF) - endif() - set(${VAR_NAME} ${_bool_value} CACHE BOOL "${DOC_TEXT}" FORCE) - endif() -endfunction() - -function(cl_bool_to_int BOOL_VAR OUT_VAR) - if(${BOOL_VAR}) - set(${OUT_VAR} 1 PARENT_SCOPE) - else() - set(${OUT_VAR} 0 PARENT_SCOPE) - endif() -endfunction() - -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_AUDIO ON "Initialize kernel audio subsystem") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_MOUSE ON "Initialize kernel mouse subsystem") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_DESKTOP ON "Initialize desktop compositor subsystem") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_DRIVER_MANAGER ON "Initialize kernel driver manager") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KELF ON "Enable KELF app dispatcher") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC ON "Auto exec /shell/shell.elf on boot") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_HEAP_SELFTEST ON "Run heap selftest at boot") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_EXTERNAL_PSF ON "Load /system/tty.psf external font") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KEYBOARD ON "Initialize keyboard input subsystem") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_ELFRUNNER_PROBE ON "Run ELFRUNNER kernel ELF probe") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KLOGD_TASK ON "Enable scheduler klogd task") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KWORKER_TASK ON "Enable scheduler kworker task") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USRD_TASK ON "Enable scheduler usrd task") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_BOOT_VIDEO_LOG ON "Print boot framebuffer geometry logs") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_PMM_STATS_LOG ON "Print PMM stats logs") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_HEAP_STATS_LOG ON "Print heap stats logs") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_FS_ROOT_LOG ON "Print root children FS log") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_SYSTEM_DIR_CHECK ON "Require /system directory sanity check") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT ON "Initialize ELFRUNNER framework") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_SYSCALL_TICK_QUERY ON "Query syscall timer ticks at boot") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_TTY_READY_LOG ON "Print TTY ready logs") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG ON "Print idle loop debug log") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_PROCFS ON "Enable virtual /proc procfs syscall layer") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG ON "Enable EXEC info logs on serial output") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC ON "Enable UserSafeController dangerous syscall confirmations") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR ON "USC intercept policy: FS_MKDIR") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE ON "USC intercept policy: FS_WRITE") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND ON "USC intercept policy: FS_APPEND") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE ON "USC intercept policy: FS_REMOVE") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH ON "USC intercept policy: EXEC_PATH") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV ON "USC intercept policy: EXEC_PATHV") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO ON "USC intercept policy: EXEC_PATHV_IO") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH ON "USC intercept policy: SPAWN_PATH") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV ON "USC intercept policy: SPAWN_PATHV") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL ON "USC intercept policy: PROC_KILL") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN ON "USC intercept policy: SHUTDOWN") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USC_SC_RESTART ON "USC intercept policy: RESTART") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY ON "Enable ALT+F1..F4 TTY switch hotkey") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS ON "Enable Ctrl+A/C/V keyboard shortcuts") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY ON "Enable Ctrl+Alt+C force-stop hotkey") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE ON "Probe /shell/init.cmd during userland init") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE ON "Probe /system apps (elfrunner/memc) during userland init") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_SCHED_TASK_COUNT_LOG ON "Print scheduler task count during boot") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_INTERRUPT_READY_LOG ON "Print interrupt ready log after IDT/PIC init") -cl_set_bool_cache(CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG ON "Print default shell mode log during boot") - -if(NOT CLEONOS_ENABLE) - set(CLEONOS_CLKS_ENABLE_KELF OFF CACHE BOOL "Enable KELF app dispatcher" FORCE) - set(CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC OFF CACHE BOOL "Auto exec /shell/shell.elf on boot" FORCE) - set(CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE OFF CACHE BOOL "Probe /shell/init.cmd during userland init" FORCE) - set(CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE OFF CACHE BOOL "Probe /system apps (elfrunner/memc) during userland init" FORCE) -endif() - -cl_bool_to_int(CLEONOS_CLKS_ENABLE_AUDIO CLKS_CFG_AUDIO_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_MOUSE CLKS_CFG_MOUSE_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_DESKTOP CLKS_CFG_DESKTOP_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_DRIVER_MANAGER CLKS_CFG_DRIVER_MANAGER_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KELF CLKS_CFG_KELF_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC CLKS_CFG_USERLAND_AUTO_EXEC_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_HEAP_SELFTEST CLKS_CFG_HEAP_SELFTEST_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_EXTERNAL_PSF CLKS_CFG_EXTERNAL_PSF_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KEYBOARD CLKS_CFG_KEYBOARD_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_ELFRUNNER_PROBE CLKS_CFG_ELFRUNNER_PROBE_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KLOGD_TASK CLKS_CFG_KLOGD_TASK_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KWORKER_TASK CLKS_CFG_KWORKER_TASK_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USRD_TASK CLKS_CFG_USRD_TASK_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_BOOT_VIDEO_LOG CLKS_CFG_BOOT_VIDEO_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_PMM_STATS_LOG CLKS_CFG_PMM_STATS_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_HEAP_STATS_LOG CLKS_CFG_HEAP_STATS_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_FS_ROOT_LOG CLKS_CFG_FS_ROOT_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_SYSTEM_DIR_CHECK CLKS_CFG_SYSTEM_DIR_CHECK_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT CLKS_CFG_ELFRUNNER_INIT_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_SYSCALL_TICK_QUERY CLKS_CFG_SYSCALL_TICK_QUERY_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_TTY_READY_LOG CLKS_CFG_TTY_READY_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG CLKS_CFG_IDLE_DEBUG_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_PROCFS CLKS_CFG_PROCFS_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG CLKS_CFG_EXEC_SERIAL_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC CLKS_CFG_USC_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR CLKS_CFG_USC_SC_FS_MKDIR_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE CLKS_CFG_USC_SC_FS_WRITE_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND CLKS_CFG_USC_SC_FS_APPEND_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE CLKS_CFG_USC_SC_FS_REMOVE_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH CLKS_CFG_USC_SC_EXEC_PATH_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV CLKS_CFG_USC_SC_EXEC_PATHV_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO CLKS_CFG_USC_SC_EXEC_PATHV_IO_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH CLKS_CFG_USC_SC_SPAWN_PATH_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV CLKS_CFG_USC_SC_SPAWN_PATHV_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL CLKS_CFG_USC_SC_PROC_KILL_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN CLKS_CFG_USC_SC_SHUTDOWN_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USC_SC_RESTART CLKS_CFG_USC_SC_RESTART_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY CLKS_CFG_KBD_TTY_SWITCH_HOTKEY_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS CLKS_CFG_KBD_CTRL_SHORTCUTS_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY CLKS_CFG_KBD_FORCE_STOP_HOTKEY_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE CLKS_CFG_USER_INIT_SCRIPT_PROBE_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE CLKS_CFG_USER_SYSTEM_APP_PROBE_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_SCHED_TASK_COUNT_LOG CLKS_CFG_SCHED_TASK_COUNT_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_INTERRUPT_READY_LOG CLKS_CFG_INTERRUPT_READY_LOG_INT) -cl_bool_to_int(CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG CLKS_CFG_SHELL_MODE_LOG_INT) - -set(CFLAGS_COMMON - -std=c11 - -ffreestanding - -fno-stack-protector - -fno-builtin - -g - -Wall - -Wextra - -Werror - "-I${CMAKE_SOURCE_DIR}/clks/include" -) - -set(CXXFLAGS_COMMON - -std=c++17 - -ffreestanding - -fno-stack-protector - -fno-builtin - -fno-exceptions - -fno-rtti - -fno-threadsafe-statics - -fno-use-cxa-atexit - -g - -Wall - -Wextra - -Werror - "-I${CMAKE_SOURCE_DIR}/clks/include" -) - -set(ARCH_CFLAGS - -DCLKS_ARCH_X86_64=1 - "-DCLKS_CFG_AUDIO=${CLKS_CFG_AUDIO_INT}" - "-DCLKS_CFG_MOUSE=${CLKS_CFG_MOUSE_INT}" - "-DCLKS_CFG_DESKTOP=${CLKS_CFG_DESKTOP_INT}" - "-DCLKS_CFG_DRIVER_MANAGER=${CLKS_CFG_DRIVER_MANAGER_INT}" - "-DCLKS_CFG_KELF=${CLKS_CFG_KELF_INT}" - "-DCLKS_CFG_USERLAND_AUTO_EXEC=${CLKS_CFG_USERLAND_AUTO_EXEC_INT}" - "-DCLKS_CFG_HEAP_SELFTEST=${CLKS_CFG_HEAP_SELFTEST_INT}" - "-DCLKS_CFG_EXTERNAL_PSF=${CLKS_CFG_EXTERNAL_PSF_INT}" - "-DCLKS_CFG_KEYBOARD=${CLKS_CFG_KEYBOARD_INT}" - "-DCLKS_CFG_ELFRUNNER_PROBE=${CLKS_CFG_ELFRUNNER_PROBE_INT}" - "-DCLKS_CFG_KLOGD_TASK=${CLKS_CFG_KLOGD_TASK_INT}" - "-DCLKS_CFG_KWORKER_TASK=${CLKS_CFG_KWORKER_TASK_INT}" - "-DCLKS_CFG_USRD_TASK=${CLKS_CFG_USRD_TASK_INT}" - "-DCLKS_CFG_BOOT_VIDEO_LOG=${CLKS_CFG_BOOT_VIDEO_LOG_INT}" - "-DCLKS_CFG_PMM_STATS_LOG=${CLKS_CFG_PMM_STATS_LOG_INT}" - "-DCLKS_CFG_HEAP_STATS_LOG=${CLKS_CFG_HEAP_STATS_LOG_INT}" - "-DCLKS_CFG_FS_ROOT_LOG=${CLKS_CFG_FS_ROOT_LOG_INT}" - "-DCLKS_CFG_SYSTEM_DIR_CHECK=${CLKS_CFG_SYSTEM_DIR_CHECK_INT}" - "-DCLKS_CFG_ELFRUNNER_INIT=${CLKS_CFG_ELFRUNNER_INIT_INT}" - "-DCLKS_CFG_SYSCALL_TICK_QUERY=${CLKS_CFG_SYSCALL_TICK_QUERY_INT}" - "-DCLKS_CFG_TTY_READY_LOG=${CLKS_CFG_TTY_READY_LOG_INT}" - "-DCLKS_CFG_IDLE_DEBUG_LOG=${CLKS_CFG_IDLE_DEBUG_LOG_INT}" - "-DCLKS_CFG_PROCFS=${CLKS_CFG_PROCFS_INT}" - "-DCLKS_CFG_EXEC_SERIAL_LOG=${CLKS_CFG_EXEC_SERIAL_LOG_INT}" - "-DCLKS_CFG_USC=${CLKS_CFG_USC_INT}" - "-DCLKS_CFG_USC_SC_FS_MKDIR=${CLKS_CFG_USC_SC_FS_MKDIR_INT}" - "-DCLKS_CFG_USC_SC_FS_WRITE=${CLKS_CFG_USC_SC_FS_WRITE_INT}" - "-DCLKS_CFG_USC_SC_FS_APPEND=${CLKS_CFG_USC_SC_FS_APPEND_INT}" - "-DCLKS_CFG_USC_SC_FS_REMOVE=${CLKS_CFG_USC_SC_FS_REMOVE_INT}" - "-DCLKS_CFG_USC_SC_EXEC_PATH=${CLKS_CFG_USC_SC_EXEC_PATH_INT}" - "-DCLKS_CFG_USC_SC_EXEC_PATHV=${CLKS_CFG_USC_SC_EXEC_PATHV_INT}" - "-DCLKS_CFG_USC_SC_EXEC_PATHV_IO=${CLKS_CFG_USC_SC_EXEC_PATHV_IO_INT}" - "-DCLKS_CFG_USC_SC_SPAWN_PATH=${CLKS_CFG_USC_SC_SPAWN_PATH_INT}" - "-DCLKS_CFG_USC_SC_SPAWN_PATHV=${CLKS_CFG_USC_SC_SPAWN_PATHV_INT}" - "-DCLKS_CFG_USC_SC_PROC_KILL=${CLKS_CFG_USC_SC_PROC_KILL_INT}" - "-DCLKS_CFG_USC_SC_SHUTDOWN=${CLKS_CFG_USC_SC_SHUTDOWN_INT}" - "-DCLKS_CFG_USC_SC_RESTART=${CLKS_CFG_USC_SC_RESTART_INT}" - "-DCLKS_CFG_KBD_TTY_SWITCH_HOTKEY=${CLKS_CFG_KBD_TTY_SWITCH_HOTKEY_INT}" - "-DCLKS_CFG_KBD_CTRL_SHORTCUTS=${CLKS_CFG_KBD_CTRL_SHORTCUTS_INT}" - "-DCLKS_CFG_KBD_FORCE_STOP_HOTKEY=${CLKS_CFG_KBD_FORCE_STOP_HOTKEY_INT}" - "-DCLKS_CFG_USER_INIT_SCRIPT_PROBE=${CLKS_CFG_USER_INIT_SCRIPT_PROBE_INT}" - "-DCLKS_CFG_USER_SYSTEM_APP_PROBE=${CLKS_CFG_USER_SYSTEM_APP_PROBE_INT}" - "-DCLKS_CFG_SCHED_TASK_COUNT_LOG=${CLKS_CFG_SCHED_TASK_COUNT_LOG_INT}" - "-DCLKS_CFG_INTERRUPT_READY_LOG=${CLKS_CFG_INTERRUPT_READY_LOG_INT}" - "-DCLKS_CFG_SHELL_MODE_LOG=${CLKS_CFG_SHELL_MODE_LOG_INT}" - -m64 - -mno-red-zone - -mcmodel=kernel - -fno-pic - -fno-pie -) - -set(ASFLAGS_COMMON - -ffreestanding - "-I${CMAKE_SOURCE_DIR}/clks/include" -) - -set(LDFLAGS_COMMON - -nostdlib - -z - max-page-size=0x1000 -) - +# CLKS compile flags and feature-to-macro expansion now live in the CLKS submodule build system. set(USER_CFLAGS -std=c11 -ffreestanding @@ -422,7 +197,41 @@ if(NOT CLKS_ARCH STREQUAL "x86_64") cl_log_error("CLKS_ARCH=${CLKS_ARCH} is not supported by this CMake build yet; use x86_64") endif() -include("${CMAKE_SOURCE_DIR}/clks/CMakeLists.txt") +set(CLKS_SOURCE_DIR "${CMAKE_SOURCE_DIR}/clks") +set(CLKS_CMAKE_BUILD_DIR "${CMAKE_BINARY_DIR}/clks-cmake") +if(NOT EXISTS "${CLKS_SOURCE_DIR}/CMakeLists.txt") + cl_log_error("missing CLKS submodule CMakeLists: ${CLKS_SOURCE_DIR}/CMakeLists.txt") +endif() + +set(CLKS_SUBMODULE_CMAKE_ARGS + "-DNO_COLOR=${NO_COLOR}" + "-DCLKS_ARCH=${CLKS_ARCH}" + "-DCLKS_BUILD_ROOT=${BUILD_ROOT}" + "-DCLKS_MENUCONFIG_CMAKE=${CMAKE_SOURCE_DIR}/configs/menuconfig/config.cmake" + "-DCC=${CC}" + "-DKERNEL_CXX=${KERNEL_CXX}" + "-DLD=${LD}" + "-DRUSTC=${RUSTC}" + "-DNM=${NM}" + "-DADDR2LINE=${ADDR2LINE}" + "-DOBJCOPY_FOR_TARGET=${OBJCOPY_FOR_TARGET}" + "-DOBJDUMP_FOR_TARGET=${OBJDUMP_FOR_TARGET}" + "-DREADELF_FOR_TARGET=${READELF_FOR_TARGET}" +) + +add_custom_target(kernel + COMMAND ${CMAKE_COMMAND} -S "${CLKS_SOURCE_DIR}" -B "${CLKS_CMAKE_BUILD_DIR}" ${CLKS_SUBMODULE_CMAKE_ARGS} + COMMAND ${CMAKE_COMMAND} --build "${CLKS_CMAKE_BUILD_DIR}" --target kernel + USES_TERMINAL +) + +add_custom_target(kernel-symbols + COMMAND ${CMAKE_COMMAND} -S "${CLKS_SOURCE_DIR}" -B "${CLKS_CMAKE_BUILD_DIR}" ${CLKS_SUBMODULE_CMAKE_ARGS} + COMMAND ${CMAKE_COMMAND} --build "${CLKS_CMAKE_BUILD_DIR}" --target kernel-symbols + USES_TERMINAL +) +add_dependencies(kernel-symbols kernel) + if(CLEONOS_ENABLE) include("${CMAKE_SOURCE_DIR}/cleonos/CMakeLists.txt") endif() diff --git a/README.md b/README.md index 355c600..e76ff7c 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Experimental x86_64 operating system project with a C kernel, Rust-assisted runt ```text . -|- clks/ # Kernel sources (arch, drivers, scheduler, tty, syscall, ...) +|- clks/ # CLKS kernel submodule (standalone kernel repository) |- cleonos/ # Userland runtime, libc-like layer, user apps, Rust user library |- ramdisk/ # Static files copied into runtime ramdisk |- configs/ # Boot configuration (Limine) diff --git a/README.zh-CN.md b/README.zh-CN.md index b5a5326..9c4cb2c 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -20,7 +20,7 @@ ```text . -|- clks/ # 内核源码(架构、驱动、调度、TTY、syscall 等) +|- clks/ # CLKS 内核子模块(独立内核仓库) |- cleonos/ # 用户态运行时、基础库、用户应用、Rust 用户库 |- ramdisk/ # 运行时 ramdisk 的静态文件 |- configs/ # 启动配置(Limine) diff --git a/cleonos/CMakeLists.txt b/cleonos/CMakeLists.txt index b08e33f..3ab9779 100644 --- a/cleonos/CMakeLists.txt +++ b/cleonos/CMakeLists.txt @@ -311,12 +311,13 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E copy "${KERNEL_SYMBOLS_FILE}" "${RAMDISK_ROOT}/system/kernel.sym" ${RAMDISK_COPY_COMMANDS} COMMAND ${CMAKE_COMMAND} -E touch "${RAMDISK_ROOT_STAMP}" - DEPENDS ${RAMDISK_FILES} ${USER_APP_OUTPUTS} "${KERNEL_SYMBOLS_FILE}" + DEPENDS ${RAMDISK_FILES} ${USER_APP_OUTPUTS} kernel-symbols VERBATIM ) add_custom_target(ramdisk-root DEPENDS "${RAMDISK_ROOT_STAMP}") add_dependencies(ramdisk-root userapps) +add_dependencies(ramdisk-root kernel-symbols) add_custom_command( OUTPUT "${RAMDISK_IMAGE}" diff --git a/clks b/clks index 6a7f0cb..6bc15d6 160000 --- a/clks +++ b/clks @@ -1 +1 @@ -Subproject commit 6a7f0cbdef0a3b7081febf4a2691d3dad71b6cac +Subproject commit 6bc15d6aba7a3a6cbf0d6d6c0df684146a37320b diff --git a/configs/menuconfig/.config.cleonos.json b/configs/menuconfig/.config.cleonos.json new file mode 100644 index 0000000..27ac1a9 --- /dev/null +++ b/configs/menuconfig/.config.cleonos.json @@ -0,0 +1,70 @@ +{ + "CLEONOS_USER_APP_ANSI": true, + "CLEONOS_USER_APP_ANSITEST": true, + "CLEONOS_USER_APP_APPEND": true, + "CLEONOS_USER_APP_ARGS": true, + "CLEONOS_USER_APP_BG": true, + "CLEONOS_USER_APP_BMPVIEW": true, + "CLEONOS_USER_APP_CAT": true, + "CLEONOS_USER_APP_CD": true, + "CLEONOS_USER_APP_CLEAR": true, + "CLEONOS_USER_APP_CP": true, + "CLEONOS_USER_APP_CUT": true, + "CLEONOS_USER_APP_DISKINFO": true, + "CLEONOS_USER_APP_DLTEST": true, + "CLEONOS_USER_APP_DMESG": true, + "CLEONOS_USER_APP_DOOM": true, + "CLEONOS_USER_APP_ELFRUNNER": true, + "CLEONOS_USER_APP_EXEC": true, + "CLEONOS_USER_APP_EXIT": true, + "CLEONOS_USER_APP_FASTFETCH": true, + "CLEONOS_USER_APP_FG": true, + "CLEONOS_USER_APP_FSSTAT": true, + "CLEONOS_USER_APP_GREP": true, + "CLEONOS_USER_APP_HEAD": true, + "CLEONOS_USER_APP_HELLO": true, + "CLEONOS_USER_APP_HELP": true, + "CLEONOS_USER_APP_JOBS": true, + "CLEONOS_USER_APP_KBDSTAT": true, + "CLEONOS_USER_APP_KDBG": true, + "CLEONOS_USER_APP_KILL": true, + "CLEONOS_USER_APP_LIBCTEST": true, + "CLEONOS_USER_APP_LIBDEMO": true, + "CLEONOS_USER_APP_LS": true, + "CLEONOS_USER_APP_MEMC": true, + "CLEONOS_USER_APP_MEMSTAT": true, + "CLEONOS_USER_APP_MKDIR": true, + "CLEONOS_USER_APP_MKFSFAT32": true, + "CLEONOS_USER_APP_MOUNT": true, + "CLEONOS_USER_APP_MV": true, + "CLEONOS_USER_APP_PARTCTL": true, + "CLEONOS_USER_APP_PID": true, + "CLEONOS_USER_APP_PROCSTAT": true, + "CLEONOS_USER_APP_PS": true, + "CLEONOS_USER_APP_PWD": true, + "CLEONOS_USER_APP_QRCODE": true, + "CLEONOS_USER_APP_RESTART": true, + "CLEONOS_USER_APP_RM": true, + "CLEONOS_USER_APP_SHELL": true, + "CLEONOS_USER_APP_SHSTAT": true, + "CLEONOS_USER_APP_SHUTDOWN": true, + "CLEONOS_USER_APP_SLEEP": true, + "CLEONOS_USER_APP_SORT": true, + "CLEONOS_USER_APP_SPAWN": true, + "CLEONOS_USER_APP_SPIN": true, + "CLEONOS_USER_APP_STATS": true, + "CLEONOS_USER_APP_SYSSTAT": true, + "CLEONOS_USER_APP_TAIL": true, + "CLEONOS_USER_APP_TASKSTAT": true, + "CLEONOS_USER_APP_TOP": true, + "CLEONOS_USER_APP_TOUCH": true, + "CLEONOS_USER_APP_TTY": true, + "CLEONOS_USER_APP_TTYDRV": true, + "CLEONOS_USER_APP_UNIQ": true, + "CLEONOS_USER_APP_USERSTAT": true, + "CLEONOS_USER_APP_WAIT": true, + "CLEONOS_USER_APP_WAVPLAY": true, + "CLEONOS_USER_APP_WC": true, + "CLEONOS_USER_APP_WRITE": true, + "CLEONOS_USER_APP_YIELD": true +} diff --git a/configs/menuconfig/.config.clks.json b/configs/menuconfig/.config.clks.json new file mode 100644 index 0000000..e015c14 --- /dev/null +++ b/configs/menuconfig/.config.clks.json @@ -0,0 +1,47 @@ +{ + "CLEONOS_CLKS_ENABLE_AUDIO": true, + "CLEONOS_CLKS_ENABLE_BOOT_VIDEO_LOG": "m", + "CLEONOS_CLKS_ENABLE_DESKTOP": true, + "CLEONOS_CLKS_ENABLE_DRIVER_MANAGER": true, + "CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT": true, + "CLEONOS_CLKS_ENABLE_ELFRUNNER_PROBE": true, + "CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG": "m", + "CLEONOS_CLKS_ENABLE_EXTERNAL_PSF": true, + "CLEONOS_CLKS_ENABLE_FS_ROOT_LOG": "m", + "CLEONOS_CLKS_ENABLE_HEAP_SELFTEST": true, + "CLEONOS_CLKS_ENABLE_HEAP_STATS_LOG": "m", + "CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG": "m", + "CLEONOS_CLKS_ENABLE_INTERRUPT_READY_LOG": "m", + "CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS": true, + "CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY": true, + "CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY": true, + "CLEONOS_CLKS_ENABLE_KELF": true, + "CLEONOS_CLKS_ENABLE_KEYBOARD": true, + "CLEONOS_CLKS_ENABLE_KLOGD_TASK": true, + "CLEONOS_CLKS_ENABLE_KWORKER_TASK": true, + "CLEONOS_CLKS_ENABLE_MOUSE": true, + "CLEONOS_CLKS_ENABLE_PMM_STATS_LOG": "m", + "CLEONOS_CLKS_ENABLE_PROCFS": true, + "CLEONOS_CLKS_ENABLE_SCHED_TASK_COUNT_LOG": "y", + "CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG": "m", + "CLEONOS_CLKS_ENABLE_SYSCALL_TICK_QUERY": true, + "CLEONOS_CLKS_ENABLE_SYSTEM_DIR_CHECK": true, + "CLEONOS_CLKS_ENABLE_TTY_READY_LOG": "m", + "CLEONOS_CLKS_ENABLE_USC": true, + "CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH": true, + "CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV": true, + "CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO": false, + "CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND": false, + "CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR": false, + "CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE": false, + "CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE": false, + "CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL": true, + "CLEONOS_CLKS_ENABLE_USC_SC_RESTART": true, + "CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN": true, + "CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH": true, + "CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV": true, + "CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC": true, + "CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE": true, + "CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE": true, + "CLEONOS_CLKS_ENABLE_USRD_TASK": true +} diff --git a/configs/menuconfig/config.cleonos.cmake b/configs/menuconfig/config.cleonos.cmake new file mode 100644 index 0000000..c6d5d7f --- /dev/null +++ b/configs/menuconfig/config.cleonos.cmake @@ -0,0 +1,71 @@ +# Auto-generated by scripts/menuconfig.py +# Do not edit manually unless you know what you are doing. +set(CLEONOS_MENUCONFIG_CLEONOS_LOADED ON CACHE BOOL "CLeonOS menuconfig loaded" FORCE) +set(CLEONOS_USER_APP_TTYDRV ON CACHE BOOL "ttydrv.elf [driver]" FORCE) +set(CLEONOS_USER_APP_HELLO ON CACHE BOOL "hello.elf [root]" FORCE) +set(CLEONOS_USER_APP_ANSI ON CACHE BOOL "ansi.elf [shell]" FORCE) +set(CLEONOS_USER_APP_ANSITEST ON CACHE BOOL "ansitest.elf [shell]" FORCE) +set(CLEONOS_USER_APP_APPEND ON CACHE BOOL "append.elf [shell]" FORCE) +set(CLEONOS_USER_APP_ARGS ON CACHE BOOL "args.elf [shell]" FORCE) +set(CLEONOS_USER_APP_BG ON CACHE BOOL "bg.elf [shell]" FORCE) +set(CLEONOS_USER_APP_BMPVIEW ON CACHE BOOL "bmpview.elf [shell]" FORCE) +set(CLEONOS_USER_APP_CAT ON CACHE BOOL "cat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_CD ON CACHE BOOL "cd.elf [shell]" FORCE) +set(CLEONOS_USER_APP_CLEAR ON CACHE BOOL "clear.elf [shell]" FORCE) +set(CLEONOS_USER_APP_CP ON CACHE BOOL "cp.elf [shell]" FORCE) +set(CLEONOS_USER_APP_CUT ON CACHE BOOL "cut.elf [shell]" FORCE) +set(CLEONOS_USER_APP_DISKINFO ON CACHE BOOL "diskinfo.elf [shell]" FORCE) +set(CLEONOS_USER_APP_DLTEST ON CACHE BOOL "dltest.elf [shell]" FORCE) +set(CLEONOS_USER_APP_DMESG ON CACHE BOOL "dmesg.elf [shell]" FORCE) +set(CLEONOS_USER_APP_DOOM ON CACHE BOOL "doom.elf [shell]" FORCE) +set(CLEONOS_USER_APP_EXEC ON CACHE BOOL "exec.elf [shell]" FORCE) +set(CLEONOS_USER_APP_EXIT ON CACHE BOOL "exit.elf [shell]" FORCE) +set(CLEONOS_USER_APP_FASTFETCH ON CACHE BOOL "fastfetch.elf [shell]" FORCE) +set(CLEONOS_USER_APP_FG ON CACHE BOOL "fg.elf [shell]" FORCE) +set(CLEONOS_USER_APP_FSSTAT ON CACHE BOOL "fsstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_GREP ON CACHE BOOL "grep.elf [shell]" FORCE) +set(CLEONOS_USER_APP_HEAD ON CACHE BOOL "head.elf [shell]" FORCE) +set(CLEONOS_USER_APP_HELP ON CACHE BOOL "help.elf [shell]" FORCE) +set(CLEONOS_USER_APP_JOBS ON CACHE BOOL "jobs.elf [shell]" FORCE) +set(CLEONOS_USER_APP_KBDSTAT ON CACHE BOOL "kbdstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_KDBG ON CACHE BOOL "kdbg.elf [shell]" FORCE) +set(CLEONOS_USER_APP_KILL ON CACHE BOOL "kill.elf [shell]" FORCE) +set(CLEONOS_USER_APP_LIBCTEST ON CACHE BOOL "libctest.elf [shell]" FORCE) +set(CLEONOS_USER_APP_LIBDEMO ON CACHE BOOL "libdemo.elf [shell]" FORCE) +set(CLEONOS_USER_APP_LS ON CACHE BOOL "ls.elf [shell]" FORCE) +set(CLEONOS_USER_APP_MEMSTAT ON CACHE BOOL "memstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_MKDIR ON CACHE BOOL "mkdir.elf [shell]" FORCE) +set(CLEONOS_USER_APP_MKFSFAT32 ON CACHE BOOL "mkfsfat32.elf [shell]" FORCE) +set(CLEONOS_USER_APP_MOUNT ON CACHE BOOL "mount.elf [shell]" FORCE) +set(CLEONOS_USER_APP_MV ON CACHE BOOL "mv.elf [shell]" FORCE) +set(CLEONOS_USER_APP_PARTCTL ON CACHE BOOL "partctl.elf [shell]" FORCE) +set(CLEONOS_USER_APP_PID ON CACHE BOOL "pid.elf [shell]" FORCE) +set(CLEONOS_USER_APP_PROCSTAT ON CACHE BOOL "procstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_PS ON CACHE BOOL "ps.elf [shell]" FORCE) +set(CLEONOS_USER_APP_PWD ON CACHE BOOL "pwd.elf [shell]" FORCE) +set(CLEONOS_USER_APP_QRCODE ON CACHE BOOL "qrcode.elf [shell]" FORCE) +set(CLEONOS_USER_APP_RESTART ON CACHE BOOL "restart.elf [shell]" FORCE) +set(CLEONOS_USER_APP_RM ON CACHE BOOL "rm.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SHELL ON CACHE BOOL "shell.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SHSTAT ON CACHE BOOL "shstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SHUTDOWN ON CACHE BOOL "shutdown.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SLEEP ON CACHE BOOL "sleep.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SORT ON CACHE BOOL "sort.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SPAWN ON CACHE BOOL "spawn.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SPIN ON CACHE BOOL "spin.elf [shell]" FORCE) +set(CLEONOS_USER_APP_STATS ON CACHE BOOL "stats.elf [shell]" FORCE) +set(CLEONOS_USER_APP_SYSSTAT ON CACHE BOOL "sysstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_TAIL ON CACHE BOOL "tail.elf [shell]" FORCE) +set(CLEONOS_USER_APP_TASKSTAT ON CACHE BOOL "taskstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_TOP ON CACHE BOOL "top.elf [shell]" FORCE) +set(CLEONOS_USER_APP_TOUCH ON CACHE BOOL "touch.elf [shell]" FORCE) +set(CLEONOS_USER_APP_TTY ON CACHE BOOL "tty.elf [shell]" FORCE) +set(CLEONOS_USER_APP_UNIQ ON CACHE BOOL "uniq.elf [shell]" FORCE) +set(CLEONOS_USER_APP_USERSTAT ON CACHE BOOL "userstat.elf [shell]" FORCE) +set(CLEONOS_USER_APP_WAIT ON CACHE BOOL "wait.elf [shell]" FORCE) +set(CLEONOS_USER_APP_WAVPLAY ON CACHE BOOL "wavplay.elf [shell]" FORCE) +set(CLEONOS_USER_APP_WC ON CACHE BOOL "wc.elf [shell]" FORCE) +set(CLEONOS_USER_APP_WRITE ON CACHE BOOL "write.elf [shell]" FORCE) +set(CLEONOS_USER_APP_YIELD ON CACHE BOOL "yield.elf [shell]" FORCE) +set(CLEONOS_USER_APP_ELFRUNNER ON CACHE BOOL "elfrunner.elf [system]" FORCE) +set(CLEONOS_USER_APP_MEMC ON CACHE BOOL "memc.elf [system]" FORCE) diff --git a/configs/menuconfig/config.clks.cmake b/configs/menuconfig/config.clks.cmake new file mode 100644 index 0000000..ddb7452 --- /dev/null +++ b/configs/menuconfig/config.clks.cmake @@ -0,0 +1,58 @@ +# Auto-generated by scripts/menuconfig.py +# Do not edit manually unless you know what you are doing. +set(CLEONOS_MENUCONFIG_CLKS_LOADED ON CACHE BOOL "CLeonOS menuconfig loaded" FORCE) +set(CLEONOS_CLKS_ENABLE_AUDIO ON CACHE BOOL "Audio Driver Init" FORCE) +set(CLEONOS_CLKS_ENABLE_MOUSE ON CACHE BOOL "PS/2 Mouse Input" FORCE) +set(CLEONOS_CLKS_ENABLE_DESKTOP ON CACHE BOOL "TTY2 Desktop" FORCE) +set(CLEONOS_CLKS_ENABLE_DRIVER_MANAGER ON CACHE BOOL "Driver Manager" FORCE) +set(CLEONOS_CLKS_ENABLE_KELF ON CACHE BOOL "KELF Executor" FORCE) +set(CLEONOS_CLKS_ENABLE_USERLAND_AUTO_EXEC ON CACHE BOOL "Auto Enter User Shell" FORCE) +set(CLEONOS_CLKS_ENABLE_HEAP_SELFTEST ON CACHE BOOL "Heap Selftest" FORCE) +set(CLEONOS_CLKS_ENABLE_EXTERNAL_PSF ON CACHE BOOL "Load External PSF Font" FORCE) +set(CLEONOS_CLKS_ENABLE_KEYBOARD ON CACHE BOOL "PS/2 Keyboard Input" FORCE) +set(CLEONOS_CLKS_ENABLE_ELFRUNNER_PROBE ON CACHE BOOL "ELFRUNNER Probe" FORCE) +set(CLEONOS_CLKS_ENABLE_KLOGD_TASK ON CACHE BOOL "Scheduler Task: klogd" FORCE) +set(CLEONOS_CLKS_ENABLE_KWORKER_TASK ON CACHE BOOL "Scheduler Task: kworker" FORCE) +set(CLEONOS_CLKS_ENABLE_USRD_TASK ON CACHE BOOL "Scheduler Task: usrd" FORCE) +set(CLEONOS_CLKS_ENABLE_BOOT_VIDEO_LOG "M" CACHE STRING "Boot Video Geometry Logs" FORCE) +set(CLEONOS_CLKS_ENABLE_BOOT_VIDEO_LOG_IS_ENABLED ON CACHE BOOL "Boot Video Geometry Logs enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_PMM_STATS_LOG "M" CACHE STRING "PMM Stats Logs" FORCE) +set(CLEONOS_CLKS_ENABLE_PMM_STATS_LOG_IS_ENABLED ON CACHE BOOL "PMM Stats Logs enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_HEAP_STATS_LOG "M" CACHE STRING "Heap Stats Logs" FORCE) +set(CLEONOS_CLKS_ENABLE_HEAP_STATS_LOG_IS_ENABLED ON CACHE BOOL "Heap Stats Logs enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_FS_ROOT_LOG "M" CACHE STRING "FS Root Children Log" FORCE) +set(CLEONOS_CLKS_ENABLE_FS_ROOT_LOG_IS_ENABLED ON CACHE BOOL "FS Root Children Log enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_SYSTEM_DIR_CHECK ON CACHE BOOL "FS /SYSTEM Sanity Check" FORCE) +set(CLEONOS_CLKS_ENABLE_ELFRUNNER_INIT ON CACHE BOOL "ELFRUNNER Init" FORCE) +set(CLEONOS_CLKS_ENABLE_SYSCALL_TICK_QUERY ON CACHE BOOL "SYSCALL Tick Query" FORCE) +set(CLEONOS_CLKS_ENABLE_TTY_READY_LOG "M" CACHE STRING "TTY Ready Logs" FORCE) +set(CLEONOS_CLKS_ENABLE_TTY_READY_LOG_IS_ENABLED ON CACHE BOOL "TTY Ready Logs enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG "M" CACHE STRING "Idle Loop Debug Log" FORCE) +set(CLEONOS_CLKS_ENABLE_IDLE_DEBUG_LOG_IS_ENABLED ON CACHE BOOL "Idle Loop Debug Log enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_PROCFS ON CACHE BOOL "Virtual /proc" FORCE) +set(CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG "M" CACHE STRING "EXEC Serial Logs" FORCE) +set(CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG_IS_ENABLED ON CACHE BOOL "EXEC Serial Logs enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_USC ON CACHE BOOL "UserSafeController (USC)" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_FS_MKDIR OFF CACHE BOOL "Intercept FS_MKDIR" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_FS_WRITE OFF CACHE BOOL "Intercept FS_WRITE" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_FS_APPEND OFF CACHE BOOL "Intercept FS_APPEND" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_FS_REMOVE OFF CACHE BOOL "Intercept FS_REMOVE" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATH ON CACHE BOOL "Intercept EXEC_PATH" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV ON CACHE BOOL "Intercept EXEC_PATHV" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_EXEC_PATHV_IO OFF CACHE BOOL "Intercept EXEC_PATHV_IO" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATH ON CACHE BOOL "Intercept SPAWN_PATH" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_SPAWN_PATHV ON CACHE BOOL "Intercept SPAWN_PATHV" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_PROC_KILL ON CACHE BOOL "Intercept PROC_KILL" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_SHUTDOWN ON CACHE BOOL "Intercept SHUTDOWN" FORCE) +set(CLEONOS_CLKS_ENABLE_USC_SC_RESTART ON CACHE BOOL "Intercept RESTART" FORCE) +set(CLEONOS_CLKS_ENABLE_KBD_TTY_SWITCH_HOTKEY ON CACHE BOOL "Keyboard TTY Switch Hotkey" FORCE) +set(CLEONOS_CLKS_ENABLE_KBD_CTRL_SHORTCUTS ON CACHE BOOL "Keyboard Ctrl Shortcuts" FORCE) +set(CLEONOS_CLKS_ENABLE_KBD_FORCE_STOP_HOTKEY ON CACHE BOOL "Keyboard Force-Stop Hotkey" FORCE) +set(CLEONOS_CLKS_ENABLE_USER_INIT_SCRIPT_PROBE ON CACHE BOOL "User Init Script Probe" FORCE) +set(CLEONOS_CLKS_ENABLE_USER_SYSTEM_APP_PROBE ON CACHE BOOL "User System App Probe" FORCE) +set(CLEONOS_CLKS_ENABLE_SCHED_TASK_COUNT_LOG "Y" CACHE STRING "Scheduler Task Count Log" FORCE) +set(CLEONOS_CLKS_ENABLE_SCHED_TASK_COUNT_LOG_IS_ENABLED ON CACHE BOOL "Scheduler Task Count Log enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_INTERRUPT_READY_LOG "M" CACHE STRING "Interrupt Ready Log" FORCE) +set(CLEONOS_CLKS_ENABLE_INTERRUPT_READY_LOG_IS_ENABLED ON CACHE BOOL "Interrupt Ready Log enabled(y|m)" FORCE) +set(CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG "M" CACHE STRING "Shell Mode Log" FORCE) +set(CLEONOS_CLKS_ENABLE_SHELL_MODE_LOG_IS_ENABLED ON CACHE BOOL "Shell Mode Log enabled(y|m)" FORCE)