Hydrogen 0.1

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
Qeroq
Member
Member
Posts: 52
Joined: Wed Aug 25, 2010 6:35 am
Location: Bonn, Germany

Hydrogen 0.1

Post 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
Last edited by Qeroq on Mon Nov 14, 2011 2:22 pm, edited 1 time in total.
https://github.com/qero/Hydrogen (Loader for AMD64 kernels running on top of GRUB2)
User avatar
Coty
Member
Member
Posts: 286
Joined: Thu Feb 12, 2009 5:12 pm

Re: Hydrogen 0.1

Post 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/
My hero, is Mel.
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: Hydrogen 0.1

Post by gerryg400 »

Yes, keep up the good work. Carbon is nice too.
If a trainstation is where trains stop, what is a workstation ?
ACcurrent
Member
Member
Posts: 125
Joined: Thu Aug 11, 2011 12:04 am
Location: Watching You

Re: Hydrogen 0.1

Post 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).
Get back to work!
Github
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Hydrogen 0.1

Post 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
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
Jezze
Member
Member
Posts: 395
Joined: Thu Jul 26, 2007 1:53 am
Libera.chat IRC: jfu
Contact:

Re: Hydrogen 0.1

Post 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?
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/
Qeroq
Member
Member
Posts: 52
Joined: Wed Aug 25, 2010 6:35 am
Location: Bonn, Germany

Re: Hydrogen 0.1

Post 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.
https://github.com/qero/Hydrogen (Loader for AMD64 kernels running on top of GRUB2)
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Hydrogen 0.1

Post 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
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Qeroq
Member
Member
Posts: 52
Joined: Wed Aug 25, 2010 6:35 am
Location: Bonn, Germany

Re: Hydrogen 0.1

Post 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.
https://github.com/qero/Hydrogen (Loader for AMD64 kernels running on top of GRUB2)
Post Reply