Page 1 of 1

Hydrogen 0.1

Posted: Sat Nov 12, 2011 5:59 pm
by Qeroq
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

Re: Hydrogen 0.1

Posted: Sun Nov 13, 2011 11:30 am
by Coty
Hello, very nice work :D but you may want to consider another name than hydrogen to avoid confusion, as f2 is using the name in his OS and assembler.

http://f2.codercat.org/

Re: Hydrogen 0.1

Posted: Sun Nov 13, 2011 2:38 pm
by gerryg400
Yes, keep up the good work. Carbon is nice too.

Re: Hydrogen 0.1

Posted: Sun Nov 13, 2011 8:56 pm
by ACcurrent
nice! Name suggestion: helium, berillium. But I found a typo - Its return(infinity) not PureInfinity. Im using your bootloader (finally something open source and not grubby).

Re: Hydrogen 0.1

Posted: Mon Nov 14, 2011 2:12 pm
by IanSeyler
Congratulations on the release! Multiple file system support was a large request for Pure64 but not really in the roadmap. I see that you have the IO-APIC working as well. I will be taking a look at your code to see how you did it.

Best regards,
-Ian

Re: Hydrogen 0.1

Posted: Tue Nov 15, 2011 11:22 am
by Jezze
Is it possible to have 32-bit kernel support too or is it just for 64-bit kernels? Will there be multi-architectual support?

Re: Hydrogen 0.1

Posted: Wed Nov 16, 2011 9:09 am
by Qeroq
I'm trying to keep it as simple and small as possible, so Hydrogen will only support 64 bit kernels. It would be possible though to implement a 32 bit loader that provides the same interface to the loaded kernel. That would be the better approach anyway, as almost all parts of Hydrogen are 64 bit specific and written in 64 bit assembly.

Re: Hydrogen 0.1

Posted: Wed Nov 16, 2011 8:19 pm
by IanSeyler
Have you considered putting up a drive image that contains everything needed to boot up a virtual machine?

Thanks again for the I/O APIC information.. I have now enabled it in Pure64.

-Ian

Re: Hydrogen 0.1

Posted: Sat Nov 19, 2011 6:38 am
by Qeroq
While putting up an ISO9660 image would be rather pointless, I guess, as the kernel needs to be written to image anyway, a hard-drive image makes more sense though, but writing the kernel to that image wouldn't be that less work than simply building it by one's own. Additionally a network boot iso would suffer from the problem that the TFTP server's IP and port would be required to be hardcoded afaik.