update: 2021-08: hurd ain’t dead

http://git.savannah.gnu.org/cgit/hurd/hurd.git/

 

how to get it running?

src: https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/README.txt

downloads:

kvm qemu vm image: http://cdimage.debian.org/cdimage/ports/11.0/hurd-i386/

iso: https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/

   Debian GNU/Hurd 2021 "Bullseye" - Unofficial hurd-i386 20210812


                      Welcome to the exciting world of
                               Debian GNU/Hurd

   This directory contains CD images and pre-installed images for the Debian
   GNU/Hurd distribution.

   Debian is a very extensive collection of software. But it is more. It
   is a complete Operating System (OS) for your computer. And it is free
   (as in "freedom").

   This release is a snapshot of Debian sid at the time of the Bullseye release,
   so it is mostly based on Bullseye. It however also contains a few patched
   packages (seen by +hurd suffix in the version).

   This is *not* part of the official Debian Bullseye release. This is however a
   release of the Debian GNU/Hurd port.



Table of content
****************

* Pre-installed images
* Installer CD images
* Small Examples on Using Translators



Pre-installed image
********************


To give Debian GNU/Hurd a try, it is probably easier to simply run the
preinstalled image, which is provided here:

      $ wget http://cdimage.debian.org/cdimage/ports/11.0/hurd-i386/debian-hurd.img.tar.xz
      $ tar xJf debian-hurd.img.tar.xz

All the debian-hurd.img* files are the same, they are just in various
format, because it has been reported that some tools are not able to cope with
the sparse tar format. The .tar.xz is still the preferred, as it will produce a
sparse file on your disk. You can compare the resulting .img file with the
MD5SUMS file

It can be run directly in qemu/kvm (make sure that you can access /dev/kvm to
get full KVM speed):

      $ kvm -m 1G -drive file=$(echo debian-hurd*.img),cache=writeback

It is often convenient to connect through ssh to the box, instead of logging on
the console, this can be done by forwarding the ssh port:

      $ kvm -net user,hostfwd=tcp:127.0.0.1:2222-:22 -net nic,model=e1000 -drive file=$(echo debian-hurd*.img),cache=writeback -m 1G

then setting a password to the demo user with

      passwd demo

and then you can connect through ssh:

      ssh demo@localhost -p 2222

Don't forget to call

      apt-get update

to get the repositories information before trying to install packages.

One can increase the size of the image with e.g.:

      $ qemu-img resize debian-hurd*.img +5G
      $ parted debian-hurd*.img
      (parted) resizepart 2 100%
      (parted) quit
      $ sudo losetup -o $((512*1953792)) /dev/loop0 debian-hurd*.img
      $ sudo resize2fs /dev/loop0
      $ sudo losetup -d /dev/loop0

(1953792 is the start sector shown in fdisk -l debian-hurd*.img)

It can also be run in virtualbox (though it is much less tested), by first
converting to VDI format :

      $ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi


You can then just log in as root without a password.
The qemu/kvm -curses option can be used to run it in text mode, which can help with the
keyboard layout, but it's better to simply reconfigure the layout by running

dpkg-reconfigure keyboard-configuration



Installer CD images
===================


WARNING: the debian-hurd-2021-i386-NETINST-1.iso can not be used to install more
than the base system, because the pgp signature of the mirror is expired. You
can either tell the installer to ignore the error and not use the mirror, thus
only installing the base system, or you can use the DVD image as described
below, which contains enough packages to install the lxde desktop.


To test the installer images with kvm/qemu:

  * Download:

      $ wget http://cdimage.debian.org/cdimage/ports/11.0/hurd-i386/iso-dvd/debian-hurd-2021-i386-DVD-1.iso
      # apt-get install qemu-kvm

  * Create a hard disk image:

      $ kvm-img create hurd-install.qemu 3G

  * Start the installation:

    Since we haven't yet optimized the installer initrd mechanism for memory
    usage at all you will need at least 500MB of memory even for the text
    installer (about 1G for the graphical installer), or the installer will
    likely crash due to missing memory.

    Also make sure that you can access /dev/kvm in order to get full KVM speed.

      $ kvm -m 1G -drive file=hurd-install.qemu,cache=writeback -cdrom debian-hurd-2021-i386-DVD-1.iso -boot d

    Note the gnome and kde desktop are not yet completely installable and
    working. The LXDE desktop is preferred, or even just icewm etc.

On real hardware:

  * Note that in addition to support for IDE, GNU Mach has drivers for SATA
    devices, but only in AHCI mode, not in RAID mode.

  * Installation CDs include the 2.6.32 Linux network drivers, and should
  thus cover a wide range of network boards. There is however no support for
  firmware loading.

  * There is no support for wireless network devices.

  * There are no USB stick drivers, so images can be used only on real CD/DVD
    media.

