From 1420c8de10bf98c35d753e86da81d40dccee6ffa Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Thu, 3 Oct 2002 13:29:32 +0000 Subject: Add Wolfgang's talk about the auth server. --- auth.html | 248 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 auth.html (limited to 'auth.html') diff --git a/auth.html b/auth.html new file mode 100644 index 00000000..aa4e6b67 --- /dev/null +++ b/auth.html @@ -0,0 +1,248 @@ + + + +The GNU Hurd - GNU Project - Free Software Foundation (FSF) + + + + + + + + + + + + +
+ [image of the Hurd logo] +[ + English +] +
+What's New

+ChangeLogs
+

+The GNU Hurd

+Documentation
+Installation
+Getting Help
+Source Code
+Development
+History

+GNU Mach

+Documentation
+Installation
+Source Code

+MiG

+Source Code
+

+
+

Table of Contents

+ +
+ +

Introduction

+

+In this text, which mostly resembles the talk I gave at Libre Software +Meeting 2002 in Bordeaux, I will describe what the auth server does, +why it is so important and which cool things you can do with it, both +on the programming and the user side. I will also describe related +programs like the password and fakeauth servers. Note that this text +is targeted at programmers who want to understand the auth mechanism +in detail and are already familiar with concepts like Remote Procedure +Calls (RPCs) as well as the way User- and Group-IDs are used in the +POSIX world. + +

+The auth server is a very small server, therefore it gives a useful +example when you want to learn how a server typically looks like. One +reason why it is so small is that the auth interface, which it +implements, consists of only four RPCs. You can find the interface in +hurd/hurd/auth.defs and the server itself in hurd/auth/. + +

How IDs are represented and used

+

+Each process holds (usually) one port to auth (an auth_t in C source, +which actually is a mach_port_t, of course). The purpose of auth is +to manage User-IDs and Group-IDs, which is the reason why users often +will have no choice but to make use of the systems main auth server, +which does not listen on /servers/auth; instead you inherit a port to +auth from your parent process. Each such port is (internally in the +auth server) associated with a set of effective User- and Group-IDs as +well as a set of available User- and Group-IDs. So we have four sets +of IDs in total. The available IDs can be turned into corresponding +effective IDs at any time. + +

+When you send an auth_getids RPC on the port you hold, you will get +information about which IDs are associated with it, so you can figure +out which permissions you have. But how will a server know that you +have these permissions and therefore know which actions (e.g. writing +into file "foo") it is supposed to do on your behalf and which not? +The establishing of a trusted connection to a server works as follows: + +

    +
  1. A user wants a server to know its IDs
  2. +
  3. The user requests a reauthentication from the server
  4. +
  5. In this request the user will include a port
  6. +
  7. Both will hand this port to auth
  8. +
  9. The user uses auth_user_authenticate
  10. +
  11. The server uses auth_server_authenticate
  12. +
  13. The server also passes a new port to auth
  14. +
  15. auth matches these two requests
  16. +
  17. The user gets the new port from auth
  18. +
  19. The server learns about the IDs of the user
  20. +
  21. The user uses the new port for further communication
  22. +
+ +

+We have different RPCs for users and servers because what we pass and +what we get back differs for them: Users get a port, and servers get +the sets of IDs, and have to specify the port which the user will get. + +

+It is interesting to note that auth can match the requests by +comparing two integers, because when you get the same port from two +people, you will have the same mach_port_t (which is nothing but an +integer). + +

+All of this of course only works if they use the same auth server, +which is why I said often you have no choice other than to use the +one main auth server. But this is no serious restriction, as the auth server has +almost no functionality one might want to replace. In fact, there is +one replacement for the default auth implementation, but more on that +later. + +

POSIX and beyond

+

+Before we examine what is possible with this design, let us take a +short look at how the POSIX semantics are implemented on top of this +design. When a program that comes out of POSIX-land asks for its own +effective User- or Group-ID, we will tell it about the first of the +effective IDs. In the same sense, the POSIX real User- or Group-ID is +the first available ID and the POSIX saved User- or Group-ID is the +second available ID, which is why you have the same ID two times in +the available IDs when you log into your GNU/Hurd machine (you can +figure out which IDs you have with the program "ids", that basically +just does an auth_getauth RPC). When you lack one of those IDs (for +example when you have no effective Group-ID), a POSIX program asking +for this particular information will get "-1" as the ID. + +

