Hurd Traffic #72 For 20 Dec 2000

Editor: Zack Brown

By Paul Emsley  and  Zack Brown

Mach 4 (http://www.cs.utah.edu/projects/flux/mach4/html/) | Hurd Servers (http://www.gnu.org/software/hurd/hurd.html) | Debian Hurd Home (http://www.gnu.org/software/hurd/debian-gnu-hurd.html) | Debian Hurd FAQ (http://www.debian.org/ports/hurd/hurd-faq) | debian-hurd List Archives (http://lists.debian.org/#debian-hurd) | bug-hurd List Archives (http://mail.gnu.org/pipermail/bug-hurd/) | Hurd Reference Manual (http://www.gnu.org/software/hurd/reference-manual.html) | Hurd Installation Guide (http://pick.sel.cam.ac.uk/~mcv21/hurd.html) | Cross-Compiling GNUMach (http://pages.hotbot.com/sf/igorkh/gnumach-cross.txt) | Hurd Hardware Compatibility Guide (http://www.urbanophile.com/arenn/hacking/hurd/hurd-hardware.html)

Table Of Contents

Introduction

Want to help write KC Debian Hurd? See the KC Authorship page (../author.html) the KC Debian Hurd homepage (index.html) , and the Thread Summary FAQ (../summaryfaq.html) . Send any questions to the KCDevel mailing list. (mailto:kcdevel@zork.net)

 

1. Penguin For Linux, Daemon For BSD, and For Hurd...?
9 Dec 2000 - 10 Dec 2000 (11 posts) Archive Link: "Pengiun and Daemon"
Summary By Zack Brown
Topics: Logo
People: Dayyan LordDavid R W DennyChristopher BrowneJoshua RosenMarcus Brinkmann

Dayyan Lord asked, "Linux is the penguin. BSD the daemon. What is the Hurd?" David R W Denny replied ryely, "I think it is maybe a white stick. as in "hurd but not scene"." Christopher Browne suggested, "Most certainly the gnu; indeed, a whole _herd_ of gnus..." And at one point Joshua Rosen defined, "`gnu': A species of antelope, also known as a wildebeest. Webster's 1913 says that the brindled gnu is also called a gorgon. There are pictures of them all over www.gnu.org, actually (see http://www.gnu.org/graphics). There are also some greate images at http://gnuart.onshore.com/." Elsewhere, Marcus Brinkmann also suggested, "There is a Hurd logo with a network stylish diagram where there are boxes connected with arrows in some weird way. I quite of like it, though it has no cuteness factor. There is a derived log that only has one box with two arrows saying "Part of the Hurd", and I put this on my name tag on events."

 

2. Minicom
10 Dec 2000 - 11 Dec 2000 (6 posts) Archive Link: "minicom error"
Summary By Paul Emsley
People: Neal WalfieldDaniel E. BaumannPetros Sidiropoulos

Petros Sidiropoulos had tried to run minicom, but it gave him a segmentation error. Neal Walfield asked him to send details and found that Petros' Hurd was ancient and that there were no debugging symbols in his minicom " Try recompiling minicom with the appropriate options. dpkg-buildpackage should help " . Daniel E. Baumann advised that he create " the com0 device (cd /dev; ./MAKEDEV com0) and that you have set the term translator on com0" .

 

3. Plex86 And The Hurd
10 Dec 2000 (3 posts) Archive Link: "Plex86 boots GRUB"
Summary By Paul Emsley
Topics: Bootloaders, Emulators: plex86
People: Marcus Brinkmann

Marcus Brinkmann had tried to get plex86 to boot the Hurd:

plex86 CVS version boots GRUB. This means that you can try to boot gnumach and eventually the Hurd in plex86. With increasing performance of plex86, this might be a good alternative to dual boot under some circumstances. Especially in favor of certain non-free products.

You can get plex86 from http://www.plex86.org. Check out the CVS version and follow the build instructions. To actually boot grub, you can use a grub floppy disk. A config file comes with plex86 (conf/grub). I had to use a real disk /dev/hdX to get grub to access the filesystem, a disk image wouldn't work, but maybe I just didn't know how to do it.

I tried to boot gnumach, but it dies in fpu_init() when trying to access fpe_reg_segment. That's a gnumach kernel panic, but should be a bug in plex86, or a missing feature. I disabled this by replacing #define FPE 1 in i386/bogus/fpe.h with #undef FPE. Then gnumach came further along, until somewhere in serverboot I think. Then plex86 crashes really hard. A similar crash I get with oskit-mach, but a bit earlier I think.

I think it is now a good time to work on plex86 to boot the Hurd, if you are interested in this type of hacking[1]. This is not really within the scope of Debian or the Hurd[1], but we would benefit from it. Interested people should coordinate their work within the plex86 project and keep us up to date when you make progress. For example, you could put up a disk image and a config file so people can try the Hurd without installing it.

[1] As the Hurd runs on a normal PC, plex86 should support it. But there might be some rare cases where a change in GNU Mach would make it easier for plex86 to run it. In this case, let us know on bug-hurd@gnu.org and we will decide on it.

There followed some discussion of FPU code, but nothing resolved.

 

4. Getting To Know The Hurd Source Code
11 Dec 2000 - 12 Dec 2000 (3 posts) Archive Link: "learning"
Summary By Zack Brown
Topics: FS: ext2
People: Neal H WalfieldFarid HajjiPetros Sidiropoulos

Petros Sidiropoulos asked where to start learning about the Hurd sources, and Neal H Walfield suggested, "Get hurd from cvs and look at hurd-cvs-root/doc/navigating." Farid Hajji went into some depth, with:

You'd also wish to get the glibc sources as well, and look at the way, how Unix syscalls are implemented on top of hurd. Look at

$(GLIBC_SRC)/sysdeps/mach/hurd
$(GLIBC_SRC)/hurd/

Generally, I'd suggest the following path to understand the Hurd sources:

  1. Learn as much as you can about Mach, e.g. from the OSF documents. You need to know about at least:
    • tasks, threads, ports and port rights, vm
    • using mig for generating RPC stubs
    You don't need to know anything specific on gnumach; a general introduction to any variant of Mach (>= 3.0) would suffice.
  2. Understand the Hurd's interfaces, w.r.t. the Hurd servers. The mig source files are very useful:
    $(HURD_SRC)/hurd/*.defs
    Start with 'auth' and 'proc'.
  3. Look at the way, how init starts the core servers. The following file contains good examples of both Mach usage and calls to often used Hurd functions.
    $(HURD_SRC)/init/init.c
  4. The Hurd uses port buckets extensively. Such buckets are there for holding port-rights (among others). You should start by reading the libports section in
    $(HURD_SRC)/doc/hurd.texi
    and of course the very well commented header file:
    $(HURD_SRC)/libports/ports.h
  5. Understand how simple translators are written by learning about libtrivfs, documented in
    $(HURD_SRC)/libtrivfs/trivfs.h
    Then look at usermux/hostmux
  6. More complex translators are implemented with libnetfs or libdiskfs:
    $(HURD_SRC)/libnetfs/netfs.h
    $(HURD_SRC)/libdiskfs/diskfs.h
    Examples for using libnetfs are the nfs translator
    $(HURD_SRC)/nfs/*
    Examples for libdiskfs are (of course)
    $(HURD_SRC)/ext2fs/*
    $(HURD_SRC)/ufs/*
    $(HURD_SRC)/isofs/*
  7. Read more about the Unix emulation library (the familiar Unix system calls) in the glibc sources (see above):
    $(GLIBC_SRC)/sysdeps/mach/hurd/
    Try to trace regular Unix syscalls. E.g. try to understand what happens inside an open(2), write(2), ... as well as inside fork(2), exec[ve](2), ... by looking at the sources of the corresponding sysdeps. [ Especially if you want to understand fork(), you'll need to look at the 'proc', 'auth' and 'exec' servers and their interfaces (*.defs), and also understand how 'proc' can be accessed though libps $(HURD_SRC)/libps/ps.h ]
  8. If you think that you've mastered all of the previous points, you can try to grok the store concept by carefully examining
    $(HURD_SRC)/libstore/store.h

You may with to browse the sources of gnumach, glibc and the Hurd with some suitable tools. Emacs with etags, vi with ctags are your friends. Very comfortable are global(1) and friends: Just unpack/fetch gnumach, glibc and hurd sources in the same top-level directory, e.g.:
$(TOP_LEVEL)/hurd
$(TOP_LEVEL)/gnumach
$(TOP_LEVEL)/glibc
then cd $(TOP_LEVEL), call gtags, call htags -fhvat 'a title' and browse HTMLized sources at will.

 

5. apt-get Problems
14 Dec 2000 - 15 Dec 2000 (4 posts) Archive Link: "Ported package - now what?"
Summary By Paul Emsley
Topics: Apt
People: Neil WalfieldJason Felice

Jason Felice reported that he had ported the current version of apt but didn't know what to do next. Neil Walfield replied:

Normally, you should file a bug, however, there is already one filed. There is a patch, however, the maintainer/upstream author refuses to apply it. See bug #39227.

If people _really_ want apt-get, they should bug Jason Gunthorpe (jgg@debian.org) to apply the solution in the aforementioned bug report.

As for a binary, you can put it on an ftp server, however, if it is not official, it cannot go in the main archive.

 

6. New Hurd CD Installation Image
14 Dec 2000 - 15 Dec 2000 (3 posts) Archive Link: "Hurd CD"
Summary By Paul Emsley
People: Philip CharlesMarcus Brinkmann

Philip Charles let us know that he was working on hurd-E1.iso, but that because the Debian archive was changing to the spool system, this would create problems for new Hurd CDs. hurd-E1.iso included the 2.2.20 boot floppies and Marcus Brinkmann's new tarball.

 

 

 

 

 

 

Sharon And Joy
 

Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License, version 2.0.