diff options
| author | Matteo Gmür <matteo.gmuer1@ost.ch> | 2025-02-18 10:59:05 +0100 |
|---|---|---|
| committer | Matteo Gmür <matteo.gmuer1@ost.ch> | 2025-02-18 10:59:05 +0100 |
| commit | cd42c21f2460751428b3e1b4ae07ea0b924967bc (patch) | |
| tree | e3e410f399c3eead444f2a242a19448571fd979a | |
| parent | 47879f42d70755fcf5473ffb82798b515cb2e21b (diff) | |
| parent | 3d488e53a1d15fcc01a7b1d23b9585ca7a724864 (diff) | |
| download | teachos-cd42c21f2460751428b3e1b4ae07ea0b924967bc.tar.xz teachos-cd42c21f2460751428b3e1b4ae07ea0b924967bc.zip | |
Merge branch 'feat_memory_manager' into 'develop_sa'
Finish inital draft of Memory Manager
See merge request teachos/kernel!3
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_ta |
