GNU和所有类Unix系统(Unix-like system)类似:登陆后,用户操作的是一个shell和熟悉的Unix VFS。尽管GNU竭力去遵守POSIX标准,但是它不是Unix。GNU/Hurd是在Unix哲学的基础上构建的,并且通过增加新的功能和改进原来设计的缺陷两个渠道来扩展它。最大的区别来自转译器(translator)、以及和VFS相互影响的用户磁盘管理程序(user space programs)。这些文件系统不在内核之中并且也不需要在启动时被加载;它们只需要访问文件备份和挂载点。另一个区别就是那些进程,和早期为单用户设计时不同,定义了进程互不干涉的令牌(这里不知道翻译得对不对),也就是说,它们可以被加上适当的许可来授权或结束。
GNU系统的启动引导程序是Grub,全称the Grand Unified Boot loader,它本来就是设计被用来启动GNU系统核心(Mach 和 the Hurd)的。尽管理论上说任何支持多重启动标准的启动引导程序都可以用来加载Mach和Hurd,但是目前为止(就我们所知),GNU Grub是唯一支持这样的标准的启动引导程序。
GNU Mach从0开始枚举磁盘。IDE驱动命名的前缀是hd,而SCSI前缀是sd。就像Linux,驱动器按照它们在控制器上的位置排序。举例来说,主驱动器是hd0,而第二个辅驱动器是hd3。使用BSD程序片的分区通过命名追加一个sM来指定一个给出的分区(这句翻译不确定)。注意M是从1开始的索引,而不是0。程序片编号很容易计算:只要在使用Grub的时候累加1。
下一步,根文件系统的服务和exec服务必须被加载。这些是由Grub的启动模块的功能来做的。GNU Mach充满了${var}。这个参数被Hurd用来指定将提供什么样的信息。因为ext2fs命令行很长,在通常的Unix传统中它会因为丢失新一行的字母而坏掉。确认在每行结尾的斜杠后没有空格,并且注意区分{ and }和( and )。