[[license text=""" Copyright © 2007 Free Software Foundation, Inc. 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_License|/fdl.txt]]. By contributing to this page, you agree to assign copyright for your contribution to the Free Software Foundation. The Free Software Foundation promises to always use either a verbatim copying license or a free documentation license when publishing your contribution. We grant you back all your rights under copyright, including the rights to copy, modify, and redistribute your contributions. """]] It is possible to run multiple instances of the Hurd in parallel, on a single instance of Mach. Other than performance crosstalk, they are essentially isolated. Practically, as many devices do not allow multiple non-cooperating users, e.g., hard drive and network this is not currently possible. It can be overcome, however, by virtualizing these problematic devices. When extra hardware is not available, it is possible to use a sub-hurd. A sub-Hurd is like a neighbor Hurd, however, makes use of some resources provided by another Hurd. For instance, backing store and the console. ([[SubhurdHowto]]) Sub-hurds are extremely useful for debugging core servers as it is possible to attach to them with gdb from the parent ([[DebuggingViaSubhurds]]. This avoids deadlock, e.g., when the instance of gdb stops the server but requires its use. (Note: it is possible to use [[NonInvasiveDebugging]], but this is less flexible.)