From a3cd3171ac1cd08447a7f300f402f86ea77518d5 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Tue, 11 Sep 2001 04:51:41 +0000 Subject: Adding my talk about the Hurd. --- hurd-talk.html | 968 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 968 insertions(+) create mode 100644 hurd-talk.html (limited to 'hurd-talk.html') diff --git a/hurd-talk.html b/hurd-talk.html new file mode 100644 index 00000000..559a8456 --- /dev/null +++ b/hurd-talk.html @@ -0,0 +1,968 @@ + + + +The GNU Hurd - GNU Project - Free Software Foundation (FSF) + + + + + + + + + + + + +
+ [image of the Hurd logo] +[ + English +] +
+The GNU Hurd

+Documentation
+Installation
+Getting Help
+Download
+Development
+History +
+
+

Table of Contents

+ +
+

Talk about the Hurd

+

+This talk about the Hurd was written by Marcus Brinkmann for +

    +
  • OSDEM, Brussels, 4. Feb 2001, +
  • Frühjahrsfachgespräche, Cologne, 2. Mar 2001 and +
  • Libre Software Meeting, Bordeaux, 4. Jul 2001. +
+ +

Introduction

+

+When we talk about free software, we usually refer to the free +software licenses. We also need relief from software patents, so our +freedom is not restricted by them. But there is a third type of +freedom we need, and that's user freedom. + +

+Expert users don't take a system as it is. They like to change the +configuration, and they want to run the software that works best for +them. That includes window managers as well as your favourite text +editor. But even on a GNU/Linux system consisting only of free +software, you can not easily use the filesystem format, network +protocol or binary format you want without special privileges. In +traditional unix systems, user freedom is severly restricted by the +system administrator. + +

+The Hurd removes these restrictions from the user. It provides an +user extensible system framework without giving up POSIX compatibility +and the unix security model. Throughout this talk, we will see that +this brings further advantages beside freedom. + +

Overview

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

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

+I will have to explain what GNU Mach is, so we start with that. Then +I will talk about the Hurds 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. + +

Historicals

+
+1983: Richard Stallman founds the GNU project.
+1988: Decision is made to use Mach 3.0 as the kernel.
+1991: Mach 3.0 is released under compatible license.
+1991: Thomas Bushnell, BSG, founds the Hurd project.
+1994: The Hurd boots the first time.
+1997: Version 0.2 of the Hurd is released.
+
+1998: Debian hurd-i386 archive is created.
+2001: Debian GNU/Hurd snapshot fills three CD images.
+
+

+When Richard Stallman founded the GNU project in 1983, he wanted to +write an operating system consisting only of free software. Very +soon, a lot of the essential tools were implemented, and released +under the GPL. However, one critical piece was missing: The kernel. +

+After considering several alternatives, it was decided not to write a +new kernel from scratch, but to start with the Mach microkernel. This +was in 1988, and it was not before 1991 that Mach was released under a +license allowing the GNU project to distribute it as a part of the +system. +

+In 1998, I started the Debian GNU/Hurd project, and in 2001 the number +of available CDs with Hurd packages fills three CD images. + +

Kernel Architectures

+
+Microkernel:
+Enforces resource managament (paging, scheduling)
+Manages tasks
+Implements message passing for IPC
+Provides basic hardware support
+
+Monolithic kernel:
+No message passing necessary.
+Rich set of features (filesystems, authentication, network sockets, POSIX interface, ...)
+
+

+Microkernels were very popular in the scientific world around that +time. They don't implement a full operating system, but only the +infrastructure needed to enable other tasks to implement most +features. In contrast, monolithical kernels like Linux contain +program code of device drivers, network protocols, process management, +authentication, file systems, POSIX compatible interfaces and much +more. +

+So what are the basic facilities a microkernel provides? In general, +this is resource management and message passing. Resource management, +because the kernel task needs to run in a special privileged mode of +the processor, to be able to manipulate the memory management unit and +perform context switches (also to manage interrupts). Message +passing, because without a basic communication facility the other +tasks could not interact to provide the system services. Some +rudimentary hardware device support is often necessary to bootstrap +the system. So the basic jobs of a microkernel are enforcing the +paging policy (the actual paging can be done by an external pager +task), scheduling, message passing and probably basic hardware device +support. +

+Mach was the obvious choice back then, as it provides a rich set of +interfaces to get the job done. Beside a rather brain-dead device +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 +Mach 3.0. In addition to the features contained in Mach 3.0, the GNU +version contains many of the Linux 2.0 block device and network card +drivers. +

+A complete treatment of the differences between a microkernel and +monolithical kernel design can not be provided here. But a couple of +advantages of a microkernel design are fairly obvious. + +

Micro vs Monolithic

+
+Microkernel
+Clear cut responsibilities
+Flexibility in operating system design, easier debugging
+More stability (less code to break)
+New features are not added to the kernel
+
+Monolithic kernel
+Intolerance or creeping featuritis
+Danger of spaghetti code
+Small changes can have far reaching side effects
+
+

+Because the system is split up into several components, clean +interfaces have to be developed, and the responsibilities of each part +of the system must be clear. +

+Once a microkernel is written, it can be used as the base for several +different operating systems. Those can even run in parallel which +makes debugging easier. When porting, most of the hardware dependant +code is in the kernel. +

+Much of the code that doesn't need to run in the special kernel mode +of the processor is not part of the kernel, so stability increases +because there is simply less code to break. +

+New features are not added to the kernel, so there is no need to hold +the barrier high for new operating system features. +

+Compare this to a monolithical kernel, where you either suffer from +creeping featuritis or you are intolerant of new features (we see both +in the Linux kernel). +

+Because in a monolithical kernel, all parts of the kernel can access +all data structures in other parts, it is more likely that short cuts +are used to avoid the overhead of a clean interface. This leads to a +simple speed up of the kernel, but also makes it less comprehensible +and more error prone. A small change in one part of the kernel can +break remote other parts. + +

Single Server vs Multi Server

+
+Single Server
+A single task implements the functionality of the operating system.
+Multi Server
+Many tasks cooperate to provide the system's functionality.
+One server provides only a small but well-defined part of the whole system.
+The responsibilities are distributed logically among the servers.
+
+A single-server system is comparable to a monolithic kernel system. It has similar
+advantages and disadvantages.
+
+

+There exist a couple of operating systems based on Mach, but they all +have the same disadvantages as a monolithical kernel, because those +operating systems are implemented in one single process running on top +of the kernel. This process provides all the services a monolithical +kernel would provide. This doesn't make a whole lot of sense (the +only advantage is that you can probably run several of such isolated +single servers on the same machine). Those systems are also called +single-server systems. The Hurd is the only usable multi-server +system on top of Mach. In the Hurd, there are many server programs, +each one responsible for a unique service provided by the operating +system. These servers run as Mach tasks, and communicate using the +Mach message passing facilities. One of them does only provide a +small part of the functionality of the system, but together they build +up a complete and functional POSIX compatible operating system. + +

Multi Server is superior, ...

+
+Any multi-server has advantages over single-server:
+
+Clear cut responsibilities
+More stability: If one server dies, all others remain
+Easier development cycle: Testing without reboot (or replacing running servers), debugging with gdb
+Easier to make changes and add new features
+
+

+Using several servers has many advantages, if done right. If a file +system server for a mounted partition crashes, it doesn't take down +the whole system. Instead the partition is "unmounted", and you can +try to start the server again, probably debugging it this time with +gdb. The system is less prone to errors in individual components, and +over-all stability increases. The functionality of the system can be +extended by writing and starting new servers dynamically. (Developing +these new servers is easier for the reasons just mentioned.) +

+But even in a multi-server system the barrier between the system and +the users remains, and special privileges are needed to cross it. We +have not achieved user freedom yet. + +

The Hurd even more so.

+
+The Hurd goes beyond all this, and allows users to write and run their servers, too!
+
+Users can replace system servers dynamically with their own implementations.
+Users can decide what parts of the remainder of the system they want to use.
+Users can extend the functionality of the system.
+No mutual trust necessary to make use of other users services.
+Security of the system is not harmed by trusting users services.
+
+

+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 +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 +remainder of the system they want, and can easily add components +themselves for other users to take advantage of. No mutual trust need +exist in advance for users to use each other's services, nor does the +system become vulnerable by trusting the services of arbitrary users. +
+ + +So the Hurd is a set of servers running on top of the Mach +micro-kernel, providing a POSIX compatible and extensible operating +system. What servers are there? What functionality do they provide, +and how do they cooperate? + + +

Mach Inter Process Communication

+
+Ports are message queues which can be used as one-way communication channels.
+
+Port rights are receive, send or send-once
+Exactly one receiver
+Potentially many senders
+
+MiG provides remote procedure calls on top of Mach IPC. RPCs look like function calls to the
+user.
+
+

+Inter-process communication in Mach is based on the ports concept. A +port is a message queue, used as a one-way communication channel. In +addition to a port, you need a port right, which can be a send right, +receive right, or send-once right. Depending on the port right, you +are allowed to send messages to the server, receive messages from it, +or send just one single message. +

+For every port, there exists exactly one task holding the receive +right, but there can be no or many senders. The send-once right is +useful for clients expecting a response message. They can give a +send-once right to the reply port along with the message. The kernel +guarantees that at some point, a message will be received on the reply +oprt (this can be a notification that the server destroyed the +send-once right). +

+You don't need to know much about the format a message takes to be +able to use the Mach IPC. The Mach interface generator mig hides the +details of composing and sending a message, as well as receiving the +reply message. To the user, it just looks like a function call, but +in truth the message could be sent over a network to a server running +on a different computer. The set of remote procedure calls a server +provides is the public interface of this server. + + +

How to get a port?

+
+Traditional Mach:
+
+Nameserver provides ports to all registered servers.
+The nameserver port itself is provided by Mach.
+Like a phone book: One list.
+
+The Hurd:
+
+The filesystem is used as the server namespace.
+Root directory port is inserted into each task.
+The C library finds other ports with hurd_file_name_lookup, performing a pathname resolution.
+Like a tree of phone books.
+
+

+So how does one get a port to a server? You need something like a +phone book for server ports, or otherwise you can only talk to +yourself. In the original Mach system, a special nameserver is +dedicated to that job. A task could get a port to the nameserver from +the Mach kernel and ask it for a port (with send right) to a server +that registered itself with the nameserver at some earlier time. +

+In the Hurd, there is no nameserver. Instead, the filesystem is used +as the server namespace. This works because there is always a root +filesystem in the Hurd (remember that the Hurd is a POSIX compatible +system); this is an assumption the people who developed Mach couldn't +make, so they had to choose a different strategy. You can use the +function hurd_file_name_lookup, which is part of the C library, to get +a port to the server belonging to a filename. Then you can start to +send messages to the server in the usual way. + +

Example of hurd_file_name_lookup

+
+mach_port_t identity;
+mach_port_t pwserver;
+kern_return_t err;
+
+pwserver = hurd_file_name_lookup
+                ("/servers/password");
+
+err = password_check_user (pwserver,
+                           0 /* root */, "supass",
+                           &identity);
+
+

+As a concrete example, the special filename +/servers/password can be used to request a port to the +Hurd password server, which is responsible to check user provided +passwords. +

+(explanation of the example) + +

Pathname resolution example

+
+Task: Lookup /mnt/readme.txt where /mnt has a mounted filesystem.
+
+The C library asks the root filesystem server about /mnt/readme.txt.
+The root filesystem returns a port to the mnt filesystem server (matching /mnt) and the retry name
+/readme.txt.
+The C library asks the mnt filesystem server about /readme.txt.
+The mnt filesystem server returns a port to itself and records that this port refers to the regular
+ file /readme.txt.
+
+

+The C library itself does not have a full list of all available +servers. Instead pathname resolution is used to traverse through a +tree of servers. In fact, filesystems themselves are implemented by +servers (let us ignore the chicken and egg problem here). So all the +C library can do is to ask the root filesystem server about the +filename provided by the user (assuming that the user wants to resolve +an absolute path), using the dir_lookup RPC. If the +filename refers to a regular file or directory on the filesystem, the +root filesystem server just returns a port to itself and records that +this port corresponds to the file or directory in question. But if a +prefix of the full path matches the path of a server the root +filesystem knows about, it returns to the C library a port to this +server and the remaining part of the pathname that couldn't be +resolved. The C library than has to retry and query the other server +about the remaining path component. Eventually, the C library will +either know that the remaining path can't be resolved by the last +server in the list, or get a valid port to the server in question. + +

Mapping the POSIX Interface

+
+Filedescriptor          Port to server
+                        providing the file
+
+fd = open(name,...)     dir_lookup(..,name,..,&port)
+                        [pathname resolution]
+
+read(fd, ...)           io_read(port, ...)
+
+write(fd, ...)          io_write(port, ...)
+
+fstat(fd, ...)          io_stat(port, ...)
+
+...
+
+

