| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2026-03-17 | Add information request to multiboot.s | marcel.braun | 1 | -0/+7 | |
| 2026-03-17 | x86_64/memory: finish HHDM-based mapper | Felix Morgner | 1 | -1/+1 | |
| 2026-03-16 | x86_64/memory: remove recursive mapping | Felix Morgner | 1 | -4/+0 | |
| 2026-01-16 | chore: restructure namespaces | Felix Morgner | 2 | -10/+15 | |
| 2026-01-15 | x86_64/boot: fix early panic message printing | Felix Morgner | 1 | -2/+2 | |
| 2025-12-29 | x86_64/boot: fix section assignments in ld script | Felix Morgner | 3 | -24/+15 | |
| 2025-12-15 | x86_64/boot: use high-mem address of MBI | Felix Morgner | 1 | -0/+1 | |
| 2025-12-03 | x86_64/boot: move stack to higher half | Felix Morgner | 2 | -7/+13 | |
| 2025-11-24 | x86_64/vga: rely less on magic state | Felix Morgner | 1 | -0/+19 | |
| 2025-10-31 | build: enable linting | Felix Morgner | 1 | -2/+2 | |
| 2025-10-29 | chore: reformat source code | Felix Morgner | 1 | -1/+3 | |
| 2025-07-24 | x86_64: provide a clean slate on entry to long mode | Felix Morgner | 2 | -2/+16 | |
| 2025-07-24 | x86_64: implement robust C++ global initialization | Felix Morgner | 4 | -24/+26 | |
| 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-24 | x86_64: implement high/low split | Felix Morgner | 1 | -36/+66 | |
| 2025-07-22 | x86_64: split bootstrap code along mode lines | Felix Morgner | 2 | -19/+25 | |
| 2025-07-22 | x86_64: extract constants from bootstrap code | Felix Morgner | 1 | -14/+5 | |
| 2025-07-22 | x86_64: clean up bootstrap code | Felix Morgner | 1 | -247/+265 | |
| 2025-07-18 | x86_64: set GDT entries as accessed. | Felix Morgner | 1 | -2/+3 | |
| 2025-07-18 | x86_64: add data segment to boot GDT | Felix Morgner | 1 | -6/+9 | |
| 2025-07-18 | x86_64: don't lose multi boot information pointer | Felix Morgner | 1 | -2/+2 | |
| Since the transition to a PIE, more registers are required to perform the relative lookups of data references. As part of that change, a subtle mistake was introduced in _start, overwriting the multiboot information pointer that gets handed to kernel by the boot loader in %ebx. | |||||
| 2025-07-18 | x86-64: prepare new architecture | Felix Morgner | 1 | -1/+1 | |
| 2025-07-18 | kernel: turn into a PIE | Felix Morgner | 1 | -30/+82 | |
| 2025-07-14 | build: reintroduce bootable ISO | Felix Morgner | 1 | -1/+1 | |
| 2025-07-14 | arch: prepare interfaces | Felix Morgner | 1 | -1/+1 | |
| 2025-04-27 | wip implement syscall in cpp | Fabian Imhof | 1 | -25/+0 | |
| 2025-04-27 | create trampoline for syscall | Fabian Imhof | 1 | -0/+25 | |
| 2025-04-10 | move context_switch function into cpp code | Fabian Imhof | 1 | -30/+0 | |
| 2025-04-10 | fix context_switch function | Fabian Imhof | 1 | -8/+9 | |
| 2025-04-06 | wip context switch in asm | Fabian Imhof | 1 | -0/+29 | |
| 2025-04-05 | add wip context switch to user mode | Fabian Imhof | 1 | -10/+1 | |
| 2025-03-29 | fix gdt segments, improve idt and trial&error for triple fault | Fabian Imhof | 1 | -10/+1 | |
| 2025-03-28 | gdt: fix reload of GDT | Felix Morgner | 1 | -0/+3 | |
| The core problems were/are the following: - The flags of the segments were not entirely correct. Please recheck them against the spec! - The GDT pointer did not contain the address of the first (null) GTD entry, but the address of the stl::vector containing the GDT entries. - The far pointer must consist of: - the address to jump to - the byte index into the GDT for the desired segement descriptor to be loaded into CS. - The type of the "dummy" function we jump to was wrong (it's a function, we should declare it as such). - We cannot enable interrupts right now, since we die with a triple fault. This is caused by some initia fault which seems to lead to a general protection fault, which then triple faults since we cannot find the IDT. Some FIXMEs have been added to the code. Please look at them carefully and compare things against the specs. | |||||
| 2025-03-28 | Attempt to fix ljmp. Might not be possible in Long mode | Matteo Gmür | 1 | -3/+3 | |
| 2025-03-28 | Revert "update long jump handling" | Matteo Gmür | 1 | -6/+10 | |
| This reverts commit 9ddfcd02413a93718e8cde53f9ba5a96a5b29b8f. | |||||
| 2025-03-27 | update long jump handling | Fabian Imhof | 1 | -10/+6 | |
| 2025-03-27 | Attempt to fix crash in far jump. WIP does not return from call to assembler ↵ | Matteo Gmür | 1 | -1/+1 | |
| method | |||||
| 2025-03-20 | begin implementation of IDT | Fabian Imhof | 1 | -0/+13 | |
| 2025-03-13 | IN_PROGRESS implement gdt initialization | Fabian Imhof | 1 | -1/+1 | |
| 2025-02-27 | add descriptor_table access_byte | Fabian Imhof | 1 | -2/+2 | |
| 2025-02-27 | clear interrupt flag | Fabian Imhof | 1 | -0/+2 | |
| 2024-12-01 | Fix guard page and ensure it crashes even if guard page is skipped altogether | Matteo Gmür | 1 | -6/+10 | |
| 2024-10-27 | update gas | Fabian Imhof | 1 | -5/+5 | |
| 2024-10-26 | Update boot.s comments and comment initalize page tables out | Matteo Gmür | 1 | -4/+4 | |
| 2024-10-26 | wip | Fabian Imhof | 1 | -8/+8 | |
| 2024-10-22 | use actual page_table address | Fabian Imhof | 1 | -1/+1 | |
| 2024-10-17 | Implement support for `std::terminate` via `::abort` | Felix Morgner | 1 | -3/+10 | |
| 2024-10-16 | Fix compilation issues with assigning values to page_map_variable address | Matteo Gmür | 1 | -3/+2 | |
| 2024-10-16 | Adjust types | Matteo Gmür | 1 | -1/+1 | |
| 2024-10-15 | add 4th level page table | Fabian Imhof | 1 | -0/+6 | |
| 2024-10-06 | Remove high memory kernel and needless prints | Matteo Gmür | 1 | -21/+3 | |
