[[!meta copyright="Copyright © 2010, 2013 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
[[!meta title="Sharing the userspace between GNU Hurd and the Linux kernel"]]
Given that both Linux and GNU Hurd are using the [[ELF]] binary
format, it is in theory possible to have a system installation where you can
dual-boot using either the [[Linux]] kernel, or the GNU Hurd, so that
everything but the kernel is shared.
For this, all programs need to agree to rely on
only one abstraction layer, for example the standard C library ([[glibc]]).
(Additionally, for example for [[system call]]s that are not covered by glibc
calls, you'd need to be able to reliably trap and emulate these.) However,
Linux' and the GNU Hurd's [[ABI]]'s have sufficiently diverged, so that this is
not easy to do. That's why you can't currently install a system in this way,
but you need a separate installation of the userspace suited for the Linux
kernel, or the GNU Hurd.