When going through the installation:

  * Reminder for qemu: with the user network stack default configuration,
    use the following values:

       IP address: 10.0.2.15
       Netmask: 255.255.0.0
       Gateway: 10.0.2.2
       Nameserver: 10.0.2.3

Remarks:

  * /usr or /usr/local on separate filesystem is not supported yet.


Note: daily/weekly/monthly installer snapshots are additionally available on
https://people.debian.org/~sthibault/hurd-i386/installer/cdimage/
to get the latest versions of everything. They are however NOT ACTUALLY TESTED,
it might happen that they just do not even work at all. Really better use the
images mentioned above.


Configuring the installed system
================================


Please make sure to read

    http://www.debian.org/ports/hurd/hurd-install

for other configuration information (network / filesystems / X) as well as the
FAQ:

    http://www.gnu.org/software/hurd/faq.html

or its latest version on

    http://darnassus.sceen.net/~hurd-web/faq/

and known open issues

    http://www.gnu.org/software/hurd/open_issues.html


Email us to <debian-hurd@lists.debian.org> for debian-specific things or
<bug-hurd@gnu.org> for non-debian-specific things if you have questions or
comments, We are also available on #hurd on Freenet, #debian-hurd on OFTC.





Small Examples on Using Translators
===================================

The concept of user-space servers, Translators, is a very powerful one. Here is
an introductionary text.

Intro

The Hurd has some unique capabilities, and we created this simple image to
enable you to easily try three of them:

  • The simplest of translators: Hello World!
  • Transparent FTP
  • Mount a remote ISO file

Hello World

To try out the simplest of translators, you can go the following simple steps:

$ touch hello
$ cat hello
$ settrans hello /hurd/hello
$ cat hello
"Hello World!"

$ fsysopts hello
/hurd/hello --contents='Hello World!
'
$ fsysopts hello --contents='Hello GNU!
> '
$ cat hello
Hello GNU!

$ settrans -g hello
$ cat hello

What you do with these steps is first creating the file "hello" and verifying
that it is empty.

Then you setup the translator /hurd/hello in the file/node hello.

After that, you check the contents of the file, and the translator returns
"Hello World!".

Because you are a curious hacker, you wonder what filesystem options this node
has. It turns out that the hello translator uses a "contents" option. We can
change what the hello translator returns with another call to fsysopts.

To finish it, you remove the translator from the file "hello" (and tell any
active running instances to go away) via "settrans --g hello", which is
shorthand for "settrans --goaway hello" Having done that, verify that now the
file is empty again.

Transparent FTP

We already setup a a transparent FTP translator for you at /ftp:

With it you can easily access public FTP via the file system, for example the
one from the GNU project:

$ ls /ftp://ftp.gnu.org/

But you can also do this very easily yourself:

$ # Setup the translator on the node ftp:
$ settrans -c ftp: /hurd/hostmux /hurd/ftpfs /

and you can access FTP sites via the pseudo-directory ftp:, for example with

$ ls ftp://ftp.gnu.org/

What you do here is setting up the translator /hurd/hostmux on ftp: and passing
it the translator /hurd/ftpfs to use for resolving accesses as well as / as
additional path component.

ISO file mount

Now that we can access ftp.gnu.org transparently, let's mount a remote ISO
file:

$ settrans -c mnt /hurd/iso9660fs ftp://ftp.gnu.org/old-gnu/gnu-f2/hurd-F2-main.iso
$ ls mnt/

It is interesting to note that since the ISO9660 format is indexed, ftpfs does
not have to download the whole ISO file, it merely fetches what iso9660fs
requests.

These were only three basic usages of translators on the Hurd. We're sure
you'll quickly see many other ways to use this.

As a last comment: You can setup a translator on any node you have access to,
so you can for example mount any filesystems as normal user.

You might currently be logged in as root, but you could just as well do the
same as normal user.

Why don't you try it out?

Links: documentation faq/still useful news/2013-05-debian gnu hurd 2013
translator
Copyright © 2011 Free Software Foundation, Inc.
License:

GFDL 1.2+

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.

Last edited 2019-03-27 18:45:55 CET

the 4 free software freedom rules:

  • freedom 0: The freedom to run the program as you wish, for any purpose.
    • (computers start counting with 0, that’s why it is freedom 0)
  • freedom 1: The freedom to study how the program works, and change it so it does your computing as you wish.
    • Access to the source code is a precondition for this
  • freedom 2: The freedom to redistribute copies so you can help others.
  • freedom 3: The freedom to distribute copies of your modified versions to others.
    • By doing this you can give the whole community a chance to benefit from your changes.
    • Access to the source code is a precondition for this.

