diff options
112 files changed, 4032 insertions, 125 deletions
diff --git a/.devcontainer/x86-64/devcontainer.json b/.devcontainer/x86-64/devcontainer.json index 6899c4c..1eb5859 100644 --- a/.devcontainer/x86-64/devcontainer.json +++ b/.devcontainer/x86-64/devcontainer.json @@ -10,5 +10,6 @@ "zixuanwang.linkerscript" ] } - } + }, + "initializeCommand": "docker pull registry.gitlab.ost.ch:45023/teachos/devcontainers/x86-64:14.2.0", } diff --git a/.vscode/settings.json b/.vscode/settings.json index 21d4f5f..f0f6745 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,6 +2,7 @@ "cmake.useCMakePresets": "always", "cmake.options.statusBarVisibility": "visible", + "C_Cpp.default.cppStandard": "c++20", "C_Cpp.autoAddFileAssociations": false, "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", "C_Cpp.formatting": "clangFormat", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 83b2248..2e076e4 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -38,6 +38,8 @@ "args": [ "-m", "32M", + "-display", + "curses", "-cdrom", "${workspaceFolder}/build/teachos-${input:build_type}.iso" ], diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f780d3..12ac210 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ set(CMAKE_CXX_EXTENSIONS NO) find_package("Doxygen") -set(DOXYGEN_GENERATE_HTML NO) +set(DOXYGEN_GENERATE_HTML YES) set(DOXYGEN_GENERATE_XML YES) set(DOXYGEN_EXCLUDE_PATTERNS "*.cpp") set(DOXYGEN_OUTPUT_DIRECTORY "doxygen") @@ -101,6 +101,20 @@ add_library("_video" OBJECT) add_library("teachos::video" ALIAS "_video") #[============================================================================[ +# THE Memory Library +#]============================================================================] + +add_library("_memory" OBJECT) +add_library("teachos::memory" ALIAS "_memory") + +#[============================================================================[ +# The Exception handling Library +#]============================================================================] + +add_library("_exception" OBJECT) +add_library("teachos::exception" ALIAS "_exception") + +#[============================================================================[ # The Kernel #]============================================================================] @@ -112,6 +126,8 @@ add_executable("teachos::kernel" ALIAS "_kernel") target_link_libraries("_kernel" PRIVATE "teachos::boot" "teachos::video" + "teachos::memory" + "teachos::exception" ) #[============================================================================[ diff --git a/arch/x86_64/CMakeLists.txt b/arch/x86_64/CMakeLists.txt index 6ff1332..c5624d8 100644 --- a/arch/x86_64/CMakeLists.txt +++ b/arch/x86_64/CMakeLists.txt @@ -37,6 +37,43 @@ target_sources("_video" PRIVATE ) #[============================================================================[ +# The Memory Library +#]============================================================================] + +target_sources("_memory" PRIVATE + "src/memory/main.cpp" + "src/memory/multiboot/elf_symbols_section.cpp" + "src/memory/multiboot/reader.cpp" + "src/memory/allocator/area_frame_allocator.cpp" + "src/memory/allocator/tiny_frame_allocator.cpp" + "src/memory/allocator/physical_frame.cpp" + "src/memory/paging/page_entry.cpp" + "src/memory/paging/page_table.cpp" + "src/memory/paging/temporary_page.cpp" + "src/memory/paging/virtual_page.cpp" + "src/memory/paging/active_page_table.cpp" + "src/memory/paging/inactive_page_table.cpp" + "src/memory/cpu/tlb.cpp" + "src/memory/cpu/control_register.cpp" + "src/memory/cpu/msr.cpp" + "src/memory/heap/bump_allocator.cpp" + "src/memory/heap/memory_block.cpp" + "src/memory/heap/linked_list_allocator.cpp" + "src/shared/mutex.cpp" +) + +#[============================================================================[ +# The Exception handling Library +#]============================================================================] + +target_sources("_exception" PRIVATE + "src/exception_handling/assert.cpp" + "src/exception_handling/abort.cpp" + "src/exception_handling/panic.cpp" + "src/exception_handling/pure_virtual.cpp" +) + +#[============================================================================[ # The Bootable ISO Image #]============================================================================] diff --git a/arch/x86_64/include/arch/boot/pointers.hpp b/arch/x86_64/include/arch/boot/pointers.hpp index dcd14fe..fe9c657 100644 --- a/arch/x86_64/include/arch/boot/pointers.hpp +++ b/arch/x86_64/include/arch/boot/pointers.hpp @@ -5,7 +5,11 @@ namespace teachos::arch::boot |