+But as you can imagine, we can do more than what POSIX specifies. Fox +example, we can modify our permissions. This is always done with the +auth_makeauth RPC. In this RPC, you specify the IDs that should be +associated with the new port. All of these IDs must be associated +with either the port where the RPC is sent to or one of the additional +ports you can specify; an exception is the superuser root, which is +allowed to creat ports that are associated with arbitrary IDs. +Hereby you can convert available into effective IDs. + +

+This opens the door to a bunch of nice features. For example, we have +the addauth program in the Hurd, which makes it possible to add an ID +to either a single process or a group of processes if you hold the ID or know the +appropriate password, and there is a corresponding rmauth program that +removes an ID. So when you are working on your computer with GNU +Emacs and want to edit a system configuration file, you switch to +Emacs' shell-mode, do an "addauth root", enter the password, edit the +file, and when you are done switch back to shell-mode and do "rmauth +root". These programs have some interesting options, and there are +various other programs, for setting the complete list of IDs (setauth) +and so on. + +

Related servers

+

+Finally, I want to explain two servers which are related to auth. The +first is the password server, which listens on /servers/password. If +you pass to it a User- or Group-ID and the correct password for it, it +will return a port to auth to you which is associated with the ID you +passed to it. It can create such a port because it is running as +root. So let us assume you are an FTP server process. You will start +as root, because you want to use port 21 (in this case, "port" does +not refer to a mach_port_t, of course). But then, you can drop all +your permissions so that you run without any ID. This makes it far +less dangerous to communicate with yet unknown users over the +network. But when someone now hands a username and password to you, +you can ask the password server for a new auth port. The password +server will check the data you pass to it, for example by looking into +/etc/shadow, and if it is valid, it will ask the auth server for a new +port. It receives this port from auth and then passes it on to you. +So you have raised your permissions. (And for the very curious: Yes, +we are well aware of the differences between this concept and +capabilities; and we also do have some kinds of capabilities in +various parts of the Hurd.) + +

+My second example is the fakeauth server. It also implements the auth +protocol. It is the part of the fakeroot implementation that gives a +process the impression that it runs as root, even if it doesn't. So +when the process asks fakeauth about its own IDs, fakeauth will tell +the process that it runs as root. But when the process wants to make +use of the authentication protocol described earlier in this text, +fakeauth will forward the request to its own auth server, which will +usually be the systems main auth server, which will then be able to +match the auth_*_authenticate requests. So what fakeauth does is +acting as a proxy auth server that gives someone the impression to run +as root, while not modifying what that one is allowed to do. + +

+At this point, I have said at least most of what can be said about the +auth server and the protocol it implements, so I will finish by saying +that it might be an interesting task (for you) to modify some existing +software to take advantage of the features I described here. + +

+ +
+ +[ + English +] + +
+ +

+Return to GNU's home page. +

+ +Please send FSF & GNU inquiries & questions to + +gnu@gnu.org. +There are also other ways to +contact the FSF. +

+ +Please send comments on these web pages to + +web-hurd@gnu.org, +send other questions to +gnu@gnu.org. +

+Copyright (C) 2002 Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA +

+Verbatim copying and distribution of this entire article is +permitted in any medium, provided this notice is preserved. +

+Updated: + +$Date$ $Author$ + +


