Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
252bbf6
Kryczkal/io 01 (#226)
kryczkal Dec 5, 2025
bfae95d
Kryczkal/framebuffer (#227)
kryczkal Dec 6, 2025
b1064d0
Kryczkal/console-01 (#228)
kryczkal Dec 7, 2025
ba284c3
Kryczkal/console 02 (#230)
kryczkal Dec 9, 2025
426cf17
Add common data structures (#235)
F1r3d3v Dec 11, 2025
0882394
Add root filesystem generation system (#234)
F1r3d3v Dec 11, 2025
94e8187
Implements Virtual File System with FAT support (#233)
F1r3d3v Dec 11, 2025
8d612f1
Add ramdisk support and shell commands (#232)
F1r3d3v Dec 11, 2025
ce05d38
Kryczkal/ucapi 01 (#236)
kryczkal Dec 12, 2025
6fd1037
Kryczkal/keyboard (#237)
kryczkal Dec 12, 2025
fbdef5b
Jlisowskyy/sync fix (#229)
Jlisowskyy Dec 14, 2025
83f1a6b
feat: Add video module support and set graphics payload for ISO bootl…
kryczkal Dec 15, 2025
4cf26fb
Add bitfield and bit array range ops (#238)
F1r3d3v Dec 16, 2025
e6e0972
Header gaurds cleanup (#239)
F1r3d3v Dec 16, 2025
c803379
Kryczkal/pagefault handler (#240)
kryczkal Dec 19, 2025
9b814d3
Jlisowski/trace framework 1 (#241)
Jlisowskyy Dec 20, 2025
e758710
Jlisowskyy/scheduler 0 (#242)
Jlisowskyy Dec 26, 2025
5300765
Kryczkal/elf loading (#243)
kryczkal Dec 27, 2025
045f0e9
MMU Proper Unmap function (#244)
kryczkal Dec 27, 2025
e354c98
Kryczkal/vmm coherency (#245)
kryczkal Dec 27, 2025
7602698
Kryczkal/vmm set vma flags (#246)
kryczkal Dec 28, 2025
b65354a
Jlisowskyy/scheduler 1 (#247)
Jlisowskyy Dec 28, 2025
f1bc624
Fix vmm refactor (#248)
kryczkal Dec 28, 2025
419b1f8
chore: Minor mmu test fix
kryczkal Dec 28, 2025
582a8f1
Kryczkal/fix vmm refactor 02 (#249)
kryczkal Dec 28, 2025
9926e84
Kryczkal/fix timetest (#250)
kryczkal Dec 28, 2025
c0e1ff1
Implement userspace system call interface (#251)
F1r3d3v Dec 29, 2025
33ca2a1
Kryczkal/vmm ref 01 (#253)
kryczkal Dec 29, 2025
71b8b8e
chore: Mmu Test quickfix
kryczkal Dec 29, 2025
6a81b6a
Kryczkal/addrsp linkedlist (#254)
kryczkal Dec 29, 2025
497f265
Jlisowskyy/scheduler 2 (#252)
Jlisowskyy Dec 29, 2025
d45f601
Kryczkal/user addr space (#255)
kryczkal Dec 29, 2025
943347d
Jlisowskyy/scheduler 3 (#256)
Jlisowskyy Dec 29, 2025
4461a87
Kryczkal/userspace stack (#257)
kryczkal Dec 30, 2025
83bf617
Jlisowskyy/float save (#258)
Jlisowskyy Dec 30, 2025
cfaff52
Jlisowskyy/trace process (#259)
Jlisowskyy Dec 30, 2025
5c79c02
Enable execution of user programs (#260)
F1r3d3v Dec 31, 2025
bf749bd
Implement file descriptor management (#261)
F1r3d3v Jan 2, 2026
73f897f
Jlisowskyy/scheduler imprv 0 (#262)
Jlisowskyy Jan 2, 2026
6e7eecf
Jlisowskyy/scheduler imprv 1 (#263)
Jlisowskyy Jan 2, 2026
6dc093f
Standard C I/O support (#265)
F1r3d3v Jan 3, 2026
5bea91c
Kryczkal/window manager (#264)
kryczkal Jan 3, 2026
aecd675
Jlisowskyy/scheduler imprv 2 (#266)
Jlisowskyy Jan 3, 2026
aefc3bd
Kryczkal/input manager (#267)
kryczkal Jan 3, 2026
888a22f
refactor: Remove test mode execution code from task manager initializ…
kryczkal Jan 3, 2026
c84a62c
Implemented userspace panic syscall (empty stub for suicide func - to…
kryczkal Jan 3, 2026
d6116df
Port shell to userspace (#270)
F1r3d3v Jan 4, 2026
b663bdf
Jlisowskyy/scheduler imprv 3 (#268)
Jlisowskyy Jan 4, 2026
268a2af
jlisowskyy/scheduler-imprv-4 (#271)
Jlisowskyy Jan 4, 2026
5c2be0a
F1r3d3v/userspace policy (#273)
Jlisowskyy Jan 5, 2026
475853a
jlisowskyy/scheduler-imprv-5 (#272)
Jlisowskyy Jan 5, 2026
57a28ed
kworker fix
Jlisowskyy Jan 5, 2026
85aa0f0
docs: Redesign README (#275)
kryczkal Jan 7, 2026
7320c59
docs: Add test running instructions to README and create tests README
kryczkal Jan 7, 2026
11b53e2
docs: Remove extra code block from README
kryczkal Jan 7, 2026
0cb3682
docs: Update memory management description in README
kryczkal Jan 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .concat.conf

This file was deleted.

9 changes: 8 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(ValidationHelpers)
include(SourceHelpers)
include(RuntimeHelpers)
include(BashConfigHelpers)
include(MiscHelpers)

add_library(alkos.target.properties.interface INTERFACE) # Populated by the toolchain file

Expand All @@ -30,6 +32,9 @@ set(CMAKE_ROOT_DIR ${CMAKE_SOURCE_DIR})
# Conf file #
################################################################################

set(BASH_CONF_FILE "${CMAKE_ROOT_DIR}/config/conf.generated.bash")
alkos_init_bash_config()

set(CMAKE_CONF_FILE "${CMAKE_ROOT_DIR}/config/conf.generated.cmake")

# Check if configuration was done
Expand Down Expand Up @@ -90,9 +95,11 @@ file(MAKE_DIRECTORY ${CMAKE_SYSROOT}/boot/grub)

set(SYSTEM_LIB_TYPE k)

add_subdirectory(libs)
alkos_add_subdirs(libs)
add_subdirectory(generated)
add_subdirectory(kernel)
add_subdirectory(userspace)
add_subdirectory(rootfs)

################################################################################
# Aliases #
Expand Down
410 changes: 60 additions & 350 deletions README.md

Large diffs are not rendered by default.

64 changes: 64 additions & 0 deletions cmake/BashConfigHelpers.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#
# This module provides a function for working with bash config files
#

#============================================================================
# alkos_init_bash_config
#============================================================================
function(alkos_init_bash_config)
file(WRITE "${BASH_CONF_FILE}" "#!/bin/bash\n")
file(APPEND "${BASH_CONF_FILE}" "# Autogenerated config for ${ARCH}\n")
file(APPEND "${BASH_CONF_FILE}" "# Do not try to edit this by hand!\n")
file(APPEND "${BASH_CONF_FILE}" "\n")
endfunction()

#===============================================================================
# alkos_add_to_bash_config
#===============================================================================
function(alkos_add_to_bash_config VARIABLE_NAME VARIABLE_VALUE)
if(NOT EXISTS "${BASH_CONF_FILE}")
message(FATAL_ERROR "Bash config file ${BASH_CONF_FILE} does not exist. Please call alkos_init_bash_config first.")
endif()

# Update existing variable if it exists, otherwise append at the end
file(READ "${BASH_CONF_FILE}" BASH_CONF_CONTENTS)
if(BASH_CONF_CONTENTS MATCHES "export ${VARIABLE_NAME}=")
string(REGEX REPLACE "export ${VARIABLE_NAME}=\"[^\"]*\"" "export ${VARIABLE_NAME}=\"${VARIABLE_VALUE}\"" UPDATED_BASH_CONF_CONTENTS "${BASH_CONF_CONTENTS}")
file(WRITE "${BASH_CONF_FILE}" "${UPDATED_BASH_CONF_CONTENTS}\n")
else()
file(APPEND "${BASH_CONF_FILE}" "export ${VARIABLE_NAME}=\"${VARIABLE_VALUE}\"\n")
endif()
endfunction()

#===============================================================================
# alkos_bash_config_append_to_list
#===============================================================================
function(alkos_bash_config_append_to_list VARIABLE_NAME VALUES_TO_APPEND)
if(NOT EXISTS "${BASH_CONF_FILE}")
message(FATAL_ERROR "Bash config file ${BASH_CONF_FILE} does not exist. Please call alkos_init_bash_config first.")
endif()

# This is how you pass list arguments to a bash script from CMake
string(REPLACE ";" " " VALUES_TO_APPEND "${VALUES_TO_APPEND}")

# Read the current value of the variable from the bash config
file(READ "${BASH_CONF_FILE}" BASH_CONF_CONTENTS)
if(BASH_CONF_CONTENTS MATCHES "export ${VARIABLE_NAME}=\"[^\"]*\"")
string(REGEX MATCH "export ${VARIABLE_NAME}=\"([^\"]*)\"" "\\1" _ "${BASH_CONF_CONTENTS}")

# Append the new value to the existing list
set(CURRENT_VALUE "${CMAKE_MATCH_1}")
if(CURRENT_VALUE STREQUAL "")
set(CURRENT_VALUE "${VALUES_TO_APPEND}")
else()
set(CURRENT_VALUE "${CURRENT_VALUE} ${VALUES_TO_APPEND}")
endif()

# Update the variable in the bash config
string(REGEX REPLACE "export ${VARIABLE_NAME}=\"[^\"]*\"" "export ${VARIABLE_NAME}=\"${CURRENT_VALUE}\"" UPDATED_BASH_CONF_CONTENTS "${BASH_CONF_CONTENTS}")
file(WRITE "${BASH_CONF_FILE}" "${UPDATED_BASH_CONF_CONTENTS}\n")
else()
# Variable does not exist, create it
alkos_add_to_bash_config("${VARIABLE_NAME}" "${VALUES_TO_APPEND}")
endif()
endfunction()
28 changes: 28 additions & 0 deletions cmake/MiscHelpers.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#
# Miscellaneous CMake helper functions
#

#===============================================================================
# alkos_add_subdirs
#===============================================================================
# Recursively adds all subdirectories in the given BASE_DIR.
## Parameters:
# BASE_DIR The base directory to search for subdirectories.
## Example:
# alkos_add_subdirs(modules)
# alkos_add_subdirs(${CMAKE_CURRENT_SOURCE_DIR}/modules)
#
function(alkos_add_subdirs BASE_DIR)
if(IS_ABSOLUTE "${BASE_DIR}")
set(base_dir "${BASE_DIR}")
else()
set(base_dir "${CMAKE_CURRENT_SOURCE_DIR}/${BASE_DIR}")
endif()

file(GLOB subdirs RELATIVE "${base_dir}" "${base_dir}/*")
foreach(subdir ${subdirs})
if(IS_DIRECTORY "${base_dir}/${subdir}")
add_subdirectory("${base_dir}/${subdir}")
endif()
endforeach()
endfunction()
119 changes: 96 additions & 23 deletions cmake/RuntimeHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#

include(ValidationHelpers)
include(BashConfigHelpers)

#===============================================================================
# alkos_register_runtime_environment
Expand Down Expand Up @@ -61,29 +62,19 @@ function(alkos_register_runtime_environment)
PATHS ${MAKE_ISO_SCRIPT_PATH} ${RUN_ALKOS_SCRIPT_PATH} ${RUN_TESTS_SCRIPT_PATH}
)

# This is how you pass list arguments to a bash script from CMake
string(REPLACE ";" " " KERNEL_MODULES_FORMATTED "${ARG_MODULES}")
string(REPLACE ";" " " KERNEL_COMMANDS_FORMATTED "${ARG_MODULE_COMMANDS}")

# Write a bash config file specific to this architecture
set(BASH_CONF_FILE "${CMAKE_ROOT_DIR}/config/conf.generated.bash")

file(WRITE "${BASH_CONF_FILE}" "#!/bin/bash\n")
file(APPEND "${BASH_CONF_FILE}" "# Autogenerated config for ${ARG_ARCH_NAME}\n")
file(APPEND "${BASH_CONF_FILE}" "# Do not try to edit this by hand!\n")
file(APPEND "${BASH_CONF_FILE}" "\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_ARCH=\"${ARG_ARCH_NAME}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_BUILD_TYPE=\"${CMAKE_BUILD_TYPE}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_SYSROOT=\"${CMAKE_SYSROOT}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_BOOTABLE_KERNEL_EXEC=\"${ARG_BOOTABLE_EXECUTABLE}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_ISO_PATH=\"${ALKOS_ISO_PATH}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_KERNEL_MODULES=\"${KERNEL_MODULES_FORMATTED}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_KERNEL_COMMANDS=\"${KERNEL_COMMANDS_FORMATTED}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_BUILD_DIR=\"${CMAKE_BINARY_DIR}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_TOOL_DIR=\"${TOOL_BINARIES_DIR}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_QEMU_COMMAND=\"${ARG_QEMU_COMMAND}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_QEMU_NORMAL_FLAGS=\"${ARG_QEMU_NORMAL_FLAGS}\"\n")
file(APPEND "${BASH_CONF_FILE}" "export CONF_QEMU_TEST_FLAGS=\"${ARG_QEMU_TEST_FLAGS}\"\n")
# Add architecture-specific variables to the bash config
alkos_add_to_bash_config("CONF_ARCH" "${ARG_ARCH_NAME}")
alkos_add_to_bash_config("CONF_BUILD_TYPE" "${CMAKE_BUILD_TYPE}")
alkos_add_to_bash_config("CONF_SYSROOT" "${CMAKE_SYSROOT}")
alkos_add_to_bash_config("CONF_BOOTABLE_KERNEL_EXEC" "${ARG_BOOTABLE_EXECUTABLE}")
alkos_add_to_bash_config("CONF_ISO_PATH" "${ALKOS_ISO_PATH}")
alkos_bash_config_append_to_list("CONF_KERNEL_MODULES" "${ARG_MODULES}")
alkos_bash_config_append_to_list("CONF_KERNEL_COMMANDS" "${ARG_MODULE_COMMANDS}")
alkos_add_to_bash_config("CONF_BUILD_DIR" "${CMAKE_BINARY_DIR}")
alkos_add_to_bash_config("CONF_TOOL_DIR" "${TOOL_BINARIES_DIR}")
alkos_add_to_bash_config("CONF_QEMU_COMMAND" "${ARG_QEMU_COMMAND}")
alkos_add_to_bash_config("CONF_QEMU_NORMAL_FLAGS" "${ARG_QEMU_NORMAL_FLAGS}")
alkos_add_to_bash_config("CONF_QEMU_TEST_FLAGS" "${ARG_QEMU_TEST_FLAGS}")

add_custom_target(iso-${ARG_ARCH_NAME}
COMMAND ${MAKE_ISO_SCRIPT_PATH} -v
Expand Down Expand Up @@ -123,3 +114,85 @@ function(alkos_register_runtime_environment)
)
endif()
endfunction()
#-------------------------------------------------------------------------------
# register_filesystem
#-------------------------------------------------------------------------------
# A filesystem registration helper that configures the rootfs
# generation. It can be used to create either an initrd within the sysroot
# or a standalone filesystem image within the build binaries folder.
#
# Parameters (oneValueArgs):
# TYPE Either INITRD or IMAGE
# ROOTFS_TYPE Type of rootfs to create (e.g., fat, ext4)
# ROOTFS_DIR Staging directory for building rootfs contents
# ROOTFS_TARGET_PATH Target image path to generate (optional; defaults based on TYPE)
# ROOTFS_OVERLAY_DIR Overlay directory to copy into the rootfs
# MODULE Optional module target name to include in the ISO
# MODULE_COMMAND Optional bootloader command for the module
#
#-------------------------------------------------------------------------------
function(register_filesystem)
set(options)
set(oneValueArgs
TYPE
ROOTFS_TYPE
ROOTFS_TARGET_PATH
ROOTFS_OVERLAY_DIR
MODULE
MODULE_COMMAND
)
set(multiValueArgs)

cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

alkos_ensure_called_once(NAME ${CMAKE_CURRENT_FUNCTION})

alkos_ensure_defined(
VARS ARG_TYPE ARG_ROOTFS_TYPE ARG_ROOTFS_TARGET_PATH ARG_ROOTFS_OVERLAY_DIR
)

# Resolve target defaults and feature flags
if(ARG_TYPE STREQUAL "INITRD")
alkos_ensure_feature_enabled(
FLAG CMAKE_FEATURE_FLAG_RAMDISK
MESSAGE "Initial RAM filesystem support is disabled."
)
elseif(ARG_TYPE NOT STREQUAL "IMAGE")
message(FATAL_ERROR "register_filesystem: Unknown TYPE='${ARG_TYPE}'. Expected INITRD or IMAGE.")
endif()

# Export variables for the rootfs maker
alkos_add_to_bash_config("CONF_ROOTFS_TARGET_PATH" "${ARG_ROOTFS_TARGET_PATH}")
alkos_add_to_bash_config("CONF_ROOTFS_OVERLAY_DIR" "${ARG_ROOTFS_OVERLAY_DIR}")

if(ARG_TYPE STREQUAL "INITRD")
alkos_ensure_defined(VARS ARG_MODULE ARG_MODULE_COMMAND)

alkos_bash_config_append_to_list("CONF_KERNEL_MODULES" "${ARG_MODULE}")
alkos_bash_config_append_to_list("CONF_KERNEL_COMMANDS" "${ARG_MODULE_COMMAND}")
endif()

# Create the targets
set(MAKE_ROOTFS_SCRIPT_PATH ${CMAKE_SOURCE_DIR}/scripts/actions/make_rootfs.bash)
alkos_ensure_path_exists(PATHS ${MAKE_ROOTFS_SCRIPT_PATH})

add_custom_target(rootfs
# Ensure the staging directory is clean before building the rootfs.
# Remove the directory and recreate it so the generator starts from
# an empty staging area.
COMMAND ${CMAKE_COMMAND} -E rm -rf "${ROOTFS_DIR}"
COMMAND ${CMAKE_COMMAND} -E make_directory "${ROOTFS_DIR}"
COMMAND ${MAKE_ROOTFS_SCRIPT_PATH} -v -- ${ARG_ROOTFS_TYPE}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Building root filesystem"
)
add_dependencies(iso-${ARCH} rootfs)

add_custom_target(mountfs
DEPENDS rootfs
COMMAND sudo umount /mnt || true
COMMAND sudo mount -o loop ${ARG_ROOTFS_TARGET_PATH} /mnt
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Mounting root filesystem"
)
endfunction()
64 changes: 64 additions & 0 deletions cmake/ValidationHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,67 @@ function(alkos_ensure_path_exists)
message(FATAL_ERROR "${error_message}")
endif()
endfunction()

#===============================================================================
# alkos_ensure_feature_flag_enabled
#===============================================================================
#
# Checks if a specified feature flag is enabled and halts with a
# fatal error if it is not.
#
# Parameters:
# FLAG <flag> The name of the feature flag variable to check.
# MESSAGE <message> (Optional) A supplementary message to append to the
# standard error output. This is useful for providing
# additional context or instructions to the user.
#
# Example:
# # Assume CMAKE_FEATURE_FLAG_DEBUG_OUTPUT must be enabled.
# alkos_ensure_feature_flag_enabled(
# FLAG CMAKE_FEATURE_FLAG_DEBUG_OUTPUT
# MESSAGE "Debug output must be enabled for this build."
# )
#
function(alkos_ensure_feature_enabled)
set(options)
set(oneValueArgs FLAG MESSAGE)
set(multiValueArgs)

cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

if(NOT ARG_FLAG)
message(FATAL_ERROR "alkos_ensure_feature_enabled() called without a feature to check.")
endif()

if(NOT DEFINED ${ARG_FLAG} OR NOT ${ARG_FLAG})
set(error_message "The feature flag '${ARG_FLAG}' must be enabled.")

if(ARG_MESSAGE)
string(APPEND error_message "\n${ARG_MESSAGE}")
endif()

message(FATAL_ERROR "${error_message}")
endif()
endfunction()

#===============================================================================
# alkos_ensure_called_once
#===============================================================================
function(alkos_ensure_called_once)
set(options)
set(oneValueArgs NAME)
set(multiValueArgs)

cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

if(NOT ARG_NAME)
message(FATAL_ERROR "alkos_ensure_called_once() called without a NAME to check.")
endif()

get_property(already_called GLOBAL PROPERTY ALKOS_CALLED_${ARG_NAME})
if(already_called)
message(FATAL_ERROR "The function '${ARG_NAME}' has already been called. It can only be called once.")
endif()

set_property(GLOBAL PROPERTY ALKOS_CALLED_${ARG_NAME} TRUE)
endfunction()
1 change: 1 addition & 0 deletions generated/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include/autogen/*
12 changes: 12 additions & 0 deletions kernel/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,17 @@ target_link_libraries(cpp PUBLIC
target_compile_definitions(c PRIVATE __ALKOS_KERNEL_LIBC__)
target_compile_definitions(cpp PRIVATE __ALKOS_KERNEL_LIBCPP__)

########################### Graphics Library #################################

add_library(kernel.libgraphics STATIC ${LIBGRAPHICS_SOURCES})

target_link_libraries(kernel.libgraphics PUBLIC
alkos.libgraphics.interface
alkos.target.properties.interface
)

target_compile_definitions(kernel.libgraphics PRIVATE __ALKOS_KERNEL_LIBGRAPHICS__)

########################## Configure for given Arch ##########################

add_subdirectory(arch/${ARCH})
Expand All @@ -89,6 +100,7 @@ target_link_libraries(alkos.kernel PRIVATE
alkos.autogen.interface
c
cpp
kernel.libgraphics
)

############## Linker Configuration for CXX Global Constructors ##############
Expand Down
4 changes: 2 additions & 2 deletions kernel/arch/x86_64/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ alkos_register_runtime_environment(
QEMU_COMMAND
"qemu-system-x86_64"
QEMU_NORMAL_FLAGS
"-serial stdio -enable-kvm -cpu max -display default,show-cursor=on -m 4G -smp sockets=1,cores=4,threads=1"
"-serial stdio -enable-kvm -cpu max,+invtsc,migratable=off -machine type=q35,accel=kvm -display default,show-cursor=on -k en-us -m 4G -smp sockets=1,cores=4,threads=1 -no-reboot"
QEMU_TEST_FLAGS
"-serial stdio -enable-kvm -cpu max -display none -m 4G -smp sockets=1,cores=4,threads=1"
"-serial stdio -enable-kvm -cpu max,+invtsc,migratable=off -machine type=q35,accel=kvm -display none -m 4G -smp sockets=1,cores=4,threads=1 -no-reboot"
MODULES
alkos.boot.loader.64
alkos.kernel
Expand Down
Loading
Loading