Hurd Traffic #63 For 18 Oct 2000

By 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 Mailing List (http://lists.debian.org/#debian-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)

Mailing List Stats For This Week

We looked at 130 posts in 451K.

There were 49 different contributors. 25 posted more than once. 18 posted last week too.

The top posters of the week were:

1. GRUB Almost At 1.0

6 Oct 2000 - 8 Oct 2000 (7 posts) Archive Link: "GNU GRUB 0.5.96 - FINAL TEST RELEASE"

Topics: Bootloaders, FS: ReiserFS, FS: ext2

People: Gordon MatzigkeitPankaj KaushalBrian May

Gordon Matzigkeit announced:

I'm pleased to announce release 0.5.96 of GNU GRUB, which is the *final* test release of GRUB. The next release will be GRUB 1.0, so we appreciate you testing 0.5.96 to help us make 1.0 stable.

You can get 0.5.96 from: ftp://alpha.gnu.org/gnu/grub/

Also available in that directory is `grub-0.5.96-i386-pc.ext2fs', a filesystem image suitable for use on a floppy disk.

GRUB 0.5.96 will also be available shortly from your favorite Debian mirrors (currently only for GNU/Linux, but hopefully a Debian maintainer with a working GNU/Hurd machine will recompile it).

Here is the relevant NEWS:

New in 0.5.96 - 2000-10-04: * New commands, "reboot" and "halt".

As always, thanks to the many people who have made GRUB possible.

Eric Gillespie and Bryan Walton reported an error complaining of a mismatch in stage1/stage2. Pankaj Kaushal explained:

mismatch means you are not telling grub either where 2 install or the address stage 2

well all you have to do to install grub is install (addr of stage1) (where 2 install) (addr of stage2) (addr of menu.1st)

Brian May suggested:

Or, perhaps stage2 on the harddisk is still the old version? Check the files under /boot/grub. If you update stage2, remember the old Grub will no longer work.

I think the Grub install command will only install stage1, not stage2 (not even stage1.5 if you use that).

I am not sure if it matters if the versions are different or not.

There was no reply.

2. Hurd IRC Rooms

7 Oct 2000 - 8 Oct 2000 (6 posts) Archive Link: "sysvinit"

People: Jordi MallachDavid R W Denny

Someone invited everyone to go to the #hurd channel at EFnet, and Jordi Mallach replied, "You realize some people on this list already live in #hurd - OpenProjects? It's not difficult to find someone there now." David R W Denny asked which network that was on, and and Jordi listed, "OpenProjects: irc.openprojects.org, irc.debian.org, irc.linux.com... see www.openprojects.org (http://openprojects.nu/) for a list of servers."

3. Implementing Servers On The Hurd

9 Oct 2000 - 10 Oct 2000 (7 posts) Archive Link: "Re: PPP"

Topics: FS: ext2, FS: procfs

People: Marcus BrinkmannNeal H WalfieldRoland McGrathRamakrishnan MDaniel E. Baumann

Ramakrishnan M asked Marcus Brinkmann to write extensive documentation on various devices and interfaces, including trivfs. Marcus replied that this would just be too much work, but that he could answer specific questions, such as Ramakrishnan's question about trivfs. He explained:

First, look at libdiskfs, which is used by ext2fs and fatfs and ufs. It's a support library to make it easy to write translators that use a backing store (a range of memory on disk or similar). There are some specific problems with using backing stores (paging for example). libtreefs (defunct) was intended to provide support for filesystems which provide a directory hierarchy, but without backing store (like a tar translator for example, or maybe procfs). libtrivfs is for very simple translators, usually a simple file, but it can be a directory, too (for example /dev/fd/).

All these hide a lot of complexity involved in writing translators. Writing translators is almost an impossible task, but with all the Hurd libraries (libports, libfshelp, libiohelp etc) it becomes quite easy.

All you have to do is to implement the various callbacks and variables expected by libtrivfs. They are documented in the hurd reference manual, but it is better to start off with an example and modify it until it does what you do. The hello-mt.c file is best. It contains almost nothing that is specific to hello-mt! The only thing is the hello message and the file pointer counting for seek() and successive reads.

Communication happens with Mach ports, and most callbacks are the result of a message appearing on a port. The open hook helps to seperate messages by the user (you can store your private data here). There are also buckets and classes, but in simple cases you have one bucket, one class, so nothing funny here (pfinet is different). The messages that can be sent over a port are listed in the various hurd/*.defs files, but a lot of them are catched at some lower level, and you only have to care about the trivfs callbacks (unless you really want to so very special things).

Ramakrishnan was very happy to hear about this. Elsewhere, Neal H Walfield also replied to his initial request:

The best manual is, of course, the source code itself. Thus, start by getting the hurd via cvs. Go to http://subversion.gnu.org for information on how to go about doing this.

Once you have obtained the hurd, go to into the doc directory. You will find a few files there including the hurd reference manual and also the file `navigating'. Read this file to learn a good way to approach your learning of the hurd.

Note that you can find the mach reference manuals that it mentions at: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

These provide a lot of the background that you will need, however, keep in mind that they are a bit out of date and do not always apply completely. The principle example of this is the port name space: in the hurd, the port name space is the file system while in OSF/Mach, there is a separate name space.

To this last, Daniel E. Baumann asked if this meant the Hurd didn't have a name server, as discussed in the server writer's guide. Neal and Roland McGrath replied that this was true, and Roland added, "The Mach server writer's guide is only of use for its sections on mig."

4. Hurd On VMWare; New 'figure' Development Environment

9 Oct 2000 - 12 Oct 2000 (12 posts) Archive Link: "GNU/Hurd on vmware"

Topics: Emulators: VMWare

People: Eric HanchrowDavid R W DennyGordon MatzigkeitRamakrishnan M

Ramakrishnan M asked if the Hurd could be installed on VMWare, and what the problems were. Prabhu Ramachan gave a link to an earlier post (http://lists.debian.org/debian-hurd-0009/msg00443.html) by Eric Hanchrow describing how to do this; Radovan Garabik also gave a link to a VMWare disk image (ftp://susy.dnp.fmph.uniba.sk/hurd) derived from Eric's, and Eric himself said:

You can download the VMware virtual disk, along with a few other files, from ftp://melkor.dnp.fmph.uniba.sk/pub/incoming. The files to get are

grub-boot-0.5.95.image.padded hurd.cfg hurd.dsk lessons.txt

hurd.dsk is about 150 MB, so beware!

Here's what to do with the files:

Start VMware's configuration editor, and change the following things:

Then boot the thing and you should be up and running! The root password is empty, by the way.

Disclaimer: I haven't actually followed the above steps; instead, I merely wrote them off the top of my head. Therefore there may be the usual subtle gotchas. But I expect them to work. Radovan or I can probably help you through any rough spots.

At one point in the discussion of OSes and virtual OSes, David R W Denny said, "for myself, would love to see an Open Source virtual machine operating system (OSVMOS? OSVOS? OVMOS? OVOS!!!!) which would just map all the devices, take care of partitioning, and then timeslice among all the guest OSes as you run. Just that, Nothing Else." Gordon Matzigkeit replied with this announcement:

I'm taking a stab at such a thing, but the first goal is to implement a simulation, then extend the simulation with real capabilities until the actual system is working.

It's called Figure, for those who care, but it currently isn't self-hosting; it still depends heavily on the GNU C compiler and C library. You're welcome to join the discussion (please refrain from following up on the -hurd lists, because it isn't within their scope yet) and browse the code at

http://fig.org/figure/

5. Terminating Translators

9 Oct 2000 - 10 Oct 2000 (6 posts) Subject: "stopping of translators"

People: Erik VerbruggenRoland McGrathMark Kettenis

In the course of discussion, Erik Verbruggen pointed out, "a stat() for example will do an open() to get a port to the translator. Then a close() will (should?) follow. But the translator stays alive (and sleeping) after this. Just do a "ls -alni /dev" and you will see the number of translators increase. Not all of them are ever used. For example: I do have a SCSI controller, but it's not used under GNUMach. There is a /dev entry for the disk on the controller, and there is a translator associated with it. This translator will be started by that ls, but it will never be used." He asked, "should translators quit when the last reference to them is gone?" Roland McGrath replied, "It is up to the translator to decide when it is safe and desireable to shut down when there are no users. The general plan is to do this after a timeout, but the implementations are not entirely consistent. Look at the calls to ports_manage_* and the code around them--those functions take arguments for the timeout value and return when the timeout expires. After that, the server code must ascertain if there are no user ports and if so it can to decide to exit." And Mark Kettenis added, "I believe that in the current code, the actual timeouts are disabled, i.e. all started threads are kept forever, and no translator will ever terminate when linked with the current libports. Enabling the timeouts isn't too difficult, but when I did so somewhere in the past, I encountered some bugs."

6. Dvorak

9 Oct 2000 - 10 Oct 2000 (4 posts) Archive Link: "another keymap"

People: Gordon MatzigkeitNeal H Walfield

David Bacon posted a keymapping for dvorak, and asked if he was the only Hurd person using dvorak. Gordon Matzigkeit replied, "Lsrdw G f;d gk ksse Nfk ;smdkgmd; G ysoudk ks gl;kapp kjd H.soav vdtmar ndysod G odrpt ks mt magpe z)" and Neal H Walfield said, "I take it that that is a yes. Gordon: use this patch, maybe we will finally be able to understand you ;)" Gordon said:

Ahh. That's much better. As I was saying:

Nope, I use it too. But sometimes I forget to install the Dvorak keymap before I reply to my mail. ;)

I detect signs of celebration among the Hurders.

 

 

 

 

 

 

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.