+ + -- cgit v1.2.3 From 576122f6309c49745d16be06e7ce2218a769e96c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 4 Dec 2006 19:42:27 +0000 Subject: This was a `sed'-based change, where I didn't review every single detail and thus hope that I didn't break anything. Replace `MiG' with `MIG'. Replace `MIG' with `GNU MIG' and `The GNU Hurd' with `GNU Hurd' when linking to the pages. Make the space between `GNU' and `Hurd' or `Mach' or `MIG' non-breakable. --- acknowledgements.html | 8 ++++---- auth.html | 6 +++--- changelogs.html | 16 ++++++++-------- devel.html | 6 +++--- docs.html | 16 ++++++++-------- download.html | 8 ++++---- gnumach-download.html | 20 ++++++++++---------- gnumach-install.html | 18 +++++++++--------- gnumach.html | 36 ++++++++++++++++++------------------ help.html | 10 +++++----- history.html | 10 +++++----- hurd-announcements.html | 4 ++-- hurd-folks.html | 6 +++--- hurd-l4.html | 12 ++++++------ hurd-paper.html | 2 +- hurd-talk.html | 22 +++++++++++----------- hurd.html | 10 +++++----- install.html | 8 ++++---- mig-download.html | 20 ++++++++++---------- mig.html | 16 ++++++++-------- old_hurd_faq.html | 10 +++++----- related-projects.html | 10 +++++----- whatsnew.html | 28 ++++++++++++++-------------- whatsold.html | 18 +++++++++--------- 24 files changed, 160 insertions(+), 160 deletions(-) (limited to 'auth.html') diff --git a/acknowledgements.html b/acknowledgements.html index fb39187d..5e04a01d 100644 --- a/acknowledgements.html +++ b/acknowledgements.html @@ -3,7 +3,7 @@ - GNU Hurd: Acknowledgements + GNU Hurd: Acknowledgements @@ -12,7 +12,7 @@ diff --git a/changelogs.html b/changelogs.html index 12e0f759..0038c742 100644 --- a/changelogs.html +++ b/changelogs.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -26,7 +26,7 @@  
ChangeLogs

-The GNU Hurd
+GNU Hurd
 
Documentation
Installation
@@ -41,7 +41,7 @@ Installation
Source Code
 
-MiG
+GNU MIG
 
Source Code
 
@@ -131,20 +131,20 @@ subdirectories: libthreads, libtrivfs -

GNU Mach

+

GNU Mach

The GNU -Mach ChangeLog covers all changes to GNU Mach and covers all changes to GNU Mach and GNU Mach 1 branch ChangeLog those on the gnumach-1-branch. Changes before March 1997 are listed in ChangeLog.0 and ChangeLog.00. -

MiG

+

MIG

The MiG ChangeLog -covers all changes to MiG. +HREF="http://cvs.savannah.gnu.org/viewcvs/~checkout~/hurd/mig/ChangeLog">MIG ChangeLog +covers all changes to MIG. diff --git a/devel.html b/devel.html index 87426bb9..868277a0 100644 --- a/devel.html +++ b/devel.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -26,7 +26,7 @@  
ChangeLogs

-The GNU Hurd
+GNU Hurd
 
Documentation
Installation
@@ -41,7 +41,7 @@ Installation
Source Code
 
-MiG
+GNU MIG
 
Source Code
 
diff --git a/docs.html b/docs.html index 03732f30..b65e6407 100644 --- a/docs.html +++ b/docs.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -26,7 +26,7 @@  
ChangeLogs

-The GNU Hurd
+GNU Hurd
 
Documentation
Installation
@@ -41,7 +41,7 @@ Installation
Source Code
 
-MiG
+GNU MIG
 
Source Code
 
