HYDROGEN is not a part of the ARGON abstract specification - it's actually an implementation component. No ARGON user code will depend upon HYDROGEN, but the implementation of certain parts of ARGON itself will.
HYDROGEN is a hardware abstraction layer; the core abstraction of the underlying node, from which my first ARGON implementation will build. Implementations of HYDROGEN can be written for "bare-metal" computers, booting as an operating system in its own right, or as POSIX processes like the Java virtual machine, and many other possibilities. It can be implemented purely in portable C (as much as anything can be, at least) using vmgen, or it can contain platform-dependent machine code generation.
It's design to abstract away all the platform-specific stuff that the rest of ARGON needs, but it's also designed so that it can be implemented quickly and easily, yet that implementation can be tuned and improved with more and more platform-specific code to obtain better performance and access to more optional hardware features.
I've written a good series of blog posts on HYDROGEN:
- Code generation
- The boot process
- Device drivers
Also, the draft specification is available in DocBook format from the Fossil repository.