2019-01: hurd revisited

How far has HURD gotten? from hurd

https://www.reddit.com/r/hurd/comments/69refx/how_far_has_hurd_gotten/

Debian supporting Hurd kernel? GO DEBIAN GO! 🙂

grab an iso here: https://cdimage.debian.org/cdimage/ports/current-hurd-i386/

There are several different ways to run a GNU/Hurd system:

requirements: will run in VirtualBox on host CentOS7 64Bit

  • disk controller IDE or AHCI
    • Neither RAID nor SCSI are supported.
  • network controller PCnet-PCI II or PCNet-FAST III for instance.
    • INTEL PRO or Paravirtualized Network do not work.
  • make sure you have enough harddisk space… 😀

You can also get a pre-installed image and run it in qemu:

$ wget http://cdimage.debian.org/cdimage/ports/current-hurd-i386/debian-hurd.img.tar.gz
$ tar xzf debian-hurd.img.tar.gz
$ kvm -m 1G -drive file=$(echo debian-hurd*.img),cache=writeback

or convert it to the VDI format for virtualbox:

$ VBoxManage convertfromraw debian-hurd-*.img debian-hurd.vdi --format vdi

2019:

https://gemmei.ftp.acc.umu.se/cdimage/ports/current-hurd-i386/iso-cd/debian-hurd-2017-i386-NETINST-1.iso

selecting 64bit works as well… it automatically sets hd controller as IDE

and network controller as the recommended PCnet Fast 3

nothing a bit has changed on the boot screen in the last 2 years X-D

setup is straight forward as any debian setup 🙂 GOOD JOB! (netherlands seem to have the monopoly on debian hurd repositories).

the no gui setup worked flawlessly… while not using 100% of the harddisk space of 1TB.

now i am trying to setup hurd with LXDE… wish me luck.

 

2017:

In December 1991 the primary architect of the Hurd described the name as a mutually recursive acronym:[7]

It’s time [to] explain the meaning of “Hurd”. “Hurd” stands for “Hird of Unix-Replacing Daemons”. And, then, “Hird” stands for “Hurd of Interfaces Representing Depth”. We have here, to my knowledge, the first software to be named by a pair of mutually recursive acronyms.

https://en.wikipedia.org/wiki/GNU_Hurd#Name_and_logo

“1984 i started developing a free replacement for unix”

“in 1992 we had almost the entire GNU system but one essential important component was missing – the kernel”

“in 1992 linus liberated it – so the incomplete GNU system and the linux kernel combined gave a full system – so it’s the GNU+Linux system… so please call it GNU-Linux not just Linux – treat us right.”

GNU/Hurd builds upon many of the Unix concepts and extends them to either add new functionality or to fix what has been perceived as flaws in the original design. The most noticeable difference is translators, user space programs which interact with the VFS. These filesystems do not live in the kernel nor do they need to be run as root; they only need access to the backing store and the mount point. Another difference is that processes, rather than having a single user identity fixed at creation time, have identity tokens which are disjoint from the process, i.e. they may be added with the appropriate permission from an authority or destroyed.

Being familiar with the Unix environment (and especially GNU userland, found in popular variants such as GNU/Linux) is an imperative for feeling at ease in GNU. Having experience with the Debian tools will also prove invaluable to the configuration and maintenance of a GNU/Hurd box.

This guide endeavors to make installing GNU/Hurd as painless a process as possible.

If there are errors, they are most certainly the author’s. Please report them, along with any other suggestions or criticisms, to him; all are gladly accepted. (src)

Installation

You can simply use the Debian installer, see the prepared CD images. Then the following steps will be needed for proper configuration.

testrun

DO NOT USE THE NETINSTALL MINIMAL ISO…

try the DVD version: http://ftp.ports.debian.org/debian-ports-cd/hurd-i386/current/debian-hurd-2017-i386-DVD-1.iso

and try to run it as VM in Hyper-V 😀

of course there are no non-free drivers for ms virtual network cards 😀

detecting two harddisks where there should be only one… maybe one is virtual…

result:

IT WORKS!

… but i really don’t know how to setup networking, LXDE, ifconfig and so on 😀

What is it about?

“The mission of the Hurd project is: to create a general-purpose kernel suitable for the GNU operating system, which is viable for everyday use, and gives users and programs as much control over their computing environment as possible.”

“I didn’t mention that it must be entirely free software, as this should be obvious to anyone familiar with GNU.” (src)

I am not Stallman but i would add:

Malcolm Douglas McIlroy: „Everything was small… and my heart sinks for Linux when I see the size of it. […]” (src)

in other words: complexity is death – break it down in fixable (micro) parts!

Links:

https://dwaves.de/2016/09/27/fsf-gnu-hurd-mach-kernel/

admin