aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/scripts
AgeCommit message (Collapse)AuthorFilesLines
2026-09-04x86_64/cpu: isolate kernel and IST1 stackFelix Morgner1-1/+13
Previously, the kernel stack was allocated inside the .kernel_bss section, along other uninitialized data. While this works, it assumes that the section will always be laid out with the kernel stack at the top. If that is not the case, the allocated guard page before .kernel_bss would not trigger a #PF since out-of-bounds (overflow) access would quietly overwrite other data in the section, thus potentially corrupting global kernel data. At the same time, there was no separate section (and guard page) for the future #DF exception stack (IST1 in our case). Thus we allocate a section, and a guard page, while we are already modifying the linker script.
2026-08-26kernel/fs: rework filesystem probingFelix Morgner1-3/+3
2026-08-01kapi: add automatic driver registrationFelix Morgner1-0/+11
2026-06-02kernel/vfs: extract fs type registryFelix Morgner1-3/+4
2026-06-02kernel/vfs: rename type descriptor sectionFelix Morgner1-3/+3
2026-06-02kernel/vfs: prepare fs type registration supportFelix Morgner1-0/+5
2026-03-16x86_64: remove stl_* sections for nowFelix Morgner1-12/+8
We currently don't really support user mode anymore, since it doesn't integrate well within the architecture. We therefore need no special handling of STL and kstd anymore.
2025-12-29x86_64/boot: fix section assignments in ld scriptFelix Morgner1-67/+66
2025-07-24x86_64: implement robust C++ global initializationFelix Morgner1-31/+9
Implement a comprehensive mechanism to ensure correct C++ runtime initialization before the kernel main function is called. This replaces the previous, incomplete reliance on an `_init` function. The new design robustly handles both legacy `.ctors` and modern `.init_array` initialization schemes used by the GNU toolchain. A single C++ function, `invoke_global_constructors`, now iterates through both arrays of function pointers to ensure all types of global initializers are executed.
2025-07-24x86_64: implement high/low splitFelix Morgner1-15/+20
2025-07-23x86_64: rename _*_linear to _*_physicalFelix Morgner1-4/+4
2025-07-23x86_64: remove stray copy of ld scriptFelix Morgner1-150/+0
2025-07-18x86-64: prepare new architectureFelix Morgner1-0/+150
2025-05-30Clean up filesMatteo Gmür1-6/+0
2025-05-20Improve syscalls and user heap allocatorMatteo Gmür1-0/+6
2025-05-18update linker file and improve section parsingFabian Imhof1-4/+3
2025-05-16Fix bug where level 4 to level 2 entries are not mapped user accesible.Matteo Gmür1-1/+1
2025-05-16Attempt to move atomic into stl text as wellMatteo Gmür1-8/+8
2025-05-15add cpp standard library to .stl_text section (which is user accessible)Fabian Imhof1-0/+2
2025-05-10experiment with globally available linker sections and page table entry flagsFabian Imhof1-0/+5
2025-05-09Move necessary code into user textMatteo Gmür1-0/+5
2025-05-04add user_text linker section and temporarily add elf_sections.txtFabian Imhof1-2/+2
2025-04-02fix interrupt handler and idtFabian Imhof1-0/+5
2024-12-01Fix guard page and ensure it crashes even if guard page is skipped altogetherMatteo Gmür1-10/+10
2024-11-24implement basic heap and remap itFabian Imhof1-3/+2
2024-11-03align elf sections to 4kbFabian Imhof1-7/+4
2024-10-26wipFabian Imhof1-5/+3
2024-10-26move paging alignmentFabian Imhof1-3/+3
2024-10-26fix mmap type, adjust linker, use std::arrayFabian Imhof1-0/+3
2024-10-06Remove high memory kernel and needless printsMatteo Gmür1-12/+10
2024-09-17build: fix CRT code linkingFelix Morgner1-6/+6
CMake used to generate object files with a .obj extension. This appears to no longer be the case. As a fallback, we now match on 'o*' for the CRT code in the linker script. As of now, it is unclear when this change happened.
2024-09-17build: migrate away from conanFelix Morgner1-0/+139