+It should by now be obvious that the port returned by the server can +be used to query the files status, content and other information from +the server, if good remote procedure calls to do that are defined and +implemented by it. This is exactly what happens. Whenever a file is +opened using the C libraries open() call, the C library +uses the above pathname resolution to get a port to a server providing +the file. Then it wraps a file descriptor around it. So in the Hurd, +for every open file descriptor there is a port to a server providing +this file. Many other C library calls like read() and +write() just call a corresponding RPC using the port +associated with the file descriptor. + +

File System Servers

+
+Provide file and directory services for ports (and more).
+These ports are returned by a directory lookup.
+Translate filesystem accesses through their root path (hence the name translator).
+The C library maps the POSIX file and directory interface (and more) to RPCs to
+the filesystem servers ports, but also does work on its own.
+Any user can install file system servers on inodes they own.
+
+

+So we don't have a single phone book listing all servers, but rather a +tree of servers keeping track of each other. That's really like +calling your friend and asking for the phone number of the blond girl +at the party yesterday. He might refer you to a friend who hopefully +knows more about it. Then you have to retry. +

+This mechanism has huge advantages over a single nameserver. First, +note that standard unix permissions on directories can be used to +restrict access to a server (this requires that the filesystems +providing those directories behave). You just have to set the +permissions of a parent directory accordingly and provide no other way +to get a server port. +

+But there are much deeper implications. Most of all, a pathname never +directly refers to a file, it refers to a port of a server. That +means that providing a regular file with static data is just one of +the many options the server has to service requests on the file port. +A server can also create the data dynamically. For example, a server +associated with /dev/random can provide new random data on every +io_read() on the port to it. A server associated with /dev/fortune +can provide a new fortune cookie on every open(). +

+While a regular filesystem server will just serve the data as stored +in a filesystem on disk, there are servers providing purely virtual +information, or a mixture of both. It is up to the server to behave +and provide consistent and useful data on each remote procedure call. +If it does not, the results may not match the expectations of the user +and confuse him. +

+A footnote from the Hurd info manual: +

+(1) You are lost in a maze of twisty little filesystems, all +alike.... +
+

+Because a server installed in the filesystem namespace translates all +filesystem operations that go through its root path, such a server is +also called "active translator". You can install translators using +the settrans command with the -a option. + +

Active vs Passive

+
+Active Translators:
+
+"settrans -a /cdrom /hurd/isofs /dev/hd2"
+Are running filesystem servers.
+Are attached to the root node they translate.
+Run as a normal process.
+Go away with every reboot, or even time out.
+
+

+Many translator settings remain constant for a long time. It would be +very lame to always repeat the same couple of dozens settrans calls +manually or at boot time. So the Hurd provides a filesystem extension +that allows to store translator settings inside the filesystem and let +the filesystem servers do the work to start those servers on demand. +Such translator settings are called "passive translators". A passive +translator is really just a command line string stored in an inode of +the filesystem. If during a pathname resolution a server encounters +such a passive translator, and no active translator does exist already +(for this node), it will use this string to start up a new translator +for this inode, and then let the C library continue with the path +resolution as described above. Passive translators are installed with +settrans using the -p option (which is alrady the default). + +
+Passive Translators:
+
+"settrans /mnt /hurd/ext2fs /dev/hd1s1"
+Are stored as command strings into an inode.
+Are used to start a new active translator if there isn't one.
+Startup is transparent to the user.
+Startup happens the first time the server is needed.
+Are permanent across reboots (like file data).
+
+

+So passive translators also serve as a sort of automounting feature, +because no manual interaction is required. The server start up is +deferred until the service is need, and it is transparent to the user. +

+When starting up a passive translator, it will run as a normal process +with the same user and group id as those of the underlying inode. Any +user is allowed to install passive and active translators on inodes +that he owns. This way the user can install new servers into the +global namespace (for example, in his home or tmp directory) and thus +extend the functionality of the system (recall that servers can +implement other remote procedure calls beside those used for files and +directories). A careful design of the trusted system servers makes +sure that no permissions leak out. +

+In addition, users can provide their own implementations of some of +the system servers instead the system default. For example, they can +use their own exec server to start processes. The user specific exec +server could for example start java programs transparently (without +invoking the interpreter manually). This is done by setting the +environment variable EXECSERVERS. The systems default exec server +will evaluate this environment variable and forward the RPC to each of +the servers listed in turn, until some server accepts it and takes +over. The system default exec server will only do this if there are +no security implications. (XXX There are other ways to start new +programs than by using the system exec server. Those are still +available.) +

+Let's take a closer look at some of the Hurd servers. It was already +mentioned that only few system servers are mandatory for users. To +establish your identity within the Hurd system, you have to +communicate with the trusted systems authentication server auth. To +put the system administrator into control over the system components, +the process server does some global bookkeeping. +

+But even these servers can be ignored. However, registration with the +authentication server is the only way to establish your identity +towards other system servers. Likewise, only tasks registered as +processes with the process server can make use of its services. + +

Authentication

+
+A user identity is just a port to an authserver. The auth server stores four set of ids for it:
+effective user ids
+effective group ids
+available user ids
+available group ids
+Basic properties:
+Any of these can be empty.
+A 0 among the user ids identifies the superuser.
+Effective ids are used to check if the user has the permission.
+Available ids can be turned into effective ids on user request.
+
+

+

+The Hurd auth server is used to establish the identity of a user for a +server. Such an identity (which is just a port to the auth server) +consists of a set of effective user ids, a set of effective group ids, +a set of available user ids and a set of available group ids. Any of +these sets can be empty. + +

Operations on authentication ports

+
+The auth server provides the following operations on ports:
+
+Merge the ids of two ports into a new one.
+
+Return a new port containing a subset of the ids in a port.
+
+Create a new port with arbitrary ids (superuser only).
+
+Establish a trusted connection between users and servers.
+
+

+If you have two identities, you can merge them and request an identity +consisting of the unions of the sets from the auth server. You can +also create a new identity consisting only of subsets of an identity +you already have. What you can't do is extending your sets, unless +you are the superuser which is denoted by having the user id 0. + +

Establishing trusted connections

+
+User provides a rendevous port to the server (with io_reauthenticate).
+User calls auth_user_authenticate on the authentication port (his identity), passing the rendevous
+port.
+Server calls auth_server_authenticate on its authentication port (to a trusted auth server), passin
+g the rendevous port and the server port.
+If both authentication servers are the same, it can match the rendevous ports and return the server
+ port to the user and the user ids to the server.
+
+

+Finally, the auth server can establish the identity of a user for a +server. This is done by exchanging a server port and a user identity +if both match the same rendevous port. The server port will be +returned to the user, while the server is informed about the id sets +of the user. The server can then serve or reject subsequent RPCs by +the user on the server port, based on the identity it received from +the auth server. +

+Anyone can write a server conforming to the auth protocol, but of +course all system servers use a trusted system auth server to +establish the identity of a user. If the user is not using the system +auth server, matching the rendevous port will fail and no server port +will be returned to the user. Because this practically requires all +programs to use the same auth server, the system auth server is +minimal in every respect, and additional functionality is moved +elsewhere, so user freedom is not unnecessarily restricted. + +

Password Server

