diff options
Diffstat (limited to 'hurd')
35 files changed, 261 insertions, 1324 deletions
diff --git a/hurd/history.mdwn b/hurd/history.mdwn deleted file mode 100644 index 18a1506f..00000000 --- a/hurd/history.mdwn +++ /dev/null @@ -1,91 +0,0 @@ -[[!meta copyright="Copyright © 1998, 1999, 2001, 2002, 2007, 2008, 2009 Free -Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="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|/fdl]]."]]"""]] - -Richard Stallman (RMS) started GNU in 1983, as a project to create a -complete free operating system. In the text of the GNU Manifesto, he -mentioned that there is a primitive kernel. In the first GNUsletter, -Feb. 1986, he says that GNU's kernel is TRIX, which was developed at -the Massachusetts Institute of Technology. - -By December of 1986, the Free Software Foundation (FSF) had "started -working on the changes needed to TRIX" [Gnusletter, Jan. 1987]. -Shortly thereafter, the FSF began "negotiating with Professor Rashid -of Carnegie-Mellon University about working with them on the -development of the Mach kernel" [Gnusletter, June, 1987]. The text -implies that the FSF wanted to use someone else's work, rather than -have to fix TRIX. - -In [Gnusletter, Feb. 1988], RMS was talking about taking Mach and -putting the Berkeley Sprite filesystem on top of it, "after the parts -of Berkeley Unix... have been replaced." - -Six months later, the FSF is saying that "if we can't get Mach, we'll -use TRIX or Berkeley's Sprite." Here, they present Sprite as a -full-kernel option, rather than just a filesystem. - -In January, 1990, they say "we aren't doing any kernel work. It does -not make sense for us to start a kernel project now, when we still -hope to use Mach" [Gnusletter, Jan. 1990]. Nothing significant occurs -until 1991, when a more detailed plan is announced: - -<BLOCKQUOTE> -We are still interested in a multi-process kernel running on top of -Mach. The CMU lawyers are currently deciding if they can release Mach -with distribution conditions that will enable us to distribute it. If -they decide to do so, then we will probably start work. CMU has -available under the same terms as Mach a single-server partial Unix -emulator named Poe; it is rather slow and provides minimal -functionality. We would probably begin by extending Poe to provide -full functionality. Later we hope to have a modular emulator divided -into multiple processes. [Gnusletter, Jan. 1991]. -</BLOCKQUOTE> - -RMS explains the relationship between the [[documentation/Hurd_and_Linux]], where he mentions -that the FSF started developing the Hurd in 1990. As of [Gnusletter, -Nov. 1991], the Hurd (running on Mach) is GNU's official kernel. - ---- - -# Announcements - -These are all the announcements made over the years. Most of them were -either sent to the <A HREF="news:gnu.announce">gnu.announce</A> news group or Hurd interest -mailing lists. - - * [[hurd-flash15]] -- Release 0.2 announcement (complete GNU system) - * [[hurd-flash14]] -- Release 0.2 announcement (Hurd) - * [[hurd-flash13]] -- Test release announcement (Aug 96) - * [[hurd-flash12]] -- Test release status (Jul 96) - * [[hurd-flash11]] -- Binary image available, Apr 96 - This and [NetBSD](http://www.netbsd.org/) boot flopies should be enough to - get a working GNU/Hurd system! - * [[hurd-flash10]] -- New Snapshot, Apr 96 -- NFS and lots else works! - * [[hurd-flash9]] -- News Flash, Nov 95 -- ftp works! - * [[hurd-flash8]] -- New Snapshot, Jul 95 -- ext2fs support - * [[hurd-flash7]] -- New Snapshot, Apr 95 - * [[hurd-flash6]] -- News flash, Nov 94 - * [[hurd-flash5]] -- News flash, Sep 94 -- gcc runs! - * [[hurd-flash4]] -- News flash, Aug 94 - * [[hurd-flash3]] -- News flash, Jul 94 -- emacs runs! - * [[hurd-flash2]] -- News flash, May 94 - * [[hurd-flash]] -- News flash, Apr 94 -- it boots! - * [[hurd-announce2]] -- GNU Hurd announcement, Nov 93 - * [[hurd-announce]] -- GNU Hurd announcement, May 91 - ---- - - * [History - 1997-2003](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00718.html) - -- personal view of Marcus Brinkmann about Hurd development in 1997-2003. - ---- - - * [[Port_to_L4]] diff --git a/hurd/history/hurd-announce b/hurd/history/hurd-announce deleted file mode 100644 index 2f165ad8..00000000 --- a/hurd/history/hurd-announce +++ /dev/null @@ -1,47 +0,0 @@ -From mib@PREP.AI.MIT.EDU Tue May 7 12:07:53 1991 -From: mib@PREP.AI.MIT.EDU -Newsgroups: gnu.announce -Subject: FSF work on a GNU OS -Date: 6 May 91 22:15:22 GMT -Reply-To: mib@prep.ai.mit.edu -Distribution: gnu -Organization: GNUs Not Usenet - -The Free Software Foundation is beginning work on a GNU operating -system built on top of the Mach 3.0 microkernel. There are three -goals to this project worth noting: - -o Binary compatability with 4.4 BSD, and other U*x or U*xish systems - on other hardware where appropriate, convenient, and consistent with - the design; - -o Posix compliance (in combination with the GNU C Library and the GNU - C Compiler); and - -o Ease of use as well as several new features and functionality. - - -I am interested in constructive criticism on the interfaces, design, -and implementation from experts in the field of OS research and design -consistent with the above goals. Advice from seasoned U*x hackers is -especially welcome. - -We have a mailing list for discussion. Currently there is little -discussion on the group; the major contributors to the ideas behind -the design all live in the Boston area at this point, and work has -been done via face-to-face communication. I would like to open the -field of discussion to a broader base, both to get wider dissemination -of the ideas behind the current design, as well as to get a greater -breadth of criticism. Periodic postings are currently made to the -mailing list containing a snapshot of the interfaces used by the -various pieces of the system. I would like to see discussion as well; -perhaps we need a critical mass to get this. - -Interested individuals should send me email. I don't regularly read -the newsgroups to which this message is posted. - - -[U*x is an abbreviation for a well-known trademark of AT&T. :-)] - - -mib - diff --git a/hurd/history/hurd-announce2 b/hurd/history/hurd-announce2 deleted file mode 100644 index dce41c43..00000000 --- a/hurd/history/hurd-announce2 +++ /dev/null @@ -1,143 +0,0 @@ -From mib@gnu.ai.mit.edu Wed Nov 3 21:51:03 1993 -Path: usenet.ee.pdx.edu!cs.uoregon.edu!ogicse!emory!nigel.msen.com!sdd.hp.com!swrinde!cs.utexas.edu!uunet!spool.mu.edu!bloom-beacon.mit.edu!ai-lab!prep.ai.mit.edu!gnulists -From: mib@gnu.ai.mit.edu (Michael I Bushnell) -Newsgroups: gnu.announce,gnu.misc.discuss -Subject: Hurd status and call for volunteers -Message-ID: <9311020719.AA02206@geech.gnu.ai.mit.edu> -Date: 1 Nov 93 21:19:05 GMT -Article-I.D.: geech.9311020719.AA02206 -Followup-To: gnu.misc.discuss -Distribution: world -Lines: 124 -Approved: info-gnu@prep.ai.mit.edu -To: info-gnu@prep.ai.mit.edu -X-Shopping-List: - (1) Chaotic casino griddles (2) Cervical congestion (3) Neoclassical - consoles -Xref: usenet.ee.pdx.edu gnu.announce:160 gnu.misc.discuss:3985 - -This message to help sate curiosity, as well as to ask for volunteers. -Until we are ready for alpha test, this is the last such message that -will be posted here. If you want to receive further such messages, -send mail to hurd-ann-request@gnu.ai.mit.edu and ask to be put on that -(moderated) announcements list. - - -What is already done with the Hurd: - -The filesystem is complete; it runs (read-only), and most of its calls -have been tested and work. The filesystem is able to download -programs, by a kludge similar to the kludge used to enable the kernel -to download the first task. In the actual bootstap sequence, it will -download the execserver. - -The proc and auth servers are completed; the exec server is nearly -complete (for a.out, not for bfd). - -C library support for Mach and Hurd rpc stubs, and some of the mach -and hurd specific code, is done. Much untested and probably wrong -code has been written to implement Unix "system calls". A large piece -of this (the descriptor management code) is believed by Roland to have -some architectural flaw, but he isn't sure. - -Some small filesystem servers (shadow directories, for example) have -been written, but have not been compiled, let alone tested. - - -There are currently three things happening wrt the Hurd: - -I am spending nearly all my time getting things to boot and run. My -work is currently directed toward that goal; in the immediate present -I am working with Roland on getting the library in its near-final -state (which will last a long time) to make compiling easier. It is -because this is nearly done that I can send this message. - -Roland is working on the library. Most of the remaining architectural -work is done and being tested. Then Roland will work on integrating -cthreads (which is mostly busywork), miscellaneous filesystem calls, -and then file descriptors. After that comes signals. - -Jan Brittenson will be working on the network server library. This is -a library that, when linked against a BSD protocol stack, will produce -a Hurd network server. (Such a server implements the socket interface -in socket.defs.) - - -There are four general tasks that can be done by other people: - -1. Completing the existing work on the terminal driver. The existing -work implements most of the logic you already associate with a Posixy -terminal driver; it needs the port management and buffering logic -added. - -2. Writing a readline terminal driver. We will want, as an -alternative to the Posixy terminal driver, a readline type terminal -driver. - -3. Writing miscellaneous shell utilities. Here we need shell -utilities to create translators, etc. They should have a nice rich -set of features to do all kinds of GNU things. - -4. Writing miscellaneous filesystem servers. Here we need a -transparent tar server, a transparent FTP server, and the like. - - -Future plans for work to be written by me (once the bootstrap works, -and in addition to testing library code as Roland finishes it): - -o split the existing filesystem into three parts: - o a library for port management for complicated multi-threaded - servers; - o a library for "normal" disk-based filesystems; - o ufs specific code. - -o Write the PF_FILE socket server (what you know as PF_UNIX). - -o Finish the posixy terminal driver if nobody else has. - -o Write miscellaneous shell utilities that nobody else has. - -o Build a self-hosting system. - - -What you need in order to be able to help now: - -o A 386 PC running Mach 3.0. If you have some other kind of hardware, - then you need to port the GNU C library support first. I'm not - entirely sure how much work that involves; you will need to contact - Roland. It might be too much trouble at this point to spend any - effort on it. It's best if it's a machine for which a free port of - Mach is available, though you could do useful work even if it's not. - - If you are not currently running Mach 3.0 with somebody's - single-server, then it is very unlikely you could help, unless you - have a Unix source license. In that case, you could talk to CMU - (write mach@cs.cmu.edu) to find out how to get Mach 3.0 running on - your machine. It is not possible to do development without a Unix - emulator of some kind; just bare Mach 3.0 is not sufficient. I have - neither the time nor knowledge to help someone get a 3.0 - single-server system running. - -o Clue. I don't have enough time to explain operating systems or Unix - to people. You need to have an iron-clad grasp of Unix semantics - (specificaly BSD); it's essential that things be exactly right from - that standpoint. It's not enough that you've programmed Unix - before; you need to understand all the nits. However, you may - disregard my previous comments about a "two question limit". You do - need the ability to intuit to some extent, however. - -o Time. It's not good for me to delegate a task and then have nothing - happen on it. If you have a full-time job where you can't justify - Hurd work as part of your job, you might find that you don't really - have as much time as you thought. Please make sure you really have - enough time before volunteering for a task. - -o Efficient net access. Without a real Internet connection (mail only - is not sufficient), it will be impossible for you to do development - right now. - - -If you think you can help, send me email. If you don't think you can -help right now, then don't give up: the list of conditions will change -as the list of delegatable tasks changes. - diff --git a/hurd/history/hurd-flash b/hurd/history/hurd-flash deleted file mode 100644 index d1bacc79..00000000 --- a/hurd/history/hurd-flash +++ /dev/null @@ -1,22 +0,0 @@ -Path: gnurd!usenet.ee.pdx.edu!cs.uoregon.edu!sgiblab!swrinde!gatech!europa.eng.gtefsd.com!MathWorks.Com!news.kei.com!bloom-beacon.mit.edu!ai-lab!life.ai.mit.edu!mib -From: mib@churchy.gnu.ai.mit.edu (Michael I Bushnell) -Newsgroups: gnu.misc.discuss,comp.os.mach -Subject: Hurd now bootstraps -Date: 05 Apr 1994 21:49:50 GMT -Organization: Free Software Foundation, Cambridge, MA -Lines: 11 -Message-ID: <MIB.94Apr5174952@churchy.gnu.ai.mit.edu> -NNTP-Posting-Host: churchy.gnu.ai.mit.edu - - -The GNU Hurd now bootstraps, successfully starting the core servers -(the filesystem, exec server, process server, auth server, and init) -and running the first program. A snapshot of the code that did this -is on alpha.gnu.ai.mit.edu in the usual place, /gnu/hurd-snap.tar.gz. - --- -+1 617 623 3248 (H) | The soul of Jonathan was bound to the soul of David, -+1 617 253 8568 (W) -+- and Jonathan loved him as his own soul. -1105 Broadway | Then Jonathan made a covenant with David -Somerville, MA 02144 | because he loved him as his own soul. - diff --git a/hurd/history/hurd-flash10 b/hurd/history/hurd-flash10 deleted file mode 100644 index d6d5685b..00000000 --- a/hurd/history/hurd-flash10 +++ /dev/null @@ -1,25 +0,0 @@ -Date: Mon, 15 Apr 1996 15:28:29 -0400 -Message-Id: <199604151928.PAA00636@geech.gnu.ai.mit.edu> -From: mib@gnu.ai.mit.edu (Michael I. Bushnell, p/BSG) -To: hurd-ann@gnu.ai.mit.edu -Subject: New Hurd snapshot available -X-Geek-Code: (V2.1) GCS/J/M/MU/P/S/O>AT d- H-- s-: g+++ p0 !au a- w++ v+++(*) C+ -+$ UB++++$ P--- L 3- E++ N++ K++++ W-- M- V-- po-- Y+(--) t++ 5+ j++ R- G'''' tv -+ b+++ !D B-- e+ u++(*) h* f? r n y++ -X-Tom-Swiftie: "Use the `&' operator to get the address," Tom pointed out. -Sender: owner-abshurd@cs.pdx.edu -Precedence: bulk - - -I have just cut a new source snapshot. If things go nicely, a binary -snapshot may appear soon as well. You can find this snapshot as - -ftp://alpha.gnu.ai.mit.edu/gnu/hurd-snap-960415.tar.gz - -Many many things work! Emacs built native and just *went*. The -system now works standalone; you can use gdb (it's much nicer than -other mach-ish gdb's, of course); the network is functional (complete -with NFS), etc. - -Michael - diff --git a/hurd/history/hurd-flash11 b/hurd/history/hurd-flash11 deleted file mode 100644 index 57851b01..00000000 --- a/hurd/history/hurd-flash11 +++ /dev/null @@ -1,25 +0,0 @@ -From: Miles Bader <miles@gnu.ai.mit.edu> -To: hurd-ann@gnu.ai.mit.edu -Date: Thu, 18 Apr 1996 19:08:07 -0400 -Subject: hurd binary image - - -A filesystem image from a working hurd system, corresponding to the latest -snapshot, is available as: - - ftp://alpha.gnu.ai.mit.edu/gnu/hurd-image-960418.tar.gz - -The whole tree takes about 37meg (warning -- it unpacks into `.'). Follow -the instructions in ./INSTALL-binary to make a working hurd system. - -Due to a timely trashing of the disk on our main hurd machine, it has been -verified that it is possible to make a bootable hurd system from scratch -using this image and a set of netbsd 1.1 boot floppies... - -The sources for the mach kernel included in the image are available in the -same directory as mach4-UK22.tar.gz and mach4-i386-UK22.tar.gz. - --Miles --- -Miles Bader / miles@gnu.ai.mit.edu / (617) 253-8568 -Amadera e ike! diff --git a/hurd/history/hurd-flash12 b/hurd/history/hurd-flash12 deleted file mode 100644 index 5be9c94e..00000000 --- a/hurd/history/hurd-flash12 +++ /dev/null @@ -1,76 +0,0 @@ -From: mib@gnu.ai.mit.edu (Michael I. Bushnell, p/BSG) -Newsgroups: gnu.misc.discuss -Subject: Hurd 0.0 release status -Followup-To: gnu.misc.discuss -Date: 13 Jul 1996 23:53:41 GMT -Organization: Touring Consulting Services -Lines: 35 -Message-ID: <MIB.96Jul13195341@gnu.ai.mit.edu> -NNTP-Posting-Host: churchy.gnu.ai.mit.edu - - -People are eager to know how close we are to release, so here's an -update: - -There is one rather annoying bug I'd like to find which is causing -random crashes. I expect this will not be too hard to locate. There -are some more trivial bugs, but the release will not be held up for -them. - -Forty-three packages of GNU software have been built native. -Remaining to be built are three packages for which new releases are -expected soon. - -Also remaining to be built native are bash, gdb, mach, the Hurd -itself, and the internet utilities and daemons. We intend to sync our -separate copy of libc source with the libc maintainer, and then build -it native too. - -Because of obnoxious export restrictions, we have still to make -separate shared libraries for the crypt functions. - -Except for the actual final packaging, all the release engineering -tasks to be done have been completed. - - -To summarize, we still need to: - -o Fix one obnoxious bug -o Compile three packages that are waiting for release; -o Compile gdb, bash, mach, and hurd native -o Sync libc source and compile native -o Deal with crypt shared libraries -o Final packaging - -Michael - -From: mib@gnu.ai.mit.edu (Michael I. Bushnell, p/BSG) -Newsgroups: gnu.misc.discuss -Subject: Re: Hurd--ne plus ultra of vaporware? -Date: 17 Jul 1996 03:02:14 GMT - -In article <4sg6tp$n4t@linux.cs.Helsinki.FI> torvalds@linux.cs.Helsinki.FI (Linus Torvalds) writes: - - Hey! We could also ask some well-known rock-group for one of their - lyrics, and use that as the theme song for the Hurd release. And then - we could ask shops to stay open longer to sell the Hurd! Whaddaya think? - Don't say it has been delayed, just shout so loudly about all the new - features that nobody cares about the delay? - -Perhaps we could get Morrisey to sing the song. He's very good -looking. Much better looking than that Mick Jagger fellow. - -Or something delicate, like Bach's French Suite in G. That would be -fun. - -In any case, here's the state of the release: - -o Everything but nine packages has been compiled native. -o The random crash bug I alluded to is fixed. -o We have to build a floppy image for part of the installation instructions. - -That's it. I bet you nobody in Redmond has ever made a statement like -that... - -Michael - diff --git a/hurd/history/hurd-flash13 b/hurd/history/hurd-flash13 deleted file mode 100644 index a2de6bfd..00000000 --- a/hurd/history/hurd-flash13 +++ /dev/null @@ -1,120 +0,0 @@ -Date: Mon, 5 Aug 1996 22:36:31 -0400 -From: thomas@gnu.ai.mit.edu (Thomas Bushnell, n/BSG) -To: info-gnu@prep.ai.mit.edu, hurd-ann@gnu.ai.mit.edu, hurd-dev@gnu.ai.mit.edu -Subject: Hurd 0.0 and GNU 0.0 released -X-Name-Change: My name used to be `Michael'; now it is `Thomas'. -X-Tom-Swiftie: "I guess I shouldn't have broken the mirror," Tom reflected. - - - - -I am pleased to announce version 0.0 of the GNU Hurd, available via -anonymous FTP from prep.ai.mit.edu [18.159.0.42] in the file -/pub/gnu/hurd-0.0.tar.gz (about 1.2 MB compressed). - -This file contains complete source code for the following: - -Hurd servers: - - auth, crash, devio, devport, exec, ext2fs, fifo, fwd, ifsock, init, - magic, new-fifo, nfs, null, pfinet, pflocal, proc, symlink, term, - ufs. - -Hurd libraries: - - diskfs, fshelp, ihash, iohelp, netfs, pager, pipe, ports, ps, - shouldbeinlibc, store, threads, trivfs. - -Hurd utilities and other programs: - - boot, shd, ps, settrans, showtrans, sync, su, mount, fsysopts, - storeinfo, login, w, uptime, hurdids, loginpr, sush, vmstat, - portinfo, devprobe, reboot, halt, fsck, fsck.ufs, mkfs.ufs, clri.ufs, - stati.ufs, getty, rc. - - ------- - - -In addition, we have prepared a binary distribution of a complete -version 0.0 GNU system corresponding to this Hurd release. This -release runs only on PC-AT compatible systems with i[345]86 -processors. - -The GNU Hurd, plus Mach, is a kernel, not an operating system. The -GNU operating system, like the Unix operating system, consists of many -components, including kernel, libraries, compilers, assembler, shell, -parser generators, utilities, window system, editors, text formatters, -and so on. The GNU project set out a decade ago to develop this -system, and we've been writing various components of it ever since. - -This release uses the `UK22' version of the Mach kernel, as -distributed by the University of Utah. It is too difficult to prepare -a detailed list of supported devices at this point. Common disk -controllers and ethernet cards are generally supported. - -This release does not contain the X Window System. - -This release may be fetched by anonymous FTP from prep.ai.mit.edu -[18.159.42] in the directory /pub/gnu/gnu-0.0/. - -In that directory, you should find the following files: - - README - SOURCES - INSTALL-binary - grub-boot.image (about 1.4 MB, not compressed) - gnu-0.0.tar.gz (about 56.9 MB compressed) - gnu-0.0-stripped.tar.gz (about 26.2 MB compressed) - -SOURCES contains a complete list describing the sources for the -binaries found in the image. INSTALL-binary contains complete -installation instructions for this release. - -(The files README, SOURCES, and INSTALL-binary are also found in the -root directory of the gnu-0.0 release.) - -gnu-0.0.tar.gz holds the image of the complete system. It unpacks -into a directory that requires approximately 233 MB of disk space. - -gnu-0.0-stripped.tar.gz holds the same contents as gnu-0.0, except -that executable programs have been stripped to save space, and the -libraries have had debugging symbols stripped to save space and speed -linking. It unpacks into a directory that requires about 85.5 MB of -disk space. - -We recommend using the unstripped image, or you will be unable to -debug anything. Surely there are bugs. So fetch the unstripped -image, at least to have around. - -grub-boot.image is an image of a 3.5" floppy disk that you will need -in order to complete part of the installation instructions. - -The following free software packages are found in this release: - - autoconf, automake, bash, bc, binutils, bison, cpio, cvs, diffutils, - doschk, e2fsprogs, ed, emacs, fileutils, findutils, flex, from, gawk, - gcal, gcc, gdb, gdbm, gettext, glibc, gmp, gperf, grep, grub, gzip, - hello, hurd, indent, inetutils, less, mach, make, m4, miscfiles, - ncurses, nethack, nvi, patch, ptx, rcs, readline, recode, sed, - serverboot, sharutils, shellutils, tar, termcap, termutils, texinfo, - textutils, time, wdiff. - - ------- - - -Here are md5sum checksums for the files mentioned in this message: - -b5f888bab3eb193fe97a00a141324c9d INSTALL-binary -345dcd826747d7b11fc78f4db162d75b README -1a5744bb4ed3448045fa6d24153d65fe SOURCES -f7b1bc428bc4ee29977a5b28f5762092 gnu-0.0-stripped.tar.gz -24554c58e5c89f295176e17d21dbae8e gnu-0.0.tar.gz -8338c619d860b71bc4128c9c0fd39d63 grub-boot.image -1fd18ccc4c81d051b83d28b13dc07ee2 hurd-0.0.tar.gz - ------ - -Br. Thomas Bushnell, n/BSG - diff --git a/hurd/history/hurd-flash14 b/hurd/history/hurd-flash14 deleted file mode 100644 index 2d67687a..00000000 --- a/hurd/history/hurd-flash14 +++ /dev/null @@ -1,62 +0,0 @@ -I am pleased to announce version 0.2 of the GNU Hurd, available via -anonymous FTP from prep.ai.mit.edu [18.159.0.42] in the file -/pub/gnu/hurd-0.2.tar.gz (about 1.37 MB compressed). - -(The GNU Hurd, plus Mach, is a kernel, not an operating system. The -GNU operating system, like the Unix operating system, consists of many -components, including kernel, libraries, compilers, assembler, shell, -parser generators, utilities, window system, editors, text formatters, -and so on. The GNU project set out a decade ago to develop this -system, and we've been writing various components of it ever since.) - -This release contains many bug fixes from version 0.1. Many thanks to -all the people who are helping find bugs! - -The best way you can help find bugs is to try and compile and use on -the Hurd as many programs as you can find and find out where bugs -still exist. There are also unimplemented features, and your reports -will help us to prioritize which things we work on. - -The system is vastly more reliable than it has been in the past. - -One important addition: - - New programs addauth, rmauth, unsu, su, and setauth modify the uid - sets of running programs. Using addauth you can add root to your - emacs, write a file, and then use rmauth to take the uid back. (Of - course, passwords are required when necessary.) New program `ids' - will tell you what all the user ids are that a program has. Note - that in the Hurd a program can have several user ids all at once, - just like Unix supports having several group ids. Now that you can - dynamically change the ids of running programs, system - administration (among other things) becomes much easier. - -For more detailed news, see the NEWS file in the distribution. - -This release contains complete source code for the following: - -Hurd servers: - - auth, crash, devport, exec, ext2fs, fifo, fwd, ifsock, init, - magic, new-fifo, nfs, null, pfinet, pflocal, proc, symlink, term, - ufs, storeio, firmlink. - -Hurd libraries: - - diskfs, fshelp, ihash, iohelp, netfs, pager, pipe, ports, ps, - shouldbeinlibc, store, threads, trivfs, hurdbugaddr, ftpconn - -Hurd utilities and other programs: - - boot, shd, ps, settrans, showtrans, sync, su, mount, fsysopts, - storeinfo, login, w, uptime, ids, sush, vmstat, portinfo, devprobe, - reboot, halt, fsck, fsck.ufs, mkfs.ufs, clri.ufs, stati.ufs, getty, - rc, e2os, vminfo, nfsd, mail.local, serverboot, MAKEDEV, loginpr, - addauth, rmauth, unsu, setauth, ftpcp, ftpdir. - -We are also making a complete GNU 0.2 binary release, which will -include Hurd 0.2, glibc 2.0.4, gnumach 1.1.2, and many other -programs. This binary release is announced separately. - - -Thomas Bushnell, n/BSG diff --git a/hurd/history/hurd-flash15 b/hurd/history/hurd-flash15 deleted file mode 100644 index 0785ac59..00000000 --- a/hurd/history/hurd-flash15 +++ /dev/null @@ -1,60 +0,0 @@ - -I am pleased to announce version 0.2 of the complete Hurd based GNU -system. This release runs only on PC-AT compatible systems with -i[3456]86 processors. - -The GNU Hurd, plus Mach, is a kernel, not an operating system. The -GNU operating system, like the Unix operating system, consists of many -components, including kernel, libraries, compilers, assembler, shell, -parser generators, utilities, window system, editors, text formatters, -and so on. The GNU project set out a decade ago to develop this -system, and we've been writing various components of it ever since. - -This release uses the GNUmach distribution of the Mach kernel, version -1.1.3. Popular PC devices are generally supported. - -This release does not contain the X Window System. - -This release may be fetched from the directory -ftp://prep.ai.mit.edu/pub/gnu/gnu-0.2. (prep.ai.mit.edu is 18.159.42, -for the nameserver-impaired). - -In that directory, you should find the following files: - -README -SOURCES -INSTALL-binary -grub-boot.image (about 1.5 MB, not compressed) -gnu-0.2.tar.gz (about 73 MB compressed) - -SOURCES contains a complete list describing the sources for the -binaries found in the image. INSTALL-binary contains complete -installation instructions for this release. - -(The files README, SOURCES, and INSTALL-binary are also found in the -root directory of the gnu-0.2 release.) - -gnu-0.2.tar.gz holds the image of the complete system. It unpacks -into a directory that requires approximately 285 MB of disk space. - -grub-boot.image is an image of a 3.5" floppy disk that you will need -in order to complete part of the installation instructions. - -The following free software packages are included in this release: - -autoconf automake bash bc binutils bison cpio cvs diffutils doschk -e2fsprogs ed emacs emacs lisp manual fileutils findutils flex from g77 -gawk gcal gcc gdb gettext glibc gmp gnuchess gnumach gnugo grep grub -gzip hello hurd indent inetutils less libg++ lynx m4 make miscfiles -ncurses nethack nvi patch perl ptx readline rcs recode sed sendmail -sh-utils sharutils tar termutils texinfo textutils time wdiff - --- - -Here are md5sum checksums for the files mentioned in this message: - -3749b016ab581e007b90d17b9092e134 INSTALL-binary -1f800c326ba4c3a0b3f3a3463597317b README -40d1e1a38dd86f28fe2718081ac865cb SOURCES -f29c1a03c1667a8019b66f6effa89d39 gnu-0.2.tar.gz -8ad3c7254802a16068a956e836266212 grub-boot.image diff --git a/hurd/history/hurd-flash2 b/hurd/history/hurd-flash2 deleted file mode 100644 index b1d4f66f..00000000 --- a/hurd/history/hurd-flash2 +++ /dev/null @@ -1,152 +0,0 @@ -From: mib@churchy.gnu.ai.mit.edu (Michael I Bushnell) -Newsgroups: gnu.misc.discuss,comp.os.mach,comp.os.linux.development,comp.os.linux.misc,comp.unix.pc-clone.32bit -Subject: GNU Hurd Task List and Call for Volunteers -Followup-To: gnu.misc.discuss -Date: 18 May 1994 17:54:47 GMT -Organization: FOO -Lines: 140 -Message-ID: <MIB.94May18135447@churchy.gnu.ai.mit.edu> -NNTP-Posting-Host: churchy.gnu.ai.mit.edu -Xref: usenet.ee.pdx.edu gnu.misc.discuss:7630 comp.os.mach:1434 comp.os.linux.d -evelopment:9867 comp.os.linux.misc:16767 comp.unix.pc-clone.32bit:5854 - - -Now that the Hurd can run (albeit haltingly) on its own, it is -possible for people who do not have Mach 3.0 single-servers to -contribute without much trouble. (However, if you don't have a -single-server, you probably won't be able to use a debugger, but that -doesn't mean you can't do debugging, right?) - -We at the FSF don't have any expertise in setting up Mach 3.0 -machines; the machines that we do development on belong to the Open -Software Foundation and were set up by them. So one of the things on -the task list is to organize things so that people (like us and most -of you) who don't know how to do it can do it. It's not impossible to -figure out, it's just a pain and a marvelous thing for a volunteer to -do. - -You can get Mach 3.0 from CMU; you get the C library and the Hurd from -us. You need the soon-to-be-released version 1.07.6 of the C library -and the latest Hurd snapshot (as well as our special version of MiG) -from alpha.gnu.ai.mit.edu. - -All our work is based upon i386. The Hurd (except for a few programs; -see the Hurd README file) is machine independent. The C library -should not be too much trouble to port. Ports and information about -porting difficulty for either of these are greatly desired. - -The Hurd is not yet self-hosting. While you are welcome to fetch the -code and put things together, it is not likely that you will have a -useful system right now. But you might be able to do significant work -(see the task list below). And, even if you can't do significant -work, I'm interested in hearing about any places where you had -particular difficulty. - -If you want to start on one of these tasks, please let me know so I -can keep track of volunteers properly. This task list will be updated -periodically; gnu@prep.ai.mit.edu always has the latest version. - - -mib - -GNU Hurd Task List Version 1.0. - -If you would like to work on one of these, please contact mib@gnu.ai.mit.edu. - - -Mach 3.0 Work - - o Mach 3.0 comes with CMU makefiles that depend on a drecky environment. - It would be very helpful to have makefiles and installation stuff so - that it worked well for cross-compilation between systems and used - GNU tools. - - o MiG needs to be made able to support cross-compilation. - - o A replacement for MiG that understood C .h files. - - o Bootstrap tools and documentation to help people set up Mach 3.0 - machines if they already have Linux; if they already have Net BSD; - if they don't have anything. - - o Mach 3.0 needs to provide support for task virtual timers similar - in functionality to the Unix ITIMER_PROF and ITIMER_VIRTUAL timers. - - o Mach 3.0 needs to provide a way for users to do statistical PC - profiling similar to the Unix profil system call. - - o Mach 3.0 needs a facility to automatically send task and thread - status on task/thread exit to a port that can only be changed by - a privileged user; this would be used to implement process - accounting. - - o Mach 3.0 needs a facility to find out what task is the parent of - a given task. - - o Mach 3.0 needs a facility to find out which pages of a task's - address space are in core to implement Unix's mincore call. - - o Mach 3.0 needs a facility to do msync. - - o Mach 3.0 needs a replacement for MEMORY_OBJECT_COPY_CALL that - works at least for the cases needed in ordinary files. (Write mib if - you want to know what the problem is and some ideas about how to - solve it.) - - o Mach 3.0 needs proxy memory objects. (mib can tell you what these - are and why they are important.) - - o Mach 3.0 needs a way to do per-task resource counters that are - accessible to servers called by the task. - - o Mach 3.0 needs facilities to implement resource limits of various sorts. - - o Mach 3.0 needs a way to have a thread's CPU time statistics - include time spent by servers on its behalf. - - o Of course, free ports are always necessary to machines that don't - already have free ports. - - o Much work can be done doing research in how to improve Mach VM - performance and timesharing scheduling policy. - - -Hurd work (these are brief descriptions; mib can give more information): - - o We need a translator for /dev. - - o We need a replacement for utmp and wtmp that understands the - Hurd `login collection' concept. Programs like who and finger - then need to be changed to use this. - - o We need some existing shell programs changed to do Hurd things: - like ls, su, fsck, tar, cpio, etc. - - o Some new programs need to be written: login, getty, ps, tools - for new filesystem features. - - o Shadow directory translators. (Roland has the beginnings of this.) - - o A system for write, send, talkd and so forth to bleep users; - this should be integrated with the utmp replacement above. - - o X. - - o A filesystem for /tmp that uses virtual memory instead of disk. - - o Filesystem implementations (using libdiskfs) for other popular - formats, especially the Linux formats as well as MSDOG. - - o Transparent FTP translator. - - o NFS client implementation. You should start with BSD's 4.4 code - and support the extensions they support; don't worry about Hurd - extensions right now. (The server we want to write ourselves - because it will probably involve changing the Hurd interfaces.) - - o A fancy terminal driver that uses readline and supports detach/attach. - --- -+1 617 623 3248 (H) | The soul of Jonathan was bound to the soul of David, -+1 617 253 8568 (W) -+- and Jonathan loved him as his own soul. -1105 Broadway | Then Jonathan made a covenant with David -Somerville, MA 02144 | because he loved him as his own soul. diff --git a/hurd/history/hurd-flash3 b/hurd/history/hurd-flash3 deleted file mode 100644 index 19a5f371..00000000 --- a/hurd/history/hurd-flash3 +++ /dev/null @@ -1,77 +0,0 @@ -Date: Tue, 05 Jul 1994 20:15:09 -0400 -From: mib@gnu.ai.mit.edu (Michael I Bushnell) -To: hurd-ann@gnu.ai.mit.edu -Subject: New Hurd snapshot - - -A new Hurd snapshot has been released. You can get it from -alpha.gnu.ai.mit.edu in the file /gnu/hurd-snap.tar.gz. You will need -the most recent version of the GNU C library; version 1.08.3 or later. -(Version 1.08.3 is an alpha release; you can get it from -alpha.gnu.ai.mit.edu in the same directory.) - -This snapshot of the Hurd has a limping terminal driver. It can run -emacs, bash, a whole slew of utilities, and (most importantly) GNU -Hello. - - -mib - - -Here is the new part of the NEWS file: - -The Hurd now runs all the programs in the GNU fileutils, textutils, -and shellutils distributions, with the exception of who. Most -importantly it runs GNU Hello. Also, emacs works (with the kludgy -`boot' terminal driver) and bash works. - -The simple pipes server works; it will be replaced eventually by the -pflocal server (which isn't done yet). The terminal driver is limping -but working. It doesn't support terminal ioctls yet. A minor bug in -auth has been fixed. boot interprets more Hurd protocols; this was -done to get emacs functioning. Some more-or-less serious bugs in exec -were fixed; they were found by running emacs (a quite large executable -indeed). At bootstrap time, init starts pipes and term itself; -eventually these will be passive translators, but we don't want to -write the new disk format until we're self-hosting or fsck and UX will -get confused. The file proc/primes.c has been documented; thanks go -to Jim Blandy. Some bugs in proc dealing with pgrp and wait were -fixed; a nasty hash table bug was also fixed. The simple shell can do -pipes. Several serious bugs in ufs were fixed dealing with extension -of large files and writes of data not aligned on block boundaries. -The ufs pager was over-serialized; that's been fixed. Directory -lookups and modifications now use mapped I/O directly; this is an -important speed-up. The structure of the pager lockes has been -changed significantly. UFS now supports Mach copying mode -MEMORY_OBJECT_COPY_DELAY; this significantly improves process startup -time. - -Some minor changes have been made to several interfaces. The -interface for fs.defs:dir_readdir has been totally changed. There are -some new fs.defs interfaces: file_check_access, file_notice_changes, -dir_notice_changes. The fsys.defs:fsys_getroot interface was changed -to work correctly. process.defs:proc_setprocargs is renamed, and a -fetch function proc_get_arg_locations is added. The ifsock.defs -interface was simplified. - -Several bugs were fixed in libdiskfs. The new dir_readdir interface -requires new support from format-specific code. Some race conditions -have been fixed. dir-pathtrans.c now deals correctly with multiple -slashes in a row. A new concept called "light references" allows -pagers to remain active without preventing truncate-on-nolinks from -working right. New interfaces in fs.defs are implemented (except -file_notice_changes). Active translator usage has been fixed to work -correctly, but passive translators are still untested. libdiskfs now -thinks it supports S_IFSOCK nodes, but that's untested (of course) -because pflocal isn't done yet. - -The passive translator startup interface in libfshelp has been -radically simplified. The pager library now lets other code set and -changee the attributes on objects, synchronously if desired. An -init/terminate race condition was fixed. The ports library now -allows single-threaded users to work right (they didn't before). The -trivfs library works; see the ifsock server for a simple example of -its use. See term or pipes for more complex examples. - -There is a task list in the file `tasks'; let me know if you are -interested in working on one of these. - diff --git a/hurd/history/hurd-flash4 b/hurd/history/hurd-flash4 deleted file mode 100644 index 89ae9848..00000000 --- a/hurd/history/hurd-flash4 +++ /dev/null @@ -1,101 +0,0 @@ -From: mib@gnu.ai.mit.edu (Michael I Bushnell) -To: hurd-ann@gnu.ai.mit.edu -Date: Mon, 8 Aug 94 16:01:23 -0400 -Subject: New Hurd Snapshot -X-Shopping-List: - (1) Starboard sauce (2) Cinematic lesions (3) Two-way alphabetic - accordions - - -A new Hurd snapshot has been placed on alpha.gnu.ai.mit.edu in -/pub/gnu/hurd-snap.tar.gz. - -It is expected that the next snapshot after this one will have signals -basically working and thus be usable for a self-hosting system. In -addition, the next snapshot will probably have the current state of -our networking code (which has been proceeding, but has been absent -from the snapshots). - -Here is the NEWS about this current snapshot, however. Because some -big changes were made to the makefile and directory structure, things -might have gotten inadvertently ommitted from the snapshot. If this -happened, please let me know ASAP and I'll fix it and make a new -snapshot. - - -mib - - -August 8, 1994: - -Structural changes: - -Makefiles have been vastly improved and are simpler. The programs -`su', `ps', and `sh' have been moved from separate dirs into `utils'; -the programs `symlink' and `ifsock' have been moved into `trans'. - -Several changes were made to GCC use. You should definitely get GCC -version 2.6.0 now. Version 2.6.1 will have distributed the proper -`specs' file for the i386-gnu target, but it isn't quite ready yet, so -you still have to copy hurd/gcc-specs into -gcc-lib/i386-gnu/2.6.0/specs. - - -Interface changes: - -The tioctl.defs suite is complete now. - -INTR RPC's have been changed; individual RPC's are no longer marked -INTR. Rather, entire interfaces are marked `INTR_INTERFACE' if they -conform to the library's signalling/interruption expectations. - -There is a new magical retry type (for dir_pathtrans and fsys_getroot) -called `machtype' and a new one `/'; the former is for @sys tweaks and -the latter cleans up the retry of root-based symlinks a bit. - -There is a new interface `login.defs'. - -The "dotdot node" is no longer passed at fsys_startup time; instead, -it is passed by fsys_getroot. - - -Library changes: - -The ports library now does death-timeouts for multi-threaded servers; -it doesn't actually work right yet, however. Also the ports library -has new features (soft vs. hard ports; no outstanding ports -notifications) that enable server-death to be done cleanly. (I hope; -libdiskfs and ufs haven't yet been changed to use it, so libports -might not actually have the right facilities yet.) - -The translator startup routines in libfshelp have been vastly improved -(so that they can actually be used). - -Numerous bugfixes in libdiskfs, particularly relating to translator -usage. Use new magical retry type `/' when appropriate. Use new -dotdot node protocol. O_FSYNC and O_NOATIME are now honored properly. -Alternative methods of storing symlinks are now supported through new -hooks. - -The new dotdot protocol is now used by libtrivfs. Also, users of the -library are now able to set the atime and mtime when necessary. - -The special threads version of malloc has been placed back in -libthreads now that the C library uses a Mach-safe version on its own. - - -Program changes: - -The `boot' program no longer implements the tioctl interface now that -the terminal driver works. - -A bug was fixed in the handling of pgrps in `proc'. - -Many bugfixes in term. The tioctl interface is now implemented. EOF -processing is fixed; break characters now work right. Signals and -interruption are now done correctly. VDISCARD works. - -Ufs has Some bigs fixed in dir.c. Filesystem upgraded to BSD 4.4. -There are now some compatibility flags. - -New program dev.trim does a very minimal /dev (but doesn't work yet). -New program dev is an initial (but poor) attempt at a real /dev. diff --git a/hurd/history/hurd-flash5 b/hurd/history/hurd-flash5 deleted file mode 100644 index 041a0ef7..00000000 --- a/hurd/history/hurd-flash5 +++ /dev/null @@ -1,23 +0,0 @@ -From: mib@gnu.ai.mit.edu (Michael I Bushnell) -Message-Id: <9409210619.AA17570@churchy.gnu.ai.mit.edu> -To: "Lots of potentially interested people and" <nobody@gnu.ai.mit.edu> -Subject: New milestone acheived by the GNU Hurd -X-Tom-Swiftie: "I can't get this fire started," Tom said woodenly. - - -I have just successfully compiled and run a null C program on the -Hurd. This is using GCC native as one would normally use GCC. - -Sadly, it took quite a while (too long, in fact) to read the large -archives that make up the GNU C library, but I think I know where the -substantial inefficiency is. - -Once that is done, I would be happy to label this a "self-hosting -system". But not just yet. - -The last bug preventing this was an error in dealing with files over -about 8 M; this came about because in order to link a program one -needed the GNU C library, which is over 9M when symbols are included. - - -mib - diff --git a/hurd/history/hurd-flash6 b/hurd/history/hurd-flash6 deleted file mode 100644 index e774714e..00000000 --- a/hurd/history/hurd-flash6 +++ /dev/null @@ -1,46 +0,0 @@ -Return-Path: <pdxgate.cs.pdx.edu!gnu.ai.mit.edu!mib> -Received: from pdxgate.cs.pdx.edu by gnurd with uucp - (Linux Smail3.1.28.1 #14) id m0r66pm-00010fC; Fri, 11 Nov 94 17:00 PST -Received: from cs.pdx.edu by pdxgate.cs.pdx.edu (4.1/CATastrophe-9/19/94-U) - id AA05257; Fri, 11 Nov 94 16:40:48 PST -Received: from churchy.gnu.ai.mit.edu by cs.pdx.edu (4.1/CATastrophe-9/19/94-P) - id AA02600; Fri, 11 Nov 94 16:40:22 PST -Received: by churchy.gnu.ai.mit.edu (5.65/4.0) - id <AA12621@churchy.gnu.ai.mit.edu>; Fri, 11 Nov 94 16:45:35 -0500 -Received: by churchy.gnu.ai.mit.edu (5.65/4.0) - id <AA12580@churchy.gnu.ai.mit.edu>; Fri, 11 Nov 94 16:38:44 -0500 -Date: Fri, 11 Nov 94 16:38:44 -0500 -From: mib@gnu.ai.mit.edu (Michael I Bushnell) -Message-Id: <9411112138.AA12580@churchy.gnu.ai.mit.edu> -To: hurd-ann@gnu.ai.mit.edu, hurd-dev@gnu.ai.mit.edu, info-gnu@prep.ai.mit.edu -Subject: New Hurd Snapshot -X-Shopping-List: - (1) Horrendous collision devotions (2) Wondrous consolation (3) - Conscious cooking auctions -X-Filter: mailagent [version 3.0 PL19] for trent@gnurd.uu.pdx.edu - - -A new Hurd snapshot has been placed on alpha.gnu.ai.mit.edu. There -may be unforseen problems with this snapshot, so the old one has been -left. You may fetch this snapshot via anonymous FTP in the file -/gnu/hurd-snap.tar.gz. - -The Hurd requires a modified version of MiG; you can get it by -anonymous ftp to kahlua.cs.utah.edu in /pub/mach/mach4-UK02p6.tar.gz. -Note that we are not yet using Mach4 for the Hurd, but we plan to -switch as soon as its feasible. - -Other necessary software to run this snapshot include the latest -snapshot of binutils/ld/gas source from Cygnus and the latest GCC. -(Problems have been reported with GCC 2.6.1; you might want to wait -until 2.6.2 is released.) And, of course, you also need the latest -test version of the GNU C Library, found on alpha.gnu.ai.mit.edu. - -This is not yet a real release; it is certainly not up to the quality -of even a hesitant alpha release. But it may be useful for -educational value or to help with the Hurd effort. - -I will be out of town for most of the rest of the year; I will be -reading email but I may not be able to help with problems. Sorry... - - -mib diff --git a/hurd/history/hurd-flash7 b/hurd/history/hurd-flash7 deleted file mode 100644 index ce6e08d2..00000000 --- a/hurd/history/hurd-flash7 +++ /dev/null @@ -1,17 +0,0 @@ -Date: Wed, 12 Apr 1995 15:08:18 -0400 -From: Michael I Bushnell <mib@gnu.ai.mit.edu> -To: hurd-ann@duality.gnu.ai.mit.edu -Subject: New Hurd Snapshot available - -A new hurd snapshot is now available from -ftp://alpha.gnu.ai.mit.edu/gnu/hurd-snap.tar.gz. - -This snapshot contains many improvements over the last one, and is -also probably easier to compile. - -This snapshot must be used with the most recent libc snapshot, -ftp://alpha.gnu.ai.mit.edu/gnu/libc-950411.tar.gz. Previous versions -of the library will not work right. - -If any files are discovered to be missing, please let me know asap. - diff --git a/hurd/history/hurd-flash8 b/hurd/history/hurd-flash8 deleted file mode 100644 index 555186ec..00000000 --- a/hurd/history/hurd-flash8 +++ /dev/null @@ -1,73 +0,0 @@ -Date: Sun, 23 Jul 1995 16:27:46 -0400 -Message-Id: <199507232027.QAA09306@geech.gnu.ai.mit.edu> -From: Michael I Bushnell <mib@gnu.ai.mit.edu> -To: hurd-ann@gnu.ai.mit.edu -Subject: Hurd snapshot! -X-Geek-Code: (V2.1) GCS/J/M/MU/P/S/O>AT d- H-- s-: g+++ p0 !au a- w++ v+++(*) C+ -+$ UB++++$ P--- L 3- E++ N++ K++++ W-- M- V-- po-- Y+(--) t++ 5+ j++ R- G'''' tv -+ b+++ !D B-- e+ u++(*) h* f? r n y++ -X-Zippy-Says: I just had a NOSE JOB!! -Sender: owner-abshurd@cs.pdx.edu -Precedence: bulk - - -I have just put a new Hurd snapshot on alpha.gnu.ai.mit.edu in -/gnu/hurd-snap-950723.tar.gz. - -You will also need the new libc snapshot, which should appear in the -same place today. Older libc snapshots will not be happy. - -The binary images (hurd-floppy.fs.gz and hurd-image.tar.gz) have not -been updated. It is difficult to use the Hurd standalon, because the -Mach boot loaders can now no longer boot the Hurd. A new boot loader -is nearly finished. Perhaps we can make new binary images then, or a -volunteer might take over this useful work. (Hint, hint.) - -Michael - - - -Here is the NEWS: - -July 23, 1995 - -Shared libraries now work; use -static to link programs and avoid the -shared libraries. The Hurd programs are normally built static; this -will probably change soon. - -The ext2fs server now works, as do the tools to manipulate ext2fs -filesystems. A snapshot of the tools will be made soon under separate -cover. Many thanks to Ted Ts'o for his valuable work on the tools. - -Readers of the Makefiles will notice that we now generate dependencies -automatically. - -The old netserv library is gone. - -The `boot' hack has been modified slightly to avoid the normalq libc startup -files, because they no longer work with UX. - -Some small bugs have been fixed in the devio server. - -The ports library has been totally rewritten; new features permit -servers to have greater control over thread RPC's and port creation. - -The fshelp library now does most of the work for translator -interaction; it's simpler now too. Filesystems have much less work to -do; the relevant code in libdiskfs is now understanble instead of -unparseable chaos. - -The ports library provides for timeouts; the diskfs library almost -uses it, but because of a bug, it's disabled for now. - -Filesystems are now expected to sync themselves if necessary; the new -fsys_set_options RPC provides for changeing (or cancelling) the sync -intervale. The diskfs library does this for you. The update program -is no longer necessary. - -A small bug in the proc server has been hacked around; the real fix -will come later. - -Many important bugs in the C library have been fixed since the last -snapshot; perhaps all of them. ;-) - diff --git a/hurd/history/hurd-flash9 b/hurd/history/hurd-flash9 deleted file mode 100644 index 1ff32ba9..00000000 --- a/hurd/history/hurd-flash9 +++ /dev/null @@ -1,39 +0,0 @@ -Date: Wed, 29 Nov 1995 13:13:23 -0500 -Message-Id: <199511291813.NAA10983@duality.gnu.ai.mit.edu> -From: mib@gnu.ai.mit.edu (Michael I. Bushnell, p/BSG) -To: hurd-ann@gnu.ai.mit.edu (and others) -Subject: Announcement -X-Geek-Code: (V2.1) GCS/J/M/MU/P/S/O>AT d- H-- s-: g+++ p0 !au a- w++ v+++(*) C+ -+$ UB++++$ P--- L 3- E++ N++ K++++ W-- M- V-- po-- Y+(--) t++ 5+ j++ R- G'''' tv -+ b+++ !D B-- e+ u++(*) h* f? r n y++ -X-Windows: The Cutting Edge of Obsolescence. -Sender: owner-abshurd@cs.pdx.edu -Precedence: bulk - - -The Hurd has succesfully completed its first FTP: - -bash# ftp 128.52.46.31 -Connected to 128.52.46.31. -220 albert.gnu.ai.mit.edu FTP server (Version 5.60) ready. -Name (128.52.46.31:root): -331 Password required for root. -Password:230 User root logged in. -ftp> cd ~mib -250 CWD command successful. -ftp> get ftptest -200 PORT command successful. -150 Opening ASCII mode data connection for ftptest (16 bytes). -226 Transfer complete. -17 bytes received in 0.07 secs (0.24 Kbytes/sec) -ftp> quit -221 Goodbye. -bash# cat ftptest -this is a test. -bash# - - -Tre cool. - -Michael - diff --git a/hurd/history/port_to_l4.mdwn b/hurd/history/port_to_l4.mdwn deleted file mode 100644 index ec72def4..00000000 --- a/hurd/history/port_to_l4.mdwn +++ /dev/null @@ -1,102 +0,0 @@ -[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 -Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="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|/fdl]]."]]"""]] - -[[!meta title="Porting the Hurd to L4: Hurd/L4"]] - -There was an effort to port the Hurd from [[microkernel/Mach]] to the -[[L4_microkernel_family|microkernel/L4]]. - -The idea of using L4 as a [[microkernel]] for a [[Hurd_system|hurd]] was -initially voiced in the [[Hurd_community|community]] by Okuji Yoshinori, who, -for discussing this purpose, created the [[mailing lists/l4-hurd]] mailing list -in November 2000. - -The project itself then was mostly lead by Marcus Brinkmann and Neal Walfield. -Even though there was progress -- see, for example, the -[[QEMU_image_for_L4|running/qemu/image_for_l4]] -- this port never reached a -releasable state. Eventually, a straight-forward port of the original Hurd's -design wasn't deemed feasible anymore by the developers, partly due to them not -cosidering L4 suitable for implementing a general-purpose operating system on -top of it, and because of deficiencies in the original Hurd's design, which -they discovered along their way. Read the [[critique]] and a -[[ng/position_paper]]. - -By now, the development of Hurd/L4 has stopped. However, Neal Walfield moved -on to working on a newly designed kernel called [[microkernel/viengoos]]. - -Over the years, a lot of discussion have been held on the -[[mailing lists/l4-hurd]] mailing list, which today is still the right place -for [[next-generation_Hurd|ng]] discussions. - -Development of Hurd/L4 was done in the `hurd-l4` module of the Hurd CVS -repository. The `doc` directory contains a design document that is worth -reading for anyone who wishes to learn more about Hurd/L4. - - -One goal of porting the Hurd to L4 was to make the Hurd independend of Mach -interfaces, to make it somewhat microkernel-agnostic. - -Mach wasn't maintained by its original authors anymore, so switching to a -well-maintained current [[microkernel]] was expected to yield a more solid -foundation for a Hurd system than the decaying Mach design and implementation -was able to. - -L4 being a second-generation [[microkernel]] was deemed to provide for a faster -system kernel implementation, especially in the time-critical [[IPC]] paths. -Also, as L4 was already implemented for a bunch of different architectures -(IA32, Alpha, MIPS; SMP), and the Hurd itself being rather archtecture-unaware, -it was expected to be able to easily support more platforms than with the -existing system. - -A design upon the lean L4 kernel would finally have moved devices drivers out -of the kernel's [[TCB]]. - - -One idea was to first introduce a Mach-on-L4 emulation layer, to easily get a -usable (though slow) Hurd-using-Mach-interfaces-on-L4 system, and then -gradually move the Hurd servers to use L4 intefaces rather than Mach ones. - - -Neal Walfield started the original Hurd/L4 port while at Karlsruhe in 2002. He -explains: - -> My intention was to adapt the Hurd to exploit L4's concepts and intended -> [[design_pattern]]s; it was not to simply provide a Mach -> [[compatibility_layer]] on top of L4. When I left Karlsruhe, I no longer had -> access to [[microkernel/l4/Pistachio]] as I was unwilling to sign an NDA. -> Although the specification was available, the Karlsruhe group only [released -> their code in May -> 2003](https://lists.ira.uni-karlsruhe.de/pipermail/l4ka/2003-May/000345.html). -> Around this time, Marcus began hacking on Pistachio. He created a relatively -> complete run-time. I didn't really become involved again until the second -> half of 2004, after I complete by Bachelors degree. - -> Before Marcus and I considered [[microkernel/Coyotos]], we had already -> rejected some parts of the Hurd's design. The -> [[open issues/resource management problems]] were -> what prompted me to look at L4. Also, some of the problems with -> [[translator]]s were already well-known to us. (For a more detailed -> description of the problems we have identified, see our [[critique]] in the -> 2007 July's SIGOPS OSR. We have also written a forward-looking -> [[ng/position_paper]].) - -> We visited Jonathan Shapiro at Hopkins in January 2006. This resulted in a -> number of discussions, some quite influential, and not always in a way which -> aligned our position with that of Jonathan's. This was particularly true of -> a number of security issues. - -A lange number of discussion threads can be found in the archives of the -[[mailing lists/l4-hurd]] mailing list. - -> Hurd-NG, as we originally called it, was an attempt to articulate the system -> that we had come to envision in terms of interfaces and description of the -> system's structure. The new name was selected, if I recall correctly, as it -> clearly wasn't the Hurd nor the Hurd based on L4. diff --git a/hurd/libnetfs.mdwn b/hurd/libnetfs.mdwn index fef6a8ef..a2bf47ee 100644 --- a/hurd/libnetfs.mdwn +++ b/hurd/libnetfs.mdwn @@ -148,7 +148,7 @@ result. Therefore, it is not quite right to perceive *libnetfs* nodes as filesystem nodes. Instead, the focus of attention should stay upon light nodes. -##How It Wors: A More Verbose Description +##How It Works: A More Verbose Description At first let us see how the a *libnetfs*-based translator responds to lookup requests. At the beginning the *netfs_attempt_lookup* callback diff --git a/hurd/running.mdwn b/hurd/running.mdwn index 95dc024a..470b5f0b 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -8,6 +8,8 @@ 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|/fdl]]."]]"""]] +There are several different ways to run a GNU/Hurd system: + * [[Distrib]] - Distributions based on the Hurd * [[microkernel/mach/gnumach/ports/Xen]] - In Xen * [[Live_CD]] diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn index 82d84bbe..97d35bd7 100644 --- a/hurd/running/debian.mdwn +++ b/hurd/running/debian.mdwn @@ -1,16 +1,28 @@ [[!meta title="Debian GNU/Hurd"]] -- Debian [[FAQ]] -- Frequently Asked Questions -- [[After_install]] -- Do this to get networking, new console and X -- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) - *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe -- [[Status]] -- [[Porting]] -- Helping with porting packages - * [[Patch_submission]] -- How to submit patches for build failures +### Debian Resources - Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/) + +- Debian [[FAQ]] -- Frequently Asked Questions + +### Installing + - [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install) - [Upgrading K11 or K14 based systems to unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html) -- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386) +- [[After_install]] -- Do this to get networking, new console and X + +### Contributing + +- [[Porting]] -- Helping with porting packages + * [[Patch_submission]] -- How to submit patches for build failures - [[Creating_image_tarball]] + +### Additional Information + +- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) + *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe +- [[Status]] +- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386) + diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn index 0882bea3..aa044570 100644 --- a/hurd/running/debian/porting.mdwn +++ b/hurd/running/debian/porting.mdwn @@ -24,6 +24,9 @@ the list below or in the [Alioth task tracker](http://alioth.debian.org/pm/task.php?group_project_id=34&group_id=30628&func=browse) so other people do not do duplicated work. +Also, the [[community/HurdFr]] guys maintain their own [liste des travaux de +packaging](http://wiki.hurdfr.org/index.php/Liste_des_travaux_de_packaging). + Aside from the Alioth task tracker, here is a list of some packages (the important ones, as they're, e.g., blocking other packages from being built) that need someone to work on them. diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn index bbf0a380..229e2d8f 100644 --- a/hurd/running/distrib.mdwn +++ b/hurd/running/distrib.mdwn @@ -1,8 +1,15 @@ +Working distributions of GNU/Hurd: + * [[Debian]] + +GNU/Hurd distributions in early stages of development: + * [[Gentoo]] -* [[Bee]] * [[GNU]] +<!-- Bee GNU/Hurd doesn't seem to exist anymore. +* [[Bee]] +--> # Issues diff --git a/hurd/running/gentoo.mdwn b/hurd/running/gentoo.mdwn index 89d5d9cf..2a979f41 100644 --- a/hurd/running/gentoo.mdwn +++ b/hurd/running/gentoo.mdwn @@ -3,6 +3,32 @@ Unofficial port to Gentoo and the portage system. It was [announced](http://forums.gentoo.org/viewtopic.php?t=41939&postdays=0&postorder=asc&start=0) March 17, 2003 in the Gentoo forums. There's a #gentoo-irc channel similar to -[[IRC]]. At present (May 2005), there's no activity and Eric Olinger has not -the time to maintain this distri. +[[IRC]]. +### State of the GGH, 2009-05 + +> *Did you work a bit more on the Gentoo GNU/Hurd?* + +I tried to resume my work 3-4 months ago but I found some problems with +portage and python functions not implemented on Hurd so I stopped. I think +that back in 2006 with portage 2.0.54 those functiones weren't necessary. + +> *And do you have some information which might help others advance what you began?* + +I just have all the ebuilds and binary packages I merged online on +[http://www.mundurat.net/ggh/portage](http://www.mundurat.net/ggh/portage). + +To continue my work just take a Debian/Hurd and install portage by hand. + +Once there take the profile and start bootstraping portage and all the +ebuild it needs (patch, python, bzip2...). + +The major problems are: + +- combine the perfect gcc/binutils/glibc/gnumach/hurd and to be able to boot +- lack of development on gnumach/hurd and current 'degraded' status. + +I don't think I can help much right now, but if you have any other +question just write me. + +MiKeL diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 661084d3..a059f3b1 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -4,8 +4,9 @@ This page discusses things for [[Unix]] systems, there is a separate page for # Readily Available Images -[Official Debian GNU/Hurd QEMU -image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz) +To try out the Hurd you can use the image of the Debian GNU/Hurd: + +* [Official Debian GNU/Hurd QEMU image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz) (!) Note that the following are unofficial images: they have been prepared by volunteers and may not have been tested extensively. @@ -15,7 +16,9 @@ volunteers and may not have been tested extensively. * [Disk image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) with a short intro on translators. Just start it with 'qemu *disk_image.img*'. - It should work without any of the configuration below. when you use it, please [tell me your experience with it](http://draketo.de/contact)! - [[community/weblogs/ArneBab]] + It should work without any of the configuration below. If you want to know what you can do + with it, please have a look at [[its_wikipage|hurd/running/qemu/babhurd_image]]. And when + you use it, please [tell me your experience with it](http://draketo.de/contact)! - [[community/weblogs/ArneBab]] <!--* [Announcement](http://lists.debian.org/debian-hurd/2007/09/msg00000.html) of another image. - The link in the email doesn't work anymore, too old. //--> diff --git a/hurd/running/qemu/babhurd_image.mdwn b/hurd/running/qemu/babhurd_image.mdwn new file mode 100644 index 00000000..c0952fcf --- /dev/null +++ b/hurd/running/qemu/babhurd_image.mdwn @@ -0,0 +1,67 @@ +What this little Hurd image can do +---------------------------------- + +### About this text + +This is the README file accompanying a +[disk\_image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) for +[[running_the_GNU/Hurd_via_qemu|hurd/running/qemu]]. To run the disk image, just use *'qemu +disk_image.img'*. + +You can find the custom *.bashrc* used to tell the user about it as well as this text itself +in the Mercurial repository [hurd_intro](http://bitbucket.org/ArneBab/hurd_intro). + +### Intro + +The Hurd has some unique capabilities, and we created this simple image +to enable you to easily try two of them: + +* The simplest of translators: Hello World! +* Transparent FTP + +### Hello World + +To try out the simplest of translators, you can go the following simple steps: + + $ cat hello + $ setrans hello /hurd/hello + $ cat hello + "Hello World!" + $ settrans -g hello + $ cat hello + +What you do with these steps is first verifying that the file "hello" 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!". + +To finish it, you tell the translator to go away from the file "hello" via "settrans -g hello" and 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. + + +These were only two 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? diff --git a/hurd/status.mdwn b/hurd/status.mdwn index 1122b703..a22802ff 100644 --- a/hurd/status.mdwn +++ b/hurd/status.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2009 Free Software +Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -61,3 +61,38 @@ well would be unfortunate. Moreover, it would lessen the possibility that they would want to try the Hurd again in the future. +## Usability Reports + +### Olaf Buddenhagen, 2009-06-09 + +> I have been using the Hurd for most of my everyday work for some two +> years now. Most of the time it's pretty OK, but occasionally programs +> crash, or the screen session dies, or even the whole system. Also, +> various programs simply don't work at all, or don't work in certain +> situations. +> +> While I have learned to work around many of these issues, I don't +> believe I would be able to use it as my primary system, without having a +> GNU/Linux system running in parallel, as a fallback for all the stuff +> that doesn't work on the Hurd. +> +> [...] +> +> One particular problem for desktop use is the fact that while X does +> work, it works very poorly -- it's not only slow and jerky all the time, +> but also tends to lock up completely. (At least with the local socket +> transport... Haven't tried whether forcing TCP works better.) +> +> Note that while many of the stability problems are simply bugs to fix, +> the system will still be very fragile in the absence of these -- a +> simple port leak is sufficient to kill it within seconds. This is +> something that can't be easily solved. Properly fixing this will require +> a sound resource accounting framework, i.e. very fundamental changes to +> the system... Though I tend to believe that it could be improved at +> least partially, at the expense of flexibility, by enforcing certain +> fixed limits on users, processes etc. like other UNIX systems do. +> +> [...] +> +> [But] unlike a few years back [...] the system is stable enough under +> load nowadays [...]. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 8f2f07b4..5c14cfa9 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -70,6 +70,7 @@ available. * [[cvsfs]] * [[tmpfs]] * [[procfs]] +* [[unionmount]] * ... diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn index abd47c96..0179ad6c 100644 --- a/hurd/translator/tmpfs.mdwn +++ b/hurd/translator/tmpfs.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -13,7 +14,13 @@ is included in the section entitled It is based on [[libdiskfs]]. -It's not working correctly at the moment. +Even though there are other possibilities of creating a +[[libstore/examples/ramdisk]] and running a regular, for example, [[`ext2` file +system|ext2fs]] on it, having a real `tmpfs` is better, as it need not deal +with the additional block-level indirection layer that `ext2` (or any other +disk-based file system) imposes. + +However, `tmpfs` is not working correctly at the moment: [[!inline pages="hurd/translator/tmpfs/*" diff --git a/hurd/translator/tmpfs/notes_bing.mdwn b/hurd/translator/tmpfs/notes_bing.mdwn index b36fc1aa..fa3eeac2 100644 --- a/hurd/translator/tmpfs/notes_bing.mdwn +++ b/hurd/translator/tmpfs/notes_bing.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -8,6 +9,8 @@ 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|/fdl]]."]]"""]] +[[!tag open_issue_hurd]] + 1. to run tmpfs as a regular user, /servers/default-pager must be executable by that user. by default it seems to be set to read/write. diff --git a/hurd/translator/tmpfs/notes_various.mdwn b/hurd/translator/tmpfs/notes_various.mdwn index 3ec649e5..01dc87d2 100644 --- a/hurd/translator/tmpfs/notes_various.mdwn +++ b/hurd/translator/tmpfs/notes_various.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2005, 2006, 2007, 2008 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 2009 Free Software +Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -9,6 +9,8 @@ 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|/fdl]]."]]"""]] +[[!tag open_issue_hurd]] + <antrik> hde: what's the status on tmpfs? <hde> Broke <hde> k0ro traced the errors like the assert show above to a pager problem. diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn index 8a29d0f7..6f845102 100644 --- a/hurd/translator/unionfs.mdwn +++ b/hurd/translator/unionfs.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -15,3 +15,11 @@ is included in the section entitled # `stowfs` ... is a special mode of `unionfs`. + +# See Also + + * [[unionmount]] + +# External Links + + * [*Unioning file systems for Linux*](http://valerieaurora.org/union/) diff --git a/hurd/translator/unionmount.mdwn b/hurd/translator/unionmount.mdwn new file mode 100644 index 00000000..47a3d85d --- /dev/null +++ b/hurd/translator/unionmount.mdwn @@ -0,0 +1,60 @@ +[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="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|/fdl]]."]]"""]] + +[[!meta title="Union Mounts"]] + +When setting a translator on Hurd -- similar to mounting a file system on UNIX +-- the new node(s) exported by the translator are obscuring the original node +where the translator is set, and any nodes below it in the directory tree. The +translator itself can access the underlying node (which is a very nice feature, +as it allows translators presenting the contents of the node in a different +format); but it's no longer accessible from the "outside". + +Plan9 has a feature where a file system can be mounted in union mode: the new +file system doesn't obscure the mount point in this case, but instead the +contents are combined. (This feature has also been under discussion in Linux +for a couple of years now, under the label "VFS-based union mounts".) + +This kind of union mounts is generally useful, as it's sometimes more +convenient than unioning existing filesystem locations with unionfs -- it's not +necessary to mount a file system that is to be unioned at some external +location first: just union-mount it directly at the target location. + +But union mounts also allow creating passive translator hierarchies: If there +is a passive translator on a parent node, and further passive translators on +child nodes, the union mount allows the child nodes with the further translator +settings still to be visible after the parent translator has started. + +This could be useful for device nodes for example: let's say we have an +ethernet multiplexer at /dev/veth. Now the virtual subnodes could all be +directly under /dev, i.e. /dev/veth0, /dev/veth1 etc., and explicitely refer to +the main /dev/veth node in the translator command line. It would be more +elegant however to store the virtual nodes direcly below the main multiplexer +node -- /dev/veth/0, /dev/veth/1 etc. + +There are two possible approaches how union mounts could be implemented in the +Hurd. The first one is to let the various translators handle union mounts +internally, i.e. let them present the underlying nodes to the clients in +addition to the actual nodes they export themselfs. This probably can be +implemented as some kind of extension to the existing netfs and diskfs +libraries. + +The other possible apporach is less efficient and probably more tricky, but +probably also more generic: create a special unionmount translator, which +serves as a kind of proxy: setting the union-mounted translator on some +internal node; and at the actual mount location, presenting a union of the +nodes exported by this translator, and the nodes from the underlying file +system. + +The goal of this project is implementing union mounts using either of the +approaches described above. (Though it might be useful initially to prototype +both for comparision.) The ethernet multiplexer shall serve as an example use +case -- any changes necessary to allow using it with the union mount +functionality are also to be considered part of the task. diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn index 3ea68999..a927db55 100644 --- a/hurd/translator/wishlist_2.mdwn +++ b/hurd/translator/wishlist_2.mdwn @@ -76,6 +76,8 @@ Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? +*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] + ## <a name="UUEncode"> </a> UUEncode How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). |