diff options
Diffstat (limited to 'hurd/faq/old_hurd_faq.txt')
-rw-r--r-- | hurd/faq/old_hurd_faq.txt | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/hurd/faq/old_hurd_faq.txt b/hurd/faq/old_hurd_faq.txt new file mode 100644 index 00000000..a94a28f4 --- /dev/null +++ b/hurd/faq/old_hurd_faq.txt @@ -0,0 +1,289 @@ +The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 + +Contributions by: + +Michael I. Bushnell <mib@gnu.org> +Len Tower <tower@gnu.org> +Trent Fisher <trent@gnurd.uu.pdx.edu> +jlr@usoft.spb.su +Remy Card <Remy.Card@masi.ibp.fr> +Louis-Dominique Dubeau <hallu@info.polymtl.ca> + +Original Document by: Derek Upham <upham@cs.ubc.ca> + + +============================== + +Contents: + +Q0. Where can I get the Unofficial GNU Hurd FAQ? +Q2. Where can I get a copy? +Q3. Why bother writing a new OS when we have Linux and 386/BSD? +Q4. What's all this about Mach 3.0 (and Mach 4.0)? +Q5. Where can I find more information? +Q6. What's a proper machine? +Q7. What sort of machines will run Hurd in the future? +Q8. What is the current development status? +Q9. What sort of system would we have if the Hurd was bootable today? + +============================== + +Q0. Where can I get the Unofficial GNU Hurd FAQ? + +The Unofficial Hurd FAQ (what you are reading now) is occasionally +posted to the USENET newsgroup, gnu.misc.discuss. It is also +available from + + http://www.enci.ucalgary.ca/~gord/hurd/hurd-faq.txt + +If you don't have WWW access, you may send mail to me, Gordon +Matzigkeit <gord@enci.ucalgary.ca> with a subject line that reads: + + Subject: send hurd-faq + +You should receive a PGP-signed copy of the current version of this +document in a matter of minutes. + + +Q2. Where can I get a copy? + +To put it simply, you can't. It is still under development (by +Michael Bushnell, Roland McGrath and Miles Bader). It is almost, but +not quite, at the point where you can do real work on it. Keep your +fingers crossed. + +Some people have actually bootstrapped it, but the work is not easy, +and the current snapshot won't work until a new multiserver boot +mechanism is made. + +If you *really* want to try it, beware that it is still pre-alpha +code, and that it will likely crash on you. See Trent Fisher's Hurd +pages (under question 5) for the latest information. + + +Q3. Why bother writing a new OS when we have Linux and 386/BSD? + +For one thing, Linux and BSD don't scale well. Hardware designers are +shifting more and more toward multiprocessor machines for performance, +and standard Unix kernels do not provide much multiprocessor support. +The Hurd, on the other hand, runs on top of the Mach 3.0 micro-kernel +[[1]] from CMU. Mach was designed precisely for multiprocessing +machines, so its portability should carry over nicely to the Hurd. + +In addition, the Hurd will be considerably more flexible and robust +than generic Unix. Wherever possible, Unix kernel features have been +moved into unprivileged space. Once there, anyone who desires can +develop custom replacements for them. Users will be able to write and +use their own file systems, their own `exec' servers, or their own +network protocols if they like, all without disturbing other users. + +The Linux kernel has now been modified to allow user-level file +systems, so there is proof that people will actually use features such +as these. It will be much easier to do under the Hurd, however, +because the Hurd is almost entirely run in user space and because the +various servers are designed for this sort of modification. + + +Q4. What's all this about Mach 3.0 (and Mach 4.0)? + +As mentioned above, Mach is a micro-kernel, written at Carnegie Mellon +University. A more descriptive term might be a greatest-common-factor +kernel, since it provides facilities common to all ``real'' operating +systems, such as memory management, interprocess communication, +processes, and a bunch of other stuff. Unfortunately, the system +calls used to access these facilities are only vaguely related to the +familiar and cherished Unix system calls. There are no "fork", +"wait", or "sleep" system-calls, no SIGHUPs, nothing like that. All +this makes it rather difficult to, say, port GNU Emacs to a Mach box. + +The trick is, of course, to write an emulation library. Unix programs +can then use (what they think are) POSIX system calls and facilities +while they are really using Mach system calls and facilities. + +The simplest way of going about this is to take an ordinary Unix +kernel, open it up, and rip out all the machine-specific guts; any +time the Unix kernel talks to the machine, replace the code with calls +to the Mach micro-kernel. Run this fake kernel on a Mach machine and +you end up with something that looks and acts just like Unix (even to +GNU Emacs). Note that the Unix kernel we have implemented is just one +Really Big Mach program (called a single-server). + +The Hurd, on the other hand, breaks the giant Unix kernel down into +various Mach programs running as daemons. Working in concert with +facilities placed in the C library, these daemons provide all of the +POSIX system-calls and features; from the outside they look just like +a standard Unix kernel. This means that, for practical purposes, +anything that you can port to Linux will also port to the Hurd. + +Of course, if a user wishes to run his own daemons, he can do that as +well.... + +Mach 4.0 is an enhanced version of Mach 3.0, put out by the people at +the University of Utah. They are working on another free operating +system, and part of it includes an enhanced, more flexible version of +Mach. The Hurd has moved to Mach 4.0, which is good, because it is a +lot easier to build than 3.0 was. + +You can find more information on Mach by browsing the Hurd pages given +in the next answer, or by looking at the Project Mach and Flux +homepages at: + +Carnegie Mellon University (for Mach versions before 4.0): + + http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html + +the University of Utah (for Mach 4.0): + + http://www.cs.utah.edu/projects/flux/mach4/html/ + + +Q5. Where can I find more information? + +The June 1995 GNU's Bulletin contains the following official +information: + + The GNU Hurd now runs programs native. We have implemented both + shared libraries using ELF, & the popular `ext2' file system used + by Linux. It can run GCC, `make', Emacs, & most other GNU + utilities. Progress is being made so rapidly that by the time you + read this it probably does much more. It is right on the verge of + being self-hosting (able to run on its own well enough to compile + its own source code, & be used for its own development). We have + much better device supportm [sic] & some new utilities, including a + fancy `ps' & `settrans'. For a complete system we still have much + more work to do, but we will make an alpha release as soon as the + network software is finished & shared libraries have been well + tested. We have a mailing list to announce progress; to be added + to it, ask `hurd-announce-request@gnu.org'. + +The Portland State University CS department (via Trent Fisher) +maintains a WWW server with various Hurd documents, including Michael +Bushnell's Hurd paper, all the collected GNU's Bulletins, and various +announcements posted to "gnu.misc.discuss". The top-level GNU page is + + http://www.cs.pdx.edu/~trent/gnu/gnu.html + +and the Hurd page is + + http://www.cs.pdx.edu/~trent/gnu/hurd/hurd.html + +People in Europe might want to try the GNU WWW server for DESY +Germany, first: + + http://info.desy.de/gnu/www + +This site lacks culled, Hurd-specific information at the moment, but +it does have the last two GNU's Bulletins plus lots of general +information. + +There is a snapshot of the Hurd development tree on +"alpha.gnu.ai.mit.edu" in the "/gnu" directory. It is updated as +significant changes are made, and not guaranteed to run. + +You can subscribe to the Hurd announcement list by sending a request +to "hurd-announce-request@gnu.org". This is a moderated list +for distributing Hurd info to ``all and sundry'', and anyone can join. +In addition, there is a private (invitation-only) list for developers +to coordinate their efforts. It's not even worth thinking about +unless you (a) have a lot of free time on your hands, (b) know Unix +internals and Mach very well, and (c) have a proper machine. + + +Q6. What's a proper machine? + +A ``proper machine'', at the moment, means an x86 box running Mach 3.0 +(or 4.0), with FreeBSD 2.x, NetBSD 1.x, or Linux. + +A single-server OS is no longer required for development because by +the time the Hurd bootstrap mechanism is finished, the Hurd will +probably be self-hosting. + +Linux, FreeBSD, or NetBSD will only be required to splat the Hurd +binaries onto a partition of some sort, and to provide a way of +transferring files to the Hurd until the networking code is ready. + + +Q7. What sort of machines will run Hurd in the future? + +The first thing a prospective Hurd machine needs is a Mach 3.0 port. +According to the most recent "comp.os.mach" FAQ (which hasn't been +updated since February 1994), the following chips have redistributable +Mach micro-kernels and device drivers: + + Intel 80x86 (ISA and PS/2 buses) + Motorola 68000 (Sun 3) + Motorola 88000 (Omron Luna) + DEC Vax + DEC Pmax (DECstation 3100) + DEC Alpha + MIPS R4000 (DECstation 5000 et al.) + IBM RS/6000 + Apple Macintosh + +IBM is planning to run WorkplaceOS (the OS/2 successor) over Mach 3.0 +on the PowerPC chip (closely related to the RS/6000), so the PowerPC +will likely be added to this list soon. The University of Utah has +ported Mach 4.0 to the HP700, but it is not yet stable. + +Sun Sparc machines have a redistributable Mach microkernel, but the +device drivers require a SunOS 4.1.1 source license. + +In addition, any prospective Hurd machine needs a port of the GNU C +library. Version 1.07.4 of the library can handle the following +chips: + + Intel 80x86 (BSD, Dynix, Hurd, SCO, SysV) + Motorola 68000 (HP BSD, NEWS, Sun 4) + MIPS R4000 (Ultrix) + Sun Sparc (Solaris 2, Sun 4) + DEC Alpha (OSF/1, mostly finished) + +So if the next Hurd snapshot is self-hosting, we will be able to run +it (in theory) on Intel 80x86s, Motorola 68000s, MIPS R4000s and DEC +Alphas. + +People who can port the Mach micro-kernel to new architectures are +encouraged to do so. People who can port the GNU C library to new +chips (a much larger group) are also encouraged to do so. You can +help out here without knowing anything about Mach or having any +special machine. Note that once the GNU C library exists for a new +chip, for _any_ OS, making a Hurd port later is simple (and making +ports to other chips becomes easier as well---the effects are +cumulative). + +By current indications, the other hardware requirements (RAM, disk +space, and the like) will be about the same as those of BSD 4.4. + + +Q8. What is the current development status? + +Please see Trent Fisher's Hurd pages for details. + + +Q9. What sort of a system would we have if the Hurd was bootable +today? + +Quite likely, if you already use an end-user system like Linux, +FreeBSD, or NetBSD, you'll be disappointed with the Hurd. It will +take some time before the OS hackers really get to work on +applications and major enhancements. + +But, rest assured, Hurd development should proceed very rapidly. + +Of course, if you think you can help, or you just enjoy neat stuff, +then you'll probably like the Hurd. When you actually understand a +fraction of what's going on behind the scenes, it's very impressive. + +All I'm saying is that I'm not expecting all the Windows '95 users in +the world to switch to the Hurd right away. Wait a little while, +maybe 5-6 years (ample time for GNUStep and Guile to be in use), and +GNU users everywhere will be very happy that the FSF proceeded with +the Hurd. :) + + +============================== + +Footnotes: + +[[1]] Yes, I know that ``micro-kernel'' is about as apt a description +as ``Reduced Instruction Set Chip'', but we're stuck with it. |