+
+The password server `/servers/password' runs as
+root and returns a new authentication port in
+exchange for a unix password.
+
+The ids corresponding to the authentication
+port match the unix user and group ids.
+
+Support for shadow passwords is implemented here.
+
+

+The password server sits at /servers/password and runs as root. It +can hand out ports to the auth server in exchange for a unix password, +matching it against the password or shadow file. Several utilities +make use of this server, so they don't need to be setuid root. + +

Process Server

+
+The superuser must remain control over user tasks, so:
+All mach tasks are associated with a PID in the system default proc server.
+Optionally, user tasks can store:
+Their environment variables.
+Their argument vector.
+A port, which others can request based on the PID (like a nameserver).
+Also implemented in the proc server:
+Sessions and process groups.
+Global configuration not in Mach, like hostname, hostid, system version.
+
+

+The process server is responsible for some global bookkeeping. As +such it has to be trusted and is not replaceable by the user. +However, a user is not required to use any of its service. In that +case the user will not be able to take advantage of the POSIXish +appearance of the Hurd. +

+The Mach Tasks are not as heavy as POSIX processes. For example, +there is no concept of process groups or sessions in Mach. The proc +server fills in the gap. It provides a PID for all Mach tasks, and +also stores the argument line, environment variables and other +information about a process (if the mach tasks provide them, which is +usually the case if you start a process with the default +fork()/exec()). A process can also register a message port with the +proc server, which can then be requested by anyone. So the proc +server also functions as a nameserver using the process id as the +name. +

+The proc server also stores some other miscellaneous information not +provided by Mach, like the hostname, hostid and system version. +Finally, it provides facilities to group processes and their ports +together, as well as to convert between pids, process server ports and +mach task ports. +
+User tasks not registering themselve with proc only have a PID assigned.
+
+Users can run their own proc server in addition
+to the system default, at least for those parts
+of the interface that don't require superuser privileges.
+
+

+Although the system default proc server can't be avoided (all mach +tasks spawned by users will get a pid assigned, so the system +administrator can control them), users can run their own additional +process servers if they want, implementing the features not requiring +superuser privileges. + +

Filesystems

+
+Store based filesystems
+ext2fs
+ufs
+isofs (iso9660, RockRidge, GNU extensions)
+fatfs (under development)
+Network file systems
+nfs
+ftpfs
+Miscellaneous
+hostmux
+usermux
+tmpfs (under development)
+
+

+We already talked about translators and the file system service they +provide. Currently, we have translators for the ext2, ufs and iso9660 +filesystems. We also have an nfs client and an ftp filesystem. +Especially the latter is intriguing, as it provides transparent access +to ftp servers in the filesystem. Programs can start to move away +from implementing a plethora of network protocols, as the files are +directly available in the filesystem through the standard POSIX file +interface. + + +

Developing the Hurd

+
+Over a dozen libraries support the development of new servers.
+
+For special server types highly specialized
+libraries require only the implementation of a
+number of callback functions.
+
+Use libdiskfs for store based filesystems.
+Use libnetfs for network filesystems, also for virtual filesystems.
+Use libtrivfs for simple filesystems providing only a single file or directory.
+
+

+The Hurd server protocols are complex enough to allow for the +implementation of a POSIX compatible system with GNU extensions. +However, a lot of code can be shared by all or at least similar +servers. For example, all storage based filesystems need to be able to +read and write to a store medium splitted in blocks. The Hurd comes +with several libraries which make it easy to implement new servers. +Also, there are already a lot of examples of different server types in +the Hurd. This makes writing a new server easier. +

+libdiskfs is a library that supports writing store based filesystems +like ext2fs or ufs. It is not very useful for filesystems which are +purely virtual, like /proc or files in /dev. +

+libnetfs is intended for filesystems which provide a rich directory +hierarchy, but don't use a backing store (for example ftpfs, nfs). +

+libtrivfs is intended for filesystems which just provide a single +inode or directory. Most servers which are not intended to provide a +filesystem but other services (like /servers/password) use it to +provide a dummy file, so that file operations on the servers node will +not return errors. But it can also be used to provide meaningful data +in a single file, like a device store or a character device. + +

Store Abstraction

+
+Another very useful library is libstore, which is used by all store based filesystems.
+It provides a store media abstraction.
+A store consists of a store class and a name
+(which itself can sometimes contain stores).
+
+Primitive store classes:
+device store like device:hd2, device:hd0s1, device:fd0
+file store like file:/tmp/disk_image
+task store like task:PID
+zero store like zero:4m (like /dev/zero, of size 4 MB)
+
+
+Composed store classes:
+copy store like copy:zero:4m
+gunzip/bunzip2 store like gunzip:device:fd0
+concat store like concat:device:hd0s2:device:hd1s5
+ileave store (RAID-0(2))
+remap store like remap:10+20,50+:file:/tmp/blocks
+...
+
+Wanted: A similar abstraction for streams (based on channels), which can be used by
+network and character device servers.
+
+

+

+libstore provides a store abstraction, which is used by all store +based filesystems. The store is determined by a type and a name, but +some store types modify another store rather than providing a new +store, and thus stores can be stacked. For example, the device store +type expects a Mach device, but the remap store expects a list of +blocks to pick from another store, like remap:1+:device:hd2, which +would pick all blocks from hd2 but the first one, which skipped. +Because this functionality is provided in a library, all libstore +using filesystems support many different store kinds, and adding a new +store type is enough to make all store based filesystems support it. + +

Debian GNU/Hurd

+
+Goal:
+Provide a binary distribution of the Hurd that is easy to install.
+Constraints:
+Use the same source packages as Debian GNU/Linux.
+Use the same infrastructure:
+Policy
+Archive
+Bug tracking system
+Release process
+Side Goal:
+Prepare Debian for the future:
+More flexibility in the base system
+Identify dependencies on the Linux kernel
+
+

+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. + +

Status of the Debian GNU/Hurd binary archive

+See +http://buildd.debian.org/stats/graph.png +for the most current version of the statistic. + +

Status of the Debian infrastructure

+
+Plus:
+Source packages can identify build and host OS using dpkg-architecure.
+
+Minus:
+The binary architecture field is insufficient.
+The BTS has no architecture tag.
+The policy/FHS need (small) Hurd specific extensions.
+
+

+While good compatibiity can be achieved at the source level, +the binary packages can not always express their relationship +to the available architectures sufficiently. +

+For example, the Linux version of makedev is binary-all, where +a binary-all-linux relationship would be more appropriate. +

+More work has to be done here to fix the tools. + +

Status of the Debian Source archive

+
+Most packages just work.
+Maintainers are usually responsive and cooperative.
+Turtle, the autobuilder, crunches through the whole list right now.
+Common pitfalls are POSIX incompatibilities:
+Upstream:
+Unconditional use of PATH_MAX (MAXPATHLEN), MAXHOSTNAMELEN.
+Unguarded use of Linux kernel features.
+Use of legacy interfaces (sys_errlist, termio).
+Debian:
+Unguarded activation of extensions available with Linux.
+Low quality patches.
+Assuming GNU/Linux in package scripts.
+
+

+Most packages are PSIX compatible and can be compiled without +changes on the Hurd. The maintainers of the Debian source packages +are usually very kind, responsiver and helpful. +

+The Turtle autobuilder software (http://turtle.sourceforge.net) +builds the Debian packages on the Hurd automatically. + +

Debian GNU/Hurd: Good idea, bad idea?

+
+Upstream benefits:
+Software packages become more portable.
+Debian benefits:
+Debian becomes more portable.
+Maintainers learn about portability and other systems.
+Debian gets a lot of public recognition.
+
+GNU/Hurd benefits:
+Large software base.
+Great infrastructure.
+Nice community to partner with.
+
+

+The sheet lists the advantages of all groups involved. + +

End

+
+Join us at
+http://hurd.gnu.org/
+http://www.debian.org/ports/hurd
+http://www.hurd-fr.org
+
+

+List of contacts. + + + + +

+Some of these links are at other web sites not maintained by the +FSF. The FSF is not responsible for the content of these other web sites. + +

+ +
+ +[ + 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) 2001 Marcus Brinkmann <marcus@gnu.org> +

+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 1e0a59699bf885faa4f2ff7b95db0c398f803b17 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Tue, 11 Sep 2001 06:06:23 +0000 Subject: Everywhere: s/ - [image of the Hurd logo] + [image of the Hurd logo] [ English ] diff --git a/docs.html b/docs.html index 6e108dea..3b5c880f 100644 --- a/docs.html +++ b/docs.html @@ -10,7 +10,7 @@
- [image of the Hurd logo] + [image of the Hurd logo] [ English ] diff --git a/download.html b/download.html index 6505c05f..de7737ac 100644 --- a/download.html +++ b/download.html @@ -10,7 +10,7 @@
- [image of the Hurd logo] + [image of the Hurd logo] [ English ] diff --git a/help.html b/help.html index 7278da2f..7857802b 100644 --- a/help.html +++ b/help.html @@ -10,7 +10,7 @@
- [image of the Hurd logo] + [image of the Hurd logo] [ English ] diff --git a/history.html b/history.html index 14d0b3fb..6d076a5b 100644 --- a/history.html +++ b/history.html @@ -10,7 +10,7 @@ diff --git a/old_hurd_faq.html b/old_hurd_faq.html index 00a49827..b310824b 100644 --- a/old_hurd_faq.html +++ b/old_hurd_faq.html @@ -1,10 +1,10 @@ -The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 +The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13 -
The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13
+
The Unofficial (and no longer maintained) GNU Hurd FAQ, Version 0.13
 
 Contributions by:
 
@@ -22,7 +22,7 @@ Original Document by: Derek Upham 
 
 Contents:
 
-Q0.  Where can I get the Unofficial GNU Hurd FAQ?
+Q0.  Where can I get the Unofficial GNU Hurd FAQ?
 Q1.  What is the Hurd?
 Q2.  Where can I get a copy?
 Q3.  Why bother writing a new OS when we have Linux and 386/BSD?
@@ -35,7 +35,7 @@ Q9.  What sort of system would we have if the Hurd was bootable today?
 
 ==============================
 
-Q0.  Where can I get the Unofficial GNU Hurd FAQ?
+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
@@ -160,7 +160,7 @@ 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
+   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
diff --git a/related-projects.html b/related-projects.html
index edd896ad..c9928baf 100644
--- a/related-projects.html
+++ b/related-projects.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
 
@@ -72,11 +72,11 @@ sites.

  • GNU/Hurd on Alpha
  • The purpose of this project is to provide a working implementation of -the GNU Hurd for the Alpha architecture. +the GNU Hurd for the Alpha architecture.
    http://savannah.gnu.org/projects/hurd-alpha/ -

  • The GNU Hurd on top of the L4 microkernel
  • +
  • The GNU Hurd on top of the L4 microkernel
  • The purpose of this project is to port the Hurd system to the L4 microkernel.
    diff --git a/whatsnew.html b/whatsnew.html index f4320291..14ceea3b 100644 --- a/whatsnew.html +++ b/whatsnew.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) @@ -31,7 +31,7 @@  
    ChangeLogs

    -The GNU Hurd
    +GNU Hurd
     
    Documentation
    Installation
    @@ -46,7 +46,7 @@ Installation
    Source Code
     
    -MiG
    +GNU MIG
     
    Source Code
     
    @@ -54,9 +54,9 @@

    @@ -66,7 +66,7 @@ code to pthreads. The Toronto Hurd Users Group meets again: The University of WaterlooComputer Science Club will -be hosting talks on the GNU Hurd on October 26 by Marcus Brinkmann and +be hosting talks on the GNU Hurd on October 26 by Marcus Brinkmann and Neal Walfield. There will also be a GnuPG keysigning before Marcus's talk. Please email Ryan @@ -93,7 +93,7 @@ at thug@gnu.org
    03 October 2002
    -
    Marcus Brinkmann speaks about the GNU Hurd at "Reflections | +
    Marcus Brinkmann speaks about the GNU Hurd at "Reflections | Projections 2002", the National Student ACM Conference at the University of Urbana-Champaign, Illinois. The @@ -162,7 +162,7 @@ This distribution is only for x86 PC machines. Volunteers interested in ports to other architectures are eagerly sought.

    More information about GNU -Mach 1.3 is available on the GNU Mach web page. +Mach 1.3 is available on the GNU Mach web page.

    @@ -223,14 +223,14 @@ programming!
    08 March 2002
    We are pleased to announce version 1.3 of the GNU distribution of the -Mach 3.0 interface generator `MiG'. It may be found in the file +Mach 3.0 interface generator `MIG'. It may be found in the file http://ftp.gnu.org/gnu/mig/mig-1.3.tar.gz (about 145 KB compressed).

    Diffs from version 1.2 are in http://ftp.gnu.org/gnu/mig/mig-1.2-1.3.diff.gz (about 6 KB compressed, 15 KB uncompressed). Relative to version 1.2, version 1.3 contains only some minor fixes.

    -You need this tool to compile the GNU Mach and Hurd distributions, and +You need this tool to compile the GNU Mach and Hurd distributions, and to compile GNU libc for the Hurd.

    Bug reports relating to this distribution should be sent to @@ -249,7 +249,7 @@ HREF="http://mail.gnu.org/mailman/listinfo/hurd-devel-readers"> Hurd-devel-readers. It is the read-only version of Hurd-devel.

    Hurd-devel is a mailing list for detailed discussions -of design and implementation issues in the GNU Hurd; it is an internal +of design and implementation issues in the GNU Hurd; it is an internal low-volume list restricted to the core developers of the Hurd. While the web-based archive of Hurd-devel has always been public, the new mailing list -- cgit v1.2.3 From 6e3628dc79127b3ddf5c0058ff8532764abc5c56 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 20 Jan 2007 15:38:11 +0000 Subject: Unify linking to the GNU Hurd and GNU Mach documentation in the menu. --- auth.html | 4 ++-- changelogs.html | 4 ++-- devel.html | 4 ++-- docs.html | 4 ++-- download.html | 4 ++-- gnumach-download.html | 4 ++-- gnumach-install.html | 4 ++-- gnumach.html | 4 ++-- help.html | 4 ++-- history.html | 4 ++-- hurd-l4.html | 4 ++-- hurd-talk.html | 4 ++-- hurd.html | 4 ++-- install.html | 4 ++-- mig-download.html | 4 ++-- mig.html | 4 ++-- related-projects.html | 4 ++-- whatsnew.html | 4 ++-- whatsold.html | 4 ++-- 19 files changed, 38 insertions(+), 38 deletions(-) (limited to 'hurd-talk.html') diff --git a/auth.html b/auth.html index 78b9f937..676442ee 100644 --- a/auth.html +++ b/auth.html @@ -21,10 +21,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -33,7 +34,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/changelogs.html b/changelogs.html index 0038c742..5eb70e22 100644 --- a/changelogs.html +++ b/changelogs.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/devel.html b/devel.html index ab4e7e2e..fcd2bb19 100644 --- a/devel.html +++ b/devel.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/docs.html b/docs.html index 8ca9e851..562e3ac6 100644 --- a/docs.html +++ b/docs.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/download.html b/download.html index ac3b4069..d2d718f5 100644 --- a/download.html +++ b/download.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/gnumach-download.html b/gnumach-download.html index 81222bc9..97e23738 100644 --- a/gnumach-download.html +++ b/gnumach-download.html @@ -24,10 +24,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -36,7 +37,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/gnumach-install.html b/gnumach-install.html index 06d4f6ad..d42e6be1 100644 --- a/gnumach-install.html +++ b/gnumach-install.html @@ -24,10 +24,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -36,7 +37,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/gnumach.html b/gnumach.html index 2a983c76..4ba0e9f7 100644 --- a/gnumach.html +++ b/gnumach.html @@ -26,10 +26,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -38,7 +39,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/help.html b/help.html index 7d80e122..273a67ab 100644 --- a/help.html +++ b/help.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/history.html b/history.html index 5f559b17..bde11d8e 100644 --- a/history.html +++ b/history.html @@ -26,10 +26,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -38,7 +39,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/hurd-l4.html b/hurd-l4.html index 62b164bd..475c1f46 100644 --- a/hurd-l4.html +++ b/hurd-l4.html @@ -24,10 +24,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -36,7 +37,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/hurd-talk.html b/hurd-talk.html index 497f1fb0..630bbc7d 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -23,10 +23,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -35,7 +36,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/hurd.html b/hurd.html index 22acf884..b0eb9f80 100644 --- a/hurd.html +++ b/hurd.html @@ -33,10 +33,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -45,7 +46,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/install.html b/install.html index ad3bf3b0..b1517dae 100644 --- a/install.html +++ b/install.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/mig-download.html b/mig-download.html index 48720c38..afb6c1c5 100644 --- a/mig-download.html +++ b/mig-download.html @@ -24,10 +24,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -36,7 +37,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/mig.html b/mig.html index 3f77d28d..49e19a37 100644 --- a/mig.html +++ b/mig.html @@ -26,10 +26,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -38,7 +39,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/related-projects.html b/related-projects.html index c9928baf..6fdc6826 100644 --- a/related-projects.html +++ b/related-projects.html @@ -25,10 +25,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -37,7 +38,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/whatsnew.html b/whatsnew.html index 9a490a24..4fe9fb0c 100644 --- a/whatsnew.html +++ b/whatsnew.html @@ -30,10 +30,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -42,7 +43,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    diff --git a/whatsold.html b/whatsold.html index fc0219a8..238cd4cd 100644 --- a/whatsold.html +++ b/whatsold.html @@ -23,10 +23,11 @@ What's New
     
    ChangeLogs

    +Documentation

    GNU Hurd
     
    -Documentation
    Installation
    Getting Help
    Source Code
    @@ -35,7 +36,6 @@  
    GNU Mach
     
    -Documentation
    Installation
    Source Code
     
    -- cgit v1.2.3

    - [image of the Hurd logo] + [image of the Hurd logo] [ English ] diff --git a/hurd-and-linux.html b/hurd-and-linux.html index 2a61fc6f..b860c6df 100644 --- a/hurd-and-linux.html +++ b/hurd-and-linux.html @@ -1,23 +1,20 @@ - - - The Hurd and Linux - GNU Project - Free Software Foundation (FSF) - - - + +The Hurd and Linux - GNU Project - Free Software Foundation (FSF) + + +

    The Hurd and Linux

    [ -English -| French + English ] -

    by Richard Stallman. @@ -80,7 +77,7 @@ Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

    Updated: -7 April 2000 neel +Last modified: Tue Sep 11 05:31:11 CEST 2001


    diff --git a/hurd-announcements.html b/hurd-announcements.html index b7b2358c..3d89230f 100644 --- a/hurd-announcements.html +++ b/hurd-announcements.html @@ -17,7 +17,7 @@

    Current and Past Announcements

    These are all the announcements made over the years. Most of them were -either to gnu.announce or Hurd interest +either sent to gnu.announce or Hurd interest mailing lists.
    diff --git a/hurd-folks.html b/hurd-folks.html index ccefd81c..93637440 100644 --- a/hurd-folks.html +++ b/hurd-folks.html @@ -47,7 +47,7 @@ The FSF is not responsible for the content of these other web sites. Hurd pages.
  • UCHIYAMA Yasushi has ported - XFree86 to the Hurd. + XFree86 to the Hurd. @@ -71,7 +71,7 @@ Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

    Updated: - 5 Sep 1998 gord +Last modified: Tue Sep 11 08:01:49 CEST 2001


    diff --git a/hurd-talk.html b/hurd-talk.html index 559a8456..feca0835 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -10,7 +10,7 @@
    - [image of the Hurd logo] + [image of the Hurd logo] [ English ] diff --git a/hurd.html b/hurd.html index dd7947f8..7c877803 100644 --- a/hurd.html +++ b/hurd.html @@ -10,7 +10,7 @@
    - [image of the Hurd logo] + [image of the Hurd logo] [ English ] @@ -129,7 +129,7 @@ The Hurd is completely self-contained (you can compile all parts of the Hurd system from the Hurd itself). You can run several Hurd systems in parallel, and debug even critical servers in another Hurd with gdb. You can run the X window system, applications that use it, -and advanced server applications like Apache. +and advanced server applications like the Apache webserver.

    On the negative side, the support for character devices (like sound cards) and other hardware is mostly missing. Although the POSIX diff --git a/install.html b/install.html index 77d283e5..ccec4252 100644 --- a/install.html +++ b/install.html @@ -10,7 +10,7 @@
    - [image of the Hurd logo] + [image of the Hurd logo] [ English ] -- cgit v1.2.3 From 712db7c5fd485ca28a645efb1d8ef80b0714538d Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Wed, 26 Sep 2001 19:16:51 +0000 Subject: Replace
    with
    and remove one dangling . weblint clean (only warnings about missing image size). --- devel.html | 2 +- docs.html | 2 +- download.html | 2 +- help.html | 2 +- history.html | 2 +- hurd-talk.html | 4 +--- hurd.html | 3 +-- install.html | 2 +- 8 files changed, 8 insertions(+), 11 deletions(-) (limited to 'hurd-talk.html') diff --git a/devel.html b/devel.html index 18f7278d..bee788a9 100644 --- a/devel.html +++ b/devel.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    diff --git a/docs.html b/docs.html index 1e13a8d4..1af5ccf7 100644 --- a/docs.html +++ b/docs.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    diff --git a/download.html b/download.html index de7737ac..9e0286bb 100644 --- a/download.html +++ b/download.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    diff --git a/help.html b/help.html index 7857802b..e0478b9a 100644 --- a/help.html +++ b/help.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    diff --git a/history.html b/history.html index 6d076a5b..27523a39 100644 --- a/history.html +++ b/history.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    diff --git a/hurd-talk.html b/hurd-talk.html index feca0835..b8fbc5d3 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    @@ -602,7 +602,6 @@ Effective ids are used to check if the user has the permission. Available ids can be turned into effective ids on user request.

    -

    The Hurd auth server is used to establish the identity of a user for a server. Such an identity (which is just a port to the auth server) consists of a set of effective user ids, a set of effective group ids, @@ -810,7 +809,6 @@ Wanted: A similar abstraction for streams (based on channels), which can be used network and character device servers.

    -

    libstore provides a store abstraction, which is used by all store based filesystems. The store is determined by a type and a name, but some store types modify another store rather than providing a new diff --git a/hurd.html b/hurd.html index 7c877803..08b4c7ba 100644 --- a/hurd.html +++ b/hurd.html @@ -18,7 +18,7 @@

    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    @@ -26,7 +26,6 @@ Download
    Development
    History -

    diff --git a/install.html b/install.html index ccec4252..4ee9db4c 100644 --- a/install.html +++ b/install.html @@ -18,7 +18,7 @@
    -The GNU Hurd
    +The GNU Hurd
     
    Documentation
    Installation
    -- cgit v1.2.3 From 1c817dcb71616bec9682861f49e568773e5285a8 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Sat, 6 Oct 2001 22:50:31 +0000 Subject: gnumach-doc: New directory. In that directory: Makefile, fdl.texi, gpl.texi, mach.html, mach.ps, mach.texi, mach_1.html, mach_10.html, mach_11.html, mach_12.html, mach_13.html, mach_14.html, mach_15.html, mach_16.html, mach_17.html, mach_2.html, mach_3.html, mach_4.html, mach_5.html, mach_6.html, mach_7.html, mach_8.html, mach_9.html, mach_abt.html, mach_fot.html, mach_ovr.html, mach_toc.html, version.texi: New files. Those contain the source and generated files of the GNU Mach reference manual. gnumach-docs.html, gnumach-download.html, gnumach-install.html, gnumach.html: New files, containing information about gnumach. devel.html, docs.html, download.html, faq-gen.pl, faq.en.html, faq.fr.html, faq.ja.html, help.html, history.html, hurd-talk.html, hurd.html install.html: Add menu entries for the above new files, and some other minor modifications. --- devel.html | 8 ++- docs.html | 8 ++- download.html | 8 ++- gnumach-download.html | 119 ++++++++++++++++++++++++++++++++++++++ gnumach-install.html | 114 ++++++++++++++++++++++++++++++++++++ gnumach.html | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++ help.html | 28 +++++---- history.html | 8 ++- hurd-talk.html | 8 ++- hurd.html | 8 ++- install.html | 8 ++- 11 files changed, 456 insertions(+), 17 deletions(-) create mode 100644 gnumach-download.html create mode 100644 gnumach-install.html create mode 100644 gnumach.html (limited to 'hurd-talk.html') diff --git a/devel.html b/devel.html index 47dfae14..f7a8685d 100644 --- a/devel.html +++ b/devel.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    diff --git a/docs.html b/docs.html index 41a303d0..62b87eae 100644 --- a/docs.html +++ b/docs.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    diff --git a/download.html b/download.html index f259a32f..4273436c 100644 --- a/download.html +++ b/download.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    diff --git a/gnumach-download.html b/gnumach-download.html new file mode 100644 index 00000000..0988605a --- /dev/null +++ b/gnumach-download.html @@ -0,0 +1,119 @@ + + + +The GNU Hurd - GNU Project - Free Software Foundation (FSF) + + + + + + + + + + + + +
    + [image of the Hurd logo] +[ + English +] +
    +The GNU Hurd

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

    +GNU Mach

    +Documentation
    +Installation
    +Source Code
    +
    +
    +

    Table of Contents

    + +
    + +

    CVS repository

    +

    +The GNU Mach source code is managed in the version control system CVS. You can check out the CVS +repository through anonymous (pserver) CVS with the following +instruction set. When prompted for a password for anoncvs, +simply press the Enter key. + +

    +Source tree: +cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/hurd login

    +cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/hurd co gnumach + +

    Updates from within the module's directory do not need the -d parameter. + +

    Archived snapshots

    +

    +The whole source code of GNU Mach is also available as a single +compressed TAR file via FTP. The file ftp://alpha.gnu.org/gnu/cvs/gnumach.tgz +[3.7M] contains a snapshot of the GNU Mach source repository +which is remade daily. + +

    Browsing the code

    +

    +You can also browse the CVS +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. + +

    + +
    + +[ + 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) 2001 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$ + +


    + + diff --git a/gnumach-install.html b/gnumach-install.html new file mode 100644 index 00000000..d3784378 --- /dev/null +++ b/gnumach-install.html @@ -0,0 +1,114 @@ + + + +The GNU Hurd - GNU Project - Free Software Foundation (FSF) + + + + + + + + + + + + +
    + [image of the Hurd logo] +[ + English +] +
    +The GNU Hurd

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

    +GNU Mach

    +Documentation
    +Installation
    +Source Code
    +
    +
    +

    Table of Contents

    + +
    + +

    Latest version

    +

    +The last stable version of GNU Mach is 1.2, 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 +interface generator. If you cross-compile gnumach, you need a +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 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

    +

    +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 +system, you need one that supports the multiboot standard. The +bootloader of the GNU system is GNU +GRUB, which supports a broad range of operating systems including +GNU/Hurd. +

    + +
    + +[ + 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) 2001 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$ + +


    + + diff --git a/gnumach.html b/gnumach.html new file mode 100644 index 00000000..bacff9b6 --- /dev/null +++ b/gnumach.html @@ -0,0 +1,156 @@ + + + +The GNU Hurd - GNU Project - Free Software Foundation (FSF) + + + + + + + + + + + + +
    + [image of the Hurd logo] +[ + English +] +
    +The GNU Hurd

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

    +GNU Mach

    +Documentation
    +Installation
    +Source Code
    +
    +
    +

    +

    Table of Contents

    + +

    +


    + +

    Introduction to GNU Mach

    +

    +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 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 +probably will, be ported to other hardware architectures or other +microkernels 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 +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 +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. +
    +
    it's free software
    +
    +Anybody can use, modify, and redistribute it under the terms of the +GNU General Public License (GPL).
    + +
    it's built to survive
    +
    +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 +code of the microkernel can remain comparatively stable. +
    +
    it's scalable
    +
    +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). +
    +
    it exists
    +
    +The Mach microkernel is real software that works Right Now. It is not +a research or a proposal. You don't have to wait at all before you +can start using and developing it. Mach has been used in many +operating systems in the past, usually as the base for a single UNIX +server. In the GNU system, Mach is the base of a functional +multi-server operating system, the Hurd. +
    +
    + +

    Status of the project

    +

    +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 Mach based on the OSKit library is +being worked on, which uses newer drivers and in general has cleaner +machine specific support code. +

    + +
    + +[ + 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) 2001 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$ + +


    + + diff --git a/help.html b/help.html index cb892fc0..bfa7a96b 100644 --- a/help.html +++ b/help.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    @@ -39,16 +45,18 @@

    Mailing lists

    If you have questions about the installation, how the Hurd works and -how it is used, or general questions concerning the Hurd, you can send -an e-mail to the -Help-Hurd -<help-hurd@gnu.org> -mailing list. +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 should be sent to the -Bug-Hurd -<bug-hurd@gnu.org> -mailing list. +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 +list.

    All e-mails concerning the Debian GNU/Hurd binary distribution should go to the Debian GNU/Hurd diff --git a/history.html b/history.html index b8c94f35..9b604696 100644 --- a/history.html +++ b/history.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code


    diff --git a/hurd-talk.html b/hurd-talk.html index b8fbc5d3..eff7fc03 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -25,7 +25,13 @@ Getting Help
    Download
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    diff --git a/hurd.html b/hurd.html index b4143e3c..c9217e77 100644 --- a/hurd.html +++ b/hurd.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    diff --git a/install.html b/install.html index b75532da..0b45845c 100644 --- a/install.html +++ b/install.html @@ -25,7 +25,13 @@ Getting Help
    Source Code
    Development
    -History +History

    +GNU Mach

    +Documentation
    +Installation
    +Source Code

    -- cgit v1.2.3 From 11dd61649425237ba0836a978e6ad7ce2261d05c Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Tue, 9 Oct 2001 12:54:36 +0000 Subject: Format changes by Ognyan Kulev, with syntax corrections by me. Some bug fixes. --- hurd-talk.html | 831 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 498 insertions(+), 333 deletions(-) (limited to 'hurd-talk.html') diff --git a/hurd-talk.html b/hurd-talk.html index eff7fc03..39757777 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -101,38 +101,47 @@ and the unix security model. Throughout this talk, we will see that this brings further advantages beside freedom.

    Overview

    -
    +
    + +

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

    Topics: -GNU Mach -The Hurd -Development -Debian GNU/Hurd -

    +
      +
    • GNU Mach
    • +
    • The Hurd
    • +
    • Development
    • +
    • Debian GNU/Hurd
    • +
    +
    +

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

    I will have to explain what GNU Mach is, so we start with that. Then -I will talk about the Hurds architecture. After that, I will give a +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.

    Historicals

    -
    -1983: Richard Stallman founds the GNU project.
    -1988: Decision is made to use Mach 3.0 as the kernel.
    -1991: Mach 3.0 is released under compatible license.
    -1991: Thomas Bushnell, BSG, founds the Hurd project.
    -1994: The Hurd boots the first time.
    -1997: Version 0.2 of the Hurd is released.
    -
    -1998: Debian hurd-i386 archive is created.
    -2001: Debian GNU/Hurd snapshot fills three CD images.
    -
    + +
    +
      +
    • 1983: Richard Stallman founds the GNU project.
    • +
    • 1988: Decision is made to use Mach 3.0 as the kernel.
    • +
    • 1991: Mach 3.0 is released under compatible license.
    • +
    • 1991: Thomas Bushnell, BSG, founds the Hurd project.
    • +
    • 1994: The Hurd boots the first time.
    • +
    • 1997: Version 0.2 of the Hurd is released.

    • +
    • 1998: Debian hurd-i386 archive is created.
    • +
    • 2001: Debian GNU/Hurd snapshot fills three CD images.
    • +
    +
    +

    When Richard Stallman founded the GNU project in 1983, he wanted to write an operating system consisting only of free software. Very @@ -149,17 +158,23 @@ In 1998, I started the Debian GNU/Hurd project, and in 2001 the number of available CDs with Hurd packages fills three CD images.

    Kernel Architectures

    -
    +
    +

    Microkernel: -Enforces resource managament (paging, scheduling) -Manages tasks -Implements message passing for IPC -Provides basic hardware support - +

      +
    • Enforces resource management (paging, scheduling)
    • +
    • Manages tasks
    • +
    • Implements message passing for IPC
    • +
    • Provides basic hardware support
    • +
    +

    Monolithic kernel: -No message passing necessary. -Rich set of features (filesystems, authentication, network sockets, POSIX interface, ...) -

    +
      +
    • No message passing necessary
    • +
    • Rich set of features (filesystems, authentication, network + sockets, POSIX interface, ...)
    • +
    +

    Microkernels were very popular in the scientific world around that time. They don't implement a full operating system, but only the @@ -189,7 +204,7 @@ 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 -Mach 3.0. In addition to the features contained in Mach 3.0, the GNU +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.

    @@ -198,18 +213,23 @@ monolithical kernel design can not be provided here. But a couple of advantages of a microkernel design are fairly obvious.

    Micro vs Monolithic

    -
    +
    +

    Microkernel -Clear cut responsibilities -Flexibility in operating system design, easier debugging -More stability (less code to break) -New features are not added to the kernel - +

      +
    • Clear cut responsibilities +
    • Flexibility in operating system design, easier debugging
    • +
    • More stability (less code to break)
    • +
    • New features are not added to the kernel
    • +
    +

    Monolithic kernel -Intolerance or creeping featuritis -Danger of spaghetti code -Small changes can have far reaching side effects -

    +
      +
    • Intolerance or creeping featuritis
    • +
    • Danger of spaghetti code
    • +
    • Small changes can have far reaching side effects
    • +
    +

    Because the system is split up into several components, clean interfaces have to be developed, and the responsibilities of each part @@ -239,17 +259,25 @@ and more error prone. A small change in one part of the kernel can break remote other parts.

    Single Server vs Multi Server

    -
    +
    +

    Single Server -A single task implements the functionality of the operating system. +

      +
    • A single task implements the functionality of the operating system.
    • +
    +

    Multi Server -Many tasks cooperate to provide the system's functionality. -One server provides only a small but well-defined part of the whole system. -The responsibilities are distributed logically among the servers. - -A single-server system is comparable to a monolithic kernel system. It has similar +

      +
    • Many tasks cooperate to provide the system's functionality.
    • +
    • One server provides only a small but well-defined part of the + whole system.
    • +
    • The responsibilities are distributed logically among the servers.
    • +
    +

    +A single-server system is comparable to a monolithic kernel system. It +has similar advantages and disadvantages. -

    +

    There exist a couple of operating systems based on Mach, but they all have the same disadvantages as a monolithical kernel, because those @@ -267,38 +295,49 @@ small part of the functionality of the system, but together they build up a complete and functional POSIX compatible operating system.

    Multi Server is superior, ...

    -
    +
    +

    Any multi-server has advantages over single-server: - -Clear cut responsibilities -More stability: If one server dies, all others remain -Easier development cycle: Testing without reboot (or replacing running servers), debugging with gdb -Easier to make changes and add new features -

    +
      +
    • Clear cut responsibilities
    • +
    • More stability: If one server dies, all others remain
    • +
    • Easier development cycle: Testing without reboot (or replacing + running servers), debugging with gdb
    • +
    • Easier to make changes and add new features +
    +

    Using several servers has many advantages, if done right. If a file system server for a mounted partition crashes, it doesn't take down -the whole system. Instead the partition is "unmounted", and you can -try to start the server again, probably debugging it this time with -gdb. The system is less prone to errors in individual components, and -over-all stability increases. The functionality of the system can be -extended by writing and starting new servers dynamically. (Developing -these new servers is easier for the reasons just mentioned.) +the whole system. Instead the partition is "unmounted", and +you can try to start the server again, probably debugging it this time +with gdb. The system is less prone to errors in individual +components, and over-all stability increases. The functionality of +the system can be extended by writing and starting new servers +dynamically. (Developing these new servers is easier for the reasons +just mentioned.)

    But even in a multi-server system the barrier between the system and the users remains, and special privileges are needed to cross it. We have not achieved user freedom yet.

    The Hurd even more so.

    -
    -The Hurd goes beyond all this, and allows users to write and run their servers, too!
    -
    -Users can replace system servers dynamically with their own implementations.
    -Users can decide what parts of the remainder of the system they want to use.
    -Users can extend the functionality of the system.
    -No mutual trust necessary to make use of other users services.
    -Security of the system is not harmed by trusting users services.
    -
    +
    +

    +The Hurd goes beyond all this, and allows users to write and run their +servers, too! +

      +
    • Users can replace system servers dynamically with their own + implementations.
    • +
    • Users can decide what parts of the remainder of the system they + want to use.
    • +
    • Users can extend the functionality of the system.
    • +
    • No mutual trust necessary to make use of other users + services.
    • +
    • Security of the system is not harmed by trusting users + services.
    • +
    +

    To quote Thomas Bushnell, BSG, from his paper ``A new strategy towards OS @@ -314,24 +353,26 @@ exist in advance for users to use each other's services, nor does the system become vulnerable by trusting the services of arbitrary users. - -So the Hurd is a set of servers running on top of the Mach +

    +So the Hurd is a set of servers running on top of the Mach micro-kernel, providing a POSIX compatible and extensible operating system. What servers are there? What functionality do they provide, -and how do they cooperate? - +and how do they cooperate?

    Mach Inter Process Communication

    -
    -Ports are message queues which can be used as one-way communication channels.
    -
    -Port rights are receive, send or send-once
    -Exactly one receiver
    -Potentially many senders
    -
    -MiG provides remote procedure calls on top of Mach IPC. RPCs look like function calls to the
    -user.
    -
    +
    +

    +Ports are message queues which can be used as one-way communication +channels. +

      +
    • Port rights are receive, send or send-once
    • +
    • Exactly one receiver
    • +
    • Potentially many senders
    • +
    +

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

    Inter-process communication in Mach is based on the ports concept. A port is a message queue, used as a one-way communication channel. In @@ -345,7 +386,7 @@ right, but there can be no or many senders. The send-once right is useful for clients expecting a response message. They can give a send-once right to the reply port along with the message. The kernel guarantees that at some point, a message will be received on the reply -oprt (this can be a notification that the server destroyed the +port (this can be a notification that the server destroyed the send-once right).

    You don't need to know much about the format a message takes to be @@ -358,20 +399,24 @@ provides is the public interface of this server.

    How to get a port?

    -
    +
    +

    Traditional Mach: - -Nameserver provides ports to all registered servers. -The nameserver port itself is provided by Mach. -Like a phone book: One list. - +

      +
    • Nameserver provides ports to all registered servers.
    • +
    • The nameserver port itself is provided by Mach.
    • +
    • Like a phone book: One list.
    • +
    +

    The Hurd: - -The filesystem is used as the server namespace. -Root directory port is inserted into each task. -The C library finds other ports with hurd_file_name_lookup, performing a pathname resolution. -Like a tree of phone books. -

    +
      +
    • The filesystem is used as the server namespace.
    • +
    • Root directory port is inserted into each task.
    • +
    • The C library finds other ports with hurd_file_name_lookup, + performing a pathname resolution.
    • +
    • Like a tree of phone books.
    • +
    +

    So how does one get a port to a server? You need something like a phone book for server ports, or otherwise you can only talk to @@ -390,7 +435,7 @@ a port to the server belonging to a filename. Then you can start to send messages to the server in the usual way.

    Example of hurd_file_name_lookup

    -
    +
     mach_port_t identity;
     mach_port_t pwserver;
     kern_return_t err;
    @@ -411,16 +456,22 @@ passwords.
     (explanation of the example)
     
     

    Pathname resolution example

    -
    +
    +

    Task: Lookup /mnt/readme.txt where /mnt has a mounted filesystem. - -The C library asks the root filesystem server about /mnt/readme.txt. -The root filesystem returns a port to the mnt filesystem server (matching /mnt) and the retry name -/readme.txt. -The C library asks the mnt filesystem server about /readme.txt. -The mnt filesystem server returns a port to itself and records that this port refers to the regular - file /readme.txt. -

    +
      +
    • The C library asks the root filesystem server about + /mnt/readme.txt.
    • +
    • The root filesystem returns a port to the mnt filesystem server + (matching /mnt) and the retry name + /readme.txt.
    • +
    • The C library asks the mnt filesystem server about + /readme.txt.
    • +
    • The mnt filesystem server returns a port to itself and records + that this port refers to the regular file + /readme.txt.
    • +
    +

    The C library itself does not have a full list of all available servers. Instead pathname resolution is used to traverse through a @@ -441,21 +492,30 @@ either know that the remaining path can't be resolved by the last server in the list, or get a valid port to the server in question.

    Mapping the POSIX Interface

    -
    -Filedescriptor          Port to server
    -                        providing the file
    -
    -fd = open(name,...)     dir_lookup(..,name,..,&port)
    -                        [pathname resolution]
    -
    -read(fd, ...)           io_read(port, ...)
    -
    -write(fd, ...)          io_write(port, ...)
    -
    -fstat(fd, ...)          io_stat(port, ...)
    -
    -...
    -
    +
    + + + + + + + + + + + + + + + + + + + +
    FiledescriptorPort to server providing the file
    fd = open(name,...)dir_lookup(..,name,..,&port)
    +[pathname resolution]
    read(fd, ...)io_read(port, ...)
    write(fd, ...)io_write(port, ...)
    fstat(fd, ...)io_stat(port, ...)
    ...
    +

    It should by now be obvious that the port returned by the server can be used to query the files status, content and other information from @@ -470,14 +530,18 @@ this file. Many other C library calls like read() and associated with the file descriptor.

    File System Servers

    -
    -Provide file and directory services for ports (and more).
    -These ports are returned by a directory lookup.
    -Translate filesystem accesses through their root path (hence the name translator).
    -The C library maps the POSIX file and directory interface (and more) to RPCs to
    -the filesystem servers ports, but also does work on its own.
    -Any user can install file system servers on inodes they own.
    -
    +
    +
      +
    • Provide file and directory services for ports (and more).
    • +
    • These ports are returned by a directory lookup.
    • +
    • Translate filesystem accesses through their root path (hence the + name translator).
    • +
    • The C library maps the POSIX file and directory interface (and + more) to RPCs to the filesystem servers ports, but also does work on + its own.
    • +
    • Any user can install file system servers on inodes they own.
    • +
    +

    So we don't have a single phone book listing all servers, but rather a tree of servers keeping track of each other. That's really like @@ -497,9 +561,10 @@ directly refers to a file, it refers to a port of a server. That means that providing a regular file with static data is just one of the many options the server has to service requests on the file port. A server can also create the data dynamically. For example, a server -associated with /dev/random can provide new random data on every -io_read() on the port to it. A server associated with /dev/fortune -can provide a new fortune cookie on every open(). +associated with /dev/random can provide new random data +on every io_read() on the port to it. A server +associated with /dev/fortune can provide a new fortune +cookie on every open().

    While a regular filesystem server will just serve the data as stored in a filesystem on disk, there are servers providing purely virtual @@ -517,18 +582,20 @@ alike.... Because a server installed in the filesystem namespace translates all filesystem operations that go through its root path, such a server is also called "active translator". You can install translators using -the settrans command with the -a option. +the settrans command with the -a option.

    Active vs Passive

    -
    +
    +

    Active Translators: - -"settrans -a /cdrom /hurd/isofs /dev/hd2" -Are running filesystem servers. -Are attached to the root node they translate. -Run as a normal process. -Go away with every reboot, or even time out. -

    +
      +
    • "settrans -a /cdrom /hurd/isofs /dev/hd2"
    • +
    • Are running filesystem servers.
    • +
    • Are attached to the root node they translate.
    • +
    • Run as a normal process.
    • +
    • Go away with every reboot, or even time out.
    • +
    +

    Many translator settings remain constant for a long time. It would be very lame to always repeat the same couple of dozens settrans calls @@ -542,18 +609,22 @@ such a passive translator, and no active translator does exist already (for this node), it will use this string to start up a new translator for this inode, and then let the C library continue with the path resolution as described above. Passive translators are installed with -settrans using the -p option (which is alrady the default). +settrans using the -p option (which is already the +default). -
    +
    +

    Passive Translators: - -"settrans /mnt /hurd/ext2fs /dev/hd1s1" -Are stored as command strings into an inode. -Are used to start a new active translator if there isn't one. -Startup is transparent to the user. -Startup happens the first time the server is needed. -Are permanent across reboots (like file data). -

    +
      +
    • "settrans /mnt /hurd/ext2fs /dev/hd1s1"
    • +
    • Are stored as command strings into an inode.
    • +
    • Are used to start a new active translator if there isn't + one.
    • +
    • Startup is transparent to the user.
    • +
    • Startup happens the first time the server is needed.
    • +
    • Are permanent across reboots (like file data).
    • +
    +

    So passive translators also serve as a sort of automounting feature, because no manual interaction is required. The server start up is @@ -574,20 +645,21 @@ the system servers instead the system default. For example, they can use their own exec server to start processes. The user specific exec server could for example start java programs transparently (without invoking the interpreter manually). This is done by setting the -environment variable EXECSERVERS. The systems default exec server -will evaluate this environment variable and forward the RPC to each of -the servers listed in turn, until some server accepts it and takes -over. The system default exec server will only do this if there are -no security implications. (XXX There are other ways to start new -programs than by using the system exec server. Those are still -available.) +environment variable EXECSERVERS. The systems default +exec server will evaluate this environment variable and forward the +RPC to each of the servers listed in turn, until some server accepts +it and takes over. The system default exec server will only do this +if there are no security implications. (XXX There are other ways to +start new programs than by using the system exec server. Those are +still available.)

    Let's take a closer look at some of the Hurd servers. It was already mentioned that only few system servers are mandatory for users. To establish your identity within the Hurd system, you have to -communicate with the trusted systems authentication server auth. To -put the system administrator into control over the system components, -the process server does some global bookkeeping. +communicate with the trusted systems authentication server +auth. To put the system administrator into control over +the system components, the process server does some global +bookkeeping.

    But even these servers can be ignored. However, registration with the authentication server is the only way to establish your identity @@ -595,18 +667,27 @@ towards other system servers. Likewise, only tasks registered as processes with the process server can make use of its services.

    Authentication

    -
    -A user identity is just a port to an authserver. The auth server stores four set of ids for it:
    -effective user ids
    -effective group ids
    -available user ids
    -available group ids
    +
    +

    +A user identity is just a port to an authserver. The auth server +stores four set of ids for it: +

      +
    • effective user ids
    • +
    • effective group ids
    • +
    • available user ids
    • +
    • available group ids
    • +
    +

    Basic properties: -Any of these can be empty. -A 0 among the user ids identifies the superuser. -Effective ids are used to check if the user has the permission. -Available ids can be turned into effective ids on user request. -

    +
      +
    • Any of these can be empty.
    • +
    • A 0 among the user ids identifies the superuser.
    • +
    • Effective ids are used to check if the user has the + permission.
    • +
    • Available ids can be turned into effective ids on user + request.
    • +
    +

    The Hurd auth server is used to establish the identity of a user for a server. Such an identity (which is just a port to the auth server) @@ -615,17 +696,16 @@ a set of available user ids and a set of available group ids. Any of these sets can be empty.

    Operations on authentication ports

    -
    +
    +

    The auth server provides the following operations on ports: - -Merge the ids of two ports into a new one. - -Return a new port containing a subset of the ids in a port. - -Create a new port with arbitrary ids (superuser only). - -Establish a trusted connection between users and servers. -

    +
      +
    • Merge the ids of two ports into a new one.
    • +
    • Return a new port containing a subset of the ids in a port.
    • +
    • Create a new port with arbitrary ids (superuser only).
    • +
    • Establish a trusted connection between users and servers.
    • +
    +

    If you have two identities, you can merge them and request an identity consisting of the unions of the sets from the auth server. You can @@ -634,19 +714,24 @@ you already have. What you can't do is extending your sets, unless you are the superuser which is denoted by having the user id 0.

    Establishing trusted connections

    -
    -User provides a rendevous port to the server (with io_reauthenticate).
    -User calls auth_user_authenticate on the authentication port (his identity), passing the rendevous
    -port.
    -Server calls auth_server_authenticate on its authentication port (to a trusted auth server), passin
    -g the rendevous port and the server port.
    -If both authentication servers are the same, it can match the rendevous ports and return the server
    - port to the user and the user ids to the server.
    -
    +
    +
      +
    • User provides a rendezvous port to the server (with + io_reauthenticate).
    • +
    • User calls auth_user_authenticate on the + authentication port (his identity), passing the rendezvous port.
    • +
    • Server calls auth_server_authenticate on its + authentication port (to a trusted auth server), passing the + rendezvous port and the server port.
    • +
    • If both authentication servers are the same, it can match the + rendezvous ports and return the server port to the user and the user + ids to the server.
    • +
    +

    Finally, the auth server can establish the identity of a user for a server. This is done by exchanging a server port and a user identity -if both match the same rendevous port. The server port will be +if both match the same rendezvous port. The server port will be returned to the user, while the server is informed about the id sets of the user. The server can then serve or reject subsequent RPCs by the user on the server port, based on the identity it received from @@ -655,41 +740,54 @@ the auth server. Anyone can write a server conforming to the auth protocol, but of course all system servers use a trusted system auth server to establish the identity of a user. If the user is not using the system -auth server, matching the rendevous port will fail and no server port +auth server, matching the rendezvous port will fail and no server port will be returned to the user. Because this practically requires all programs to use the same auth server, the system auth server is minimal in every respect, and additional functionality is moved elsewhere, so user freedom is not unnecessarily restricted.

    Password Server

    -
    -The password server `/servers/password' runs as
    -root and returns a new authentication port in
    -exchange for a unix password.
    -
    -The ids corresponding to the authentication
    -port match the unix user and group ids.
    -
    +
    +

    +The password server /servers/password runs as root and +returns a new authentication port in exchange for a unix password. +

    +The ids corresponding to the authentication port match the unix user +and group ids. +

    Support for shadow passwords is implemented here. -

    +

    -The password server sits at /servers/password and runs as root. It -can hand out ports to the auth server in exchange for a unix password, -matching it against the password or shadow file. Several utilities -make use of this server, so they don't need to be setuid root. +The password server sits at /servers/password and runs as +root. It can hand out ports to the auth server in exchange for a unix +password, matching it against the password or shadow file. Several +utilities make use of this server, so they don't need to be setuid +root.

    Process Server

    -
    +
    +

    The superuser must remain control over user tasks, so: -All mach tasks are associated with a PID in the system default proc server. +

      +
    • All mach tasks are associated with a PID in the system default + proc server.
    • +
    +

    Optionally, user tasks can store: -Their environment variables. -Their argument vector. -A port, which others can request based on the PID (like a nameserver). +

      +
    • Their environment variables.
    • +
    • Their argument vector.
    • +
    • A port, which others can request based on the PID (like a + nameserver).
    • +
    +

    Also implemented in the proc server: -Sessions and process groups. -Global configuration not in Mach, like hostname, hostid, system version. -

    +
      +
    • Sessions and process groups.
    • +
    • Global configuration not in Mach, like hostname, hostid, system + version.
    • +
    +

    The process server is responsible for some global bookkeeping. As such it has to be trusted and is not replaceable by the user. @@ -703,45 +801,55 @@ server fills in the gap. It provides a PID for all Mach tasks, and also stores the argument line, environment variables and other information about a process (if the mach tasks provide them, which is usually the case if you start a process with the default -fork()/exec()). A process can also register a message port with the -proc server, which can then be requested by anyone. So the proc -server also functions as a nameserver using the process id as the -name. +fork()/exec()). A process can also register +a message port with the proc server, which can then be requested by +anyone. So the proc server also functions as a nameserver using the +process id as the name.

    The proc server also stores some other miscellaneous information not provided by Mach, like the hostname, hostid and system version. Finally, it provides facilities to group processes and their ports together, as well as to convert between pids, process server ports and mach task ports. -
    +
    +

    User tasks not registering themselve with proc only have a PID assigned. - -Users can run their own proc server in addition -to the system default, at least for those parts -of the interface that don't require superuser privileges. -

    -Although the system default proc server can't be avoided (all mach +Users can run their own proc server in addition to the system default, +at least for those parts of the interface that don't require superuser +privileges. +

    +

    +Although the system default proc server can't be avoided (all Mach tasks spawned by users will get a pid assigned, so the system administrator can control them), users can run their own additional process servers if they want, implementing the features not requiring superuser privileges.

    Filesystems

    -
    +
    +

    Store based filesystems -ext2fs -ufs -isofs (iso9660, RockRidge, GNU extensions) -fatfs (under development) +

      +
    • ext2fs
    • +
    • ufs
    • +
    • isofs (iso9660, RockRidge, GNU extensions)
    • +
    • fatfs (under development)
    • +
    +

    Network file systems -nfs -ftpfs +

      +
    • nfs
    • +
    • ftpfs
    • +
    +

    Miscellaneous -hostmux -usermux -tmpfs (under development) -

    +
      +
    • hostmux
    • +
    • usermux
    • +
    • tmpfs (under development)
    • +
    +

    We already talked about translators and the file system service they provide. Currently, we have translators for the ext2, ufs and iso9660 @@ -754,17 +862,21 @@ interface.

    Developing the Hurd

    -
    +
    +

    Over a dozen libraries support the development of new servers. - +

    For special server types highly specialized libraries require only the implementation of a number of callback functions. - -Use libdiskfs for store based filesystems. -Use libnetfs for network filesystems, also for virtual filesystems. -Use libtrivfs for simple filesystems providing only a single file or directory. -

    +
      +
    • Use libdiskfs for store based filesystems.
    • +
    • Use libnetfs for network filesystems, also for + virtual filesystems.
    • +
    • Use libtrivfs for simple filesystems providing only + a single file or directory.
    • +
    +

    The Hurd server protocols are complex enough to allow for the implementation of a POSIX compatible system with GNU extensions. @@ -775,93 +887,123 @@ with several libraries which make it easy to implement new servers. Also, there are already a lot of examples of different server types in the Hurd. This makes writing a new server easier.

    -libdiskfs is a library that supports writing store based filesystems -like ext2fs or ufs. It is not very useful for filesystems which are -purely virtual, like /proc or files in /dev. +libdiskfs is a library that supports writing store based +filesystems like ext2fs or ufs. It is not very useful for filesystems +which are purely virtual, like /proc or files in +/dev.

    -libnetfs is intended for filesystems which provide a rich directory -hierarchy, but don't use a backing store (for example ftpfs, nfs). +libnetfs is intended for filesystems which provide a rich +directory hierarchy, but don't use a backing store (for example ftpfs, +nfs).

    -libtrivfs is intended for filesystems which just provide a single -inode or directory. Most servers which are not intended to provide a -filesystem but other services (like /servers/password) use it to -provide a dummy file, so that file operations on the servers node will -not return errors. But it can also be used to provide meaningful data -in a single file, like a device store or a character device. +libtrivfs is intended for filesystems which just provide +a single inode or directory. Most servers which are not intended to +provide a filesystem but other services (like +/servers/password) use it to provide a dummy file, so +that file operations on the servers node will not return errors. But +it can also be used to provide meaningful data in a single file, like +a device store or a character device.

    Store Abstraction

    -
    -Another very useful library is libstore, which is used by all store based filesystems.
    -It provides a store media abstraction.
    -A store consists of a store class and a name
    -(which itself can sometimes contain stores).
    -
    +
    +

    +Another very useful library is libstore, which is used by all store +based filesystems. It provides a store media abstraction. A store +consists of a store class and a name (which itself can sometimes +contain stores). +

    Primitive store classes: -device store like device:hd2, device:hd0s1, device:fd0 -file store like file:/tmp/disk_image -task store like task:PID -zero store like zero:4m (like /dev/zero, of size 4 MB) -

    -
    +
      +
    • device store like device:hd2, device:hd0s1, device:fd0
    • +
    • file store like file:/tmp/disk_image
    • +
    • task store like task:PID
    • +
    • zero store like zero:4m (like /dev/zero, of size 4 MB)
    • +
    +
    +
    +

    Composed store classes: -copy store like copy:zero:4m -gunzip/bunzip2 store like gunzip:device:fd0 -concat store like concat:device:hd0s2:device:hd1s5 -ileave store (RAID-0(2)) -remap store like remap:10+20,50+:file:/tmp/blocks -... - -Wanted: A similar abstraction for streams (based on channels), which can be used by -network and character device servers. -

    +
      +
    • copy store like copy:zero:4m
    • +
    • gunzip/bunzip2 store like gunzip:device:fd0
    • +
    • concat store like concat:device:hd0s2:device:hd1s5
    • +
    • ileave store (RAID-0(2))
    • +
    • remap store like remap:10+20,50+:file:/tmp/blocks
    • +
    • ...
    • +
    +

    +Wanted: A similar abstraction for streams (based on channels), which +can be used by network and character device servers. +

    -libstore provides a store abstraction, which is used by all store -based filesystems. The store is determined by a type and a name, but -some store types modify another store rather than providing a new -store, and thus stores can be stacked. For example, the device store -type expects a Mach device, but the remap store expects a list of -blocks to pick from another store, like remap:1+:device:hd2, which +libstore provides a store abstraction, which is used by +all store based filesystems. The store is determined by a type and a +name, but some store types modify another store rather than providing +a new store, and thus stores can be stacked. For example, the device +store type expects a Mach device, but the remap store expects a list +of blocks to pick from another store, like remap:1+:device:hd2, which would pick all blocks from hd2 but the first one, which skipped. Because this functionality is provided in a library, all libstore using filesystems support many different store kinds, and adding a new store type is enough to make all store based filesystems support it.

    Debian GNU/Hurd

    -
    +
    +

    Goal: -Provide a binary distribution of the Hurd that is easy to install. +

      +
    • Provide a binary distribution of the Hurd that is easy to + install.
    • +
    +

    Constraints: -Use the same source packages as Debian GNU/Linux. -Use the same infrastructure: -Policy -Archive -Bug tracking system -Release process +

      +
    • Use the same source packages as Debian GNU/Linux.
    • +
    • Use the same infrastructure: +
        +
      • Policy
      • +
      • Archive
      • +
      • Bug tracking system
      • +
      • Release process
      • +
    • +
    +

    Side Goal: -Prepare Debian for the future: -More flexibility in the base system -Identify dependencies on the Linux kernel -

    +
      +
    • Prepare Debian for the future: +
        +
      • More flexibility in the base system
      • +
      • Identify dependencies on the Linux kernel
      • +
    • +
    +

    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.

    Status of the Debian GNU/Hurd binary archive

    +

    See http://buildd.debian.org/stats/graph.png for the most current version of the statistic.

    Status of the Debian infrastructure

    -
    +
    +

    Plus: -Source packages can identify build and host OS using dpkg-architecure. - +

      +
    • Source packages can identify build and host OS using + dpkg-architecture.
    • +
    +

    Minus: -The binary architecture field is insufficient. -The BTS has no architecture tag. -The policy/FHS need (small) Hurd specific extensions. -

    +
      +
    • The binary architecture field is insufficient.
    • +
    • The BTS has no architecture tag.
    • +
    • The policy/FHS need (small) Hurd specific extensions.
    • +
    +

    While good compatibiity can be achieved at the source level, the binary packages can not always express their relationship @@ -873,58 +1015,81 @@ a binary-all-linux relationship would be more appropriate. More work has to be done here to fix the tools.

    Status of the Debian Source archive

    -
    -Most packages just work.
    -Maintainers are usually responsive and cooperative.
    -Turtle, the autobuilder, crunches through the whole list right now.
    +
    +
      +
    • Most packages just work.
    • +
    • Maintainers are usually responsive and cooperative.
    • +
    • Turtle, the autobuilder, crunches through the whole list right + now.
    • +
    +

    Common pitfalls are POSIX incompatibilities: -Upstream: -Unconditional use of PATH_MAX (MAXPATHLEN), MAXHOSTNAMELEN. -Unguarded use of Linux kernel features. -Use of legacy interfaces (sys_errlist, termio). -Debian: -Unguarded activation of extensions available with Linux. -Low quality patches. -Assuming GNU/Linux in package scripts. -

    +
      +
    • Upstream: +
        +
      • Unconditional use of PATH_MAX + (MAXPATHLEN), MAXHOSTNAMELEN.
      • +
      • Unguarded use of Linux kernel features.
      • +
      • Use of legacy interfaces (sys_errlist, + termio).
      • +
    • +
    • Debian: +
        +
      • Unguarded activation of extensions available with Linux.
      • +
      • Low quality patches.
      • +
      • Assuming GNU/Linux in package scripts.
      • +
    • +
    +

    -Most packages are PSIX compatible and can be compiled without +Most packages are POSIX compatible and can be compiled without changes on the Hurd. The maintainers of the Debian source packages are usually very kind, responsiver and helpful.

    -The Turtle autobuilder software (http://turtle.sourceforge.net) +The Turtle autobuilder software (http://turtle.sourceforge.net) builds the Debian packages on the Hurd automatically.

    Debian GNU/Hurd: Good idea, bad idea?

    -
    +
    +

    Upstream benefits: -Software packages become more portable. +

      +
    • Software packages become more portable.
    • +
    +

    Debian benefits: -Debian becomes more portable. -Maintainers learn about portability and other systems. -Debian gets a lot of public recognition. - +

      +
    • Debian becomes more portable.
    • +
    • Maintainers learn about portability and other systems.
    • +
    • Debian gets a lot of public recognition.
    • +
    +

    GNU/Hurd benefits: -Large software base. -Great infrastructure. -Nice community to partner with. -

    +
      +
    • Large software base.
    • +
    • Great infrastructure.
    • +
    • Nice community to partner with.
    • +
    +

    The sheet lists the advantages of all groups involved.

    End

    -
    +
    +

    Join us at -http://hurd.gnu.org/ -http://www.debian.org/ports/hurd -http://www.hurd-fr.org -

    + +

    List of contacts. - - -

    Some of these links are at other web sites not maintained by the FSF. The FSF is not responsible for the content of these other web sites. -- cgit v1.2.3 From 81c253b970e7ebd961bd60a6201f99a520a991f0 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Fri, 22 Feb 2002 14:20:00 +0000 Subject: Update menu items. --- hurd-talk.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'hurd-talk.html') diff --git a/hurd-talk.html b/hurd-talk.html index 39757777..237e3ca3 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -18,12 +18,16 @@

    +What's New

    +ChangeLogs
    +

    The GNU Hurd
     
    Documentation
    Installation
    Getting Help
    -Download
    +Source Code
    Development
    History
     
    -- cgit v1.2.3 From ff334826e4be21e530ffacebdb474baf9515ad81 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Mon, 20 May 2002 01:49:08 +0000 Subject: fix link --- hurd-talk.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd-talk.html') diff --git a/hurd-talk.html b/hurd-talk.html index 237e3ca3..ced5c0ab 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -1087,7 +1087,7 @@ Join us at

  • http://hurd.gnu.org/
  • http://www.debian.org/ports/hurd
  • -
  • http://www.hurd-fr.org
  • -- cgit v1.2.3 From aeca2f325853c9bdc79dfdc1677f7147c867b911 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Mon, 20 May 2002 08:40:53 +0000 Subject: Fix link text, too. By Damien Genet --- hurd-talk.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd-talk.html') diff --git a/hurd-talk.html b/hurd-talk.html index ced5c0ab..0460d60c 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -1088,7 +1088,7 @@ Join us at
  • http://www.debian.org/ports/hurd
  • http://www.hurd-fr.org
  • + >http://www.hurdfr.org

    -- cgit v1.2.3 From 7e4ebdd6a80419d9b0d4236ca405520395fa320c Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Sun, 26 May 2002 23:34:40 +0000 Subject: Add new files mig.html and mig-download.html for MiG. Add menu entries for these files to all other files. --- changelogs.html | 4 ++ devel.html | 4 ++ docs.html | 4 ++ download.html | 4 ++ gnumach-download.html | 4 ++ gnumach-install.html | 4 ++ gnumach.html | 4 ++ help.html | 4 ++ history.html | 4 ++ hurd-talk.html | 4 ++ hurd.html | 4 ++ install.html | 4 ++ mig-download.html | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++ mig.html | 114 ++++++++++++++++++++++++++++++++++++++ whatsnew.html | 4 ++ whatsold.html | 4 ++ 16 files changed, 320 insertions(+) create mode 100644 mig-download.html create mode 100644 mig.html (limited to 'hurd-talk.html') diff --git a/changelogs.html b/changelogs.html index 92f11750..dc992a8b 100644 --- a/changelogs.html +++ b/changelogs.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code


    diff --git a/devel.html b/devel.html index b92afa5d..b8c8309b 100644 --- a/devel.html +++ b/devel.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/docs.html b/docs.html index 3965dfd9..9c7806ca 100644 --- a/docs.html +++ b/docs.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/download.html b/download.html index b11cbb45..60d20a26 100644 --- a/download.html +++ b/download.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/gnumach-download.html b/gnumach-download.html index 86b209ef..1564a317 100644 --- a/gnumach-download.html +++ b/gnumach-download.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/gnumach-install.html b/gnumach-install.html index 00bd2e03..69bf9c6e 100644 --- a/gnumach-install.html +++ b/gnumach-install.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/gnumach.html b/gnumach.html index d9dd0226..78826e41 100644 --- a/gnumach.html +++ b/gnumach.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/help.html b/help.html index 3f708f9f..99d970d1 100644 --- a/help.html +++ b/help.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/history.html b/history.html index 5a77c651..e883b962 100644 --- a/history.html +++ b/history.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/hurd-talk.html b/hurd-talk.html index 0460d60c..3ddff071 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/hurd.html b/hurd.html index be765104..db7d8c22 100644 --- a/hurd.html +++ b/hurd.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/install.html b/install.html index 7afdc0c3..c652f251 100644 --- a/install.html +++ b/install.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/mig-download.html b/mig-download.html new file mode 100644 index 00000000..06162922 --- /dev/null +++ b/mig-download.html @@ -0,0 +1,150 @@ + + + +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

    + +
    + +

    Latest Release

    +

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

      +
    • Minor bug fixes.
    • +
    • The new keyword retcode is accepted as a parameter +modifier. This does not do anything, but is accepted for +compatibility with the MiG input syntax used with OSF Mach.
    • +
    • The debian/ subdirectory of packaging files is now +included in the MiG source distribution.
    • +
    +

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

    + +

    CVS repository

    +

    +The MiG source code is managed in the version control system CVS. You can check out the CVS +repository through anonymous (pserver) CVS with the following +instruction set. When prompted for a password for anoncvs, +simply press the Enter key. + +

    +Source tree: +cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/hurd login

    +cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/hurd co mig + +

    Updates from within the module's directory do not need the -d parameter. + +

    Archived snapshots

    +

    +The whole source code of MiG is also available as a single compressed +TAR file via FTP. The file ftp://alpha.gnu.org/gnu/cvs/mig.tgz +[145K] contains a snapshot of the MiG source repository +which is remade daily. + +

    Browsing the code

    +

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

    + +
    + +[ + 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) 2001, 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$ + +


    + + diff --git a/mig.html b/mig.html new file mode 100644 index 00000000..4d96b92c --- /dev/null +++ b/mig.html @@ -0,0 +1,114 @@ + + + +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 to GNU MiG

    +

    +MiG is the Mach 3.0 interface generator, as maintained by the GNU Hurd +developers for the GNU project. +

    +The interface generator produces stub code from interface definition +(.defs) files. The stub code makes it easy to implement +and use Mach interfaces as remote procedure calls (RPC). +

    +You need this tool to compile the GNU Mach and Hurd distributions, and +to compile the GNU C library for the Hurd. Also, you will need it for +other software in the GNU systems that uses Mach-based inter-process +communication. + +

    Status of the project

    +

    +MiG 1.3 was released in March 2002, and features compatibility with +OSF Mach. +

    + +
    + +[ + 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) 2001 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$ + +


    + + diff --git a/whatsnew.html b/whatsnew.html index 9ac04c82..2910135f 100644 --- a/whatsnew.html +++ b/whatsnew.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    diff --git a/whatsold.html b/whatsold.html index 994c6a4f..d132885b 100644 --- a/whatsold.html +++ b/whatsold.html @@ -36,6 +36,10 @@ Documentation
    Installation
    Source Code

    +MiG

    +Source Code

    -- cgit v1.2.3 From aac3d5bbbc1291ff156abde0c6acb62ed85e175c Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Wed, 31 Jul 2002 15:03:07 +0000 Subject: A new page, Related Projects, has been added to the site and to the menu. Thanks to Alfred M. Szmidt for doing the hard work. I just had to fill in the actual content in related-projects.html. --- changelogs.html | 2 + devel.html | 2 + docs.html | 2 + download.html | 2 + gnumach-download.html | 2 + gnumach-install.html | 2 + gnumach.html | 2 + help.html | 2 + history.html | 2 + hurd-talk.html | 2 + hurd.html | 2 + install.html | 2 + mig-download.html | 2 + mig.html | 2 + related-projects.html | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ whatsnew.html | 8 +++ 16 files changed, 174 insertions(+) create mode 100644 related-projects.html (limited to 'hurd-talk.html') diff --git a/changelogs.html b/changelogs.html index dc992a8b..46bd340b 100644 --- a/changelogs.html +++ b/changelogs.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/devel.html b/devel.html index b8c8309b..90f7de8c 100644 --- a/devel.html +++ b/devel.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/docs.html b/docs.html index 9c7806ca..4d44e984 100644 --- a/docs.html +++ b/docs.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/download.html b/download.html index 60d20a26..d3b2ee9a 100644 --- a/download.html +++ b/download.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/gnumach-download.html b/gnumach-download.html index aaaa9ec6..e6c7f48c 100644 --- a/gnumach-download.html +++ b/gnumach-download.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/gnumach-install.html b/gnumach-install.html index 69bf9c6e..7e70b74d 100644 --- a/gnumach-install.html +++ b/gnumach-install.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/gnumach.html b/gnumach.html index 749c9ba8..1034e4c3 100644 --- a/gnumach.html +++ b/gnumach.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/help.html b/help.html index 99d970d1..3492d7f9 100644 --- a/help.html +++ b/help.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/history.html b/history.html index e883b962..14c3f31e 100644 --- a/history.html +++ b/history.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/hurd-talk.html b/hurd-talk.html index 3ddff071..4bcea984 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/hurd.html b/hurd.html index db7d8c22..8f8d246e 100644 --- a/hurd.html +++ b/hurd.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/install.html b/install.html index c652f251..afb6db60 100644 --- a/install.html +++ b/install.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/mig-download.html b/mig-download.html index 41d87cce..d6c60837 100644 --- a/mig-download.html +++ b/mig-download.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/mig.html b/mig.html index 4d96b92c..4726921f 100644 --- a/mig.html +++ b/mig.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    diff --git a/related-projects.html b/related-projects.html new file mode 100644 index 00000000..25d2ad11 --- /dev/null +++ b/related-projects.html @@ -0,0 +1,138 @@ + + + +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

    +Related Projects +

    +
    +

    +

    Related Projects

    +

    +The Hurd is not alone, it is inspired by other projects, and other +projects have been influenced or spawned by the Hurd. +

    +Below you can find some of the projects which are closely related to +the Hurd, be it because they develop software that might be part of +the Hurd system some day, be it because they support or use the Hurd +in their own development. +

    +This list is nowhere near to be complete. We recommend to follow the +mailing lists to be informed about recent developments. +

    +Some of these links are at other web sites not maintained by the +FSF. The FSF is not responsible for the content of these other web +sites. + +

    Software

    +
  • GNU/Hurd on L4
  • +

    +The goal of this project is a working implementation of the GNU/Hurd +on the L4 microkernel. +

    +The L4 microkernel is a modern microkernel, which takes the +microkernel concept further than the first-generation microkernel Mach +did. Basing the Hurd on L4 will bring more performance, better +scalability, user space memory mangement, user space drivers. and +other exciting features to the GNU/Hurd system. +
    +http://www.freesoftware.fsf.org/l4hurd/ + +

    Community

    + +
  • GNU/Hurd Wiki
  • +

    +A free speech collaboration about anything GNU and the Hurd. +

    +A Wiki is a platform where users and developers can create, modify and +share web content dynamically, pretty much like a public bulletin +board. The Wiki spelling makes it easy to create links between +entries in the Wiki, creating a highly inter-connected structure +within the content. +

    +The GNU/Hurd Wiki has everything related to GNU and the Hurd as its +topic, and everyone is invited to contribute to it. +
    +http://www.vmlinux.org/twiki/bin/view/Hurd/WebHome + +

    + +
    + +[ + 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$ + +


    + + diff --git a/whatsnew.html b/whatsnew.html index c70a3264..30845278 100644 --- a/whatsnew.html +++ b/whatsnew.html @@ -40,6 +40,8 @@ MiG
     
    Source Code

    +Related Projects

    @@ -55,6 +57,12 @@ kernels (such as Linux).

    +
    31 July 2002
    +
    A new page has been added to the site, listing related projects. You can find it at +the bottom of the menu. +

    +
    22 June 2002
    Various developers of the Hurd and people interested in it will meet at the Libre Software Meeting in -- cgit v1.2.3 From 4ad89534407062f65cd87139f648e5cd9666481a Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Fri, 2 Aug 2002 16:06:00 +0000 Subject: Fix grammar. Change by James Morrison, found by Bas Wijnen. --- hurd-talk.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hurd-talk.html') diff --git a/hurd-talk.html b/hurd-talk.html index 4bcea984..5ae2217e 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -165,7 +165,7 @@ license allowing the GNU project to distribute it as a part of the system.

    In 1998, I started the Debian GNU/Hurd project, and in 2001 the number -of available CDs with Hurd packages fills three CD images. +of available GNU/Hurd packages fills three CD images.

    Kernel Architectures

    @@ -147,6 +149,8 @@ covers all changes to MiG.
    [ + +English ] diff --git a/devel.html b/devel.html index 90f7de8c..642177ed 100644 --- a/devel.html +++ b/devel.html @@ -12,6 +12,8 @@ @@ -87,6 +89,8 @@ of the Hurd source repository.
    [ + +English ] diff --git a/docs.html b/docs.html index 78c4ddc0..9e413017 100644 --- a/docs.html +++ b/docs.html @@ -12,6 +12,8 @@ @@ -155,6 +157,8 @@ Then, you should submit any modifications to
    [ + +English ] diff --git a/download.html b/download.html index d3b2ee9a..bddb564b 100644 --- a/download.html +++ b/download.html @@ -12,6 +12,8 @@ @@ -93,6 +95,8 @@ to date.
    [ + +English ] diff --git a/gnumach-download.html b/gnumach-download.html index 8838881d..96ee79ad 100644 --- a/gnumach-download.html +++ b/gnumach-download.html @@ -12,6 +12,8 @@ @@ -134,6 +136,8 @@ to date.
    [ + +English ] diff --git a/gnumach-install.html b/gnumach-install.html index 7e70b74d..f15e214c 100644 --- a/gnumach-install.html +++ b/gnumach-install.html @@ -12,6 +12,8 @@ @@ -87,6 +89,8 @@ GNU/Hurd.
    [ + +English ] diff --git a/gnumach.html b/gnumach.html index 2e1dc08e..33e67d8a 100644 --- a/gnumach.html +++ b/gnumach.html @@ -12,8 +12,10 @@ @@ -134,8 +136,10 @@ has cleaner machine specific support code.
    [ + +English -| Hebrew +| Hebrew ]
    diff --git a/help.html b/help.html index 50050170..a12c666a 100644 --- a/help.html +++ b/help.html @@ -12,6 +12,8 @@ @@ -96,6 +98,8 @@ FSF. The FSF is not responsible for the content of these other web sites.
    [ + +English ] diff --git a/history.html b/history.html index 93f2d182..f5200322 100644 --- a/history.html +++ b/history.html @@ -14,8 +14,8 @@ [ - English | - Hebrew + English +| Hebrew ] @@ -157,8 +157,8 @@ works! [ - English | - Hebrew + English +| Hebrew ]
    diff --git a/hurd-paper.html b/hurd-paper.html index 6f3bbc75..4fe7c12f 100644 --- a/hurd-paper.html +++ b/hurd-paper.html @@ -13,9 +13,13 @@ no gifs due to patent problems

    -[ English +[ + + + English | Hebrew - ] +] +

    This article explains why FSF is developing a new operating system named the Hurd, which will be a foundation of the whole GNU system. @@ -771,8 +775,10 @@ avoiding copies for page-aligned data is irrelevant.


    [ + +English -| Hebrew +| Hebrew ]
    diff --git a/hurd-talk.html b/hurd-talk.html index 5ae2217e..756eee1c 100644 --- a/hurd-talk.html +++ b/hurd-talk.html @@ -12,6 +12,8 @@ @@ -1111,6 +1113,8 @@ FSF. The FSF is not responsible for the content of these other web sites.
    [ + +English ] diff --git a/hurd.html b/hurd.html index fbca3b59..ce834955 100644 --- a/hurd.html +++ b/hurd.html @@ -169,6 +169,8 @@ developers.
    [ + +Chinese(Simplified) | Chinese(Traditional) | English diff --git a/install.html b/install.html index 9cfa5c23..3d5e6ae9 100644 --- a/install.html +++ b/install.html @@ -12,6 +12,8 @@ @@ -103,6 +105,8 @@ FSF. The FSF is not responsible for the content of these other web sites.
    [ + +English ] diff --git a/mig-download.html b/mig-download.html index ba4c8316..0539a60a 100644 --- a/mig-download.html +++ b/mig-download.html @@ -12,6 +12,8 @@ @@ -115,6 +117,8 @@ to date.
    [ + +English ] diff --git a/mig.html b/mig.html index 0a772663..1b6c908d 100644 --- a/mig.html +++ b/mig.html @@ -12,8 +12,10 @@ @@ -80,8 +82,10 @@ OSF Mach.
    [ + +English -| Hebrew +| Hebrew ]
    diff --git a/related-projects.html b/related-projects.html index ad0c9087..f7d01494 100644 --- a/related-projects.html +++ b/related-projects.html @@ -12,6 +12,8 @@ @@ -109,6 +111,8 @@ topic, and everyone is invited to contribute to it.
    [ + +English ] diff --git a/whatsnew.html b/whatsnew.html index 39292f82..0cea85c4 100644 --- a/whatsnew.html +++ b/whatsnew.html @@ -12,8 +12,10 @@ @@ -146,8 +148,10 @@ about the details of authentication in the Hurd.
    [ - English | - Hebrew + + + English +| Hebrew ]
    diff --git a/whatsold.html b/whatsold.html index 974aa49b..b9104830 100644 --- a/whatsold.html +++ b/whatsold.html @@ -12,6 +12,8 @@ @@ -235,6 +237,8 @@ German).
    [ + +English ] -- 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 'hurd-talk.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 @@
    -- cgit v1.2.3 From 1227cac8df0eeaa315a0dcd6fe2b1312afcbae8e Mon Sep 17 00:00:00 2001 From: "Alfred M. Szmidt" Date: Mon, 26 May 2003 12:48:26 +0000 Subject: Added reminder note. --- changelogs.html | 4 ++++ devel.html | 4 ++++ docs.html | 4 ++++ download.html | 4 ++++ gnumach-download.html | 4 ++++ gnumach-install.html | 4 ++++ gnumach.html | 8 ++++++-- help.html | 4 ++++ history.html | 8 ++++---- hurd-paper.html | 12 +++++++++--- hurd-talk.html | 4 ++++ hurd.html | 2 ++ install.html | 4 ++++ mig-download.html | 4 ++++ mig.html | 8 ++++++-- related-projects.html | 4 ++++ whatsnew.html | 12 ++++++++---- whatsold.html | 4 ++++ 18 files changed, 83 insertions(+), 15 deletions(-) (limited to 'hurd-talk.html') diff --git a/changelogs.html b/changelogs.html index 46bd340b..8cd894b9 100644 --- a/changelogs.html +++ b/changelogs.html @@ -12,6 +12,8 @@  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English -| Hebrew +| Hebrew ]
     [image of the Hurd logo] [ + + English ]
     [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ + + English -| Hebrew +| Hebrew ]
     [image of the Hurd logo] [ + + English ]  [image of the Hurd logo] [ - English | - Hebrew + + + English +| Hebrew ]
     [image of the Hurd logo] [ + + English ]
    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:

    • Minor bug fixes.
    • The new keyword retcode is accepted as a parameter modifier. This does not do anything, but is accepted for -compatibility with the MiG input syntax used with OSF Mach.
    • +compatibility with the MIG input syntax used with OSF Mach.
    • The debian/ subdirectory of packaging files is now -included in the MiG source distribution.
    • +included in the MIG source distribution.

    -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:

    • mig-1.3.tar.gz @@ -80,7 +80,7 @@ HREF="http://ftp.gnu.org/gnu/mig/mig-1.3.tar.gz.sig">mig-1.3.tar.gz.sigCVS repository

      -The MiG source code is managed in the version control system CVS. You can check out the CVS repository through anonymous CVS over SSH with the following instruction set. When prompted for a password for anoncvs, @@ -100,13 +100,13 @@ href="https://savannah.gnu.org/cvs/?group=hurd">savannah page.

      You can also browse the CVS -repository of MiG with your web browser. The web pages are +repository of MIG 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/mig.html b/mig.html index 6811cab5..3f77d28d 100644 --- a/mig.html +++ b/mig.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
       
      @@ -59,22 +59,22 @@


      -

      Introduction to GNU MIG

      +

      Introduction to GNU MIG

      -GNU MIG is the GNU distribution of the Mach 3.0 interface generator `MIG', as -maintained by the GNU Hurd developers for the GNU project. +GNU MIG is the GNU distribution of the Mach 3.0 interface generator `MIG', as +maintained by the GNU Hurd developers for the GNU project.

      The interface generator produces stub code from interface definition (.defs) files. The stub code makes it easy to implement and use Mach interfaces as remote procedure calls (RPC).

      -You need this tool to compile the GNU Mach and GNU Hurd distributions, and to +You need this tool to compile the GNU Mach and GNU Hurd distributions, and to compile the GNU C library for the Hurd. Also, you will need it for other software in the GNU system that uses Mach-based inter-process communication.

      Status of the project

      -MiG 1.3 was released in March 2002, and features compatibility with +MIG 1.3 was released in March 2002, and features compatibility with OSF Mach.


  • -

    What is the GNU Hurd?

    +

    What is the GNU 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 @@ -73,7 +73,7 @@ so that it can be added here.

    27 April 2006
    -

    The GNU Hurd project will participate in this year's +

    The GNU Hurd project will participate in this year's Google Summer of Code, under the aegis of the GNU project.

    The following is a list of items you might want to work on. If you want to @@ -84,12 +84,12 @@ href="/software/hurd/help.html#TOCirc">#hurd IRC channel.

    @@ -195,7 +195,7 @@ Courtès.
    29 July 2005
    Added a Italian translation -of The GNU +of GNU Hurd by Carlo Palma.

    @@ -204,8 +204,8 @@ Hurd by Carlo Palma.
    Added Dutch translations of What's -New and The -GNU Hurd by Roan Embrechts. +New and +GNU Hurd by Roan Embrechts.

    @@ -259,7 +259,7 @@ is now accessible through the Documentation
    Gaël Le Mignot, president of HurdFr, -presented the GNU Hurd on 22 November +presented the GNU Hurd on 22 November 2002 at EpX in Paris. English slides and French slides of the diff --git a/whatsold.html b/whatsold.html index ddad85ac..ace0d66e 100644 --- a/whatsold.html +++ b/whatsold.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