Hydrogen 0.1
Posted: Sat Nov 12, 2011 5:59 pm
Hello,
when creating a long mode, AMD64 kernel there is a lot of legacy stuff to initialize and a lot of work to do, until you can start with the 'real' parts of your kernel. I wanted a clean environment without all this lengthy setup work (and even real mode code for AP startup!), so I first looked at Pure64 from ReturnInfinity, but - despite that they are doing a great job - I didn't like to be restricted to FAT16, so I decided to write Hydrogen and combine the hardware and file system support of GRUB2 with the idea of a loader that gives you a clean environment you can work with.
Hydrogen loads ELF64 kernels, boots all APs into long mode, configures the system's I/O APICs (with configurable vectors and masks for IRQs) and brings the physical and virtual memory to a defined state. See the README.mdown file in my github repo [1], as well as the example kernel, for more detailed info.
I hope you guys like it,
Farok
[1] https://github.com/farok/Hydrogen
when creating a long mode, AMD64 kernel there is a lot of legacy stuff to initialize and a lot of work to do, until you can start with the 'real' parts of your kernel. I wanted a clean environment without all this lengthy setup work (and even real mode code for AP startup!), so I first looked at Pure64 from ReturnInfinity, but - despite that they are doing a great job - I didn't like to be restricted to FAT16, so I decided to write Hydrogen and combine the hardware and file system support of GRUB2 with the idea of a loader that gives you a clean environment you can work with.
Hydrogen loads ELF64 kernels, boots all APs into long mode, configures the system's I/O APICs (with configurable vectors and masks for IRQs) and brings the physical and virtual memory to a defined state. See the README.mdown file in my github repo [1], as well as the example kernel, for more detailed info.
I hope you guys like it,
Farok
[1] https://github.com/farok/Hydrogen