Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.