diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2010-12-13 17:11:51 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@schwinge.name> | 2010-12-13 17:11:51 +0100 |
commit | 2d75167da62e3486836e5f1773e5f1ab06e43fe8 (patch) | |
tree | e44fc83e0b1419836d1b21652ad1d38b8d0af2c4 /history | |
parent | 217998d56f5b6424a685f8c87f2c0e924d1c89da (diff) | |
parent | 5c5c16e265d8ef56b71f319885f32bf144bdea23 (diff) |
Merge branch 'master' into external_pager_mechanism
Conflicts:
microkernel/mach/external_pager_mechanism.mdwn
Diffstat (limited to 'history')
-rw-r--r-- | history/hurd-announce | 47 | ||||
-rw-r--r-- | history/hurd-announce2 | 143 | ||||
-rw-r--r-- | history/hurd-flash | 22 | ||||
-rw-r--r-- | history/hurd-flash10 | 25 | ||||
-rw-r--r-- | history/hurd-flash11 | 25 | ||||
-rw-r--r-- | history/hurd-flash12 | 76 | ||||
-rw-r--r-- | history/hurd-flash13 | 120 | ||||
-rw-r--r-- | history/hurd-flash14 | 62 | ||||
-rw-r--r-- | history/hurd-flash15 | 60 | ||||
-rw-r--r-- | history/hurd-flash2 | 152 | ||||
-rw-r--r-- | history/hurd-flash3 | 77 | ||||
-rw-r--r-- | history/hurd-flash4 | 101 | ||||
-rw-r--r-- | history/hurd-flash5 | 23 | ||||
-rw-r--r-- | history/hurd-flash6 | 46 | ||||
-rw-r--r-- | history/hurd-flash7 | 17 | ||||
-rw-r--r-- | history/hurd-flash8 | 73 | ||||
-rw-r--r-- | history/hurd-flash9 | 39 | ||||
-rw-r--r-- | history/port_to_l4.mdwn | 108 |
18 files changed, 1216 insertions, 0 deletions
diff --git a/history/hurd-announce b/history/hurd-announce new file mode 100644 index 00000000..2f165ad8 --- /dev/null +++ b/history/hurd-announce @@ -0,0 +1,47 @@ +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/history/hurd-announce2 b/history/hurd-announce2 new file mode 100644 index 00000000..dce41c43 --- /dev/null +++ b/history/hurd-announce2 @@ -0,0 +1,143 @@ +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/history/hurd-flash b/history/hurd-flash new file mode 100644 index 00000000..d1bacc79 --- /dev/null +++ b/history/hurd-flash @@ -0,0 +1,22 @@ +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/history/hurd-flash10 b/history/hurd-flash10 new file mode 100644 index 00000000..d6d5685b --- /dev/null +++ b/history/hurd-flash10 @@ -0,0 +1,25 @@ +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/history/hurd-flash11 b/history/hurd-flash11 new file mode 100644 index 00000000..57851b01 --- /dev/null +++ b/history/hurd-flash11 @@ -0,0 +1,25 @@ +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/history/hurd-flash12 b/history/hurd-flash12 new file mode 100644 index 00000000..5be9c94e --- /dev/null +++ b/history/hurd-flash12 @@ -0,0 +1,76 @@ +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/history/hurd-flash13 b/history/hurd-flash13 new file mode 100644 index 00000000..a2de6bfd --- /dev/null +++ b/history/hurd-flash13 @@ -0,0 +1,120 @@ +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/history/hurd-flash14 b/history/hurd-flash14 new file mode 100644 index 00000000..2d67687a --- /dev/null +++ b/history/hurd-flash14 @@ -0,0 +1,62 @@ +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/history/hurd-flash15 b/history/hurd-flash15 new file mode 100644 index 00000000..0785ac59 --- /dev/null +++ b/history/hurd-flash15 @@ -0,0 +1,60 @@ + +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/history/hurd-flash2 b/history/hurd-flash2 new file mode 100644 index 00000000..b1d4f66f --- /dev/null +++ b/history/hurd-flash2 @@ -0,0 +1,152 @@ +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/history/hurd-flash3 b/history/hurd-flash3 new file mode 100644 index 00000000..19a5f371 --- /dev/null +++ b/history/hurd-flash3 @@ -0,0 +1,77 @@ +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/history/hurd-flash4 b/history/hurd-flash4 new file mode 100644 index 00000000..89ae9848 --- /dev/null +++ b/history/hurd-flash4 @@ -0,0 +1,101 @@ +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/history/hurd-flash5 b/history/hurd-flash5 new file mode 100644 index 00000000..041a0ef7 --- /dev/null +++ b/history/hurd-flash5 @@ -0,0 +1,23 @@ +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/history/hurd-flash6 b/history/hurd-flash6 new file mode 100644 index 00000000..e774714e --- /dev/null +++ b/history/hurd-flash6 @@ -0,0 +1,46 @@ +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/history/hurd-flash7 b/history/hurd-flash7 new file mode 100644 index 00000000..ce6e08d2 --- /dev/null +++ b/history/hurd-flash7 @@ -0,0 +1,17 @@ +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/history/hurd-flash8 b/history/hurd-flash8 new file mode 100644 index 00000000..555186ec --- /dev/null +++ b/history/hurd-flash8 @@ -0,0 +1,73 @@ +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/history/hurd-flash9 b/history/hurd-flash9 new file mode 100644 index 00000000..1ff32ba9 --- /dev/null +++ b/history/hurd-flash9 @@ -0,0 +1,39 @@ +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/history/port_to_l4.mdwn b/history/port_to_l4.mdwn new file mode 100644 index 00000000..b58c0d91 --- /dev/null +++ b/history/port_to_l4.mdwn @@ -0,0 +1,108 @@ +[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +2009, 2010 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|hurd/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 [[hurd/critique]] and a +[[hurd/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|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 +> [[hurd/translator]]s were already well-known to us. (For a more detailed +> description of the problems we have identified, see our [[hurd/critique]] in the +> 2007 July's SIGOPS OSR. We have also written a forward-looking +> [[hurd/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. + + +The source code is still available in [CVS module +`hurd-l4`](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/) (note that +this repository has in the beginning also been used for Neal's +[[microkernel/Viengoos]]). |