Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jbouron/x86_64-kernel
A bootloader and kernel for the x86_64 architecture, written in x86 assembly and C++ respectively
https://github.com/jbouron/x86_64-kernel
bootloader kernel operating-system x86 x86-64
Last synced: about 15 hours ago
JSON representation
A bootloader and kernel for the x86_64 architecture, written in x86 assembly and C++ respectively
- Host: GitHub
- URL: https://github.com/jbouron/x86_64-kernel
- Owner: JBouron
- License: mit
- Created: 2024-02-28T01:28:39.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-03-29T04:11:18.000Z (8 months ago)
- Last Synced: 2024-03-29T06:23:09.275Z (8 months ago)
- Topics: bootloader, kernel, operating-system, x86, x86-64
- Language: C++
- Homepage:
- Size: 479 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# x86_64-kernel
A bootloader and kernel for the x86_64 architecture, written in x86 assembly and
C++ respectively.The two-stage bootloader is 100% hand-written x86 assembly. As of now it is
capable of:
- Initializing the CPU from real-mode all the way to 64-bit mode.
- Parse the E820 memory map from the BIOS.
- Read the kernel ELF image from the boot disk (the ELF immediately follows the
bootloader's second stage on disk, i.e. no partitioning and no filesystem
support).
- Parse the kernel ELF and load its segments to memory.
- Jump to the 64-bit kernel entry point.The C++ kernel is still **work in progress**. As of now the following are
supported:
- Basic CPU initialization: segmentation, interrupts, paging
- ACPI table parsing
- IO-APIC(s)
- LAPIC
- Multicore support, including Inter-Processor-Interrupts
- Processes and context switch, although the scheduler is not yet implemented.