The GNU Hurd uses a similar concept to UNIX processes.

As a Mach task only implements a part of a UNIX process, there is additional work to be done, for example for signals, environment variables, file descriptors.

Controlling TTY

Hurd controlling tty behavior is generally consistent with BSD's, including TIOCSCTTY. Linux also has TIOCSCTTY and it is harmless to use it there. But BSD and Hurd never do an implicit TIOCSCTTY (hence our O_NOCTTY is zero).

C.f. http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00030.html and the following messages.