@@ -67,7 +67,7 @@ architectural overview by Thomas Bushnell, BSG. The Hurd, a presentation by Marcus Brinkmann.

  • - The + GNU/Hurd User's Guide, an introduction to the important concepts and software of the GNU system, written for new users, AKA "GNUbies." @@ -87,7 +87,7 @@ for download.
  • The Hurd Hacking -Guide, an introduction to GNU Hurd and Mach programming by +Guide, an introduction to GNU Hurd and Mach programming by Wolfgang Jährling.

    Available Formats: @@ -112,7 +112,7 @@ the authentication mechanisms in the Hurd by Wolfgang Jährling.

    Please check out the Frequently -Asked Questions about the GNU Hurd (33k characters) and their +Asked Questions about the GNU Hurd (33k characters) and their answers, which cover most issues a new user will be confronted with.

    This document is available in several languages: @@ -128,8 +128,8 @@ This document is available in several languages:

    Reference manuals

    -The GNU Hurd Reference Manual documents the architecture, the usage -and the programming of the GNU Hurd. At the moment, the manual is +The GNU Hurd Reference Manual documents the architecture, the usage +and the programming of the GNU Hurd. At the moment, the manual is quite incomplete.

    Available Formats: diff --git a/download.html b/download.html index fe759c4a..ac3b4069 100644 --- a/download.html +++ b/download.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -26,7 +26,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -41,7 +41,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code
     
    @@ -84,7 +84,7 @@ to date.

    There is also a cross referenced -database of the Hurd, GNU Mach, MiG, and the GNU C library sources +database of the Hurd, GNU Mach, MIG, and the GNU C library sources online for you to browse. It provides better searching and browsing facilities than the online CVS repository, but it is not always up to date and does not contain history information. diff --git a/gnumach-download.html b/gnumach-download.html index 914efafd..81222bc9 100644 --- a/gnumach-download.html +++ b/gnumach-download.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -25,7 +25,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -40,7 +40,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code
     
    @@ -58,7 +58,7 @@

    Latest Release

    -The latest release of GNU Mach is version 1.3, 2002-05-28. It features: +The latest release of GNU Mach is version 1.3, 2002-05-28. It features:

    • Bug fixes.
    • The kernel now directly supports "boot scripts" in the form of @@ -81,7 +81,7 @@ attributes.
    • added.

    -You can download the latest version of GNU Mach from the GNU ftp server: +You can download the latest version of GNU Mach from the GNU ftp server:

    • gnumach-1.3.tar.gz @@ -91,7 +91,7 @@ HREF="http://ftp.gnu.org/gnu/gnumach/gnumach-1.3.tar.gz.sig">gnumach-1.3.tar.gz. [1K].
    • gnumach-1.2-1.3.diff.gz -[310K], containing the differences between GNU Mach 1.2 and GNU Mach 1.3.
    • +[310K], containing the differences between GNU Mach 1.2 and GNU Mach 1.3.
    • gnumach-1.2-1.3.diff.gz.sig [1K].
    • @@ -99,7 +99,7 @@ HREF="http://ftp.gnu.org/gnu/gnumach/gnumach-1.2-1.3.diff.gz.sig">gnumach-1.2-1.

      CVS repository

      -The GNU Mach source code is managed in the version control system CVS. You can check out the CVS repository with the following instruction set. @@ -108,7 +108,7 @@ Source tree:
      cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co gnumach

      -Use to following to get the GNU Mach 1 branch: +Use to following to get the GNU Mach 1 branch:
      cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co -r gnumach-1-branch gnumach @@ -121,13 +121,13 @@ href="https://savannah.gnu.org/cvs/?group=hurd">Savannah page.

      You can also browse the CVS -repository of GNU Mach with your web browser. The web pages are +repository of GNU Mach with your web browser. The web pages are generated dynamically at the time you request them and are always up to date.

      There is also a cross referenced -database of the Hurd, GNU Mach, MiG, and the GNU C library sources +database of the Hurd, GNU Mach, MIG, and the GNU C library sources online for you to browse. It provides better searching and browsing facilities than the online CVS repository, but it is not always up to date and does not contain history information. diff --git a/gnumach-install.html b/gnumach-install.html index a44460fd..06d4f6ad 100644 --- a/gnumach-install.html +++ b/gnumach-install.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -25,7 +25,7 @@  
      ChangeLogs

      -The GNU Hurd
      +GNU Hurd
       
      Documentation
      Installation
      @@ -40,7 +40,7 @@ Installation
      Source Code
       
      -MiG
      +GNU MIG
       
      Source Code
       
      @@ -52,22 +52,22 @@


      Latest version

      -The last stable version of GNU Mach is 1.3, but it is recommended that +The last stable version of GNU Mach is 1.3, but it is recommended that you use the version in CVS instead, as this fixes some bugs that prevent the kernel to work on some systems.

      Installation instructions

      -GNU Mach can be compiled or cross-compiled easily. The only package -you are not likely to have installed already is MiG, the Mach +GNU Mach can be compiled or cross-compiled easily. The only package +you are not likely to have installed already is MIG, the Mach interface generator. If you cross-compile gnumach, you need a -cross-MiG for your architecture. You also need the static version of +cross-MIG for your architecture. You also need the static version of the C library for your host architecture, as some functions are taken directly from it. We recommend that you use the GNU C library, other C libraries @@ -75,7 +75,7 @@ have not been tested and might not work. After you have followed the installation instructions in the package and the reference manual, you should end up with a kernel binary where your boot loader can find it. -

      Booting GNU Mach

      +

      Booting GNU Mach

      To actually use the kernel and boot the GNU operating system, you need a boot loader. Not all boot loaders are capable to boot the GNU diff --git a/gnumach.html b/gnumach.html index d00fc274..2a983c76 100644 --- a/gnumach.html +++ b/gnumach.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -27,7 +27,7 @@  
      ChangeLogs

      -The GNU Hurd
      +GNU Hurd
       
      Documentation
      Installation
      @@ -42,7 +42,7 @@ Installation
      Source Code
       
      -MiG
      +GNU MIG
       
      Source Code
       
      @@ -54,32 +54,32 @@

      Table of Contents


      -

      Introduction to GNU Mach

      +

      Introduction to GNU Mach

      -GNU Mach is the microkernel of the GNU system. A microkernel provides +GNU Mach is the microkernel of the GNU system. A microkernel provides only a limited functionality, just enough abstraction on top of the hardware to run the rest of the operating system in user space. The -GNU Hurd servers and the GNU C library implement the POSIX compatible +GNU Hurd servers and the GNU C library implement the POSIX compatible base of the GNU system on top of the microkernel architecture provided by Mach.

      -Currently, GNU Mach runs on IA32 machines. GNU Mach should, and +Currently, GNU Mach runs on IA32 machines. GNU Mach should, and probably will, be ported to other hardware architectures in the future. Mach was ported to many operating systems in the past.

      -GNU Mach is maintained by the Hurd developers for the GNU project. If -you need help with GNU Mach or want to contribute to the development +GNU Mach is maintained by the Hurd developers for the GNU project. If +you need help with GNU Mach or want to contribute to the development of the microkernel, you should contact the Hurd people. -

      Advantages of GNU Mach

      -GNU Mach is not the most advanced microkernel known to the planet, nor +

      Advantages of GNU Mach

      +GNU Mach is not the most advanced microkernel known to the planet, nor is it the fastest or smallest, but it has a rich set of interfaces and some features which make it useful as the base of the Hurd system.
      @@ -90,11 +90,11 @@ Anybody can use, modify, and redistribute it under the terms of the
      it's built to survive
      -As a microkernel, GNU Mach doesn't implement a lot of the features +As a microkernel, GNU Mach doesn't implement a lot of the features commonly found in an operating system, but only the bare minimum that is required to implement a full operating system on top of it. This means that a lot of the operating system code is maintained outside of -GNU Mach, and while this code may go through a complete redesign, the +GNU Mach, and while this code may go through a complete redesign, the code of the microkernel can remain comparatively stable.
      it's scalable
      @@ -103,7 +103,7 @@ Mach is particularly well suited for SMP and network cluster techniques. Thread support is provided at the kernel level, and the kernel itself takes advantage of that. Network transparency at the IPC level makes resources of the system available across machine -boundaries (with NORMA IPC, currently not available in GNU Mach). +boundaries (with NORMA IPC, currently not available in GNU Mach).
      it exists
      @@ -118,17 +118,17 @@ multi-server operating system, the Hurd.

      Status of the project

      -GNU Mach 1.3 was released in May 2002, and features advanced boot +GNU Mach 1.3 was released in May 2002, and features advanced boot script support, support for large disks (>= 10GB) and an improved console.

      -GNU Mach is used as the default microkernel in the GNU/Hurd system. +GNU Mach is used as the default microkernel in the GNU/Hurd system. It is compatible with other popular Mach distributions. The device drivers for block devices and network cards are taken from Linux 2.0.x kernel versions, and so a broad range of common hardware is supported.

      However, the Linux device drivers have been improved greatly since the -2.0.x version, and a new version of GNU Mach based on the OSKit +2.0.x version, and a new version of GNU Mach based on the OSKit library is being worked on, which uses newer drivers and in general has cleaner machine specific support code. diff --git a/help.html b/help.html index 8cdca956..0daafe0e 100644 --- a/help.html +++ b/help.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -26,7 +26,7 @@  
      ChangeLogs

      -The GNU Hurd
      +GNU Hurd
       
      Documentation
      Installation
      @@ -41,7 +41,7 @@ Installation
      Source Code
       
      -MiG
      +GNU MIG
       
      Source Code
       
      @@ -59,14 +59,14 @@

      Mailing lists

      If you have questions about the installation, how the Hurd works and -how it is used, or general questions concerning the Hurd, GNU Mach or +how it is used, or general questions concerning the Hurd, GNU Mach or the other packages maintained by the Hurd people, you can send an e-mail to the Help-Hurd <help-hurd@gnu.org> mailing list.

      -Bug reports for the GNU Hurd, GNU Mach and the other packages +Bug reports for the GNU Hurd, GNU Mach and the other packages maintained by the Hurd people should be sent to the Bug-Hurd <bug-hurd@gnu.org> mailing diff --git a/history.html b/history.html index 5b688d4b..5f559b17 100644 --- a/history.html +++ b/history.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -27,7 +27,7 @@  
      ChangeLogs

      -The GNU Hurd
      +GNU Hurd
       
      Documentation
      Installation
      @@ -42,7 +42,7 @@ Installation
      Source Code
       
      -MiG
      +GNU MIG
       
      Source Code
       
      @@ -145,9 +145,9 @@ works!

      News flash, Apr 94 -- it boots!
      -GNU Hurd announcement, Nov 93
      +GNU Hurd announcement, Nov 93
      -GNU Hurd announcement, May 91
      +GNU Hurd announcement, May 91
      diff --git a/hurd-announcements.html b/hurd-announcements.html index 3d89230f..d4944b57 100644 --- a/hurd-announcements.html +++ b/hurd-announcements.html @@ -73,10 +73,10 @@ works! News flash, Apr 94 -- it boots!
      -GNU Hurd announcement, Nov 93
      +GNU Hurd announcement, Nov 93
      -GNU Hurd announcement, May 91
      +GNU Hurd announcement, May 91
        diff --git a/hurd-folks.html b/hurd-folks.html index 93637440..0becf042 100644 --- a/hurd-folks.html +++ b/hurd-folks.html @@ -1,11 +1,11 @@ -GNU Hurd folks - GNU Project - Free Software Foundation (FSF) +GNU Hurd folks - GNU Project - Free Software Foundation (FSF) -

      GNU Hurd folks

      +

      GNU Hurd folks

       [image of a Hurd Metafont Logo] (jpeg 10k) @@ -14,7 +14,7 @@

      A number of people maintain their own unofficial GNU Hurd pages to describe their involvements. +HREF="hurd.html">GNU Hurd pages to describe their involvements. These are valuable sites because they help introduce more people to the Hurd, and to the GNU project. diff --git a/hurd-l4.html b/hurd-l4.html index d1aad633..62b164bd 100644 --- a/hurd-l4.html +++ b/hurd-l4.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -25,7 +25,7 @@  
      ChangeLogs

      -The GNU Hurd
      +GNU Hurd
       
      Documentation
      Installation
      @@ -40,7 +40,7 @@ Installation
      Source Code
       
      -MiG
      +GNU MIG
       
      Source Code
       
      @@ -50,7 +50,7 @@


      Table of Contents


      -

      The GNU Hurd on top of the L4 microkernel

      +

      The GNU Hurd on top of the L4 microkernel

      -The GNU Hurd on top of the L4 microkernel is an on-going effort to +The GNU Hurd on top of the L4 microkernel is an on-going effort to port the Hurd system to the L4Ka::Pistachio microkernel. diff --git a/hurd-paper.html b/hurd-paper.html index fbd34014..19ccef2f 100644 --- a/hurd-paper.html +++ b/hurd-paper.html @@ -120,7 +120,7 @@ But the wall between user and system remains; no user can cross it without special privilege.

      -The GNU Hurd, by contrast, is designed to make the area of +The GNU Hurd, by contrast, is designed to make the area of system code as limited as possible. diff --git a/hurd-talk.html b/hurd-talk.html index 756eee1c..497f1fb0 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -24,7 +24,7 @@  
      ChangeLogs

      -The GNU Hurd
      +GNU Hurd
       
      Documentation
      Installation
      @@ -39,7 +39,7 @@ Installation
      Source Code
       
      -MiG
      +GNU MIG
       
      Source Code
       
      @@ -117,12 +117,12 @@ this brings further advantages beside freedom.

      The Hurd is a POSIX compatible multi-server -system operating on top of the GNU Mach microkernel. +system operating on top of the GNU Mach microkernel.

      Topics:

        -
      • GNU Mach
      • +
      • GNU Mach
      • The Hurd
      • Development
      • Debian GNU/Hurd
      • @@ -131,10 +131,10 @@ Topics:

        The Hurd is a POSIX compatible multi-server system operating on top of -the GNU Mach Microkernel. +the GNU Mach Microkernel.

        -I will have to explain what GNU Mach is, so we start with that. Then +I will have to explain what GNU Mach is, so we start with that. Then I will talk about the Hurd's architecture. After that, I will give a short overview on the Hurd libraries. Finally, I will tell you how the Debian project is related to the Hurd. @@ -215,7 +215,7 @@ interface, it provides tasks and threads, a messaging system allowing synchronous and asynchronous operation and a complex interface for external pagers. It's certainly not one of the sexiest microkernels that exist today, but more like a big old mama. The GNU project -maintains its own version of Mach, called GNU Mach, which is based on +maintains its own version of Mach, called GNU Mach, which is based on Mach 4.0. In addition to the features contained in Mach 4.0, the GNU version contains many of the Linux 2.0 block device and network card drivers. @@ -355,7 +355,7 @@ To quote Thomas Bushnell, BSG, from his paper ``A new strategy towards OS design'' (1996):

        -The GNU Hurd, by contrast, is designed to make the area of system code +The GNU Hurd, by contrast, is designed to make the area of system code as limited as possible. Programs are required to communicate only with a few essential parts of the kernel; the rest of the system is replaceable dynamically. Users can use whatever parts of the @@ -382,7 +382,7 @@ channels.
      • Potentially many senders

      -MiG provides remote procedure calls on top of Mach IPC. RPCs look like +MIG provides remote procedure calls on top of Mach IPC. RPCs look like function calls to the user.

  • -The GNU Hurd
    +GNU Hurd
    About the Hurd
    About Microkernels
    @@ -67,9 +67,9 @@ apologize... please let us know so that we can update this list!
    Documentation
    Derek Upham
    -
    wrote the original GNU Hurd FAQ
    +
    wrote the original GNU Hurd FAQ
    Gordon Matzigkeit
    -
    reorganized and updated the GNU Hurd Reference Manual for release 0.3reorganized and updated the GNU Hurd Reference Manual for release 0.3
    Matthew C. Vernon
    wrote the ``Idiot's Guide'' for getting started with the Hurd
    diff --git a/auth.html b/auth.html index aa4e6b67..78b9f937 100644 --- a/auth.html +++ b/auth.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -22,7 +22,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -37,7 +37,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code

    @@ -990,7 +990,7 @@ Side Goal:

    -The Debian distribution of the GNU Hurd that I started in 1998 is +The Debian distribution of the GNU Hurd that I started in 1998 is supposed to become a complete binary distribution of the Hurd that is easy to install. diff --git a/hurd.html b/hurd.html index f6c870b4..36aca9a9 100644 --- a/hurd.html +++ b/hurd.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -33,7 +33,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -48,7 +48,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code
     
    @@ -69,7 +69,7 @@

    Introduction to the Hurd

    -The GNU Hurd is the GNU project's replacement for the Unix kernel. +The GNU Hurd is the GNU project's replacement for the Unix kernel. The Hurd is a collection of servers that run on the Mach microkernel to implement file systems, network protocols, file access control, and other features that are implemented by the Unix kernel or similar @@ -145,7 +145,7 @@ recursive acronyms.

    Status of the project

    -The Hurd, together with the GNU Mach microkernel, the GNU C Library +The Hurd, together with the GNU Mach microkernel, the GNU C Library and the other GNU and non-GNU programs in the GNU system, provide a rather complete and usable operating system today. It is not ready for production use, as there are still many bugs and missing features. diff --git a/install.html b/install.html index fee42941..ad3bf3b0 100644 --- a/install.html +++ b/install.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -26,7 +26,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -41,7 +41,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code
     
    @@ -57,7 +57,7 @@

    Latest version

    -The GNU Hurd is under active development. Because of that, there is +The GNU Hurd is under active development. Because of that, there is no `stable' version. We distribute the Hurd sources only through CVS at present.

    diff --git a/mig-download.html b/mig-download.html index 9595a065..48720c38 100644 --- a/mig-download.html +++ b/mig-download.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/REC-html40/strict.dtd"> -The GNU Hurd - GNU Project - Free Software Foundation (FSF) +The GNU Hurd - GNU Project - Free Software Foundation (FSF) @@ -25,7 +25,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -40,7 +40,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code
     
    @@ -58,17 +58,17 @@

    Latest Release

    -The latest release of MiG is version 1.3, 2002-03-08. It features: +The latest release of MIG is version 1.3, 2002-03-08. It features:

    -You can download the latest version of MiG from the GNU ftp server: +You can download the latest version of MIG from the GNU ftp server: