ドライバを書くときにヘッダを読み込むでしょ。
それのソースを見てくれればわかるけど、
実際の中身はシステムコールか、アセンブラなんだよね。
それってのは結局のところ、アセンブラ(機種依存)で書かれた、
ライブラリーを呼び出したりしてるだけであって、
C単体でやってるんじゃないよ。
で、JAVAでやりたければJNI使って、システムコールを呼び出すクラスを作って
開発するわけだけど。
現実問題として、OSに組み込むにはOSがJVMで動くドライバをサポートする
必要がある。
理由はわかるよね?