From 7dacd493ecc8e7cde37e358354e85ff9efd32686 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 14:09:38 +0000 Subject: web commit by NealWalfield: Create. --- microkernel.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 microkernel.mdwn diff --git a/microkernel.mdwn b/microkernel.mdwn new file mode 100644 index 00000000..eb46408e --- /dev/null +++ b/microkernel.mdwn @@ -0,0 +1,12 @@ +[[Liedtke]] explains in [On Microkernel Construction](http://l4ka.org/publications/paper.php?docid=642) +that a microkernel attempts to minimize the mandatory part of the operating +system by providing the minimal number of [[mechanism]]s that +maximize the flexibility of implementation (by imposing minimal +[[policy]]) while allowing the efficient implementation of the +remainder of the system. + +The idea of a microkernel as explained above was first explored +by Per Brinch-Hansen in 1970 in +[The Nucleus of a Multiprogramming System](http://brinch-hansen.net/papers/1970a.pdf). + +Other notable microkernels include Hydra, KeyKOS, Eros. \ No newline at end of file -- cgit v1.2.3 From 8378363b3de23f6c45b659399a82c2310a955973 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 14:38:07 +0000 Subject: web commit by NealWalfield: Create. --- mechanism.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 mechanism.mdwn diff --git a/mechanism.mdwn b/mechanism.mdwn new file mode 100644 index 00000000..fb4c9d55 --- /dev/null +++ b/mechanism.mdwn @@ -0,0 +1,22 @@ +The Collaborative International Dictionary of English v.0.48 +defines a mechanism as: + +> The series of causal relations that operate to produce an +> effect in any system; as, the mechanism of a chemical +> reaction. + +This is, a mechanism is a function that produces some result. +As mechanisms determine the type of result, they necessarily +impose some [[policy]] (rules). Mechanisms that are referred +to as policy-free are those that minimally impose policy. + +A process can be used to encapsulate a program instance. On Unix, +a process is associated with a UID. This UID, in part, determines +what the process is authorized to do. On a [[microkernel]], +the policy that controls what resources a process may access +are realized separately. This may achieved through the use of +UIDs, however need not. Thus, the processes mechanism on such +microkernels impose less policy than on Unix. A process is not +policy free as it is possible to use other mechanisms to +encapsulate a program instance, e.g., [[SFI]] and tainting +ala [[Asbestos]]. \ No newline at end of file -- cgit v1.2.3 From e4d409899b8e7d27ead7c492380d1b87eebb5097 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 15:07:19 +0000 Subject: web commit by NealWalfield: Create. --- mechanism.mdwn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/mechanism.mdwn b/mechanism.mdwn index fb4c9d55..fdd98f07 100644 --- a/mechanism.mdwn +++ b/mechanism.mdwn @@ -10,6 +10,30 @@ As mechanisms determine the type of result, they necessarily impose some [[policy]] (rules). Mechanisms that are referred to as policy-free are those that minimally impose policy. +A process can be used to encapsulate a program instance. On Unix, +a process is associated with a UID. This UID, in part, determines +what the process is authorized to do. On a [[microkernel]], +the policy that controls what resources a process may access +are realized separately. This may achieved through the use of +UIDs, however need not. Thus, the processes mechanism on such +microkernels impose less policy than on Unix. A process is not +policy free as it is possible to use other mechanisms to +encapsulate a program instance, e.g., [[SFI]] and tainting +ala [[Asbestos]]. + + +The Collaborative International Dictionary of English v.0.48 +defines a mechanism as: + +> The series of causal relations that operate to produce an +> effect in any system; as, the mechanism of a chemical +> reaction. + +This is, a mechanism is a function that produces some result. +As mechanisms determine the type of result, they necessarily +impose some [[policy]] (rules). Mechanisms that are referred +to as policy-free are those that minimally impose policy. + A process can be used to encapsulate a program instance. On Unix, a process is associated with a UID. This UID, in part, determines what the process is authorized to do. On a [[microkernel]], -- cgit v1.2.3 From 9e4fd6498585ef6d75974c7457fe0eee3f500036 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 15:28:56 +0000 Subject: web commit by NealWalfield: Elide duplicated content. --- mechanism.mdwn | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/mechanism.mdwn b/mechanism.mdwn index fdd98f07..ec694960 100644 --- a/mechanism.mdwn +++ b/mechanism.mdwn @@ -20,27 +20,3 @@ microkernels impose less policy than on Unix. A process is not policy free as it is possible to use other mechanisms to encapsulate a program instance, e.g., [[SFI]] and tainting ala [[Asbestos]]. - - -The Collaborative International Dictionary of English v.0.48 -defines a mechanism as: - -> The series of causal relations that operate to produce an -> effect in any system; as, the mechanism of a chemical -> reaction. - -This is, a mechanism is a function that produces some result. -As mechanisms determine the type of result, they necessarily -impose some [[policy]] (rules). Mechanisms that are referred -to as policy-free are those that minimally impose policy. - -A process can be used to encapsulate a program instance. On Unix, -a process is associated with a UID. This UID, in part, determines -what the process is authorized to do. On a [[microkernel]], -the policy that controls what resources a process may access -are realized separately. This may achieved through the use of -UIDs, however need not. Thus, the processes mechanism on such -microkernels impose less policy than on Unix. A process is not -policy free as it is possible to use other mechanisms to -encapsulate a program instance, e.g., [[SFI]] and tainting -ala [[Asbestos]]. \ No newline at end of file -- cgit v1.2.3 From c0c962849774acb8070a68caaeee96b856e1a74d Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 15:31:53 +0000 Subject: web commit by NealWalfield: Create. --- policy.mdwn | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 policy.mdwn diff --git a/policy.mdwn b/policy.mdwn new file mode 100644 index 00000000..219af77e --- /dev/null +++ b/policy.mdwn @@ -0,0 +1,2 @@ +A policy is a rule that define what may or may not happens, not +how it happens. The latter is referred to as [[mechanism]]. \ No newline at end of file -- cgit v1.2.3 From 43dae598b2e0138dcb7bebf13a04ad8ff3185aad Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 15:41:24 +0000 Subject: web commit by tschwinge: Testing. --- sandbox/subsandbox.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sandbox/subsandbox.mdwn b/sandbox/subsandbox.mdwn index 8c89c54d..3e5ada72 100644 --- a/sandbox/subsandbox.mdwn +++ b/sandbox/subsandbox.mdwn @@ -1 +1 @@ -Toll. Ganz toll. +Not much is going on here. \ No newline at end of file -- cgit v1.2.3 From 0180752439d3f5fdfe60ebad7d212723c4cc3ede Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 15:51:59 +0000 Subject: web commit by NealWalfield: Create. --- sfi.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 sfi.mdwn diff --git a/sfi.mdwn b/sfi.mdwn new file mode 100644 index 00000000..19b71237 --- /dev/null +++ b/sfi.mdwn @@ -0,0 +1,8 @@ +SFI stands for Software-Based Fault Isolation. SFI is an isolation +technique described by Wahbe et al. in their 1993 paper [Effcient +Software-Based Fault Isolation](http://citeseer.ist.psu.edu/wahbe93efficient.html). +Instead of running code is a separate process, untrusted code +is loaded into into the host's address space, part of the address +space is reserved to the application and referred to as its fault +domain, and the code is rewritten such that it cannot modify or jump +to addresses outside of its fault domain. -- cgit v1.2.3 From 0154f813830ac790ad6f8134236de5bcf8cbff21 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 15:57:09 +0000 Subject: web commit by NealWalfield: Make isolation a link. --- sfi.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sfi.mdwn b/sfi.mdwn index 19b71237..d14b1680 100644 --- a/sfi.mdwn +++ b/sfi.mdwn @@ -1,4 +1,4 @@ -SFI stands for Software-Based Fault Isolation. SFI is an isolation +SFI stands for Software-Based Fault Isolation. SFI is an [[isolation]] technique described by Wahbe et al. in their 1993 paper [Effcient Software-Based Fault Isolation](http://citeseer.ist.psu.edu/wahbe93efficient.html). Instead of running code is a separate process, untrusted code -- cgit v1.2.3 From d954eef46e5944130292a2617350228647202434 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:05:22 +0000 Subject: web commit by NealWalfield: Create. --- isolation.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 isolation.mdwn diff --git a/isolation.mdwn b/isolation.mdwn new file mode 100644 index 00000000..bdb15a41 --- /dev/null +++ b/isolation.mdwn @@ -0,0 +1,10 @@ +When two [[principal]]s cannot affect each other, they are said to +be isolated from one another. Strictly speaking, if two principals +are isolated from one another, there is no way for one to know +whether the other exists: all interactions with the environment +do not expose proof of the existence or non-existence of the +other. + +Typically, principals are isolated from one another with +respect to a particular property. Common properties include +information-flow (security) and performance. \ No newline at end of file -- cgit v1.2.3 From 9fda0ee70fe6ebc29e87bab989f7a0cfcd072f27 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:10:30 +0000 Subject: web commit by NealWalfield: Create. --- principal.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 principal.mdwn diff --git a/principal.mdwn b/principal.mdwn new file mode 100644 index 00000000..9a11c672 --- /dev/null +++ b/principal.mdwn @@ -0,0 +1,7 @@ +A principal is an accountable entity. A principal may be +a user. On some computer systems, users are represented by their +respective UID. A process may also be a principal. However, a +principal may span multiple processes (a web request that causes +a CGI script to be invoked) or a principal may contain a number +of separate principals (a web server serves multiple requests, +each request represents a different principal). \ No newline at end of file -- cgit v1.2.3 From 91d5e98756430ebb06810e918e276dacd7d227d8 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:11:42 +0000 Subject: web commit by NealWalfield: Correct wiki names. --- trust.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trust.mdwn b/trust.mdwn index fe2ca5f0..118028b8 100644 --- a/trust.mdwn +++ b/trust.mdwn @@ -9,7 +9,7 @@ When we say that a program trusts another, we mean that [[correctness]] of the former depends on the cooperation of the latter. For instance, when a user runs ssh, the user's intention is that all communication is encrypted. In this case, the user trusts that the ssh binary respects this intent. In Unix, a program's -[[trusted computing base]] consists not only of the kernel (and all the drivers, +[[trusted computing base|tcb]] consists not only of the kernel (and all the drivers, file systems and protocol stacks that it contains) but every program running under the same UID; it is impossible to protect against -[[destructive interference]] from programs running under the same UID. +[[DestructiveInterference]] from programs running under the same UID. -- cgit v1.2.3 From 1613fd519bae27d0f9b97ff97f936bf58a29fd36 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:24:10 +0000 Subject: web commit by NealWalfield: Create. --- destructiveinterference.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 destructiveinterference.mdwn diff --git a/destructiveinterference.mdwn b/destructiveinterference.mdwn new file mode 100644 index 00000000..4def1b87 --- /dev/null +++ b/destructiveinterference.mdwn @@ -0,0 +1,22 @@ +Interference can be destructive or non-destructive. When a principal +invokes an object (thereby requesting a service) and the implementation +carries out the principal's intent, the interference was non-destructive +in the sense that the interference was desired. + +In invoking the object, the principal may make itself vulnerable to +destructive interference. When a user runs Solitaire on Windows, +the Solitaire program is instantiated and given all of the user's +authority. The program may delete all of the users files after +publishing credit card and other sensitive information on the Internet. +This type of interference is undesirable, however, generally practically +unavoidable due to the way programs work on Windows (and Unix, for that +matter). + +The problem is that the callee has induced negative consequence for caller +due to actions of the former. To not have to depend on another program (and +thereby not have to add it to its [[tcb]]), it is necessary that the +caller only make itself vulnerable to destructive inference in ways that +can be detected and from which it can recover. + +Mark Miller examines the idea of destructive interference in his PhD thesis +[Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control](http://www.erights.org/talks/thesis/). -- cgit v1.2.3 From 27e788ef4e646bd1a0cce9e3346a8e9d4447430e Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:35:58 +0000 Subject: web commit by NealWalfield: Create. --- asbestos.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 asbestos.mdwn diff --git a/asbestos.mdwn b/asbestos.mdwn new file mode 100644 index 00000000..366aa5d9 --- /dev/null +++ b/asbestos.mdwn @@ -0,0 +1,15 @@ +Asbestos is an operating system developed at MIT, Stanford +and UCLA to explore information flow control policies. The motivation +behind Asbestos is that typical access control systems are concerned +with the release of information, however, once that information is +released, the [[principal]] that released that information has no way to +control it. The problem is that a program might want to make use of +a service another program provides but not want to release the +information to it. To work around this, the OS provides the ability +to taint data. The taint is automatically applied to any derived +information. To propagate information outside of the machine, the +releaser must first untaint the information. This can only be done +with the original principal's authorization. + +Asbestos is described in Efstathopoulos et al.'s 2005 paper [Labels and +Event Processes in the Asbestos Operating System](http://pdos.csail.mit.edu/papers/asbestos-sosp05.pdf). -- cgit v1.2.3 From 25aab324dbdde8a24f09e7f5b86d9421dd4e22f2 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:45:09 +0000 Subject: web commit by NealWalfield: Create. --- liedtke.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 liedtke.mdwn diff --git a/liedtke.mdwn b/liedtke.mdwn new file mode 100644 index 00000000..8644bbdf --- /dev/null +++ b/liedtke.mdwn @@ -0,0 +1 @@ +Liedtke is the father of [[L4]]. \ No newline at end of file -- cgit v1.2.3 From cff4fa269a032c05ed68dcbeb3eda260ce5c4d28 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 16:57:49 +0000 Subject: web commit by NealWalfield: Break page into subpages. --- Mach/MachConcepts.mdwn | 72 ++++---------------------------------------------- 1 file changed, 5 insertions(+), 67 deletions(-) diff --git a/Mach/MachConcepts.mdwn b/Mach/MachConcepts.mdwn index b691a119..ed8d1417 100644 --- a/Mach/MachConcepts.mdwn +++ b/Mach/MachConcepts.mdwn @@ -1,67 +1,5 @@ -## Table Of Contents - -%TOC% - -A GNU Mach system consists of many _tasks_. You can think Mach tasks as \*nix processes but they are not the same. In processes there are signals, process/group/session IDs, file descriptors and many other things. Tasks are used for resource allocation and sharing. They are _resource containers_. - -## Execution time - -Tasks themselves don't spend execution time. The active entities in Mach are called _threads_ (points of execution). Each thread belongs to one and only one task and runs concurrently with all the other threads of a system. Tasks are resource environments (address space and communication channels) for threads. - -Using threads is much more cheaper than using \*nix processes. Switching between threads in one task change processor registers' state but switching between threads in different tasks involves context switching (changing resource environment) which is slow on most computer architectures. - -In a general case, two threads of one task are able to run on two different _processors_ simultaneously. That's the way Mach is designed. (Note that you can't play with the SMP support in GNU Mach yet.) Mach organizes processors into _processor sets_. A thread can be assigned to a processor set in order to be executed in any of the processors in the processor set. Of course, it is expected that all the processors in a processor set use shared memory. There is an optional and experimental support for building _multicomputers_ build from _nodes_. - -Threads have scheduling parameters and contain various statistics about them. - -## Address space - -_Address space_ in Mach defines the valid addresses that can be used by threads in the task that owns that address space. Each task has only one address space and each address space belongs to only one task. So when we want to name an address space (e.g. in the Mach API) we name it by the task it belongs to. - -Address space is divided into _pages_. Each page has individual properties like _access rights_ (read/write/execute), _inheritance attributes_ (no inheritance/copy/share) and some other system properties discussed later. Page manipulation is optimized to help moving large blocks of data from one address space to another (read: from a thread of task A to a thread of task B; further read: client/server technology). - -Memory ranges of pages that can be controlled as a whole are called _memory objects_. The physical memory is conceived as a _memory cache_ that contains _memory cache objects_. So when a thread accesses a page in its task's address space, the memory object that includes this page is cached in the memory cache. Memory objects are paged out and paged in by _memory managers_ that can be user tasks. The decision when they should be paged in or paged out is left to Mach. Each memory object has an ordered list of memory managers that provide paging. The last one tried is the default memory manager that resides in the microkernel. The others are generally user tasks. The default memory manager is needed because the microkernel can't wait infinitely someone else to free the memory cache: it just calls the next memory manager hoping it to succeed. - -As an example, `mmap` POSIX interface (it maps file content to a memory region thus "loading" a file in no time) can be implemented by assigning a special memory manager to a memory range. When a thread accesses a page in that region, our custom memory manager can load the corresponding block of the file. - -_Wired pages_ are those that cannot be paged out. For example, Mach itself is a task with its own address space and threads, and all of its pages are wired. - -_Precious pages_ are those that must not be discarded silently when they are clean and memory is needed. For example, a memory manager that shares memory across a network could not restore a page if it is silently discarded because it is unmodified. This is not valid for the well-known pager managers that use disks as backing store. - -## Communication channels - -_Communication channels_ in Mach are called _ports_. They can be compared with **nix system calls but have \*much** richer semantics and are ubiquitous in a Mach environment. In the Hurd, ports are used as _object references_. Hurd programs use these object references only by calling _methods_ defined in interface files (`.defs` files). - -Ports themselves are queues of _messages_. There can be multiple senders and only one receiver of these messages -- ports are unidirectional communication channels. To send or receive a message a task must have corresponding _port right_ to the port. (Of course, a task can't execute code, it is the threads within it that do that.) Mach knows what port rights belong to each task but threads in tasks refer to ports by _port names_. They are integer numbers that form the _port name space_ of task. Ports are automatically destroyed when there is no associated port right to them. - -So, the picture is that after obtaining a _port send right_, the client uses a port name to send messages to the port. They are (probably) queued and when the server task tries to receive messages using its _port receive right_ it gets the message(s). - -Messages are not only opaque data. They can contain port rights to be passed to another task. Port rights are copied or moved. Notice that port receive right must be moved but not copied because there can't be more than one task that hold receive right to a port. The receiving task creates a new port name to the port right received. - -Some data in the message can be _out-of-line data_. In the message they are references to memory regions which are _virtually copied_. When the message is received in a task these virtual copies become part of the address space of the task. "Virtual copy" means that it is not copied immediately but when it is changed. This is primarily used to send large blocks of data efficiently because it is too expensive to store them in the kernel address space. - -The ability to send port rights to other tasks can be used to easily implement remote procedure calls (RPC) with return results and in/out arguments by sending a port right to which the result have to be returned. This is called _reply port_ and it is usually referred by tasks with _send-once port right_. These port rights allow only one message to be send and after that the port right is immediately destroyed. - -All these facilites are used by the _Mach Interface Generator (Mig)_ to provide easy RPC for Mach tasks. Procedure definitions are described in `.defs` files using a Mig-specific Interface Definition Languager (IDL). Then they are compiled by Mig to C stubs and skeletons that have to be compiled and linked to client and server programs respectively. After that client programs call remote procedures more or less like any other C function. These functions are implemented in the stubs and encode arguments into message (_marshalling_), wait for result on a newly created reply port, decode return arguments from the reply message (_unmarshalling_) and pass them to the client program. Similar actions are provided in the skeletons that are linked to server programs. Mig allows very precise semantics to be specified about what the arguments are and how to be passed. Unfortunately Mig can generate only C code. - -When server task have to listen to a large number of ports using receive rights it can organize them into _port sets_. Port set look like port receive right but cannot be passed to another task and there are additional operations for including and excluding port receive rights. Waiting for a message from a port set waits all ports in the port set and returns exactly one message from randomly selected port that have message(s) in its queue. This is the only use of port sets. - -Ports are kernel-protected resources. There is no way for a task to do anything with a port unless it have corresponding port right. Remember that threads do not deal with port rights directly -- they use port names which refer to port right in a task. The delivery of messages is reliable and strictly ordered -- when a thread sends messages 1 and 2 it is guaranteed that the receiving task will catch them in the same order (but there can be intermediate messages send by other threads). - -**Controlling tasks, their address space, threads and other system objects** in Mach is implemented by using ports. Almost all of the Mach API (creating threads, etc) is implemented by sending messages to ports. **Device drivers** that reside in kernel space are controlled by ports too. In GNU Mach 1.3, these drivers are the Linux 2.0.36 ones. [[OskitMach]] provides more recent drivers. - -Ports abstraction allows RPCs to be executed on another computer transparently. This can be implemented with user task but there is an implementation in the kernel (called _NORMA_, not tested in GNU Mach) that do that. - -More detailed information about GNU Mach interfaces can be found in [The GNU Mach Reference Manual](http://www.gnu.org/software/hurd/gnumach-doc/mach.html). - --- [[Main/OgnyanKulev]] - 09 Dec 2002 - -Here is a link to some Mach 3 (pre GNU) documents that might be of help circa 1992. - - - --- [[Main/GrantBow]] - 16 Dec 2002 - -Convert from XHTML to [[TWiki/TextFormattingRules]] - --- [[Main/OgnyanKulev]] - 16 Jun 2003 +[[Mach]] is a first-generation [[microkernel]]. Mach's basic abstractions include +[[AddressSpace]]s in the form of [[Mach/Task]]s, execution contexts in the +form of threads, [[Mach/IPC]], [[capabilities]] in the form of +[[Mach/Ports]], and [[Mach/MemoryObjects]], which enable +[[Mach/ExternalPagerMechanism|Mach]]. -- cgit v1.2.3 From 95d4a891ade88062b7388728c843fde9ac0ed64e Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 17:01:33 +0000 Subject: web commit by NealWalfield: Add link's to documentation at CMU --- Mach/MachConcepts.mdwn | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Mach/MachConcepts.mdwn b/Mach/MachConcepts.mdwn index ed8d1417..2a7b0061 100644 --- a/Mach/MachConcepts.mdwn +++ b/Mach/MachConcepts.mdwn @@ -2,4 +2,9 @@ [[AddressSpace]]s in the form of [[Mach/Task]]s, execution contexts in the form of threads, [[Mach/IPC]], [[capabilities]] in the form of [[Mach/Ports]], and [[Mach/MemoryObjects]], which enable -[[Mach/ExternalPagerMechanism|Mach]]. +Mach's [[Mach/ExternalPagerMechanism]]. + +# Documentation + +- OSF's [Kernel Interface](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps) +- OSF's [Kernel Principles](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps) \ No newline at end of file -- cgit v1.2.3 From 982fc1df4e827fd1af88390b04b13b9ef0e94ad7 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 18:40:45 +0000 Subject: web commit by NealWalfield: Create. --- mach/externalpagermechanism.mdwn | 172 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 mach/externalpagermechanism.mdwn diff --git a/mach/externalpagermechanism.mdwn b/mach/externalpagermechanism.mdwn new file mode 100644 index 00000000..71ffab12 --- /dev/null +++ b/mach/externalpagermechanism.mdwn @@ -0,0 +1,172 @@ +Mach provides a so-called external pager mechanism. This +mechanism serves to separate *managing memory* from *managing +content*. Mach does the former while user space tasks do the +latter. + +# Introduction + +In Mach, a task's address space consists of references to +[[Mach/MemoryObjects]]. A memory object is designated using +a [[Mac/Port]] (a port is just a [[capability]]) and +implemented by a normal process. + +To associate a memory object with a portion of a task's +address space, vm\_map is invoked a capability designating +the task and passing a reference to the memory object +and the offset at which to install it. (The first time +a task maps an object, Mach sends an initialization message +to the server including a control capability, which it uses +to supply pages to the kernel.) This is essentially +the same as mapping a file into an address space on Unix +using mmap. + +When a task faults, Mach checks to see if there is a memory +object associated with the fault address. If not, the task +is sent an exception, which is normally further propagated +as a segmentation fault. If there is an associated memory +object, Mach checks whether the corresponding page is in core. +If it is, it installs the page and resumes the task. Mach +then invokes the memory object with the memory\_object\_request +method and the page to read. The memory manager then fetches +or creates the content as appropriate and supplies it to +Mach using the memory\_object\_supply method. + + +# Creating and Mapping a Memory Object + +The following illustrates the basic idea: + +> ________ +> / \ +> | Mach | +> \________/ +> /| / |\ \ +> (C) vm_map / / m_o_ready (E)\ \ (D) memory_object_init +> / |/ (F) return \ \| +> ________ ________ +> / \ -----> / \ +> | Client | (A) open | Server | +> \________/ <----- \________/ +> (B) memory_object + + +(A) The client sends an "open" rpc to the server. + +(B) The server creates a memory object (i.e., a port receive right), adds +it to the port set that it is listening on and returns a capability (a port +send right) to the client. + +(C) The client attempts to map the object into its address space using +the vm_map rpc. It passes a reference to the port that the server gave +it to the vm server (typically Mach). + +(D) Since Mach has never seen the object before, it queues a +memory_object_init on the given port along with a send right (the +memory control port) for the manager to use to send messages to the +kernel and also as an authentication mechanism for future +interactions: the port is supplied so that the manager will be able to +identify from which kernel a given memory\_object\_* IPC is from. + +(E) The server dequeues the message, initializes internal data +structures to manage the mapping and then invokes the +memory\_object\_ready method on the control object. + +(F) The kernel sees that the manager is ready, sets up the appropriate +mappings in the client and then replies to the vm_map rpc indicating +success. + +There is nothing stopping others from playing "the kernel." This is +not a security problem: clients must [[trust]] the server from whom they +obtain memory objects and also the servers with whom they share +the object. Multiple memory managers are a reality that should be +dealt with gracefully: they are useful for network transparent +mappings etc. + +# Resolving Page Faults + + +> (G) Client ________ +> resumed / \ +> | Mach | +> (A) Fault +----|------+ | \ (B) m_o_request (C) store_read +> ____|___ \_____|__/ |\ \| ________ _________ +> / +---\-------+ \ / \ / \ +> | Client | (F) | Server |<===>| storeio | +> \________/ m_o_supply \________/ \_________/ +> (E) return data | ^ +> | | (D) device_read +> v | +> ________ +> / Device \ +> | Driver | +> \________/ +> | ^ +> | | +> v +> ____________ +> / Hardware \ + +(A) The client does a memory access and faults. The kernel catches +the fault and maps the address to the appropriate memory object. It +then invokes the memory_object_request method on the associated +capability. (In addition to the page to supply, it also supplies the +control port so that the server can determine which kernel +sent the message.) + +(B) The manager dequeues the message. On the Hurd, this is translated +into a store_read: a function in the libstore library which is used to +transparently manage block devices. The storeio server starts off as +a separate process, however, if the server has the appropriate +permission, the backing object can be contacted directly by the +server. This layer of indirection is desirable when, for instance, a +storeio running as root may want to only permit read only access to a +resource, yet it cannot safely transfer its handle to the client. In +this case, it would proxy the requests. + +(C) The storeio server contacts, for instance, a device driver to do +the read. This could also be a network block device (the NBD server +in GNU/Linux), a file, a memory object, etc. + +(D) The device driver allocates an anonymous page from the default +pager and reads the data into it. Once all of the operations are +complete, the device returns the data to the client unmapping it from +its own address space at the same time. + +(E) The storeio transfers the page to the server. The page is still +anonymous. + +(F) The manager does a memory_object_supply transferring the page to +the kernel. Only now is the page not considered to be anonymous but +managed. + +(G) The kernel caches the page, installs it in the client's virtual +address space and finally, resumes the client. + +# Paging Data Out + + + Change manager Pager m_o_return store_write +> \ _________ (B) __(A)__ (C) ________ (D) _______ +> S | / Default \ / \ / \ / \ +> W |<=>| Pager |<=>| Mach |==>| server |<=>| storeio |<=> +> A | \_________/ \________/ \________/ \_______/ +> P | +> / + +(A) The paging [[policy]] is implemented by Mach: servers just implement +the [[mechanism]]. + +(B) Once the kernel has selected a page that it would like to evict, it +changes the manager from the server to the default pager. This way, +if the server does not deallocate the page quickly enough, it cannot +cause a denial of service: the kernel will just later double page it +to swap (the default pager is part of the [[tcb]]). + +(C) Mach then invokes memory\_object\_return method on the control +object. The server is expected to save the page free it in a timely +fashion. The server is not required to send a response to the kernel. + +(D) The manager then transfers the data to the storeio which +eventually sends it to disk. The device driver consumes the memory +doing the equivalent of a vm_deallocate. + -- cgit v1.2.3 From 38766f737e9f7c0356997d4b7e70d47ce1849b80 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 18:43:08 +0000 Subject: web commit by NealWalfield: Fix images. --- mach/externalpagermechanism.mdwn | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mach/externalpagermechanism.mdwn b/mach/externalpagermechanism.mdwn index 71ffab12..859a365b 100644 --- a/mach/externalpagermechanism.mdwn +++ b/mach/externalpagermechanism.mdwn @@ -84,7 +84,7 @@ mappings etc. # Resolving Page Faults - +> > (G) Client ________ > resumed / \ > | Mach | @@ -106,6 +106,7 @@ mappings etc. > ____________ > / Hardware \ + (A) The client does a memory access and faults. The kernel catches the fault and maps the address to the appropriate memory object. It then invokes the memory_object_request method on the associated @@ -145,7 +146,7 @@ address space and finally, resumes the client. # Paging Data Out - Change manager Pager m_o_return store_write +> Change manager Pager m_o_return store_write > \ _________ (B) __(A)__ (C) ________ (D) _______ > S | / Default \ / \ / \ / \ > W |<=>| Pager |<=>| Mach |==>| server |<=>| storeio |<=> @@ -153,6 +154,7 @@ address space and finally, resumes the client. > P | > / + (A) The paging [[policy]] is implemented by Mach: servers just implement the [[mechanism]]. -- cgit v1.2.3 From 4de0765a9b4274d245f20b5a778915cbcbaded82 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 18:55:16 +0000 Subject: web commit by NealWalfield: Really fix images. --- mach/externalpagermechanism.mdwn | 69 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/mach/externalpagermechanism.mdwn b/mach/externalpagermechanism.mdwn index 859a365b..91907131 100644 --- a/mach/externalpagermechanism.mdwn +++ b/mach/externalpagermechanism.mdwn @@ -1,13 +1,13 @@ -Mach provides a so-called external pager mechanism. This +Mach provides a so-called external pager [[mechanism]]. This mechanism serves to separate *managing memory* from *managing content*. Mach does the former while user space tasks do the latter. # Introduction -In Mach, a task's address space consists of references to -[[Mach/MemoryObjects]]. A memory object is designated using -a [[Mac/Port]] (a port is just a [[capability]]) and +In Mach, a task's [[Mach/AddressSpace]] consists of references +to [[Mach/MemoryObjects]]. A memory object is designated using +a [[Mach/Port]] (a port is just a [[capability]]) and implemented by a normal process. To associate a memory object with a portion of a task's @@ -57,11 +57,11 @@ it to the port set that it is listening on and returns a capability (a port send right) to the client. (C) The client attempts to map the object into its address space using -the vm_map rpc. It passes a reference to the port that the server gave +the vm\_map rpc. It passes a reference to the port that the server gave it to the vm server (typically Mach). (D) Since Mach has never seen the object before, it queues a -memory_object_init on the given port along with a send right (the +memory\_object\_init on the given port along with a send right (the memory control port) for the manager to use to send messages to the kernel and also as an authentication mechanism for future interactions: the port is supplied so that the manager will be able to @@ -72,7 +72,7 @@ structures to manage the mapping and then invokes the memory\_object\_ready method on the control object. (F) The kernel sees that the manager is ready, sets up the appropriate -mappings in the client and then replies to the vm_map rpc indicating +mappings in the client and then replies to the vm\_map rpc indicating success. There is nothing stopping others from playing "the kernel." This is @@ -84,27 +84,26 @@ mappings etc. # Resolving Page Faults -> -> (G) Client ________ -> resumed / \ -> | Mach | -> (A) Fault +----|------+ | \ (B) m_o_request (C) store_read -> ____|___ \_____|__/ |\ \| ________ _________ -> / +---\-------+ \ / \ / \ -> | Client | (F) | Server |<===>| storeio | -> \________/ m_o_supply \________/ \_________/ -> (E) return data | ^ -> | | (D) device_read -> v | -> ________ -> / Device \ -> | Driver | -> \________/ -> | ^ -> | | -> v -> ____________ -> / Hardware \ +> (G) Client ________ +> resumed / \ +> | Mach | +> (A) Fault +----|------+ | \ (B) m_o_request (C) store_read +> ____|___ \_____|__/ |\ \| ________ _________ +> / +---\-------+ \ / \ / \ +> | Client | (F) | Server |<===>| storeio | +> \________/ m_o_supply \________/ \_________/ +> (E) return data | ^ +> | | (D) device_read +> v | +> ________ +> / Device \ +> | Driver | +> \________/ +> | ^ +> | | +> v +> ____________ +> / Hardware \ (A) The client does a memory access and faults. The kernel catches @@ -146,13 +145,13 @@ address space and finally, resumes the client. # Paging Data Out -> Change manager Pager m_o_return store_write -> \ _________ (B) __(A)__ (C) ________ (D) _______ -> S | / Default \ / \ / \ / \ -> W |<=>| Pager |<=>| Mach |==>| server |<=>| storeio |<=> -> A | \_________/ \________/ \________/ \_______/ -> P | -> / +> Change manager Pager m_o_return store_write +> \ _________ (B) __(A)__ (C) ________ (D) _______ +> S | / Default \ / \ / \ / \ +> W |<=>| Pager |<=>| Mach |==>| server |<=>| storeio |<=> +> A | \_________/ \________/ \________/ \_______/ +> P | +> / (A) The paging [[policy]] is implemented by Mach: servers just implement -- cgit v1.2.3 From 83aab14fad951e0d48b2df66cf150e33cffa518f Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:03:23 +0000 Subject: web commit by NealWalfield: Create. --- mach/tcb.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 mach/tcb.mdwn diff --git a/mach/tcb.mdwn b/mach/tcb.mdwn new file mode 100644 index 00000000..fa669174 --- /dev/null +++ b/mach/tcb.mdwn @@ -0,0 +1,7 @@ +TCB stands for trusted computed base. Unqualified, the trusted +computing base referrers to the set of components programs +must [[trust]] to function correctly. On multiserver systems, +it is sometimes more appropriate to speak of the trusted computing +base of a particular program: as components are much less connected, +one program's trusted computing base may be significantly different +from another's. \ No newline at end of file -- cgit v1.2.3 From ad096e2eb0da17b495cea524b1a1ee6ba42daa57 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:29:00 +0000 Subject: web commit by NealWalfield: Add microkernel introduction (moved from Mach) --- microkernel.mdwn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/microkernel.mdwn b/microkernel.mdwn index eb46408e..e706dcbd 100644 --- a/microkernel.mdwn +++ b/microkernel.mdwn @@ -9,4 +9,7 @@ The idea of a microkernel as explained above was first explored by Per Brinch-Hansen in 1970 in [The Nucleus of a Multiprogramming System](http://brinch-hansen.net/papers/1970a.pdf). -Other notable microkernels include Hydra, KeyKOS, Eros. \ No newline at end of file +Other notable microkernels include Hydra, KeyKOS, Eros and L4. + +An [introduction](http://www.cs.cornell.edu/Info/People/ulfar/ukernel/ukernel.html) by +Úlfar Erlingsson and Athanasios Kyparlis (from 1996) to microkernel concepts. \ No newline at end of file -- cgit v1.2.3 From 04607ae234d083b96f5a2d8e6544cdc3ecd33047 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:31:33 +0000 Subject: web commit by NealWalfield: Fix link. --- trust.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trust.mdwn b/trust.mdwn index 118028b8..6d24eb1c 100644 --- a/trust.mdwn +++ b/trust.mdwn @@ -9,7 +9,7 @@ When we say that a program trusts another, we mean that [[correctness]] of the former depends on the cooperation of the latter. For instance, when a user runs ssh, the user's intention is that all communication is encrypted. In this case, the user trusts that the ssh binary respects this intent. In Unix, a program's -[[trusted computing base|tcb]] consists not only of the kernel (and all the drivers, +[[tcb]] consists not only of the kernel (and all the drivers, file systems and protocol stacks that it contains) but every program running under the same UID; it is impossible to protect against [[DestructiveInterference]] from programs running under the same UID. -- cgit v1.2.3 From c1c636b97f9d87f6d538c225dfabc0089d79cea2 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:39:10 +0000 Subject: web commit by NealWalfield: Move OSKit Wiki Links from Main Mach Page Here --- Mach/OskitMach.mdwn | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Mach/OskitMach.mdwn b/Mach/OskitMach.mdwn index 449e8eb8..d1492654 100644 --- a/Mach/OskitMach.mdwn +++ b/Mach/OskitMach.mdwn @@ -1,6 +1,11 @@ -## Table of Contents +[[toc ]] + +* [[OskitMachStatusList]]: Status and TODO list (deb status) +* [[OskitMachPatches]]: Bleeding edge patches +* [[OskitPatches]]: Useful patches for the OSKit +* [[BuildingOskitMach]]: How to build your own GNUmach kernel +* [[RemoteDebugOskitMach]]: How to use gdb to remote debug the GNUmach kernel -%TOC% ## About @@ -51,6 +56,3 @@ We have bugs, just like any other software product. To get around the more nasty See Igor Khavkine's, [i\_khavki@alcor.concordiaNOSPAM.ca](mailto:i_khavki@alcor.concordiaNOSPAM.ca), excellent help to [remote debug oskit-mach over a serial line](http://www.etherhogz.org/doc/oskit-boot.txt), or the local [[RemoteDebugOskitMach]]. ----- - -**_Comments:_** -- cgit v1.2.3 From 115a30327d7e98d7a6e1e2147da514406b8e29f2 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:45:23 +0000 Subject: web commit by NealWalfield: Create. --- Mach/mach/ipc.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Mach/mach/ipc.mdwn diff --git a/Mach/mach/ipc.mdwn b/Mach/mach/ipc.mdwn new file mode 100644 index 00000000..42cfacdf --- /dev/null +++ b/Mach/mach/ipc.mdwn @@ -0,0 +1,3 @@ +An IPC is sent by invoking a [[Mach/Port]]. + +[The Unofficial GNU Mach IPC beginner's guide](http://www.nongnu.org/hurdextras/ipc_guide/ipc_guide.html) \ No newline at end of file -- cgit v1.2.3 From 3081b1e9fb4077afac833b80788d8db3c5b639a4 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:51:30 +0000 Subject: web commit by NealWalfield: Rewrite. --- Mach/GNUMach.mdwn | 51 +++++---------------------------------------------- 1 file changed, 5 insertions(+), 46 deletions(-) diff --git a/Mach/GNUMach.mdwn b/Mach/GNUMach.mdwn index f0134a8d..7754e124 100644 --- a/Mach/GNUMach.mdwn +++ b/Mach/GNUMach.mdwn @@ -1,48 +1,7 @@ -# Table of Contents +GNU Mach runs on x86 machines (it does not support 64-bit machines). GNU +Mach is currently used by the GNU Hurd. -%TOC% +GNU Mach remains compatible with Mach 3.0. -# 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 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 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 of the microkernel, you should [contact the Hurd people](http://www.gnu.org/software/hurd/help.html). - -For another view, please see the [Wikipedia Mach kernel entry](http://www.wikipedia.com/wiki/Mach+kernel) -- [[Main/GrantBow]] - 02 Jun 2002 - -# 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. - ----- - -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. - --- [[Main/JoachimNilsson]] - 13 May 2002 - -A unique advantage is being able to run a [Neighbor Hurd](http://www.gnu.org/software/hurd/howto/subhurd.html). - --- [[Main/GrantBow]] - 28 Sep 2002 - -I don't want to refactor this content as it's a Verbatim copy. However I want to add that GNUMach 1.3 uses Linux drivers as of the Linux kernel version 2.0.36. - --- [[Main/GrantBow]] - 09 Oct 2002 +The majority of GNU Mach's device drivers are from Linux 2.0. The are +added using glue code, i.e., a Linux emulation layer in Mach. \ No newline at end of file -- cgit v1.2.3 From f0d17089b6a467c647eecc149358bc63af571898 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:54:11 +0000 Subject: web commit by NealWalfield: Add links regarding GNU Mach from [[Mach]] to here. --- Mach/GNUMach.mdwn | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Mach/GNUMach.mdwn b/Mach/GNUMach.mdwn index 7754e124..73b976ad 100644 --- a/Mach/GNUMach.mdwn +++ b/Mach/GNUMach.mdwn @@ -1,7 +1,12 @@ GNU Mach runs on x86 machines (it does not support 64-bit machines). GNU -Mach is currently used by the GNU Hurd. +Mach is currently used by the GNU [[Hurd]]. GNU Mach remains compatible with Mach 3.0. The majority of GNU Mach's device drivers are from Linux 2.0. The are -added using glue code, i.e., a Linux emulation layer in Mach. \ No newline at end of file +added using glue code, i.e., a Linux emulation layer in Mach. + +# Related Links + +## [[BuildingGNUMach]] +## [[GNUMachRevivalProject]] - GNU Mach Projects \ No newline at end of file -- cgit v1.2.3 From 0bd86fc138241263b3243326e96815d1cf84981d Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:55:49 +0000 Subject: web commit by NealWalfield: Use list, not headings tags, for list elements --- Mach/GNUMach.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Mach/GNUMach.mdwn b/Mach/GNUMach.mdwn index 73b976ad..416d2a1e 100644 --- a/Mach/GNUMach.mdwn +++ b/Mach/GNUMach.mdwn @@ -8,5 +8,5 @@ added using glue code, i.e., a Linux emulation layer in Mach. # Related Links -## [[BuildingGNUMach]] -## [[GNUMachRevivalProject]] - GNU Mach Projects \ No newline at end of file +* [[BuildingGNUMach]] +* [[GNUMachRevivalProject]] - GNU Mach Projects \ No newline at end of file -- cgit v1.2.3 From 79724cf8c55a16e958a15b05613474886b2cbf65 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 19:57:16 +0000 Subject: web commit by NealWalfield: Redistribute content --- Mach.mdwn | 101 ++++++++++---------------------------------------------------- 1 file changed, 15 insertions(+), 86 deletions(-) diff --git a/Mach.mdwn b/Mach.mdwn index 99de2433..7b051a01 100644 --- a/Mach.mdwn +++ b/Mach.mdwn @@ -1,87 +1,16 @@ -## GNU Mach +Mach is a so-called first generation [[microkernel]]. It is the +microkernel currently used by the [[Hurd]]. -This web deals with the Mach micro kernel, the base for the Hurd servers which makes out the GNU operating system. This is also the logical place for any other future microkernel, like L4 for instance.

Feel free to add relevant content.

-

Table of Contents:

-

-

-
    -
  • [[MachHistory]]: History of Mach
  • -
-

-

- -

-

-

-

-
    -
  • Microkernels (an HTML review of the area from late 1996)
  • -
-

-

- -

-

- -

-

-
    -
  • [[GNUMach]]: GNUmach 1.x kernel
      -
    • [[BuildingGNUMach]]
    • -
    -
  • -
-

-

-
    -
  • [[OskitMach]]: GNUmach 2.0 (DEFUNCT)
      -
    • [[OskitMachStatusList]]: Status and TODO list (deb status)
    • -
    • [[OskitMachPatches]]: Bleeding edge patches
    • -
    • [[OskitPatches]]: Useful patches for the OSKit
    • -
    • [[BuildingOskitMach]]: How to build your own GNUmach kernel
    • -
    • [[RemoteDebugOskitMach]]: How to use gdb to remote debug the GNUmach kernel
    • -
    -
  • -
-

-

-
    -
  • [[MicroKernelFUD]]: Fear, Uncertainty, Doubt - The Micro Kernel Experiment Continues
  • -
-

-

-
    -
  • [[MicroKernelResearch]]: Papers on Mach related topics, [[PosixSemaphores]], [[PortToL4]].
  • -
-

-

-
    -
  • [[MicroKernelsForBeginners]]: (suggested page, better description needed) For experienced users who know little about microkernels but wish to learn about them.
  • -
-

-

- -

-

- -

-

-
    -
  • [[GNUMachRevivalProject]]: Task and Wish list for a new effort to make GNU Mach a reliable (in stability and performance terms) microkernel for The Hurd.
  • -
+* [[MachConcepts]] +* [[MachHistory]] ([Torvalds, Tanenbaum Debate](http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html)) + +* [[MicroKernelsForBeginners]] +* [[MicroKernelFUD]]: Fear, Uncertainty, Doubt +* [[MicroKernelResearch]] + + +# Implementations + +* [[GNUMach]] +* [[OskitMach]] - A Once Successor of Mach based on OSKit +* [Apple's Darwin](http://developer.apple.com/darwin/) ([API](http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/index.html)) (**non-free**) -- cgit v1.2.3 From ad2b84ed0ef209b180bf5e95155ee507f4402e65 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 20:02:05 +0000 Subject: web commit by NealWalfield: Clean up. --- Mach/GNUMach.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mach/GNUMach.mdwn b/Mach/GNUMach.mdwn index 416d2a1e..6b869e62 100644 --- a/Mach/GNUMach.mdwn +++ b/Mach/GNUMach.mdwn @@ -3,7 +3,7 @@ Mach is currently used by the GNU [[Hurd]]. GNU Mach remains compatible with Mach 3.0. -The majority of GNU Mach's device drivers are from Linux 2.0. The are +The majority of GNU Mach's device drivers are from Linux 2.0. They were added using glue code, i.e., a Linux emulation layer in Mach. # Related Links -- cgit v1.2.3 From fad788cc331a1cbe40038e109ca766e670b2e9e3 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 20:05:00 +0000 Subject: web commit by NealWalfield: Split documentation out. --- Mach/MachConcepts.mdwn | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Mach/MachConcepts.mdwn b/Mach/MachConcepts.mdwn index 2a7b0061..b513b376 100644 --- a/Mach/MachConcepts.mdwn +++ b/Mach/MachConcepts.mdwn @@ -4,7 +4,4 @@ form of threads, [[Mach/IPC]], [[capabilities]] in the form of [[Mach/Ports]], and [[Mach/MemoryObjects]], which enable Mach's [[Mach/ExternalPagerMechanism]]. -# Documentation - -- OSF's [Kernel Interface](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps) -- OSF's [Kernel Principles](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps) \ No newline at end of file +Mach's API is well-documented [[Mach/Documentation]]. -- cgit v1.2.3 From a2e31e5735949007e869f1d3237dae415133663c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 20:06:20 +0000 Subject: web commit by NealWalfield: Create. --- Mach/mach/documentation.mdwn | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Mach/mach/documentation.mdwn diff --git a/Mach/mach/documentation.mdwn b/Mach/mach/documentation.mdwn new file mode 100644 index 00000000..542ad85f --- /dev/null +++ b/Mach/mach/documentation.mdwn @@ -0,0 +1,2 @@ +- OSF's [Kernel Interface](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps) +- OSF's [Kernel Principles](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps) \ No newline at end of file -- cgit v1.2.3 From ffed19522f01f5ee74c2d28ba906b5456091fc49 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 20:08:16 +0000 Subject: web commit by NealWalfield: Fix Mach sidebar. --- sidebar.mdwn | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sidebar.mdwn b/sidebar.mdwn index f14c128d..86178ca1 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -23,9 +23,8 @@ * *[[FAQ|Hurd/FrequentlyAskedQuestions]]* * *[[Hurd/ToDo]]*"]] * **[[Mach]]**[[if test="destpage(Mach*)" then=" - * *[[History|Mach/MachHistory]]* * *[[GNU_Mach|Mach/GNUMach]]* - * *[[OSKit_Mach|Mach/OskitMach]]*"]] + * *[[Documentation]]*"]] * **[[Mig]]**[[if test="destpage(Mig*)" then=" * *[[About|Mig/MachInterfaceGenerator]]* * *[[Documentation|Mig/MigDocumentation]]*"]] -- cgit v1.2.3 From 48683ea424605dd13dd729d526990b61232ed33b Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 22:55:17 +0000 Subject: web commit by MichaelBanck: spin bug-hurd as main technical list instead of hurd-devel, remove comments about deprecation of hurd-devel in favour of l4-hurd --- Hurd/MailLists.mdwn | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Hurd/MailLists.mdwn b/Hurd/MailLists.mdwn index f28a53a2..a32dbfbf 100644 --- a/Hurd/MailLists.mdwn +++ b/Hurd/MailLists.mdwn @@ -3,14 +3,15 @@ Lists are unmoderated and hosted on unless otherwise marked.
+
bug-hurd
+
web archives - main technical list for development and bug discussions.
hurd-devel
-
web archives - main technical list. This is moderated and restricted; subscribe to hurd-devel-readers instead. The Hurd is being ported to the L4 microkernel and most technical activity can be found in the l4-hurd list.
+
web archives - low-traffic developers list. This is moderated and restricted; subscribe to hurd-devel-readers instead.
hurd-devel-readers
read only version of hurd-devel. To avoid duplication with the hurd-devel archives, the hurd-devel-readers archives are turned off.
help-hurd
web archives - ask Hurd specific questions here.
-
bug-hurd
-
web archives - technical debugging and discussion.
+
hurd-private
it's private, no archives are available.
-- cgit v1.2.3 From 8664f01692075fd457299d9b46f60c0cc9e56937 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 22:57:47 +0000 Subject: web commit by MichaelBanck: remove kernel traffic link --- Hurd/MailLists.mdwn | 1 - 1 file changed, 1 deletion(-) diff --git a/Hurd/MailLists.mdwn b/Hurd/MailLists.mdwn index a32dbfbf..0c89354e 100644 --- a/Hurd/MailLists.mdwn +++ b/Hurd/MailLists.mdwn @@ -38,7 +38,6 @@ Lists are unmoderated and hosted on unless otherwise marke
moderated list, web archives - technical debugging and discussion.
-[Hurd Traffic](http://www.kerneltraffic.org/debian-hurd/). P.S. There does not exist any "stupid" questions! -- cgit v1.2.3 From fe6abbd90ddce63cc754472ce2e1a192b0d436eb Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Sun, 19 Aug 2007 22:59:41 +0000 Subject: web commit by MichaelBanck: remove bug-grub links --- Hurd/MailLists.mdwn | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Hurd/MailLists.mdwn b/Hurd/MailLists.mdwn index 0c89354e..18ed8ee8 100644 --- a/Hurd/MailLists.mdwn +++ b/Hurd/MailLists.mdwn @@ -33,12 +33,6 @@ Lists are unmoderated and hosted on unless otherwise marke
web archives - theoretical kernel development.
-
-
bug-grub
-
moderated list, web archives - technical debugging and discussion.
-
- - P.S. There does not exist any "stupid" questions! We have all been beginners. -- cgit v1.2.3 From 6e7cac446ae4a3330270cfc675d49ff5295543a1 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 08:49:57 +0000 Subject: web commit by NealWalfield: Create. --- capabilities.mdwn | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 capabilities.mdwn diff --git a/capabilities.mdwn b/capabilities.mdwn new file mode 100644 index 00000000..fc1b36e0 --- /dev/null +++ b/capabilities.mdwn @@ -0,0 +1,23 @@ +A capability is a protected reference. It is a reference in that +it designates an object; it is protected in that in cannot be +forged. A capabilities both designates the object it refers to and +carries the authority to manipulate it. + +By binding [[designation]] and [[authorization]] together, capabilities +simplify [[delegation]]. Imagine that program instance A wants to +tell program B to use a particular file to store some data. +Further imagine that A and B are running in different [[TrustDomains]] +(e.g., with different UIDs). If A sends B just the name +of the file, B needs to first ensure that he does not accidentally +enable A to access the file on his own authority. That is, B wants +to protect against A hijacking his authority. (This problem is +refused to the [[ConfusedDeputy]] problem.) Also, since A likely +sent a string to identify the file to B, the identifier lacks a +[[NamingContext]] and therefore may resolve to a different object +than A intended. Be ensuring that designation and authorization are +always bound together, these problems are avoided. + +Unix file descriptors can be viewed as capabilities. Unix file +descriptors do not survive reboot, that is, they are not +[[persistent]]. To work around this, [[ACL]]s are used to +recover authority. \ No newline at end of file -- cgit v1.2.3 From 1184e569dbe54e5b486601e1b718f09d2eddee89 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 08:58:28 +0000 Subject: web commit by NealWalfield: Create. --- confuseddeputy.mdwn | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 confuseddeputy.mdwn diff --git a/confuseddeputy.mdwn b/confuseddeputy.mdwn new file mode 100644 index 00000000..0581c20b --- /dev/null +++ b/confuseddeputy.mdwn @@ -0,0 +1,4 @@ +[The confused deputy](http://www.cis.upenn.edu/~KeyKOS/ConfusedDeputy.html) +problem was articulated by Norm Hardy. It is a possible consequence +when [[designation]] and [[authorization]] are separated. [[Capabilities]] +help with this problem. \ No newline at end of file -- cgit v1.2.3 From eb511ef2ebf69de9662c5dea348f49729e70c849 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 09:01:28 +0000 Subject: web commit by NealWalfield: Create. --- designation.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 designation.mdwn diff --git a/designation.mdwn b/designation.mdwn new file mode 100644 index 00000000..318ef6a2 --- /dev/null +++ b/designation.mdwn @@ -0,0 +1 @@ +To designate is to name. \ No newline at end of file -- cgit v1.2.3 From 6bf7b09cde5f9c30421e8367c59b8132ccdcf8ed Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 09:10:43 +0000 Subject: web commit by NealWalfield: Create. --- namingcontext.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 namingcontext.mdwn diff --git a/namingcontext.mdwn b/namingcontext.mdwn new file mode 100644 index 00000000..7e7b14d0 --- /dev/null +++ b/namingcontext.mdwn @@ -0,0 +1,14 @@ +Names are bindings to objects, however, to find an object +given a name, the relation must be looked up in a +naming context. A problem with using string as names is +that it is very easy to lose track of the correct naming +context. This is one of the problem with [[PassiveTranslators]]: +a passive translator is a string. When the node is accessed +on which the passive translator is set and there is no active +translator, then an active translator is started using the +passive translator setting. The active translator is started +by the file system, not the program instance that set the +passive translator. The passive translator settings are +therefore resolved in the file system's naming context, which +may be different from that of the program instance that set the +passive translator setting. \ No newline at end of file -- cgit v1.2.3 From 0dc0bf222895598eb843df839271b0d1aaace80c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 09:15:01 +0000 Subject: web commit by NealWalfield: Create. --- persistent.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 persistent.mdwn diff --git a/persistent.mdwn b/persistent.mdwn new file mode 100644 index 00000000..9cc05f67 --- /dev/null +++ b/persistent.mdwn @@ -0,0 +1,8 @@ +A persistent object is an object that survives reboot. +On Unix, files and directories are persistent but +processes and file descriptors are not. EROS is +an example of an orthogonally persistent system: +processes and capabilities also survive reboot. To a +process, it generally only looks as if it had not been +scheduled for a long time; the rest of its environment +remains essentially the indistinguishable. \ No newline at end of file -- cgit v1.2.3 From ddff1bd722f0e4acdeb634973ac703205e8028a2 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 09:38:22 +0000 Subject: web commit by NealWalfield: Reformat; improve text --- Hurd/MailLists.mdwn | 76 +++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/Hurd/MailLists.mdwn b/Hurd/MailLists.mdwn index 18ed8ee8..780d6623 100644 --- a/Hurd/MailLists.mdwn +++ b/Hurd/MailLists.mdwn @@ -1,43 +1,39 @@ -## Mailing Lists +# On Posting + +Before asking a question on a list, first make an effort to find the answer +to your question. When you ask your question, (1) be details, and (2) demonstrate +that you have made an effort, e.g., "I am having trouble frobbing the foo. I +searched the web and only found information regarding how to frob a bar, but +that seems unrelated." + +List etiquette is to cc the sender and anyone **actively** involved in the +discussion. Some people don't like this and they set their reply-to header +appropriately. Respect this. + +It is rarely appropriate to cc multiple lists. Sometimes it is. In that case, +do so. If in doubt, don't; just choose the single most appropriate list. + +# Main Lists Lists are unmoderated and hosted on unless otherwise marked. +Try to post to the appropriate mailing list. + +* [bug-hurd](http://mail.gnu.org/mailman/listinfo/bug-hurd) - Technical discussion and bug reports +* [hurd-devel](http://mail.gnu.org/mailman/listinfo/hurd-devel) - Low-traffic developers list. (This + list is *moderated* and *restricted*; subscribe to + [hurd-devel-readers](http://mail.gnu.org/mailman/listinfo/hurd-devel-readers].) +* [help-hurd](http://mail.gnu.org/mailman/listinfo/help-hurd) - Hurd specific questions +* [debian-hurd](http://www.debian.org/MailingLists/subscribe) - Discussion around + and questions regarding the Debian GNU/Hurd distribution. +* [web-hurd](http://mail.gnu.org/mailman/listinfo/web-hurd) - Discussion of the http://hurd.gnu.org + website. +* [l4-hurd](http://mail.gnu.org/mailman/listinfo/l4-hurd) - Discussion regarding a possible + design successor to the Hurd. + +# HUGs + +* [THUG](http://mail.gnu.org/mailman/listinfo/thug) - Toronto-area Hurd Users Group and discussion. + +# Related -
-
bug-hurd
-
web archives - main technical list for development and bug discussions.
-
hurd-devel
-
web archives - low-traffic developers list. This is moderated and restricted; subscribe to hurd-devel-readers instead.
-
hurd-devel-readers
-
read only version of hurd-devel. To avoid duplication with the hurd-devel archives, the hurd-devel-readers archives are turned off.
-
help-hurd
-
web archives - ask Hurd specific questions here.
- -
hurd-private
-
it's private, no archives are available.
-
- -
-
debian-hurd
-
web archives - general system discussion, packaging, integration. Ask general questions here. Debian hosted.
-
- -
-
thug
-
web archives - Toronto-area Hurd Users Group and discussion.
-
- -
-
web-hurd
-
web archives - discussion of web pages at http://hurd.gnu.org.
-
l4-hurd
-
web archives - theoretical kernel development.
-
- - P.S. - There does not exist any "stupid" questions! - We have all been beginners. - D.S. - -The discussion reference page is - -See also the [[Hurd/HurdIRC]] topic. +* [[Hurd/HurdIRC]] \ No newline at end of file -- cgit v1.2.3 From 1b238b84947f957ac016d7479eb7f5fe1e46d2ea Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 10:17:27 +0000 Subject: web commit by NealWalfield: Create. --- Mach/mach/ports.mdwn | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Mach/mach/ports.mdwn diff --git a/Mach/mach/ports.mdwn b/Mach/mach/ports.mdwn new file mode 100644 index 00000000..54cc12ac --- /dev/null +++ b/Mach/mach/ports.mdwn @@ -0,0 +1,31 @@ +Mach ports are [[capabilities]]. + +A Mach port is a kernel queue. Each port has associated with +it a receive right and one or more send and send-once rights. +A queue can hold a number of messages. Once the queue is full, +the send blocks until their is space to enqueue the message +(this is interruptible via a timeout mechanism). + +A receive right designates a queue and authorizes the holder to +dequeue messages from the queue, and to create send and send-once +rights. + +Send and send-once rights designate a queue and authorize the +hold to enqueue messages (in the case of a send-once right, +a single message). Enqueuing a message is equivalent to +[[invoke|invoking]] a capability. + +Send and receive rights are named using local names. Each +task has associated with it a port address space. A ports +are addressed via this table. Each task thus has its own +private [[NamingContext]] for ports. + +Ports can be [[delegate]]d in an IPC message. When the +receiver dequeues the message, the right is made available +to it. + +A thread can only block receiving on a single port. To work +around this, the concept of a port set was introduced. A receive +right can be added to (at most) one port set. When a thread +receives from a port set, it dequeues from any of the ports that +has a message available. \ No newline at end of file -- cgit v1.2.3 From bdf50f1033c215238634e6cc517bce83dc401e3c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 10:21:08 +0000 Subject: web commit by NealWalfield: Fix documentation link. --- Mach/MachConcepts.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mach/MachConcepts.mdwn b/Mach/MachConcepts.mdwn index b513b376..f81e4e4f 100644 --- a/Mach/MachConcepts.mdwn +++ b/Mach/MachConcepts.mdwn @@ -4,4 +4,4 @@ form of threads, [[Mach/IPC]], [[capabilities]] in the form of [[Mach/Ports]], and [[Mach/MemoryObjects]], which enable Mach's [[Mach/ExternalPagerMechanism]]. -Mach's API is well-documented [[Mach/Documentation]]. +Mach's API is well-[[documented|Mach/Documentation]]. \ No newline at end of file -- cgit v1.2.3 From 70a8bf570940b37a242b22dc39daabc22d74ea3c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 10:39:57 +0000 Subject: web commit by NealWalfield: Create. --- Mach/MicroKernelsForBeginners.mdwn | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Mach/MicroKernelsForBeginners.mdwn b/Mach/MicroKernelsForBeginners.mdwn index a89b5284..1bfab1ed 100644 --- a/Mach/MicroKernelsForBeginners.mdwn +++ b/Mach/MicroKernelsForBeginners.mdwn @@ -1,17 +1,22 @@ -Think of this as a Wiki Pos^H^H^H Yellow Sticky Note Note +# Concepts -This page is linked to from [[Mach]]. I created it for the purpose of creating a 'beginners meta guide to microkernels'. +A [[microkernel]] implements a minimal number of abstractions +that facilitate the realization of operating system services. -Essentially, the rationale is as follows. There are many users of this Wiki who understand microkernels. Many users who come here may want to know more about microkernels, having just heard about them. (I heard years ago, but haven't taken a direct interest in the issues related to them.) +[[MachConcepts]] are documented here. -As a suggestion as to what should go here: +Read OSF's Kernel Principles. Find it under the +[[documentation]] link. -* Good books to read -* Good websites to visit -* Any easy to read papers concerning the topic +# Exercises -...you get the idea. +Mach's API is documented in OSF's Kernel API book. Find it +under the [[documentation]] link. Skim it to get an idea +of how the API looks and then try the following exercises: -nb. The above text is intended as a placeholder for actual content, which I cannot supply myself but think should go here. (Rationale is a reverse application of the 'do unto others...', namely I am most likely not the only thinking this and registering the initial suggestion may help as a catalyst to helping others...) +Send messages using Mach's IPC mechanism +([detailed description](http://walfield.org/pub/people/neal/papers/hurd-misc/mach-ipc-without-mig.txt)). --- [[Main/JohnAllsup]] - 29 Oct 2003 +Implement your own pager. Write a server that synthesizes +content on the fly and have a client map the object into its +address space and print out the file. \ No newline at end of file -- cgit v1.2.3 From 42f2af536378ac01b5c980837eb682f8b4e02834 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 10:44:25 +0000 Subject: web commit by NealWalfield: Fix link to article. Fix the spelling of Wolfgang's name. --- Mach/MicroKernelFUD.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Mach/MicroKernelFUD.mdwn b/Mach/MicroKernelFUD.mdwn index 1961f6d2..0ee5035c 100644 --- a/Mach/MicroKernelFUD.mdwn +++ b/Mach/MicroKernelFUD.mdwn @@ -1,8 +1,8 @@ # The Microkernel Experiment is Going On -by [Wolfgang J�hrling](mailto:wolfgang AT pro-linux DOT de) and [Jeroen Dekkers](mailto:jeroen AT dekkers DOT cx) +by [Wolfgang Jährling](mailto:wolfgang AT pro-linux DOT de) and [Jeroen Dekkers](mailto:jeroen AT dekkers DOT cx) -This article is a response to an [earlier article](http://www.linuxjournal.com/print.php?sid=6105) by Miles Nordin in Linux Journal, where he expressed his personal feelings about microkernels and monolithic kernels. We will try to present a different point of view. Of course, we are also biased, as we are both young hackers who try to turn [the GNU Hurd](http://www.gnu.org/software/hurd/) into a software useful for everyday-work; for those who don't know it (yes, we're abusing this article as an advertisement): The Hurd is a collection of Daemons, currently running on top of the Mach microkernel and providing a replacement for the Unix kernel together with the GNU C Library. +This article is a response to an [earlier article](http://www.linuxjournal.com/node/6105/print) by Miles Nordin in Linux Journal, where he expressed his personal feelings about microkernels and monolithic kernels. We will try to present a different point of view. Of course, we are also biased, as we are both young hackers who try to turn [the GNU Hurd](http://www.gnu.org/software/hurd/) into a software useful for everyday-work; for those who don't know it (yes, we're abusing this article as an advertisement): The Hurd is a collection of Daemons, currently running on top of the Mach microkernel and providing a replacement for the Unix kernel together with the GNU C Library. Miles Nordin claimed that microkernels are dead already. But this is not completely true. The first generation of microkernels, which were in fact no real microkernels, are dead. But there is a new generation, which uses a radically different strategy than the original (so-called) microkernels. Thus, microkernels are still a research topic, and today they look more promising than ever before. By now, this is just something we claim, but read on, and you'll find out why we do so. @@ -18,7 +18,7 @@ If you are interested in research about the performance of microkernel based sys ---- -Copyright (C) 2002 Wolfgang J�hrling
Copyright (C) 2002 Jeroen Dekkers +Copyright (C) 2002 Wolfgang Jährling
Copyright (C) 2002 Jeroen Dekkers Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. -- cgit v1.2.3 From bca5c74587a27770a6a656bdc1dbaacc5b53a79e Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 10:55:19 +0000 Subject: web commit by NealWalfield: Rework text. --- Mig.mdwn | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Mig.mdwn b/Mig.mdwn index ea6189b7..a34e52ea 100644 --- a/Mig.mdwn +++ b/Mig.mdwn @@ -1,5 +1,10 @@ -The [[MachInterfaceGenerator]] (MIG) is a program which generates inter-process communication (IPC) code. Specifically Mig generates remote procedure call (RPC) code for communication between client and server processes running on a Mach microkernel. +The [[MachInterfaceGenerator]] (MIG) is an [[IDL]] compiler. Based on an +interface definition, it creates stubs to [[invoke]] object methods +and to demultiplex incoming messages. These stubs conveniently hide +the details of Mach's [[IPC]] machinery. -

Mach servers run as separate tasks and communicate with RPC messages. The RPC interface is language independant and somewhat complex. MIG mitigates this complexity.

-

GNU MIG is fully compatible with OSF MIG. The official Mig site is a page hosted on the official Hurd site. [[MigDocumentation]] is available. Mig also has it's own CVS module within the main Hurd CVS site.

-

[[BuildingMIG]]

+GNU MIG is fully compatible with OSF MIG. + +* MIG's [homepage](http://www.gnu.org/software/hurd/mig.html) +* [[MigDocumentation]] +* [[BuildingMIG]] - Buiding (and obtaining) MIG \ No newline at end of file -- cgit v1.2.3 From 93bc405c21334a1015f2a208d1da5069f30f357d Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 11:02:10 +0000 Subject: web commit by NealWalfield: Rework text. --- Mig.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mig.mdwn b/Mig.mdwn index a34e52ea..bdf85a1b 100644 --- a/Mig.mdwn +++ b/Mig.mdwn @@ -7,4 +7,4 @@ GNU MIG is fully compatible with OSF MIG. * MIG's [homepage](http://www.gnu.org/software/hurd/mig.html) * [[MigDocumentation]] -* [[BuildingMIG]] - Buiding (and obtaining) MIG \ No newline at end of file +* [[BuildingMIG]] - Building (and obtaining) MIG -- cgit v1.2.3 From d55cb956a168419d0b07ed7181f7eaf2805e55f1 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 11:04:42 +0000 Subject: web commit by NealWalfield: Clean up. --- Mig/MigDocumentation.mdwn | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/Mig/MigDocumentation.mdwn b/Mig/MigDocumentation.mdwn index 8478a8a4..c876e494 100644 --- a/Mig/MigDocumentation.mdwn +++ b/Mig/MigDocumentation.mdwn @@ -1,14 +1,10 @@ -## Table of Contents +[[toc ]] -%TOC% - -## About +# About This is a small collection of links to external documents describing the [[MachInterfaceGenerator]] used by GNU Mach. -## Carnegie-Mellon University - -### MiG and C Thread Programming +# MiG and C Thread Programming A tutorial which demonstrates the use of the C Threads library primitives in writing a multithreaded program and the use of the Mach Interface Generator (MIG) to generate remote procedure calls for interprocess communication. Like its companion tutorial, it is based on the Mach 2.5 system. However, the concepts are applicable to Mach 3.0 user level programming. @@ -16,11 +12,9 @@ Linda R. Walmer and Mary R. Thompson. **A Programmer's Guide to the Mach User En An ftp directory containing the [mig programming examples](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example) for this tutorial. -### PostScript slides on MiG - Slides to Rich Drave's talk on Mig, the Mach Interface Generator, on November 21, 1991: [PostScript](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps) [TeX](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex) -### Definition of MiG +# Roots Mig is an implementation of a subset of the Matchmaker **language**. @@ -28,6 +22,6 @@ Mig is an implementation of a subset of the Matchmaker **language**. Richard P. Draves,Michael B. Jones,Mary R. Thompson, **MIG - THE MACH INTERFACE GENERATOR**. [ps](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps) [doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc) November 1989. Department of Computer Science, Carnegie-Mellon University. -### Other papers related to MiG +# Related Work See the citations about [Mach and matchmaker: kernel and language support for objectoriented distributed systems](http://citeseer.ist.psu.edu/context/93073/0) here. "M. B. Jones and R. F. Rashid, \`Mach and matchmaker: kernel and language support for objectoriented distributed systems', Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1986, pp. 67--77." -- cgit v1.2.3 From d37eb872bfd3dc7886c61c776115e8bb917a4662 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Mon, 20 Aug 2007 11:08:35 +0000 Subject: web commit by NealWalfield: Create. --- idl.mdwn | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 idl.mdwn diff --git a/idl.mdwn b/idl.mdwn new file mode 100644 index 00000000..f6dc9eca --- /dev/null +++ b/idl.mdwn @@ -0,0 +1,5 @@ +An IDL is an interface definition language. The most well-known is +CORBA. An IDL compiler takes a specification and generates stubs +that hide the transport details. In the case of [[MIG]], this +hides the marshalling and unmarshalling of parameters according +to Mach's semantics. \ No newline at end of file -- cgit v1.2.3 From a63eb8b0eae2828ef71fa4d5962f967072902b4d Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 14:23:06 +0000 Subject: web commit by NealWalfield: Explain --- Hurd/NeighborHurd.mdwn | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Hurd/NeighborHurd.mdwn b/Hurd/NeighborHurd.mdwn index 5a9020fc..ed76c4e1 100644 --- a/Hurd/NeighborHurd.mdwn +++ b/Hurd/NeighborHurd.mdwn @@ -1,3 +1,20 @@ - +It is possible to run multiple instances of the Hurd +in parallel, on a single instance of Mach. Other than +performance crosstalk, they are essentially isolated. +Practically, as many devices do not allow multiple +non-cooperating users, e.g., hard drive and network +this is not currently possible. It can be overcome, +however, by virtualizing these problematic devices. --- [[Main/GrantBow]] - 21 Jan 2003 +When extra hardware is not available, it is possible to +use a sub-hurd. A sub-Hurd is like a neighbor Hurd, +however, makes use of some resources provided by another +Hurd. For instance, backing store and the console. + +Sub-hurds are extremely useful for debugging core +servers as it is possible to attach to them with gdb +from the parent. This avoids deadlock, e.g., when the +instance of gdb stops the server but requires its use. +(Note: it is possible to use [[NonInvasiveDebugging]], +but this is less flexible.) A [tutorial](http://www.gnu.org/software/hurd/howto/subhurd.html) +on setting up sub-hurds is available. -- cgit v1.2.3 From cb6733e7e4442e8ce42607a078f5075e55090e22 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 14:25:32 +0000 Subject: web commit by vincentvikram: removed trailing slash --- Distrib/PortingIssues.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Distrib/PortingIssues.mdwn b/Distrib/PortingIssues.mdwn index 1f9def8c..747fb230 100644 --- a/Distrib/PortingIssues.mdwn +++ b/Distrib/PortingIssues.mdwn @@ -6,7 +6,7 @@ This is a recompilation of common porting problems and their solutions. Information is gathered from the following sources: -* [Debian GNU/Hurd port guidelines](http://www.debian.org/ports/hurd/hurd-devel-debian/) +* [Debian GNU/Hurd port guidelines](http://www.debian.org/ports/hurd/hurd-devel-debian) * [James Morrison's GNU/Hurd pages](http://hurd.dyndns.org/) -- cgit v1.2.3 From 0cac5c4f0456246b8a6f60d550d7b1a4efba9a52 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 14:26:07 +0000 Subject: web commit by NealWalfield: Create --- Hurd/noninvasivedebugging.mdwn | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Hurd/noninvasivedebugging.mdwn diff --git a/Hurd/noninvasivedebugging.mdwn b/Hurd/noninvasivedebugging.mdwn new file mode 100644 index 00000000..2ed57c3d --- /dev/null +++ b/Hurd/noninvasivedebugging.mdwn @@ -0,0 +1,5 @@ +Sometimes using gdb on a server can result in +deadlock. You can still use gdb by using +the "set noninvasive" option. This indicates +to gdb to not stop the program but allows you to +nevertheless examine its state. \ No newline at end of file -- cgit v1.2.3 From d232e274d61819afbf031fe771219e7df9020eed Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 14:32:58 +0000 Subject: web commit by NealWalfield: Create --- Hurd/debbuging.mdwn | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Hurd/debbuging.mdwn diff --git a/Hurd/debbuging.mdwn b/Hurd/debbuging.mdwn new file mode 100644 index 00000000..436014f2 --- /dev/null +++ b/Hurd/debbuging.mdwn @@ -0,0 +1,4 @@ +See: + +* [[NeighborHurd]] +* [[NonInvasiveDebugging]] -- cgit v1.2.3 From 62239b9acb7bb5b04c14f8ae71a028fe3c1a24a4 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 14:47:29 +0000 Subject: web commit by NealWalfield: Rework. --- Hurd/HurdIRC.mdwn | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index de7a38ec..8eeb54ca 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -1,23 +1,34 @@ -# Internet Relay Chat +Some Hurd developpers and users frequent irc. The main channel is +the #hurd channel hosted on [Freenode.net](http://freenode.net/). -The Hurd has its own #hurd channel hosted on [Freenode.net](http://freenode.net/). Connect to and `/join #hurd` to begin. +Localized channels include: -**_Note:_** "Stupid" questions do not exist! We do sometimes forget that we have all learned how to use IRC. Please don't mind the louder voices on the channel if they seem a bit caustic. +* #hurd-it - Italian discussion +* #hurd-es - Spanish discussion +* #hurdfr - French discussion -## Channels +# Asking Questions -### #hurd - main channel +If you have a question regarding the Hurd or Debian, a good forum +is often #hurd. **However**, please follow these [guidelines](http://catb.org/~esr/faqs/smart-questions.html) +when asking your question. Namely: spend some time that you tried +to solve the problem on your, show us that you did so when you +ask your question, and provide as many relevant details as possible +reproducing them as exactly as possible. -### #hurd-it - Italian discussion +# Staying On-Topic -### #hurd-es - Spanish discussion +Please try to stay on topic. -### #hurdfr - French discussion +* emacs vs. vi **is not** on topic. +* If it is appropriate for a **slashdot comment**, it's not appropriate + here. +* why GNU sucks +* when the next release of the Hurd will be -### [TODO: and others] +# Pasting Logs -## Logs - -The logs for a number of channels have been recorded by [hird](http://web.walfield.org/~deride/), but this service is out of order at the moment. - -Logs for #hurd are available [here](http://richtlijn.be/~larstiq/hurd/). +Sometimes providing a log or some other excerpt of text can +help solve a problem or answer a question. **Do not** paste +the log in the channel itself. Instead use a +[paste bin](http://paste.debian.net). -- cgit v1.2.3 From ebcce2b9f538972edb75f238deaf05d2c5b21903 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 14:54:09 +0000 Subject: web commit by NealWalfield: Move channels to the bottom, improve text. Add section on Rich Text and Greetings --- Hurd/HurdIRC.mdwn | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index 8eeb54ca..b808d257 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -1,18 +1,10 @@ -Some Hurd developpers and users frequent irc. The main channel is -the #hurd channel hosted on [Freenode.net](http://freenode.net/). - -Localized channels include: - -* #hurd-it - Italian discussion -* #hurd-es - Spanish discussion -* #hurdfr - French discussion - # Asking Questions If you have a question regarding the Hurd or Debian, a good forum is often #hurd. **However**, please follow these [guidelines](http://catb.org/~esr/faqs/smart-questions.html) -when asking your question. Namely: spend some time that you tried -to solve the problem on your, show us that you did so when you +when asking your question. Namely: spend some time trying +to solve the problem on your own (e.g., [search the web](http://www.google.com), +use this wiki, etc.), show us that you did so when you ask your question, and provide as many relevant details as possible reproducing them as exactly as possible. @@ -23,8 +15,8 @@ Please try to stay on topic. * emacs vs. vi **is not** on topic. * If it is appropriate for a **slashdot comment**, it's not appropriate here. -* why GNU sucks -* when the next release of the Hurd will be +* why GNU sucks **is off-topic** +* when the next release of the Hurd will be **is inappropriate** # Pasting Logs @@ -32,3 +24,23 @@ Sometimes providing a log or some other excerpt of text can help solve a problem or answer a question. **Do not** paste the log in the channel itself. Instead use a [paste bin](http://paste.debian.net). + +# Rich Text + +Don't use it. Don't use colors. Don't use bold. Don't use emphasis. + +# Greeting + +If you never contribute to the discussion, there is no need +to always greet the channel when you enter and before leave. + +# Channels + +Some Hurd developpers and users frequent irc. The main channel is +the #hurd channel hosted on [Freenode.net](http://freenode.net/). + +Localized channels include: + +* #hurd-it - Italian +* #hurd-es - Spanish +* #hurdfr - French \ No newline at end of file -- cgit v1.2.3 From 18b1ba68113fba545ea2d78ccc82b6391ebbd6e7 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:01:40 +0000 Subject: web commit by NealWalfield: Move todo items from Hurd/GNUHurdStatus to here. --- Hurd/ToDo.mdwn | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/Hurd/ToDo.mdwn b/Hurd/ToDo.mdwn index 0e6ef567..6a02e27a 100644 --- a/Hurd/ToDo.mdwn +++ b/Hurd/ToDo.mdwn @@ -19,3 +19,129 @@ The tools provided by the psmisc package are linux centric. Killall and pstree, # supermount translator # user-level drivers + + + +Two canonical status lists are available from the CVS archive: + +* [TODO file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/TODO?rev=HEAD&content-type=text/plain) - from Hurd repository +* [Task file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/tasks?rev=HEAD&content-type=text/plain) - from Hurd respository + +
+
Welcome Note
+
Introduction to GNU and the Hurd sent monthly to Help-Hurd@gnu.org.
+
+ +
Related: [[KnownHurdLimits]],
[[SeenHurd]], [[WhoRunsGNU]], [[GnuHurdLiveJournal]]
+ +---- + +Here are some notes taken from an [IRC discussion](http://web.walfield.org/~hird/%23hurd-200209027) September 28th, 2002. The part of the log at which I am summarizing starts with + +` wolfgang: I once made a list of things that are definitely to be done before a release. want me to write it here? (It's only on paper so far)` + +This list is intended to apply to "just the CVS of the [Hurd itself](http://savannah.gnu.org/projects/hurd)." It is specifically not intended to apply to GNU/Hurd and definately not Debian GNU/Hurd. + +**FIXME.** How out-of-date is this stuff? -- [[Main/DeviceRandom]] - 20 Jan 2007 + +* xkb driver for console (for international users) +* kbd leds in console (well, in general, Roland's new driver in oskit for that crap) +* fixing fakeroot (it's buggy) +* fixing tmpfs (it's buggy, Neal says it's Mach's fault) +* adding posix shared memory (requires the io\_close call to be implemented) +* adding posix file locking (requires the io\_close call to be implemented) +* testing + * find + various filesystems (are inode numbers for . and .. sane?) + * ext2fs with other block sizes than 4096 + * --help and --version and --usage in all programs + * I have seen ^V in some --help output, might be argp bug + * Verify that all options are documented clearly, and that no unimplemented options appear + * Is the short and long description in the help output correct? + * Is the return value of all programs correct (eg, does main() return a sane value) + * Is the suid bit correctly set for all installed programs? + * Translators + * Does settrans -g work? -fg? + * Does fsysopts work? Does setting options with fsysopts work? + * Does stat() work on all translated nodes and give proper data? + * What about chown, chmod (some translators should pass this through to the underlying node, esp in /dev!) + * Does statfs give correct data? + * Are all inode numbers and link counts correct? +* [one unreadable item on the paper] +* We also should have a "make check" test suite. We can add this once Jeff finished his automake patches +* pick up the other things + * pthread, definitely. Now that we are so close + * new console is basically done + * needs integration of course + * X switching support +* there is certainly more to do ... + +-- + +This is the wrong place for this but I'll put it here for now. Here's an [email about pthreads direction](http://mail.gnu.org/pipermail/hurd-devel/2002q3/000449.html) from hurd-devel mail list. + +-- [[Main/GrantBow]] - 01 Oct 2002 + +Wolfgang also created a wonderful list of [Easy tasks](http://mail.gnu.org/pipermail/help-hurd/2002-July/006413.html) on July 28, 2002 that I will quote here: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DifficultyTask
0 Check if all programs handle options (at least --help, --version and --usage; don't forget about the shell scripts)
1 Check if all translators handle fsysopts
1 Check if all translators respond to "settrans -g"
1 More tests of this kind
2 Fix those of the above who don't work as intended
2 Document (in doc/hurd.texi) all undocumented programs (translators as well as programs in utils/ and sutils/ and some others)
1 Find a POSIX test suite, run it on GNU/Hurd, report the results
1 Find more useful test suites to run
3 Update INSTALL-cross
2 Check if all the store classes in libstore work (we have many of them, look into the Makefile)
4 Fix those who don't work
2 Document all still undocumented store classes
2 The console is pretty new code, it told me it wants to get tested
+ +Where difficulty 0 means trivial and 4 means tricky; the difficulty has nothing to do with the importance. + +-- [[Main/GrantBow]] - 11 Oct 2002 -- cgit v1.2.3 From c6a1758b78140a19132261ac560d61d485891073 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:07:58 +0000 Subject: web commit by NealWalfield: Update status. Move todo list to Hurd/ToDo --- Hurd/GNUHurdStatus.mdwn | 142 +++++------------------------------------------- 1 file changed, 15 insertions(+), 127 deletions(-) diff --git a/Hurd/GNUHurdStatus.mdwn b/Hurd/GNUHurdStatus.mdwn index 305b99fa..8bc348ff 100644 --- a/Hurd/GNUHurdStatus.mdwn +++ b/Hurd/GNUHurdStatus.mdwn @@ -1,127 +1,15 @@ -Unfortunately, this page is very outdated. For the latest status you need to check the [[MailLists]] or [[HurdIRC]]. I know that from hanging out on IRC today (Feb 29, 2004) Marcus was uploading a new [[Mach]] binary package to update the old one in the debian archive. Work still continues on the new [[HurdConsole]]. Progress overall is slow due to the technical expertise required for many tasks and the lack of resources. - --- [[Main/GrantBow]] - 01 Mar 2004 - -Two canonical status lists are available from the CVS archive: - -* [TODO file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/TODO?rev=HEAD&content-type=text/plain) - from Hurd repository -* [Task file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/tasks?rev=HEAD&content-type=text/plain) - from Hurd respository - -
-
Welcome Note
-
Introduction to GNU and the Hurd sent monthly to Help-Hurd@gnu.org.
-
- -
Related: [[KnownHurdLimits]],
[[SeenHurd]], [[WhoRunsGNU]], [[GnuHurdLiveJournal]]
- ----- - -Here are some notes taken from an [IRC discussion](http://web.walfield.org/~hird/%23hurd-200209027) September 28th, 2002. The part of the log at which I am summarizing starts with - -` wolfgang: I once made a list of things that are definitely to be done before a release. want me to write it here? (It's only on paper so far)` - -This list is intended to apply to "just the CVS of the [Hurd itself](http://savannah.gnu.org/projects/hurd)." It is specifically not intended to apply to GNU/Hurd and definately not Debian GNU/Hurd. - -**FIXME.** How out-of-date is this stuff? -- [[Main/DeviceRandom]] - 20 Jan 2007 - -* xkb driver for console (for international users) -* kbd leds in console (well, in general, Roland's new driver in oskit for that crap) -* fixing fakeroot (it's buggy) -* fixing tmpfs (it's buggy, Neal says it's Mach's fault) -* adding posix shared memory (requires the io\_close call to be implemented) -* adding posix file locking (requires the io\_close call to be implemented) -* testing - * find + various filesystems (are inode numbers for . and .. sane?) - * ext2fs with other block sizes than 4096 - * --help and --version and --usage in all programs - * I have seen ^V in some --help output, might be argp bug - * Verify that all options are documented clearly, and that no unimplemented options appear - * Is the short and long description in the help output correct? - * Is the return value of all programs correct (eg, does main() return a sane value) - * Is the suid bit correctly set for all installed programs? - * Translators - * Does settrans -g work? -fg? - * Does fsysopts work? Does setting options with fsysopts work? - * Does stat() work on all translated nodes and give proper data? - * What about chown, chmod (some translators should pass this through to the underlying node, esp in /dev!) - * Does statfs give correct data? - * Are all inode numbers and link counts correct? -* [one unreadable item on the paper] -* We also should have a "make check" test suite. We can add this once Jeff finished his automake patches -* pick up the other things - * pthread, definitely. Now that we are so close - * new console is basically done - * needs integration of course - * X switching support -* there is certainly more to do ... - --- - -This is the wrong place for this but I'll put it here for now. Here's an [email about pthreads direction](http://mail.gnu.org/pipermail/hurd-devel/2002q3/000449.html) from hurd-devel mail list. - --- [[Main/GrantBow]] - 01 Oct 2002 - -Wolfgang also created a wonderful list of [Easy tasks](http://mail.gnu.org/pipermail/help-hurd/2002-July/006413.html) on July 28, 2002 that I will quote here: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DifficultyTask
0 Check if all programs handle options (at least --help, --version and --usage; don't forget about the shell scripts)
1 Check if all translators handle fsysopts
1 Check if all translators respond to "settrans -g"
1 More tests of this kind
2 Fix those of the above who don't work as intended
2 Document (in doc/hurd.texi) all undocumented programs (translators as well as programs in utils/ and sutils/ and some others)
1 Find a POSIX test suite, run it on GNU/Hurd, report the results
1 Find more useful test suites to run
3 Update INSTALL-cross
2 Check if all the store classes in libstore work (we have many of them, look into the Makefile)
4 Fix those who don't work
2 Document all still undocumented store classes
2 The console is pretty new code, it told me it wants to get tested
- -Where difficulty 0 means trivial and 4 means tricky; the difficulty has nothing to do with the importance. - --- [[Main/GrantBow]] - 11 Oct 2002 +The last official release of the Hurd was 0.2. An +eminent release is not planned. There are a number of +reasons for this. + +One is that the Hurd is not sufficently stable or feature +complete. If an official release of the Hurd were made +now, people would try the Hurd and be disappointed. People +already expect delays; to disappoint them in this way as +well would be unfortunate. Moreover, it lessens the +possibility that they will try the Hurd again in the future. + +Another reason is that, Debian provides a distribution that +closely tracks Hurd development (and often includes many +new features). Little is to be gained by making an official +release. \ No newline at end of file -- cgit v1.2.3 From 6e05725e8c665fbb8ef7d3af96a6618f724144a0 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:17:10 +0000 Subject: web commit by NealWalfield: Create. --- Hurd/running.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Hurd/running.mdwn diff --git a/Hurd/running.mdwn b/Hurd/running.mdwn new file mode 100644 index 00000000..20d52856 --- /dev/null +++ b/Hurd/running.mdwn @@ -0,0 +1,3 @@ +* [[LiveCD]] - From a Live CD +* [[Distrib/QEMU]] - Via an Emulator +* [[FlashHurd]] - RFrom a flash stick \ No newline at end of file -- cgit v1.2.3 From e954d0c6c45b1df8453c598333a2403faa77e874 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:17:49 +0000 Subject: web commit by NealWalfield: Move content regarding running the Hurd to [[running]]. Link to that page. --- Hurd.mdwn | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 1b64da34..4946bdd5 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -6,6 +6,8 @@ If you cannot find what you look for the topic might have been moved to the new For an introduction to this site, see . +* [[Running]] +
[[GNUHurdStatus]]
Things [[ToDo]] before the next release
@@ -26,9 +28,9 @@ For an introduction to this site, see .
About the GNU/Hurd System Debian Wiki about The Hurd.
[[HurdNames]]
What does the HURD acronym stand for?
-
Welcome Note
+
Welcome Note
Formerly sent monthly to debian-hurd@lists.debian.org and help-hurd@gnu.org
-
Debian Wiki: Hurd
+
Debian Wiki: Hurd
[[FunnyHurd]]
@@ -37,21 +39,11 @@ For an introduction to this site, see .
Items that can be bought.
[[Translation]]
Hurd translation and Hurd wiki page in different languages.
-
History 1997-2003
+
History 1997-2003
Personal view of Marcus Brinkmann about Hurd development in 1997-2003.

-

Running the Hurd

-
-
[[LiveCD]]
-
Enjoy a bootable Hurd from within CD (opt. HD or USB installation).
-
[[Distrib/QEMU]]
-
play downloaded [[LiveCd]] Isos without burn them (emulation).
-
[[FlashHurd]]
-
Bootable Hurd from within USB flash memory.
-
[[BuildingHurd]]
-
-
+
[[PublicHurdBoxen]]
Hurd boxes available to hack on.
[[SubhurdHowto]]
@@ -77,10 +69,10 @@ For an introduction to this site, see .

@@ -95,7 +87,7 @@ For an introduction to this site, see .
  • [[ABITransitionStatus]]: Old info (early 2002) on the ABI transition
  • [[KernelCousinDebianHurd]]: A defunct newsletter about Hurd development.
  • [[Mach/OskitMachStatusList]]: Status and TODO information
  • -
  • Hurd Sourcecode Reference: Searchable and browsable index of the code.
  • +
  • Hurd Sourcecode Reference: Searchable and browsable index of the code.
  • [[Mach/PortToL4]]: Out-dated Wiki.
  • [[HurdOnL4]]: Work in process for new wiki.
  • [[QemuImageForL4]]:
  • @@ -114,20 +106,20 @@ For an introduction to this site, see .

    -
    Community &amp; People
    +
    Community &amp; People
    Please see the [[Main]] web for registered users information and Hurd community resources.

    See [[HurdDonations]] if you've got more money than hack time.

    -
    Microkernel Systems
    +
    Microkernel Systems
    Please see the [[Mach]] web

    -
    Developer Related
    +
    Developer Related
    Please see above and the [[Distrib]] web
    -- cgit v1.2.3 From 709e569476e32749067fe7d1bf27582d60b5a06f Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:44:56 +0000 Subject: web commit by NealWalfield: Moved from [[Hurd]]. --- Hurd/history.mdwn | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Hurd/history.mdwn diff --git a/Hurd/history.mdwn b/Hurd/history.mdwn new file mode 100644 index 00000000..c29142f9 --- /dev/null +++ b/Hurd/history.mdwn @@ -0,0 +1,2 @@ +History 1997-2003 +
    Personal view of Marcus Brinkmann about Hurd development in 1997-2003. \ No newline at end of file -- cgit v1.2.3 From 0bc9dee744d4ae0a17a2927dfe6bdecb1d53e9a4 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:47:54 +0000 Subject: web commit by NealWalfield: Create. --- Mach/ports.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 Mach/ports.mdwn diff --git a/Mach/ports.mdwn b/Mach/ports.mdwn new file mode 100644 index 00000000..5fca2efe --- /dev/null +++ b/Mach/ports.mdwn @@ -0,0 +1 @@ +* [PowerPC](http://www.pjbruin.dds.nl/hurd/) -- cgit v1.2.3 From 210ae8a2071bbe788a0b1a8c47fc6731be6e2c2f Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:48:29 +0000 Subject: web commit by NealWalfield: Create. --- Mach/GNUMach/ports.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 Mach/GNUMach/ports.mdwn diff --git a/Mach/GNUMach/ports.mdwn b/Mach/GNUMach/ports.mdwn new file mode 100644 index 00000000..5fca2efe --- /dev/null +++ b/Mach/GNUMach/ports.mdwn @@ -0,0 +1 @@ +* [PowerPC](http://www.pjbruin.dds.nl/hurd/) -- cgit v1.2.3 From e3d48946ff6b58d759cac2dc5159dd4a7a329c09 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:49:47 +0000 Subject: web commit by NealWalfield: Fix commit. --- Mach/GNUMach/ports.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/Mach/GNUMach/ports.mdwn b/Mach/GNUMach/ports.mdwn index 5fca2efe..f6e98d5a 100644 --- a/Mach/GNUMach/ports.mdwn +++ b/Mach/GNUMach/ports.mdwn @@ -1 +1,2 @@ * [PowerPC](http://www.pjbruin.dds.nl/hurd/) + -- cgit v1.2.3 From aa3de31901820fc7d407957ba5772ea7f561d59d Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 15:58:19 +0000 Subject: web commit by NealWalfield: Rework links. --- Hurd.mdwn | 169 +++++++++++++++----------------------------------------------- 1 file changed, 40 insertions(+), 129 deletions(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 4946bdd5..0cf0cd81 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -1,140 +1,51 @@ -## The Hurd +[[toc ]] -This part of the wiki is dedicated to the the Hurd servers, the most important components comprising the GNU operating system. Built on top of the Mach microkernel the servers are designed to replace the functionality provided by regular monolithic UNIX kernels. +# Introduction -If you cannot find what you look for the topic might have been moved to the new Distrib, Mach or GNU webs. This has been done to help clarify the different aspects of the GNU/Hurd efforts for new users. +* [[TheGnuHurd]] - A Brief Description +* [[History]] +* [[HurdNames]] - Acronym and Spelling +* [[GNUHurdStatus]] +* [[KnownHurdLimits]] +* [[FrequentlyAskedQuestions]] +* [[Translation]] - Localized sites about the Hurd +* [[HurdDonations]] - if you've got more money than hack time +* [[Shopping]] +* [[FunnyHurd]] - From a different Herd -For an introduction to this site, see . +## Understanding the Hurd + +* Official documentation, papers and presentations: Available form the Hurd Web site. +* Towards a New Strategy of OS Design: an architectural overview by Thomas Bushnell, BSG. Marcus Brinkmann revisited some parts of the paper and Jonathan S. Shapiro has further comments +* Presentation by Ga�l Le Mignot +* [[DistributedServers]]: Architecture made possible by the Hurd. +* [[TranslatorPages]] - List of Hurd Translators + +# Using the Hurd * [[Running]] +* [[Distrib]] - Distributions +* [[PublicHurdBoxen]] + +## Common Problems -
    -
    [[GNUHurdStatus]]
    -
    Things [[ToDo]] before the next release
    -
    [[KnownHurdLimits]]
    -
    Limitations of the GNU operating system. Includes updates on the status of [[RandomDevice]] (for ssh), [[DhcpClient]], [[PppDaemon]], [[HurdConsole]], [[ExtTwoSize]], other filesystems, etc.
    -
    [[SeenHurd]]
    -
    GNU/Hurd sightings.
    -
    [[TranslatorPages]]
    -
    What translators exist, info about them
    -
    [[FrequentlyAskedQuestions]]
    -
    For anything else you cannot find here.
    -
    -

    -

    Introduction

    -

    -
    -
    [[TheGnuHurd]]
    -
    About the GNU/Hurd System Debian Wiki about The Hurd.
    -
    [[HurdNames]]
    -
    What does the HURD acronym stand for?
    -
    Welcome Note
    -
    Formerly sent monthly to debian-hurd@lists.debian.org and help-hurd@gnu.org
    -
    Debian Wiki: Hurd
    -
    -
    -
    [[FunnyHurd]]
    -
    Logos, rumors and other funny unrelated stuff mentioning "Hurd"
    -
    [[Shopping]]
    -
    Items that can be bought.
    -
    [[Translation]]
    -
    Hurd translation and Hurd wiki page in different languages.
    -
    History 1997-2003
    -
    Personal view of Marcus Brinkmann about Hurd development in 1997-2003.
    -
    -

    +* [[HurdConsole]] +* [[Xfree86]] +* [[DebianX]] +* [[DebianXorg]] +* [[GNUstep]] +* [[CrossCompiling]] +* [[XattrHurd]]: Setting translators under GNU/Linux +* [[SerialConsole]]: Setting up a serial console. -
    [[PublicHurdBoxen]]
    -
    Hurd boxes available to hack on.
    -
    [[SubhurdHowto]]
    -
    -
    -
    -

    -

    Running Applications on the Hurd

    -

    -

    -
    -
    [[HurdConsole]]
    -
    How to set up the console.
    -
    [[Xfree86]]
    -
    Setting up X.
    -
    [[DebianX]]
    -
    Setting up X in Debian.
    -
    [[DebianXorg]]
    -
    Settin up Xorg in Debian.
    -
    [[GNUstep]]
    -
    Setting up GNUstep on Hurd.
    -

    Technical References

    -

    -

    - -

    -

    Developer Notes

    -

    -

    -
      -
    • [[CrossCompiling]].
    • -
    • [[HurdSpecificGlibcApi]]: Functions in GLIBC for the Hurd.
    • -
    • [[Debugging]].
    • -
    • [[XattrHurd]]: Setting translators under GNU/Linux
    • -
    • [[ABITransitionStatus]]: Old info (early 2002) on the ABI transition
    • -
    • [[KernelCousinDebianHurd]]: A defunct newsletter about Hurd development.
    • -
    • [[Mach/OskitMachStatusList]]: Status and TODO information
    • -
    • Hurd Sourcecode Reference: Searchable and browsable index of the code.
    • -
    • [[Mach/PortToL4]]: Out-dated Wiki.
    • -
    • [[HurdOnL4]]: Work in process for new wiki.
    • -
    • [[QemuImageForL4]]:
    • -
    • [[SubhurdHowto]]: Using and a neighbour for testing and debugging.
    • -
    • [[SerialConsole]]: Setting up a serial console.
    • -
    -

    -

    -
    -

    -

    -
    -
    [[InstallNotes]]
    -
    How to install the GNU system.
    For Further information, See the [[Distrib]] web.
    -
    -

    -

    -
    -
    Community &amp; People
    -
    Please see the [[Main]] web for registered users information and Hurd community resources.
    -
    -

    See [[HurdDonations]] if you've got more money than hack time.

    -

    -

    -
    -
    Microkernel Systems
    -
    Please see the [[Mach]] web
    -
    -

    -

    -
    -
    Developer Related
    -
    Please see above and the [[Distrib]] web
    -
    +# Contributing ----- +* [[ToDo]] +* [[SeenHurd]] - Media references -This site was [announced](http://mail.gnu.org/pipermail/bug-hurd/2002-May/008342.html) on May 12, 2002. The following are checkpoints for maintenance and administration: +# Developer References -
    -
    [[TWiki/TWikiDiscuss]]
    -
    Maintenance topic for the Hurd Wiki as a whole.
    -
    +* [[Debugging]] +* [[HurdSpecificGlibcApi]]: Functions in GLIBC for the Hurd. +* Hurd Sourcecode Reference: Searchable and browsable index of the code. -
    -
    [[TWiki/HurdWikiCopyrightDiscuss]]
    -
    Copyright, licensing and legal discussion.
    -
    [[TWiki/HurdWikiMove]]
    -
    We're looking for a more permanent host.
    -
    -- cgit v1.2.3 From eef37e1928a18f415f0c25e2229139afadeb961e Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:00:09 +0000 Subject: web commit by NealWalfield: Add link to [[Ports]] --- Mach/GNUMach.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Mach/GNUMach.mdwn b/Mach/GNUMach.mdwn index 6b869e62..a7f47ac9 100644 --- a/Mach/GNUMach.mdwn +++ b/Mach/GNUMach.mdwn @@ -9,4 +9,5 @@ added using glue code, i.e., a Linux emulation layer in Mach. # Related Links * [[BuildingGNUMach]] -* [[GNUMachRevivalProject]] - GNU Mach Projects \ No newline at end of file +* [[GNUMachRevivalProject]] - GNU Mach Projects +* [[Ports]] - Ports to other Architectures \ No newline at end of file -- cgit v1.2.3 From 92c0bfea3028cc4c30d21c16974d8086fb20febf Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:07:06 +0000 Subject: web commit by MichaelBanck: Add introductory paragraph --- Hurd/HurdIRC.mdwn | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index b808d257..347bec13 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -1,3 +1,8 @@ +The official Hurd IRC channel is #hurd hosted on [Freenode.net](http://freenode.net/). +Some of the Hurd developers and users hang out there, and discussions about GNU Hurd, GNU/Hurd and +Debian GNU/Hurd are had there. Everybody is welcome to join and follow this channel, but please +respect the below guidelines if you want to participate. + # Asking Questions If you have a question regarding the Hurd or Debian, a good forum @@ -36,11 +41,9 @@ to always greet the channel when you enter and before leave. # Channels -Some Hurd developpers and users frequent irc. The main channel is -the #hurd channel hosted on [Freenode.net](http://freenode.net/). - -Localized channels include: +Local user channels include: * #hurd-it - Italian * #hurd-es - Spanish -* #hurdfr - French \ No newline at end of file +* #hurdfr - French +* #hurd-de - German \ No newline at end of file -- cgit v1.2.3 From f93decd61200843f43ba6b737a420924fdc42f66 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:07:42 +0000 Subject: web commit by NealWalfield: Import Simon Law's text from [[TheGnuHurd]]. --- Hurd/HurdNames.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Hurd/HurdNames.mdwn b/Hurd/HurdNames.mdwn index d0fb396e..a9b99cce 100644 --- a/Hurd/HurdNames.mdwn +++ b/Hurd/HurdNames.mdwn @@ -25,3 +25,13 @@ Other pages that describe the names are on [gnu.org](http://www.gnu.org/software Perhaps unrelated: the "herd menatality" of folks is what the Hurd project and the the GNU project in general is fighting against... See also the FAQ, [Relation between GNU and the Hurd](http://www.gnu.org/software/hurd/faq.en.html#q1-2). + +# Pronounciation + +The Hurd has its share of linguistic debate. The subject of proper usage comes up quite often. + +We call our kernel replacement \`\`the Hurd.'' Although Thomas Bushnell, BSG states that the word \`\`Hurd'' is an acronym; we do not treat it as such, but rather as a concrete noun. It is widely regarded as incorrect to use the term \`\`HURD'' or \`\`H.U.R.D.'' So, to refer to the collection of servers running on top of the microkernel, we would say, \`\`I have upgraded to the latest version of the Hurd.'' Since the Hurd is part of the GNU Project, we also refer to it as \`\`GNU Hurd'' which is treated as a proper noun. + +The Hurd, in conjunction with Mach, forms the core of the GNU operating system. So, one can say \`\`I have installed GNU on my friend's new computer.'' The Debian Project clarifies this by using the name \`\`Debian GNU/Hurd'', because it also distributes the GNU/Linux variant of GNU. + +To pronounce the word \`\`Hurd,'' you should say the English word \`\`herd.'' This is pronounced as \`\`hɚd'' using the International Phonetic Alphabet. -- cgit v1.2.3 From 36cbe3efa6696029840eb4b613d8ac52b9fb256c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:09:19 +0000 Subject: web commit by NealWalfield: Rework. --- Hurd/TheGnuHurd.mdwn | 81 ++++++++++------------------------------------------ 1 file changed, 15 insertions(+), 66 deletions(-) diff --git a/Hurd/TheGnuHurd.mdwn b/Hurd/TheGnuHurd.mdwn index dc1ee960..e4dc7827 100644 --- a/Hurd/TheGnuHurd.mdwn +++ b/Hurd/TheGnuHurd.mdwn @@ -1,66 +1,15 @@ -# Table of Contents - -%TOC% - -# Introduction to the Hurd - -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 kernels (such as Linux). - -Currently, the Hurd runs on IA32 machines. The Hurd should, and probably will, be ported to other hardware architectures or other microkernels in the future. - -# Advantages of the Hurd - -The Hurd is not the most advanced kernel known to the planet (yet), but it does have a number of enticing features: - -
    -
    it's free software
    -
    Anybody can use, modify, and redistribute it under the terms of the GNU General Public License (GPL).
    -
    it's compatible
    -
    The Hurd provides a familiar programming and user environment. For all intents and purposes, the Hurd is a modern Unix-like kernel. The Hurd uses the GNU C Library, whose development closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and X/Open.
    -
    it's built to survive
    -
    Unlike other popular kernel software, the Hurd has an object-oriented structure that allows it to evolve without compromising its design. This structure will help the Hurd undergo major redesign and modifications without having to be entirely rewritten.
    -
    it's scalable
    -
    The Hurd implementation is aggressively multithreaded so that it runs efficiently on both single processors and symmetric multiprocessors. The Hurd interfaces are designed to allow transparent network clusters (collectives), although this feature has not yet been implemented.
    -
    it's extensible
    -
    The Hurd is an attractive platform for learning how to become a kernel hacker or for implementing new ideas in kernel technology. Every part of the system is designed to be modified and extended.
    -
    it's stable
    -
    It is possible to develop and test new Hurd kernel components without rebooting the machine (not even accidentally). Running your own kernel components doesn't interfere with other users, and so no special system privileges are required. The mechanism for kernel extensions is secure by design: it is impossible to impose your changes upon other users unless they authorize them or you are the system administrator.
    -
    it exists
    -
    The Hurd is real software that works Right Now. It is not a research project or a proposal. You don't have to wait at all before you can start using and developing it.
    -
    - -# What the Hurd means - -According to Thomas Bushnell, BSG, the primary architect of the Hurd: \`Hurd' stands for \`Hird of Unix-Replacing Daemons'. And, then, \`Hird' stands for \`Hurd of Interfaces Representing Depth'. We have here, to my knowledge, the first software to be named by a pair of mutually recursive acronyms. - -# Status of the project - -The Hurd, together with the GNU Mach microkernel, the GNU C Library and the other GNU programs, provides a rather complete and usable operating system today. It is not ready for production use, as there are still many bugs and missing features. However, it should be a good base for further development and non-critical application usage. - -GNU/Hurd is completely self-contained (you can compile all parts of the Hurd system from GNU/Hurd itself). You can run several GNU/Hurd systems in parallel, and debug even critical servers in another GNU/Hurd with gdb. You can run the X window system, applications that use it, 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 interface is provided, some additional interfaces like POSIX threads, shared memories or semaphores are still under development. - -All this applies to the current development version, and not to the last release (0.2). We encourage everybody who is interested to try out the latest development version, and send feedback to the Hurd developers. - ----- - -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. - --- [[Main/JoachimNilsson]] - 13 May 2002 - ----- - -# Language, and the Hurd - -The Hurd has its share of linguistic debate. The subject of proper usage comes up quite often. - -We call our kernel replacement \`\`the Hurd.'' Although Thomas Bushnell, BSG states that the word \`\`Hurd'' is an acronym; we do not treat it as such, but rather as a concrete noun. It is widely regarded as incorrect to use the term \`\`HURD'' or \`\`H.U.R.D.'' So, to refer to the collection of servers running on top of the microkernel, we would say, \`\`I have upgraded to the latest version of the Hurd.'' Since the Hurd is part of the GNU Project, we also refer to it as \`\`GNU Hurd'' which is treated as a proper noun. - -The Hurd, in conjunction with Mach, forms the core of the GNU operating system. So, one can say \`\`I have installed GNU on my friend's new computer.'' The Debian Project clarifies this by using the name \`\`Debian GNU/Hurd'', because it also distributes the GNU/Linux variant of GNU. - -To pronounce the word \`\`Hurd,'' you should say the English word \`\`herd.'' This is pronounced as \`\`hɚd'' using the International Phonetic Alphabet. - --- [[Main/SimonLaw]] - 16 May 2002 +The Hurd is GNU's replacement for the various UNIX and Linux kernels. + +The Hurd is firstly a collection of protocols formalizing how different +components may interact. The protocols are designed to reduce the mutual +[[trust]] requirements of the actors thereby permitting a more [[extensible]] +system. These include interface definitions to manipulate files and +directories and to resolve path names. This allows any process to +implement a file system. The only requirement is that it have access +to its backing store and that the principal that started it own the +file system node to which it connects. + +The Hurd is also a set of servers that implement these protocols. +They include fie systems, network protocols and authentication. +The servers run on top of [[Mach]] and use Mach's [[IPC]] mechanism to +transfer information. -- cgit v1.2.3 From 217aa4b2ab8fe9ed46c41abd81ddfdce1ac18e46 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:14:42 +0000 Subject: web commit by NealWalfield: Fix extensible link --- Hurd/TheGnuHurd.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hurd/TheGnuHurd.mdwn b/Hurd/TheGnuHurd.mdwn index e4dc7827..fac42770 100644 --- a/Hurd/TheGnuHurd.mdwn +++ b/Hurd/TheGnuHurd.mdwn @@ -2,7 +2,7 @@ The Hurd is GNU's replacement for the various UNIX and Linux kernels. The Hurd is firstly a collection of protocols formalizing how different components may interact. The protocols are designed to reduce the mutual -[[trust]] requirements of the actors thereby permitting a more [[extensible]] +[[trust]] requirements of the actors thereby permitting a more [[extensible|extensibility]] system. These include interface definitions to manipulate files and directories and to resolve path names. This allows any process to implement a file system. The only requirement is that it have access -- cgit v1.2.3 From 056cfa5bee05c64008750a4d9f4727ac34cf9835 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:16:37 +0000 Subject: web commit by MichaelBanck: Move channel list to the bottom again --- Hurd/HurdIRC.mdwn | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index 347bec13..073193c7 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -1,6 +1,5 @@ -The official Hurd IRC channel is #hurd hosted on [Freenode.net](http://freenode.net/). -Some of the Hurd developers and users hang out there, and discussions about GNU Hurd, GNU/Hurd and -Debian GNU/Hurd are had there. Everybody is welcome to join and follow this channel, but please +While all official development takes place on the mailing lists and the Savannah trackers, +a lot of discussions are being had on IRC as well. Everybody is welcome to join and follow these channels, but please respect the below guidelines if you want to participate. # Asking Questions @@ -41,6 +40,11 @@ to always greet the channel when you enter and before leave. # Channels +All Hurd IRC channels are hosted on [Freenode.net](http://freenode.net/). + +* #hurd - The official Hurd IRC channel. Some of the Hurd developers and users hang out there, and discussions about GNU Hurd, GNU/Hurd and +Debian GNU/Hurd are had there. + Local user channels include: * #hurd-it - Italian -- cgit v1.2.3 From 7c55291b835d908bcf2be22c13dbf113d38343a3 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:19:59 +0000 Subject: web commit by MichaelBanck: Remove further traces of #hurd from the top --- Hurd/HurdIRC.mdwn | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index 073193c7..05a8d9f0 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -3,9 +3,8 @@ a lot of discussions are being had on IRC as well. Everybody is welcome to join respect the below guidelines if you want to participate. # Asking Questions - -If you have a question regarding the Hurd or Debian, a good forum -is often #hurd. **However**, please follow these [guidelines](http://catb.org/~esr/faqs/smart-questions.html) + +Please follow these [guidelines](http://catb.org/~esr/faqs/smart-questions.html) when asking your question. Namely: spend some time trying to solve the problem on your own (e.g., [search the web](http://www.google.com), use this wiki, etc.), show us that you did so when you -- cgit v1.2.3 From 58406db2e9c4410e7e2c34ed33adf7524d598772 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:26:50 +0000 Subject: web commit by NealWalfield: Create. --- Hurd/gettinghelp.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Hurd/gettinghelp.mdwn diff --git a/Hurd/gettinghelp.mdwn b/Hurd/gettinghelp.mdwn new file mode 100644 index 00000000..b78aa72a --- /dev/null +++ b/Hurd/gettinghelp.mdwn @@ -0,0 +1,3 @@ +* [[FrequentlyAskedQuestions]] +* [[MailLists]] +* [[HurdIRC]] -- cgit v1.2.3 From cd77d9bbbd76cc64cfd0fc94cedb49963b5f949b Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:30:26 +0000 Subject: web commit by NealWalfield: Update Hurd sub-menu --- sidebar.mdwn | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sidebar.mdwn b/sidebar.mdwn index 86178ca1..30ee0f18 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -17,11 +17,9 @@ * **[[Hurd]]**[[if test="destpage(Hurd*)" then=" * *[[About|Hurd/TheGnuHurd]]* * *[[Status|Hurd/GNUHurdStatus]]* - * *[[Limitations|Hurd/KnownHurdLimits]]* - * *[[Seen_Hurd|Hurd/SeenHurd]]* - * *[[Translators|Hurd/TranslatorPages]]* - * *[[FAQ|Hurd/FrequentlyAskedQuestions]]* - * *[[Hurd/ToDo]]*"]] + * *[[GettingHelp]]* + * *[[Documentation]]* + * *[[Running]]"]] * **[[Mach]]**[[if test="destpage(Mach*)" then=" * *[[GNU_Mach|Mach/GNUMach]]* * *[[Documentation]]*"]] -- cgit v1.2.3 From 16193fce071819051f5fb2e74ef7be3d77661520 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:35:51 +0000 Subject: web commit by NealWalfield: Add Hurd prefix to Hurd sub-menu items. --- sidebar.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sidebar.mdwn b/sidebar.mdwn index 30ee0f18..d2b0cd51 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -17,9 +17,9 @@ * **[[Hurd]]**[[if test="destpage(Hurd*)" then=" * *[[About|Hurd/TheGnuHurd]]* * *[[Status|Hurd/GNUHurdStatus]]* - * *[[GettingHelp]]* - * *[[Documentation]]* - * *[[Running]]"]] + * *[[Hurd/GettingHelp]]* + * *[[Hurd/Documentation]]* + * *[[Hurd/Running]]*"]] * **[[Mach]]**[[if test="destpage(Mach*)" then=" * *[[GNU_Mach|Mach/GNUMach]]* * *[[Documentation]]*"]] -- cgit v1.2.3 From 7cba06421a77b66f7bce40f4c5428d7061c4a1dd Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 16:59:43 +0000 Subject: web commit by NealWalfield: Add a bit of text from [[Hurd/Debugging]] --- Hurd/noninvasivedebugging.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Hurd/noninvasivedebugging.mdwn b/Hurd/noninvasivedebugging.mdwn index 2ed57c3d..6259ce28 100644 --- a/Hurd/noninvasivedebugging.mdwn +++ b/Hurd/noninvasivedebugging.mdwn @@ -2,4 +2,5 @@ Sometimes using gdb on a server can result in deadlock. You can still use gdb by using the "set noninvasive" option. This indicates to gdb to not stop the program but allows you to -nevertheless examine its state. \ No newline at end of file +nevertheless examine its state. Thus, you can get back traces +and value of variables (and watch them change underneath you). \ No newline at end of file -- cgit v1.2.3 From 62981e8378a274bcd887359aa0800b8539e03663 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 17:02:02 +0000 Subject: web commit by NealWalfield: Just link to topics. --- Hurd/Debugging.mdwn | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/Hurd/Debugging.mdwn b/Hurd/Debugging.mdwn index 5e94f65d..8943c4e9 100644 --- a/Hurd/Debugging.mdwn +++ b/Hurd/Debugging.mdwn @@ -1,29 +1,9 @@ -## GDB +* [[DebuggingGlibc]] +* [[DebuggingViaSubhurds]] - To debug system servers - +# GDB -[General GDB documentation](http://sourceware.org/gdb/documentation/), including the [special Hurdy bits](http://sourceware.org/gdb/current/onlinedocs/gdb_19.html#Hurd%20Native). - - - -### _noninvasive_ mode - -This essentially means that the program continues running as usual, but you can use GDB to get back traces and print variables (and watch them change underneath you). This can be helpful when debugging system wide default servers that shall not be stopped while debugging. - ----- - -## Debugging glibc - -See [[DebuggingGlibc]]. - ----- - -## Debugging via subhurds - -See [[DebuggingViaSubhurds]]. - ----- - -## General Notes - -For debugging the system wide default servers (like the root file system server or the _exec_ server), it is recommendable to instead debug them in a sub-hurd or at least use the _noninvasive_ mode when attaching GDB to them. +* [Manual](http://sourceware.org/gdb/documentation/) +* [Hurd Specific](http://sourceware.org/gdb/current/onlinedocs/gdb_19.html#Hurd%20Native). +* [[NonInvasiveDebugging]] - Avoiding Deadload +* [When disassble doesn't work](http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00039.html) -- cgit v1.2.3 From ee955f5e643b2f20fd8d4b98792d56739509d8dd Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 17:04:42 +0000 Subject: web commit by NealWalfield: Fix spelling --- Hurd/Debugging.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hurd/Debugging.mdwn b/Hurd/Debugging.mdwn index 8943c4e9..d9244f15 100644 --- a/Hurd/Debugging.mdwn +++ b/Hurd/Debugging.mdwn @@ -6,4 +6,4 @@ * [Manual](http://sourceware.org/gdb/documentation/) * [Hurd Specific](http://sourceware.org/gdb/current/onlinedocs/gdb_19.html#Hurd%20Native). * [[NonInvasiveDebugging]] - Avoiding Deadload -* [When disassble doesn't work](http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00039.html) +* [When disassemble doesn't work](http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00039.html) -- cgit v1.2.3 From 946cb99d842b84bb696931261f8ac86e69a30e36 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 17:08:10 +0000 Subject: web commit by NealWalfield: Add link to roland's howto. --- Hurd/SubhurdHowto.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Hurd/SubhurdHowto.mdwn b/Hurd/SubhurdHowto.mdwn index 265a43b0..df00dff5 100644 --- a/Hurd/SubhurdHowto.mdwn +++ b/Hurd/SubhurdHowto.mdwn @@ -60,3 +60,7 @@ If you want to access the subhurd processes from the outside, e.g. for debugging ## Further Info On [[DebuggingViaSubhurds]] you can find information about how to use subhurd for debugging purposes. + + +Roland's [tutorial](http://www.gnu.org/software/hurd/howto/subhurd.html) +on setting up sub-hurds. \ No newline at end of file -- cgit v1.2.3 From f8735152c50e3e7b1315ea8ac38639062c0a0742 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 17:09:40 +0000 Subject: web commit by NealWalfield: Add link to [[SubhurdHowto]] and [[DebuggingViaSubhurds]]. Remove link to Roland's Sub-Hurd text. --- Hurd/NeighborHurd.mdwn | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Hurd/NeighborHurd.mdwn b/Hurd/NeighborHurd.mdwn index ed76c4e1..89d7be02 100644 --- a/Hurd/NeighborHurd.mdwn +++ b/Hurd/NeighborHurd.mdwn @@ -10,11 +10,12 @@ When extra hardware is not available, it is possible to use a sub-hurd. A sub-Hurd is like a neighbor Hurd, however, makes use of some resources provided by another Hurd. For instance, backing store and the console. +([[SubhurdHowto]]) Sub-hurds are extremely useful for debugging core servers as it is possible to attach to them with gdb -from the parent. This avoids deadlock, e.g., when the -instance of gdb stops the server but requires its use. +from the parent ([[DebuggingViaSubhurds]]. This avoids +deadlock, e.g., when the instance of gdb stops the +server but requires its use. (Note: it is possible to use [[NonInvasiveDebugging]], -but this is less flexible.) A [tutorial](http://www.gnu.org/software/hurd/howto/subhurd.html) -on setting up sub-hurds is available. +but this is less flexible.) -- cgit v1.2.3 From 359bb0d1616f113ef181621d1992678eb8cf063c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 20:24:25 +0000 Subject: web commit by NealWalfield: Add some text from [[Hurd/HurdNames]] --- Hurd/TheGnuHurd.mdwn | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Hurd/TheGnuHurd.mdwn b/Hurd/TheGnuHurd.mdwn index fac42770..ff20aaf3 100644 --- a/Hurd/TheGnuHurd.mdwn +++ b/Hurd/TheGnuHurd.mdwn @@ -11,5 +11,9 @@ file system node to which it connects. The Hurd is also a set of servers that implement these protocols. They include fie systems, network protocols and authentication. -The servers run on top of [[Mach]] and use Mach's [[IPC]] mechanism to -transfer information. +The servers run on top of the [[Mach]] [[microkernel]] and use +Mach's [[IPC]] mechanism to transfer information. + +The Hurd development effort is a somewhat separate project from the +Debian GNU/Hurd port. The Hurd is a component of the GNU operating +system. -- cgit v1.2.3 From 47ba3838fbddae19a477e1be3cca5dd0b9771af6 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 20:32:47 +0000 Subject: web commit by NealWalfield: Move some text to [[TheGnuHurd]]. Rearrange the rest. --- Hurd/HurdNames.mdwn | 52 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/Hurd/HurdNames.mdwn b/Hurd/HurdNames.mdwn index a9b99cce..2a1e12c5 100644 --- a/Hurd/HurdNames.mdwn +++ b/Hurd/HurdNames.mdwn @@ -1,37 +1,51 @@ -## HURD - Hird of Unix Replacing Daemons +[[toc ]] -From [gnu.org](http://www.gnu.org/software/hurd/hurd.html#TOCintroduction): 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 kernels (such as Linux). +# The Acronym -The Hurd development effort is a somewhat separate project from the Debian GNU/Hurd port of a full GNU operating system. The Hurd is the last piece of the full GNU operating system goal. +Hurd stands for "Hird of Unix Replacing Daemons." -## HIRD - Hurd of Interfaces Representing Depth +Hird stands for "Hurd of Interfaces Representing Depth." -One contributor from Norway also described two other uses of Hird. -* "the kings men",a name given to +# Origin -the men accompanying the norwegian kings at about year 1000 and on. This was later coined by V.Quisling when he formed a party with nationalistic traits to denote a set of helpers promoting his agenda of national & nordic ideas. +[Quoting ](http://mail.gnu.org/archive/html/help-hurd/2002-10/msg00099.html) Thomas Bushnell, BSG: -* A symbol of collaboration with the (German) enemy used in World War II. +The name "Hurd" was invented by me, as an alternate spelling for the English word "herd". +"Hird" is just another alternate spelling for the same word. By the normal rules of +English orthography, they all have the same pronunciations. -## Why the word HURD? -[Quoting ](http://mail.gnu.org/archive/html/help-hurd/2002-10/msg00099.html) Thomas Bushnell, BSG: +# Spelling, Usage and Pronunication -The name "Hurd" was invented by me, as an alternate spelling for the English word "herd". "Hird" is just another alternate spelling for the same word. By the normal rules of English orthography, they all have the same pronounciations. +The Hurd has its share of linguistic debate. The subject of proper usage comes up quite often. -Other pages that describe the names are on [gnu.org](http://www.gnu.org/software/hurd/hurd.html#TOCname). +We call our kernel replacement \`\`the Hurd.'' Although Thomas Bushnell, BSG states that the +word \`\`Hurd'' is an acronym; we do not treat it as such, but rather as a concrete noun. +It is widely regarded as incorrect to use the term \`\`HURD'' or \`\`H.U.R.D.'' So, to +refer to the collection of servers running on top of the microkernel, we would say, +\`\`I have upgraded to the latest version of the Hurd.'' Since the Hurd is part of +the GNU Project, we also refer to it as \`\`GNU Hurd'' which is treated as a proper noun. -Perhaps unrelated: the "herd menatality" of folks is what the Hurd project and the the GNU project in general is fighting against... +The Hurd, in conjunction with Mach, forms the core of the GNU operating system. +So, one can say \`\`I have installed GNU on my friend's new computer.'' The +Debian Project clarifies this by using the name \`\`Debian GNU/Hurd'', because +it also distributes the GNU/Linux variant of GNU. -See also the FAQ, [Relation between GNU and the Hurd](http://www.gnu.org/software/hurd/faq.en.html#q1-2). +To pronounce the word \`\`Hurd,'' you should say the English word \`\`herd.'' This is pronounced as \`\`hɚd'' using the International Phonetic Alphabet. -# Pronounciation +# In Other Contexts -The Hurd has its share of linguistic debate. The subject of proper usage comes up quite often. +One contributor from Norway described two other uses of Hird. -We call our kernel replacement \`\`the Hurd.'' Although Thomas Bushnell, BSG states that the word \`\`Hurd'' is an acronym; we do not treat it as such, but rather as a concrete noun. It is widely regarded as incorrect to use the term \`\`HURD'' or \`\`H.U.R.D.'' So, to refer to the collection of servers running on top of the microkernel, we would say, \`\`I have upgraded to the latest version of the Hurd.'' Since the Hurd is part of the GNU Project, we also refer to it as \`\`GNU Hurd'' which is treated as a proper noun. +* "the kings men", a name given to -The Hurd, in conjunction with Mach, forms the core of the GNU operating system. So, one can say \`\`I have installed GNU on my friend's new computer.'' The Debian Project clarifies this by using the name \`\`Debian GNU/Hurd'', because it also distributes the GNU/Linux variant of GNU. +the men accompanying the Norwegian kings at about year 1000 and on. +This was later coined by V. Quisling when he formed a party with +nationalistic traits to denote a set of helpers promoting his agenda +of national & Nordic ideas. -To pronounce the word \`\`Hurd,'' you should say the English word \`\`herd.'' This is pronounced as \`\`hɚd'' using the International Phonetic Alphabet. +* A symbol of collaboration with the (German) enemy used in World War II. + +Perhaps unrelated: the "herd menatality" of folks is what the Hurd project +and the the GNU project in general is fighting against... -- cgit v1.2.3 From 21218f4c189a9225c1092b208251feccf7c32ac6 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 20:37:58 +0000 Subject: web commit by NealWalfield: Fix some typos. --- Hurd/HurdIRC.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index 05a8d9f0..49b45a39 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -1,5 +1,5 @@ While all official development takes place on the mailing lists and the Savannah trackers, -a lot of discussions are being had on IRC as well. Everybody is welcome to join and follow these channels, but please +a lot of discussions are had on IRC as well. Everybody is welcome to join and follow these channels, but please respect the below guidelines if you want to participate. # Asking Questions @@ -15,9 +15,9 @@ reproducing them as exactly as possible. Please try to stay on topic. -* emacs vs. vi **is not** on topic. +* emacs vs. vi **is not** on topic * If it is appropriate for a **slashdot comment**, it's not appropriate - here. + here * why GNU sucks **is off-topic** * when the next release of the Hurd will be **is inappropriate** -- cgit v1.2.3 From 00996ed893a8c0fdd8bec041a860611224882082 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 20:40:57 +0000 Subject: web commit by NealWalfield: Add list to Hardware Compatibility List; Include question guidelines. --- Hurd/gettinghelp.mdwn | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Hurd/gettinghelp.mdwn b/Hurd/gettinghelp.mdwn index b78aa72a..8a4c4d99 100644 --- a/Hurd/gettinghelp.mdwn +++ b/Hurd/gettinghelp.mdwn @@ -1,3 +1,16 @@ +# Essential Documentation + * [[FrequentlyAskedQuestions]] +* [[Mach/HardwareCompatibilityList]] + +# Forums + +Please follow these [guidelines](http://catb.org/~esr/faqs/smart-questions.html) +when asking your question. Namely: spend some time trying +to solve the problem on your own (e.g., [search the web](http://www.google.com), +use this wiki, etc.), show us that you did so when you +ask your question, and provide as many relevant details as possible +reproducing them as exactly as possible. + * [[MailLists]] -* [[HurdIRC]] +* [[HurdIRC]] \ No newline at end of file -- cgit v1.2.3 From 85d207b6058d4036e92829c12f9ccaea97461e31 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 20:44:30 +0000 Subject: web commit by NealWalfield: Create --- Mach/hardwarecompatibilitylist.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 Mach/hardwarecompatibilitylist.mdwn diff --git a/Mach/hardwarecompatibilitylist.mdwn b/Mach/hardwarecompatibilitylist.mdwn new file mode 100644 index 00000000..9a616ce5 --- /dev/null +++ b/Mach/hardwarecompatibilitylist.mdwn @@ -0,0 +1 @@ +[HCL](http://www.nongnu.org/thug/gnumach_hardware.html) \ No newline at end of file -- cgit v1.2.3 From d23dea16a534eb60e1d6e69e8bcca24273c4cbc9 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:18:08 +0000 Subject: web commit by NealWalfield: Fill based on GNU Mach's configure --help --- Mach/hardwarecompatibilitylist.mdwn | 233 +++++++++++++++++++++++++++++++++++- 1 file changed, 232 insertions(+), 1 deletion(-) diff --git a/Mach/hardwarecompatibilitylist.mdwn b/Mach/hardwarecompatibilitylist.mdwn index 9a616ce5..2af15db3 100644 --- a/Mach/hardwarecompatibilitylist.mdwn +++ b/Mach/hardwarecompatibilitylist.mdwn @@ -1 +1,232 @@ -[HCL](http://www.nongnu.org/thug/gnumach_hardware.html) \ No newline at end of file +# CPU Architecture + +GNU Mach current only supports the x86 architecture. + +# Memory + +GNU Mach supports a maximum of 1GB of memory. If your system has +more, add the following to the start of your Grub stanza to boot +the Hurd: + + uppermem 1232896 + +# Video Cards + +Debian distributes a version of Xorg. If your video card driver +depends on a special kernel interface such as that provided by +the agpgart kernel module for the Linux kernel, then your video +card will only be supported by the Vesa driver. + +# Sound + +No sound cards are supported at this time. + +# USB + +USB is not support at this time. + +# Storage + +IDE Drives are known to work. SATA drives work in compatibility mode. + +## SCSI + +* (53c78xx) Linux device driver for SCSI controller NCR 53C7,8xx; on + ix86-at enabled by default +* (AM53C974) Linux device driver for SCSI controller AM53/79C974 + (am53c974, am79c974); on ix86-at enabled by default +* (BusLogic) Linux device driver for SCSI controller BusLogic; on + ix86-at enabled by default +* (flashpoint) SCSI flashpoint +* (NCR53c406a) Linux device driver for SCSI controller NCR53c406a chip +* (advansys) Linux device driver for SCSI controller AdvanSys; on + ix86-at enabled by default +* (aha152x) Linux device driver for SCSI controller Adaptec + AHA-152x/2825 (aha152x, aha2825); on ix86-at enabled by default +* (aha1542) Linux device driver for SCSI controller Adaptec AHA-1542; + on ix86-at enabled by default +* (aha1740) Linux device driver for SCSI controller Adaptec AHA-1740; + on ix86-at enabled by default +* (aic7xxx) Linux device driver for SCSI controller Adaptec AIC7xxx; + on ix86-at enabled by default +* (dtc) Linux device driver for SCSI controller DTC3180/3280 (dtc3180, + dtc3280); on ix86-at enabled by default +* (eata) Linux device driver for SCSI controller EATA ISA/EISA/PCI + (DPT and generic EATA/DMA-compliant boards); on ix86-at enabled by + default +* (eata_dma) Linux device driver for SCSI controller EATA-DMA (DPT, + NEC, AT&T, SNI, AST, Olivetti, Alphatronix) +* (eata_pio) Linux device driver for SCSI controller EATA-PIO (old DPT + PM2001, PM2012A); on ix86-at enabled by default +* (fdomain) Linux device driver for SCSI controller Future Domain + 16xx; on ix86-at enabled by default +* (g_NCR5380) Linux device driver for SCSI controller Generic + NCR5380/53c400 (ncr5380, ncr53c400) +* (gdth) Linux device driver for GDT SCSI Disk Array Controller; on + ix86-at enabled by default +* (in2000) Linux device driver for SCSI controller Always IN 2000; on + ix86-at enabled by default +* (ncr53c8xx) Linux device driver for SCSI controller NCR53C8XX + (ncr53c8xx, dc390f, dc390u, dc390w); on ix86-at enabled by default +* (pas16) Linux device driver for SCSI controller PAS16; on ix86-at + enabled by default +* (qlogicfas) Linux device driver for SCSI controller Qlogic FAS; on + ix86-at enabled by default +* (qlogicisp) Linux device driver for SCSI controller Qlogic ISP; on + ix86-at enabled by default +* (seagate) Linux device driver for SCSI controller Seagate ST02, + Future Domain TMC-8xx; on ix86-at enabled by default +* (t128) Linux device driver for SCSI controller Trantor + T128/T128F/T228 (t128, t128f, t228); on ix86-at enabled by default +* (tmscsim) Linux device driver for SCSI controller Tekram DC-390(T) + (dc390, dc390t); on ix86-at enabled by default +* (u14-34f) Linux device driver for SCSI controller UltraStor 14F/34F; + on ix86-at enabled by default +* (ultrastor) Linux device driver for SCSI controller UltraStor; on + ix86-at enabled by default +* (wd7000) Linux device driver for SCSI controller WD 7000; on ix86-at + enabled by default + +## Other + +* (ppa) Linux device driver for IOMEGA Parallel Port ZIP drive; on + ix86-at enabled by default + +# NICs + +* (3c501) Linux device driver for Ethernet controller 3COM 501 (3c501) + / Etherlink I; on ix86-at enabled by default +* (3c503) Linux device driver for Ethernet controller 3Com 503 (3c503) + / Etherlink II; on ix86-at enabled by default +* (3c505) Linux device driver for Ethernet controller 3Com 505 (3c505, + elplus); on ix86-at enabled by default +* (3c507) Linux device driver for Ethernet controller 3Com 507 (3c507, + el16); on ix86-at enabled by default +* (3c509) Linux device driver for Ethernet controller 3Com 509/579 + (3c509, 3c579) / Etherlink III; on ix86-at enabled by default +* (3c59x) Linux device driver for Ethernet controller 3Com 59x/90x + (3c59x, 3c590, 3c592, 3c595, 3c597, 3c90x, 3c900, 3c905) + "Vortex/Boomerang"; on ix86-at enabled by default +* (3c515) Linux device driver for Ethernet controller 3Com 515 ISA + Fast EtherLink; on ix86-at enabled by default +* (ac3200) Linux device driver for Ethernet controller Ansel + Communications EISA 3200; on ix86-at enabled by default +* (apricot) Linux device driver for Ethernet controller Apricot XEN-II + on board ethernet; on ix86-at enabled by default +* (at1700) Linux device driver for Ethernet controller AT1700 (Fujitsu + 86965); on ix86-at enabled by default +* (atp) Linux device driver for Ethernet controller AT-LAN-TEC/RealTek + pocket adaptor +* (de4x5) Linux device driver for Ethernet controller DE4x5 (de4x5, + de425, de434, de435, de450, de500); on ix86-at enabled by default +* (de600) Linux device driver for Ethernet controller D-Link DE-600; + on ix86-at enabled by default +* (de620) Linux device driver for Ethernet controller D-Link DE-620; + on ix86-at enabled by default +* (depca) Linux device driver for Ethernet controller DEPCA (de100, + de101, de200, de201, de202, de210, de422); on ix86-at enabled by + default +* (e2100) Linux device driver for Ethernet controller Cabletron E21xx; + on ix86-at enabled by default +* (eepro) Linux device driver for Ethernet controller EtherExpressPro; + on ix86-at enabled by default +* (eepro100) Linux device driver for Ethernet controller Intel + EtherExpressPro PCI 10+/100B/100+; on ix86-at enabled by default +* (eexpress) Linux device driver for Ethernet controller EtherExpress + 16; on ix86-at enabled by default +* (epic100) Linux device driver for Ethernet controller SMC 83c170/175 + EPIC/100 (epic, epic100) / EtherPower II; on ix86-at enabled by + default +* (eth16i) Linux device driver for Ethernet controller ICL EtherTeam + 16i/32 (eth16i, eth32); on ix86-at enabled by default +* (ewrk3) Linux device driver for Ethernet controller EtherWORKS 3 + (ewrk3, de203, de204, de205); on ix86-at enabled by default +* (fmv18x) Linux device driver for Ethernet controller + FMV-181/182/183/184; on ix86-at enabled by default +* (hamachi) Linux device driver for Ethernet controller Packet Engines + "Hamachi" GNIC-2 Gigabit Ethernet; on ix86-at enabled by default +* (hp-plus) Linux device driver for Ethernet controller HP PCLAN+ + (27247B and 27252A); on ix86-at enabled by default +* (hp) Linux device driver for Ethernet controller HP PCLAN (27245 and + other 27xxx series); on ix86-at enabled by default +* (hp100) Linux device driver for Ethernet controller HP 10/100VG + PCLAN (ISA, EISA, PCI) (hp100, hpj2577, hpj2573, hpj2585, hp27248b); + on ix86-at enabled by default +* (intel-gige) Linux device driver for Ethernet controller Intel PCI + Gigabit Ethernet; on ix86-at enabled by default +* (lance) Linux device driver for Ethernet controller AMD LANCE and + PCnet (at1500, ne2100); on ix86-at enabled by default +* (myson803) Linux device driver for Ethernet controller Myson MTD803 + Ethernet adapter series; on ix86-at enabled by default +* (natsemi) Linux device driver for Ethernet controller National + Semiconductor DP8381x series PCI Ethernet; on ix86-at enabled by + default +* (ne) Linux device driver for Ethernet controller NE2000/NE1000 ISA + (ne, ne1000, ne2000); on ix86-at enabled by default and for qemu +* (ne2k-pci) Linux device driver for Ethernet controller PCI NE2000; + on ix86-at enabled by default +* (ni52) Linux device driver for Ethernet controller NI5210; on + ix86-at enabled by default +* (ni65) Linux device driver for Ethernet controller NI6510; on + ix86-at enabled by default +* (ns820) Linux device driver for Ethernet controller National + Semiconductor DP8382x series PCI Ethernet; on ix86-at enabled by + default +* (pcnet32) Linux device driver for Ethernet controller AMD PCI + PCnet32 (PCI bus NE2100 cards); on ix86-at enabled by default +* (rtl8139) Linux device driver for Ethernet controller RealTek + 8129/8139 (rtl8129, rtl8139) (not 8019/8029!); on ix86-at enabled by + default +* (seeq8005) Linux device driver for Ethernet controller Seeq8005; on + ix86-at enabled by default +* (sk_g16) Linux device driver for Ethernet controller Schneider & + Koch G16; on ix86-at enabled by default +* (smc-ultra) Linux device driver for Ethernet controller SMC Ultra; + on ix86-at enabled by default +* (smc-ultra32) Linux device driver for Ethernet controller SMC + Ultra32; on ix86-at enabled by default +* (starfire) Linux device driver for Ethernet controller Adaptec + Starfire network adapter; on ix86-at enabled by default +* (sundance) Linux device driver for Ethernet controller Sundance + ST201 "Alta" PCI Ethernet; on ix86-at enabled by default +* (tlan) Linux device driver for Ethernet controller TI ThunderLAN; on + ix86-at enabled by default +* (tulip) Linux device driver for Ethernet controller DECchip Tulip + (dc21x4x) PCI (elcp, tulip); on ix86-at enabled by default +* (via-rhine) Linux device driver for Ethernet controller VIA Rhine; + on ix86-at enabled by default +* (wavelan) Linux device driver for Ethernet controller AT&T WaveLAN & + DEC RoamAbout DS +* (wd) Linux device driver for Ethernet controller WD80x3; on ix86-at + enabled by default +* (winbond-840) Linux device driver for Ethernet controller Winbond + W89c840 PCI Ethernet; on ix86-at enabled by default +* (yellowfin) Linux device driver for Ethernet controller Packet + Engines Yellowfin Gigabit-NIC; on ix86-at enabled by default +* (znet) Linux device driver for Ethernet controller Zenith Z-Note + (znet, znote); on ix86-at enabled by default +* (i82365) Linux device driver for Intel 82365 PC Card controller; on + ix86-at enabled by default + + +# PCMCIA + +* (3c574_cs) Linux device driver for 3Com 3c574 ``RoadRunner'' PCMCIA + Ethernet; on ix86-at enabled by default +* (3c589_cs) Linux device driver for 3Com 3c589 PCMCIA Ethernet card; + on ix86-at enabled by default +* (axnet_cs) Linux device driver for Asix AX88190-based PCMCIA + Ethernet adapters; on ix86-at enabled by default +* (fmvj18x_cs) Linux device driver for fmvj18x chipset based PCMCIA + Ethernet cards; on ix86-at enabled by default +* (nmclan_cs) Linux device driver for New Media Ethernet LAN PCMCIA + cards; on ix86-at enabled by default +* (pcnet_cs) Linux device driver for NS8390-based PCMCIA cards; on + ix86-at enabled by default +* (smc91c92_cs) Linux device driver for SMC91c92-based PCMCIA cards; + on ix86-at enabled by default +* (xirc2ps_cs) Linux device driver for Xircom CreditCard and Realport + PCMCIA ethernet; on ix86-at enabled by default +* (orinoco_cs) Linux device driver for Hermes or Prism 2 PCMCIA + **Wireless** adapters (Orinoco); on ix86-at enabled by default + -- cgit v1.2.3 From a315e96447d614057b7b4fe760a38c6af951d924 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:25:59 +0000 Subject: web commit by NealWalfield: Update. --- Hurd/KnownHurdLimits.mdwn | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/Hurd/KnownHurdLimits.mdwn b/Hurd/KnownHurdLimits.mdwn index 28ab0284..51084a62 100644 --- a/Hurd/KnownHurdLimits.mdwn +++ b/Hurd/KnownHurdLimits.mdwn @@ -1,43 +1,20 @@ -## Known Limitations and Fixes - -When comparing the Hurd (and its GNUMach microkernel) to alternatives please remember that the last released version number is 0.3. For example, Linux, the kernel, took awhile to mature. The Debian GNU/Hurd system is developing rapidly. Assistance with programming and support tasks is greatly appreciated. The general [Hardware Compatibility Guide](http://www.freesoftware.fsf.org/thug/gnumach_hardware.html) is another good reference. - -Now, the list of known limitations of the Hurd. - -* ~1.5+ GB ext2 partition size limit +* ~1.5 GB ext2 file system size limit * The problem is fixed in the Debian GNU/Hurd distribution but not the official sources, see [this email](http://lists.debian.org/debian-hurd/2007/07/msg00087.html) * See [[ExtTwoSize]] -* Missing device drivers. - * Current GNUMach drivers are from Linux 2.0. - * [[Mach/OskitMach]] currently has Linux 2.2 drivers. +* Many Unsupported Devices. + * See [[Mach/HardwareControlList]] -* Swap is [highly recommended](http://www.gnu.org/software/hurd/faq.en.html#q2-7), like on UNIX systems. - -* Minimum of 8 MB RAM has been reported to work, but 32 MB is more realistic. Don't forget to use plenty of swap space. - -* Random devices, /dev/random and /dev/urandom, are not in the main distribution yet. These are needed by, for instance, OpenSSH. +* Entropy. Mach does not yet gather entropy and thus there are no /dev/random and /dev/urandom nodes. + There are needed by OpenSSH. * In progress, see [[RandomDevice]] -* No DHCP client will work yet. +* No DHCP client * promising information [Jan 2005](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html), needs an update * See [[DhcpClient]] - need to update TCP/IP server. -* There are some [[Distrib/SystemAPILimits]] - -* Sound support missing - * [[Mach/OskitMach]] can provide, but no work yet - -* PPP support, e.g., um-pppd missing. - * See [[PppDaemon]] - -* USB support is missing - -* `fatfs` translator is stabilizing, and it does not have partition limits that get in the way. ([0\.4 released Oct 6, 2002](http://mail.gnu.org/pipermail/bug-hurd/2002-October/010576.html)) - -* [Ext3 implementation](http://debian.fmi.uni-sofia.bg/~ogi/hurd/ext3fs/) is very unstable. - -* Portability between alternate microkernels, e.g., [darwin](http://developer.apple.com/darwin/) & [L4](http://os.inf.tu-dresden.de/L4/) +* Missing bits of POSIX + * See [[Distrib/SystemAPILimits]] * Stability issues * [[ZallocPanics]] -- cgit v1.2.3 From a6109a8203342a923d71d84f84cb3279c911b379 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:28:24 +0000 Subject: web commit by NealWalfield: Remove reference to [[XattrHurd]] and HurdPt, which had no link. --- Hurd/Translation.mdwn | 3 --- 1 file changed, 3 deletions(-) diff --git a/Hurd/Translation.mdwn b/Hurd/Translation.mdwn index 167419d1..a5f78aa5 100644 --- a/Hurd/Translation.mdwn +++ b/Hurd/Translation.mdwn @@ -16,6 +16,3 @@ \* [[HurdRu]]: -\* [[HurdPt]]: - -See also: [[XattrHurd]] -- cgit v1.2.3 From a39f7f4b126af073813d67cecdc75569bdc06089 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:29:02 +0000 Subject: web commit by NealWalfield: Spell Compatability correctly. --- Hurd/KnownHurdLimits.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hurd/KnownHurdLimits.mdwn b/Hurd/KnownHurdLimits.mdwn index 51084a62..0da12878 100644 --- a/Hurd/KnownHurdLimits.mdwn +++ b/Hurd/KnownHurdLimits.mdwn @@ -3,7 +3,7 @@ * See [[ExtTwoSize]] * Many Unsupported Devices. - * See [[Mach/HardwareControlList]] + * See [[Mach/HardwareCompatabilityList]] * Entropy. Mach does not yet gather entropy and thus there are no /dev/random and /dev/urandom nodes. There are needed by OpenSSH. -- cgit v1.2.3 From 77ea5396b41bed4483f556acb8ae2cb6be8a9bfb Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:41:59 +0000 Subject: web commit by NealWalfield: Clean up links. Add link to [[Concepts]] --- Hurd.mdwn | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 0cf0cd81..af4d2992 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -3,25 +3,32 @@ # Introduction * [[TheGnuHurd]] - A Brief Description +* [[HurdNames]] - Acronym, Origin and Usage * [[History]] -* [[HurdNames]] - Acronym and Spelling + * [[GNUHurdStatus]] * [[KnownHurdLimits]] -* [[FrequentlyAskedQuestions]] + * [[Translation]] - Localized sites about the Hurd -* [[HurdDonations]] - if you've got more money than hack time -* [[Shopping]] + +* [[HurdDonations]] - If you want to donate money + +* [[SeenHurd]] - Media references +* [[Shopping]] - Hurd Gear * [[FunnyHurd]] - From a different Herd -## Understanding the Hurd +# Understanding -* Official documentation, papers and presentations: Available form the Hurd Web site. -* Towards a New Strategy of OS Design: an architectural overview by Thomas Bushnell, BSG. Marcus Brinkmann revisited some parts of the paper and Jonathan S. Shapiro has further comments -* Presentation by Ga�l Le Mignot -* [[DistributedServers]]: Architecture made possible by the Hurd. -* [[TranslatorPages]] - List of Hurd Translators +* Official documentation, papers and presentations +* Towards a New Strategy of OS Design: architectural overview by Thomas Bushnell, BSG. + * Marcus Brinkmann revisited some parts of the paper + * Jonathan S. Shapiro has further comments +* Presentation by Gaël Le Mignot +* [[DistributedServers]] +* [[TranslatorPages]] - Hurd Translators +* [[Concepts]] -# Using the Hurd +# Using * [[Running]] * [[Distrib]] - Distributions @@ -41,7 +48,6 @@ # Contributing * [[ToDo]] -* [[SeenHurd]] - Media references # Developer References -- cgit v1.2.3 From c9eded20634f79c3dbb2b662206e3a2630e7595f Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:49:16 +0000 Subject: web commit by NealWalfield: Fix spacing and some markup --- Hurd.mdwn | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index af4d2992..74404b19 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -5,14 +5,10 @@ * [[TheGnuHurd]] - A Brief Description * [[HurdNames]] - Acronym, Origin and Usage * [[History]] - * [[GNUHurdStatus]] * [[KnownHurdLimits]] - * [[Translation]] - Localized sites about the Hurd - -* [[HurdDonations]] - If you want to donate money - +* [[HurdDonations]] * [[SeenHurd]] - Media references * [[Shopping]] - Hurd Gear * [[FunnyHurd]] - From a different Herd -- cgit v1.2.3 From bd14d0720630519f8eb370588739bec8a6d94582 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:57:22 +0000 Subject: web commit by NealWalfield: Add [[Dist]] and [[Xen]] link --- Hurd/running.mdwn | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Hurd/running.mdwn b/Hurd/running.mdwn index 20d52856..62f5ed40 100644 --- a/Hurd/running.mdwn +++ b/Hurd/running.mdwn @@ -1,3 +1,5 @@ -* [[LiveCD]] - From a Live CD -* [[Distrib/QEMU]] - Via an Emulator -* [[FlashHurd]] - RFrom a flash stick \ No newline at end of file +* [[Dist]] - Distributions based on the Hurd +* [[Xen]] - In Xen +* [[LiveCD]] - Live CDs +* [[Distrib/QEMU]] - In an Emulator +* [[FlashHurd]] - From a flash stick \ No newline at end of file -- cgit v1.2.3 From 4250a63738a0b1f1a8db03362232e4687b1dde64 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 21:59:26 +0000 Subject: web commit by NealWalfield: Spell Distrib correctly --- Hurd/running.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hurd/running.mdwn b/Hurd/running.mdwn index 62f5ed40..b431966a 100644 --- a/Hurd/running.mdwn +++ b/Hurd/running.mdwn @@ -1,4 +1,4 @@ -* [[Dist]] - Distributions based on the Hurd +* [[Distrib]] - Distributions based on the Hurd * [[Xen]] - In Xen * [[LiveCD]] - Live CDs * [[Distrib/QEMU]] - In an Emulator -- cgit v1.2.3 From 0c2ac62c9bd19178bc946921618dfb58f579925f Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 22:03:46 +0000 Subject: web commit by NealWalfield: Create --- Hurd/xen.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Hurd/xen.mdwn diff --git a/Hurd/xen.mdwn b/Hurd/xen.mdwn new file mode 100644 index 00000000..1dcf69d9 --- /dev/null +++ b/Hurd/xen.mdwn @@ -0,0 +1,12 @@ +Note: since GNU Mach doesn't handle PAE, you need a PAE-disabled Hypervisor. +Get the binaries [here](http://dept-info.labri.fr/~thibault/hurd-xen/). + +- Copy gnumach-xen and hurd-modules to your dom0 /boot. +- Copy hurd into /etc/xen, edit it for fixing access to your hurd / and swap +- Run xm create -c hurd, gnumach should get started. +- If xm complains about networking, it's Xen fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs. + +If you want to generate these images, first get the gnumach-1-branch-Xen-branch branch from gnumach CVS. Then look for "Ugly" in kern/bootstrap.c, how to generate hurd-modules is explained there, and you'll have to fix EXT2FS_SIZE and LD_SO_SIZE by hand. Then use ./configure --enable-platform=xen && make + +The current hurd-modules was built from the debian packages hurd 20070606-2 and +libc0.3 2.6.1-1. -- cgit v1.2.3 From abfc333cb81a59718b692e0a136cadebc5d1d6c7 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 22:20:34 +0000 Subject: web commit by NealWalfield: Start clean up. --- Distrib.mdwn | 139 +++++++++++++++++++---------------------------------------- 1 file changed, 44 insertions(+), 95 deletions(-) diff --git a/Distrib.mdwn b/Distrib.mdwn index d2797d8d..1300a850 100644 --- a/Distrib.mdwn +++ b/Distrib.mdwn @@ -1,92 +1,41 @@ -Jon: We need a better logo for this page - ever since the Gentoo and Bee movements got involved I've been thingking about fixing this logo, but I haven't had any time. Suggestions, gfx donations? -- [[Main/JoachimNilsson]] - 30 Jun 2004 - -# Getting Your GNU/Hurd Running - -This web is about the distribution of software: where and how to get it. - -

    Distributions

    -

    -

    Debian GNU/Hurd port:

    -

    Official page about the Debian distribution of the GNU/Hurd system. Some additional notes are at [[DebianStatus]].

    - -

    -

    - -

    -

    -
      -
    • [[DebianFAQ]]
    • -
    -

    -

    -
      -
    • [[DebianAfterInstall]] -- Do this to get networking, new console and X
    • -
    -

    -

    -
    -
    Gentoo-Hurd
    -
    Unofficial port to Gentoo &amp; the portage system. It was announced March 17, 2003 in the Gentoo forums. There's a #gentoo-irc channel similar to [[Hurd/HurdIRC]]. At present (May 2005), there's no activity and Eric Olinger has not the time to maintain this distri.
    -
    -

    -

    -
    -
    Bee GNU/Hurd
    -
    Castellano distribution, pkgsrc package based. [[BochsEmulator]] image available too. They have their own wiki and a mail list (no archive).
    -
    -

    -

    -
    -
    Some ISOs
    -
    GNUAB has some images and packages available at http://ftp.gnuab.org for the unreleased (not unstable) Debian distro
    -
    -

    -

    -
    -
    [[GnuOS]]
    -
    distribution is in discussion &amp; pre-planning phase
    -
    -

    -

    General

    -

    -

    -
    -
    Welcome Note
    -
    Introduction to GNU and the Hurd sent monthly to Help-Hurd@gnu.org.
    -
    -

    -

    -
    -
    [[SoftwareLicensing]]
    -
    The copyright and license information for software that is distributed with the Hurd software is important. Debian has it's DFSG guidelines. Other distributions will need to address these same issues.
    -
    -

    -

    -
    -
    [[FrequentlyAskedQuestions]]
    -
    It's good to read it before asking questions.
    -
    -

    -

    -
    -
    [[GnuDebianRelationship]]
    -
    How does the GNU/Debian relationship work?
    -
    -

    -

    -
    +# Distributions + +## Debian GNU/Hurd port + +Official page about the Debian distribution of the GNU/Hurd system. Some additional notes are at [[DebianStatus]] + +- Presentation "Debian GNU/Hurd" by Michael Banck, LinuxTag 2004 Karlsruhe +- A disk image with an installation of the Debian distribution of GNU/Hurd +- [[DebianFAQ]] +- [[DebianAfterInstall]] -- Do this to get networking, new console and X + +GNUAB has some images and packages available at http://ftp.gnuab.org for the unreleased (not unstable) Debian distro + +## Gentoo-Hurd + +Unofficial port to Gentoo &amp; the portage system. It was announced March 17, 2003 in the Gentoo forums. There's a #gentoo-irc channel similar to [[Hurd/HurdIRC]]. At present (May 2005), there's no activity and Eric Olinger has not the time to maintain this distri. + +## Bee GNU/Hurd + +Castellano distribution, pkgsrc package based. [[BochsEmulator]] image available too. They have their own wiki and a mail list (no archive). + +## [[GnuOS]] + +Distribution is in discussion &amp; pre-planning phase + + +# Issues +
    [[SoftwareLicensing]]
    The copyright and license information for software that is distributed with the Hurd software is important. Debian has it's DFSG guidelines. Other distributions will need to address these same issues.
    -
    + +[[GnuDebianRelationship]] + ## Installation
    -
    Install Instructions
    +
    Install Instructions
    Currently, Debian's installation instructions are the most up-to-date. [[Hurd/InstallNotes]] is an errata companion document with more helpful hints that have not yet been incorporated.
    @@ -96,7 +45,7 @@ This web is about the distribution of software: where and how to get it.
    -
    Release Information
    +
    Release Information
    About the latest CD release. Includes errata, known bugs and fixes. See [[CDNotesHome]] and [[TarballNotesHome]] for summaries
    @@ -117,17 +66,17 @@ Another installation method is using an emulated environment. The [[BochsEmulato * [[VmWare]] - Why using it is discouraged.
    -
    Debian Installer
    +
    Debian Installer
    Work has been started by James Morrison and Glenn McGrath to [[PortDebootstrap]]. There is also a [[NewDebianInstaller]]. Why should Hurd folks care? It's important because this is the next generation installer that is intended to be used by all ports when Sarge is released.
    -## Using the system +# Using [[DebianAfterInstall]] instructions are a must-read to prepare an usable system. [[PackageTroubleshooting]] reports known bugs, quirks and workarounds about getting applications to work (if possible). -## For Developers +# For Developers
    [[SavannahProjects]]
    @@ -135,7 +84,7 @@ Another installation method is using an emulated environment. The [[BochsEmulato
    -
    [[PortingIssues]] FAQ
    +
    [[PortingIssues]] FAQ
    What does it take to move a piece of Debian packaged software to the GNU/Hurd port?
    @@ -145,17 +94,17 @@ Another installation method is using an emulated environment. The [[BochsEmulato
    -
    Debain Infrastructure
    +
    Debain Infrastructure
    Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[BtsFiling]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp; turtle efforts.
    -
    Uninstallable packages
    +
    Uninstallable packages
    Many packages depend on these uninstallable packages. So building one of them will allow other to be build too.
    -
    Technical References
    +
    Technical References
    There are many standards and documents that might be applicable for those interested in developing software.
    @@ -167,7 +116,7 @@ Another installation method is using an emulated environment. The [[BochsEmulato * [[CodeAnnouncements]] - Recent coding projects related to the Hurd
    -
    Debian Developer's Corner
    +
    Debian Developer's Corner
    The following references are provided as a starting point for those interested in helping to package software for Debian GNU/Hurd and Debian GNU/Linux.
    @@ -177,7 +126,7 @@ Another installation method is using an emulated environment. The [[BochsEmulato * There are many Debian email lists
    -
    Debian Todo
    +
    Debian Todo
    Packages needing attention. A possible use of this site could be to help track similar needs via [[HurdWnpp]]. This is not yet implemented.
    @@ -186,10 +135,10 @@ Another installation method is using an emulated environment. The [[BochsEmulato
    There are some discussions and several rumors circulating about creating a completely new distribution, not using a Debian architecture.
    -## Misc. +# Misc.
    -
    Why a separate section of the website for this?
    +
    Why a separate section of the website for this?
    There are fundamentally different issues about distributions compared with coding. Distributions are concerned with final default configurations of packaged software and system integration as they use many software packages and help give users a sense of using an OS "product."
    -- cgit v1.2.3 From ed46fdeec8774a70234ec903cd175d8c77d124aa Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 22:28:23 +0000 Subject: web commit by NealWalfield: Redirect to [[Hurd/GettingHelp]] --- Distrib/NewQuestions.mdwn | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/Distrib/NewQuestions.mdwn b/Distrib/NewQuestions.mdwn index e79729e9..0faaba43 100644 --- a/Distrib/NewQuestions.mdwn +++ b/Distrib/NewQuestions.mdwn @@ -1,15 +1 @@ -## 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 the other packages maintained by the Hurd people, you can send an e-mail to the Help-Hurd 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 mailing list. - -All e-mails concerning the Debian GNU/Hurd binary distribution should go to the Debian GNU/Hurd mailing list. - -If you want to contribute to the development of the Hurd, look at the Development page. - -## Internet relay chat - -The GNU Project uses Freenode as it's official IRC network. The network of IRC servers can be accessed through irc.gnu.org. The channel #hurd is dedicated to the Hurd. You can find other users and developers interested in the Hurd there and chat with them in real time. - -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. +Try here: [[Hurd/GettingHelp]] \ No newline at end of file -- cgit v1.2.3 From ab1bb4398f1858e108e1a81f46297ac29b46fee1 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 22 Aug 2007 22:31:03 +0000 Subject: web commit by NealWalfield: Add [[GettingHelp]] to the top-level menu. Remove help sub-menu items. --- sidebar.mdwn | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sidebar.mdwn b/sidebar.mdwn index d2b0cd51..29f6de92 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -1,12 +1,12 @@ * **[[Home|/index]]** * **[[Hurd_User_Groups|Hug]]** * **[[Main]]** +* **[[Hurd/GettingHelp]]** --- * **[[Distrib]]**[[if test="destpage(Distrib*)" then=" - * *[[Installation|Distrib/InstallNotes]]* - * *[[Getting_Help|Distrib/NewQuestions]]*"]] + * *[[Installation|Distrib/InstallNotes]]*"]] * **[[GNU]]**[[if test="destpage(GNU*)" then=" * *[GNU Homepage](http://www.gnu.org/)* * *[Savannah](http://savannah.gnu.org/)* @@ -17,7 +17,6 @@ * **[[Hurd]]**[[if test="destpage(Hurd*)" then=" * *[[About|Hurd/TheGnuHurd]]* * *[[Status|Hurd/GNUHurdStatus]]* - * *[[Hurd/GettingHelp]]* * *[[Hurd/Documentation]]* * *[[Hurd/Running]]*"]] * **[[Mach]]**[[if test="destpage(Mach*)" then=" -- cgit v1.2.3 From a22ec9255e03444c8259fdfac6b206c89cf8c7b2 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 08:53:25 +0000 Subject: web commit by NealWalfield: Create. --- hurd/concepts.mdwn | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 hurd/concepts.mdwn diff --git a/hurd/concepts.mdwn b/hurd/concepts.mdwn new file mode 100644 index 00000000..c1dbd610 --- /dev/null +++ b/hurd/concepts.mdwn @@ -0,0 +1,5 @@ +* [[Translators]] +* [[VirtualFileSystem]] +* [[Authentication]] +* [[NeighborHurd]] + -- cgit v1.2.3 From 38d9161d745671619092aa2cb304bb1cc6f5c4f1 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 09:04:32 +0000 Subject: web commit by NealWalfield: Create. --- hurd/virtualfilesystem.mdwn | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 hurd/virtualfilesystem.mdwn diff --git a/hurd/virtualfilesystem.mdwn b/hurd/virtualfilesystem.mdwn new file mode 100644 index 00000000..054f0b04 --- /dev/null +++ b/hurd/virtualfilesystem.mdwn @@ -0,0 +1,17 @@ +Path names are resolved using a distributed protocol. +No single entity is responsible for the resolution of +path names. A file system server (a [[translator]]) +attaches to translators (fs.defs:file_set_translator). + +When a process resolves an aboslute path, it queries +its root file system server by invoking the fs.defs:dir_lookup +method in the capability in its root directory slot. The +file system server resolves as much as it knows about locally +and when it encounters a translator, it replies to the client +indicating how much it resolved and where to continue its +lookup. This continues until the name is fully resolved +or an error occurs. The same happens for relative path +names but a different capability is used. + +For a more detailed explanation of the protocol, look at the section +2.2 of the [[HurdCritique]]. \ No newline at end of file -- cgit v1.2.3 From 79ebc930b82b5bc3631b0aaa3e757f55d7034a9d Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 09:09:14 +0000 Subject: web commit by NealWalfield: Create. --- hurd/hurdcritique.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 hurd/hurdcritique.mdwn diff --git a/hurd/hurdcritique.mdwn b/hurd/hurdcritique.mdwn new file mode 100644 index 00000000..f8e3eed7 --- /dev/null +++ b/hurd/hurdcritique.mdwn @@ -0,0 +1,7 @@ +[[NealWalfield]] and [[MarcusBrinkmann]] wrote a paper titled +"[A Critique of the GNU Hurd Multi-Server Operating System](http://walfield.org/papers/200707-walfield-critique-of-the-GNU-Hurd.pdf)." +This was published in ACM SIGOPS Operating Systems Review in +July 2007. This is sometimes referred to as "the critique." + +The paper provides a technical overview of the Hurd's +architecture and critiques some of the decisions made. \ No newline at end of file -- cgit v1.2.3 From 2280c34ef3c5383825785b36a472f9effb69d363 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 09:11:05 +0000 Subject: web commit by NealWalfield: [[Translator]], not [[Translators]] --- hurd/concepts.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hurd/concepts.mdwn b/hurd/concepts.mdwn index c1dbd610..6ec21f7d 100644 --- a/hurd/concepts.mdwn +++ b/hurd/concepts.mdwn @@ -1,4 +1,4 @@ -* [[Translators]] +* [[Translator]] * [[VirtualFileSystem]] * [[Authentication]] * [[NeighborHurd]] -- cgit v1.2.3 From 819f7209cf3990bfe718a0ad4b4e49d780b0479c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 09:21:32 +0000 Subject: web commit by NealWalfield: Create. --- hurd/authentication.mdwn | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 hurd/authentication.mdwn diff --git a/hurd/authentication.mdwn b/hurd/authentication.mdwn new file mode 100644 index 00000000..0d52a0ba --- /dev/null +++ b/hurd/authentication.mdwn @@ -0,0 +1,17 @@ +UIDs on the Hurd are separate from processes. A process has +[[capabilities]] designating so-called UID vectors that +are implemented by an [[auth]] server. This +makes them easily [[virtualizable]]. + +When a process wishes to gain access to a resource provided by a third +party (e.g., a file system) and that party wishes to authenticate the client +so as to implement some identity-based access control ([[IBAC]]) policy, +the latter initiates a three-way authentication handshake. The server +and client each then begin an authentication sequence with +their respective [[trust]]ed auth servers. If they have +a mutally trusted ancestor and an auth server does not abort the +transaction, then the client is delivered a new capability +naming a newly authenticated session with the server +and the server is delivered the client's designated UID vector. + +For more details, see section 2.3 of the [[HurdCritique]]. -- cgit v1.2.3 From e30e0223c8d8f7010dd01d4400956e13cc535d42 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 09:27:39 +0000 Subject: web commit by NealWalfield: Create. --- hurd/ibac.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 hurd/ibac.mdwn diff --git a/hurd/ibac.mdwn b/hurd/ibac.mdwn new file mode 100644 index 00000000..14d1551c --- /dev/null +++ b/hurd/ibac.mdwn @@ -0,0 +1,8 @@ +IBAC stands for identity-based access control. +In this access control scheme, access to a resource +is based on identity of the caller. This is often +problematic as when a program acts on behalf of +another, access is authorized based on its own +identity rather than that of the caller. + +See also [[ABAC]]. \ No newline at end of file -- cgit v1.2.3 From 6d598f46b589b08579c70fa40e8356880268b4f0 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 09:32:36 +0000 Subject: web commit by NealWalfield: Create. --- abac.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 abac.mdwn diff --git a/abac.mdwn b/abac.mdwn new file mode 100644 index 00000000..5f0ba007 --- /dev/null +++ b/abac.mdwn @@ -0,0 +1,8 @@ +ABAC stands for authorization-based access control. +In this model, access is not granted based on the +identity of the caller but by an authorizing agent +that delegates access to a particular resource. +Such authorization is then encapsulated in +[[capabilities]] allowing them to be freely [[delegated]]. + +See also [[IBAC]]. \ No newline at end of file -- cgit v1.2.3 From af6383bd76f113ab2858ecc7c40c6aa957d61381 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 10:25:29 +0000 Subject: web commit by NealWalfield: Create. --- hurd/translator.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 hurd/translator.mdwn diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn new file mode 100644 index 00000000..d535ef26 --- /dev/null +++ b/hurd/translator.mdwn @@ -0,0 +1,22 @@ +A translator is simply a normal program acting as +an object server and participating in the Hurd's +distributed [[VirtualFileSystem]]. It is so-called +because it typically exports a file system +(although need not: cf. [[auth]], [[proc]] +and [[pfinet]]) and thus translates object invocations +into calls appropriate for the backing store +(e.g., ext2 file system, nfs server, etc.). + +Translators do not require any special privilege +to run. The privilege they require is simply +that to access the indiviudal resources they use. +This is primarily the backing store and the node +they attach to. Typically, a translator can +only be attached to a node by the node's owner. +On Unix this is not possible because file systems +and the virtual file system are implemented in the +kernel and thus have absolute access to the machine. +As the protocols do not require any special privilege +to implement, this is not an issue on the Hurd. + +See [[Translators]] for a list of Hurd translators. \ No newline at end of file -- cgit v1.2.3 From 1d06df7350c04256b3c9f8b8becfa16f9a0c5aac Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 10:46:01 +0000 Subject: web commit by NealWalfield: Rework Understanding Section. --- Hurd.mdwn | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 74404b19..cdcb3b69 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -15,14 +15,17 @@ # Understanding -* Official documentation, papers and presentations -* Towards a New Strategy of OS Design: architectural overview by Thomas Bushnell, BSG. - * Marcus Brinkmann revisited some parts of the paper - * Jonathan S. Shapiro has further comments -* Presentation by Gaël Le Mignot -* [[DistributedServers]] -* [[TranslatorPages]] - Hurd Translators +* Introductory Material + * [Marcus Brinkmann](http://www.gnu.org/software/hurd/hurd-talk.html) + * [Gaël Le Mignot](http://kilobug.free.fr/hurd/pres-en/slides/slides.html) +* Architecture + * (Towards a New Strategy of OS Design)[http://www.gnu.org/software/hurd/hurd-paper.html] by Thomas Bushnell, BSG. + * Marcus Brinkmann's [revisit](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00651.html) + * Jonathan S. Shapiro [comments](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00654.html) + * [[HurdCritique]] - Analysis * [[Concepts]] +* Other resources + * [Docs at gnu.org](http://www.gnu.org/software/hurd/docs.html) # Using -- cgit v1.2.3 From a23caeccbd929d2301fedab2c0c44a737958ce7f Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 10:47:36 +0000 Subject: web commit by NealWalfield: Fix link --- Hurd.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index cdcb3b69..57a56a66 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -19,7 +19,7 @@ * [Marcus Brinkmann](http://www.gnu.org/software/hurd/hurd-talk.html) * [Gaël Le Mignot](http://kilobug.free.fr/hurd/pres-en/slides/slides.html) * Architecture - * (Towards a New Strategy of OS Design)[http://www.gnu.org/software/hurd/hurd-paper.html] by Thomas Bushnell, BSG. + * [Towards a New Strategy of OS Design](http://www.gnu.org/software/hurd/hurd-paper.html) by Thomas Bushnell, BSG. * Marcus Brinkmann's [revisit](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00651.html) * Jonathan S. Shapiro [comments](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00654.html) * [[HurdCritique]] - Analysis -- cgit v1.2.3 From 3860f8235a73e8e4260fc7c064089e53c7b448c9 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 10:50:37 +0000 Subject: web commit by NealWalfield: Add link to [[HurdHackingGuide]] --- hurd/translator.mdwn | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index d535ef26..1e281b9d 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -19,4 +19,8 @@ kernel and thus have absolute access to the machine. As the protocols do not require any special privilege to implement, this is not an issue on the Hurd. -See [[Translators]] for a list of Hurd translators. \ No newline at end of file +See [[Translators]] for a list of Hurd translators. + +To learn how to write a translator, read the code! +It is well documented, in particular, the header files. +The [[HurdHackingGuide]] also has a tutorial. \ No newline at end of file -- cgit v1.2.3 From acd3571c50d1af6d630c01dc96635900a21d9b1a Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 10:56:41 +0000 Subject: web commit by NealWalfield: Create --- hurd/hurdhackingguide.mdwn | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 hurd/hurdhackingguide.mdwn diff --git a/hurd/hurdhackingguide.mdwn b/hurd/hurdhackingguide.mdwn new file mode 100644 index 00000000..bc214589 --- /dev/null +++ b/hurd/hurdhackingguide.mdwn @@ -0,0 +1,4 @@ +Originally written by Wolfgang Jährling, the [Hurd Hacking Guide](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) +contains an overview of some of the Hurd's features. +Also contains a tutorial on writing your own translator. + -- cgit v1.2.3 From 1426e69c972783ca53c28d40511a94e7b8d242f8 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 10:59:07 +0000 Subject: web commit by NealWalfield: Add link to [[HurdHackingGuide]] --- Hurd.mdwn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 57a56a66..6496fee4 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -20,9 +20,10 @@ * [Gaël Le Mignot](http://kilobug.free.fr/hurd/pres-en/slides/slides.html) * Architecture * [Towards a New Strategy of OS Design](http://www.gnu.org/software/hurd/hurd-paper.html) by Thomas Bushnell, BSG. - * Marcus Brinkmann's [revisit](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00651.html) - * Jonathan S. Shapiro [comments](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00654.html) + * Marcus Brinkmann's [revisit](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00651.html) + * Jonathan S. Shapiro [comments](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00654.html) * [[HurdCritique]] - Analysis + * [[HurdHackingGuide]] * [[Concepts]] * Other resources * [Docs at gnu.org](http://www.gnu.org/software/hurd/docs.html) -- cgit v1.2.3 From a861391dcae81d56715652c7daffd2064a580052 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:00:36 +0000 Subject: web commit by NealWalfield: No GNU/Linux distribution discussion --- Hurd/HurdIRC.mdwn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index 49b45a39..bf393c40 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -16,10 +16,11 @@ reproducing them as exactly as possible. Please try to stay on topic. * emacs vs. vi **is not** on topic -* If it is appropriate for a **slashdot comment**, it's not appropriate +* If it is appropriate for a **slashdot comment**, it's **not appropriate** here -* why GNU sucks **is off-topic** +* why GNU sucks is **off-topic** * when the next release of the Hurd will be **is inappropriate** +* you should not advocate your favorite **GNU/Linux** ditribution # Pasting Logs -- cgit v1.2.3 From 5913aaac80f8e9b50a559b31af6eaa0c357765e2 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:25:01 +0000 Subject: web commit by NealWalfield: Create. --- Hurd/contributing.mdwn | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Hurd/contributing.mdwn diff --git a/Hurd/contributing.mdwn b/Hurd/contributing.mdwn new file mode 100644 index 00000000..9edd8b2f --- /dev/null +++ b/Hurd/contributing.mdwn @@ -0,0 +1,29 @@ +There are a number of ways that you can contribute to the +Hurd. + +* Debian GNU/Hurd + +Debian is currently the Hurd distribution of choice among Hurd +users and devellopers. Approximately half of the Debian archive +has been compiled successfully on the Hurd, however, many +programs fail to build for various reasons. [Significant +packages and problems](http://alioth.debian.org/pm/?group_id=30628) +are listed there. You can also just install the Hurd and +find what doesn't work for you and port it and then file +bugs against the package in the Debian BTS. + +* Hurd Proper + +If you are interested in developping the Hurd proper, there is +plenty of work todo. Before you can significantly contribute, +take some time to learn about the system, e.g., +[[MicroKernelsForBeginners]]. Until you can do the basic exercises +listed there, you won't be able to significantly contribute to +the Hurd. + +See also the [[ToDo]] + +* GNU Mach + +GNU Mach is the underlying microkernel used by the Hurd. It has +a number of deficencies [[Mach/GNUMachRevivalProject]]. -- cgit v1.2.3 From 02d930fe1bc60c1981dfc927b302bca4e6bb2448 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:32:27 +0000 Subject: web commit by NealWalfield: Prune dead lines; rework some text. --- Hurd/ToDo.mdwn | 62 ++++++++++++++-------------------------------------------- 1 file changed, 15 insertions(+), 47 deletions(-) diff --git a/Hurd/ToDo.mdwn b/Hurd/ToDo.mdwn index 6a02e27a..2d65f0c8 100644 --- a/Hurd/ToDo.mdwn +++ b/Hurd/ToDo.mdwn @@ -1,48 +1,25 @@ -# Debian GNU/Hurd +For how best to contribte, see [[contributing]]. -The Debian Hurd port maintains [a list of projects](http://alioth.debian.org/pm/?group_id=30628), both porting and general enhancements. - -# psmisc - -The tools provided by the psmisc package are linux centric. Killall and pstree, for instance, require Linux's proc file system but could just as easily use Hurd's libps. - --- [[NealWalfield]] - 14 Dec 2005 - -# tmpfs - -# ppp - -# unionfs/stowfs - -# [Improve Mach](http://hurd.gnufans.org/bin/view/Mach/GNUMachRevivalProject) - -# supermount translator - -# user-level drivers +This todo is primarily targetted at the Hurd proper +and applications that rely on the Hurd interfaces. +The canonical TODOs from the CVS archive: +* [TODO file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/TODO?rev=HEAD&content-type=text/plain) +* [Task file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/tasks?rev=HEAD&content-type=text/plain) -Two canonical status lists are available from the CVS archive: +* psmisc -* [TODO file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/TODO?rev=HEAD&content-type=text/plain) - from Hurd repository -* [Task file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/tasks?rev=HEAD&content-type=text/plain) - from Hurd respository - -
    -
    Welcome Note
    -
    Introduction to GNU and the Hurd sent monthly to Help-Hurd@gnu.org.
    -
    - -
    Related: [[KnownHurdLimits]],
    [[SeenHurd]], [[WhoRunsGNU]], [[GnuHurdLiveJournal]]
    - ----- - -Here are some notes taken from an [IRC discussion](http://web.walfield.org/~hird/%23hurd-200209027) September 28th, 2002. The part of the log at which I am summarizing starts with +The tools provided by the psmisc package are linux centric. Killall and pstree, for instance, require Linux's proc file system but could just as easily use Hurd's libps. -` wolfgang: I once made a list of things that are definitely to be done before a release. want me to write it here? (It's only on paper so far)` +* tmpfs +* ppp +* unionfs/stowfs +* supermount translator -This list is intended to apply to "just the CVS of the [Hurd itself](http://savannah.gnu.org/projects/hurd)." It is specifically not intended to apply to GNU/Hurd and definately not Debian GNU/Hurd. +Related: [[KnownHurdLimits]] -**FIXME.** How out-of-date is this stuff? -- [[Main/DeviceRandom]] - 20 Jan 2007 +From Marcus, 2002: * xkb driver for console (for international users) * kbd leds in console (well, in general, Roland's new driver in oskit for that crap) @@ -66,7 +43,6 @@ This list is intended to apply to "just the CVS of the [Hurd itself](http://sava * What about chown, chmod (some translators should pass this through to the underlying node, esp in /dev!) * Does statfs give correct data? * Are all inode numbers and link counts correct? -* [one unreadable item on the paper] * We also should have a "make check" test suite. We can add this once Jeff finished his automake patches * pick up the other things * pthread, definitely. Now that we are so close @@ -75,13 +51,7 @@ This list is intended to apply to "just the CVS of the [Hurd itself](http://sava * X switching support * there is certainly more to do ... --- - -This is the wrong place for this but I'll put it here for now. Here's an [email about pthreads direction](http://mail.gnu.org/pipermail/hurd-devel/2002q3/000449.html) from hurd-devel mail list. - --- [[Main/GrantBow]] - 01 Oct 2002 - -Wolfgang also created a wonderful list of [Easy tasks](http://mail.gnu.org/pipermail/help-hurd/2002-July/006413.html) on July 28, 2002 that I will quote here: +Wolfgang list of [Easy tasks](http://mail.gnu.org/pipermail/help-hurd/2002-July/006413.html) on July 28, 2002: @@ -143,5 +113,3 @@ Wolfgang also created a wonderful list of [Easy tasks](http://mail.gnu.org/piper
    Where difficulty 0 means trivial and 4 means tricky; the difficulty has nothing to do with the importance. - --- [[Main/GrantBow]] - 11 Oct 2002 -- cgit v1.2.3 From 59af3fd58d2d478599363bdf3eb098d93fc411dd Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:35:10 +0000 Subject: web commit by NealWalfield: Add link to [[Contribute]] --- Hurd.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 6496fee4..07c91a07 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -47,11 +47,12 @@ # Contributing +* [[Contributing]] * [[ToDo]] # Developer References * [[Debugging]] * [[HurdSpecificGlibcApi]]: Functions in GLIBC for the Hurd. -* Hurd Sourcecode Reference: Searchable and browsable index of the code. +* (Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code. -- cgit v1.2.3 From 06516e2a86abf8265e67efb13f2a0ac390e56fd8 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:38:20 +0000 Subject: web commit by NealWalfield: Don't use a list. --- Hurd/contributing.mdwn | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Hurd/contributing.mdwn b/Hurd/contributing.mdwn index 9edd8b2f..4ef03945 100644 --- a/Hurd/contributing.mdwn +++ b/Hurd/contributing.mdwn @@ -1,7 +1,4 @@ -There are a number of ways that you can contribute to the -Hurd. - -* Debian GNU/Hurd +# Porting Applications Debian is currently the Hurd distribution of choice among Hurd users and devellopers. Approximately half of the Debian archive @@ -10,9 +7,9 @@ programs fail to build for various reasons. [Significant packages and problems](http://alioth.debian.org/pm/?group_id=30628) are listed there. You can also just install the Hurd and find what doesn't work for you and port it and then file -bugs against the package in the Debian BTS. +bugs against the package in the Debian BTS or upstream. -* Hurd Proper +# Hurd Proper If you are interested in developping the Hurd proper, there is plenty of work todo. Before you can significantly contribute, @@ -21,9 +18,9 @@ take some time to learn about the system, e.g., listed there, you won't be able to significantly contribute to the Hurd. -See also the [[ToDo]] +See the [[ToDo]]. -* GNU Mach +# GNU Mach GNU Mach is the underlying microkernel used by the Hurd. It has -a number of deficencies [[Mach/GNUMachRevivalProject]]. +a number of deficencies [[Mach/GNUMachRevivalProject]]. -- cgit v1.2.3 From 1838f341de1bd07c2136973cf022585f8de0a084 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:47:43 +0000 Subject: web commit by MichaelBanck: Expand Debian section --- Hurd/contributing.mdwn | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Hurd/contributing.mdwn b/Hurd/contributing.mdwn index 4ef03945..b185e601 100644 --- a/Hurd/contributing.mdwn +++ b/Hurd/contributing.mdwn @@ -3,11 +3,20 @@ Debian is currently the Hurd distribution of choice among Hurd users and devellopers. Approximately half of the Debian archive has been compiled successfully on the Hurd, however, many -programs fail to build for various reasons. [Significant -packages and problems](http://alioth.debian.org/pm/?group_id=30628) -are listed there. You can also just install the Hurd and -find what doesn't work for you and port it and then file -bugs against the package in the Debian BTS or upstream. +programs fail to build for various reasons. A [list of build +failures including error messages](http://unstable.buildd.net/buildd/hurd-i386_Failed.html) +can be found, as well as a [preliminary analysis](http://lists.debian.org/debian-hurd/2007/07/msg00000.html) +of them. If you want to port any of these, file patches in the +[Alioth patch tracker](http://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse) + for review. It might be a good idea to record your intention +to port something in the [Alioth task tracker](http://alioth.debian.org/pm/task.php?group_project_id=34&group_id=30628&func=browse) so other people do not do duplicated work. You can also just +install the Hurd and find what doesn't work for you and port +it and then file patches for that package in [above patch tracker](http://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse) + +If you want to further development, a list of interesting +projects is available in the [Alioth task tracker](http://alioth.debian.org/pm/task.php?group_project_id=35&group_id=30628&func=browse). +Those projects are not necessarily Debian specific, but do +not touch the Hurd proper. # Hurd Proper -- cgit v1.2.3 From f1b62d180dc2af21f69f3544d8d2169ce6961d08 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 13:56:13 +0000 Subject: web commit by MichaelBanck: mention upstream --- Hurd/contributing.mdwn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Hurd/contributing.mdwn b/Hurd/contributing.mdwn index b185e601..b6c460ca 100644 --- a/Hurd/contributing.mdwn +++ b/Hurd/contributing.mdwn @@ -11,7 +11,9 @@ of them. If you want to port any of these, file patches in the for review. It might be a good idea to record your intention to port something in the [Alioth task tracker](http://alioth.debian.org/pm/task.php?group_project_id=34&group_id=30628&func=browse) so other people do not do duplicated work. You can also just install the Hurd and find what doesn't work for you and port -it and then file patches for that package in [above patch tracker](http://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse) +it and then file patches for that package in [above patch tracker](http://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse). +Another important task is making sure that patches go upstream as +well, especially for GNU projects. If you want to further development, a list of interesting projects is available in the [Alioth task tracker](http://alioth.debian.org/pm/task.php?group_project_id=35&group_id=30628&func=browse). -- cgit v1.2.3 From 7be41618d10dc727df2f7a3072f3ddbf1c96f32c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 14:00:20 +0000 Subject: web commit by NealWalfield: Fix link. --- Hurd.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hurd.mdwn b/Hurd.mdwn index 07c91a07..890b1338 100644 --- a/Hurd.mdwn +++ b/Hurd.mdwn @@ -54,5 +54,5 @@ * [[Debugging]] * [[HurdSpecificGlibcApi]]: Functions in GLIBC for the Hurd. -* (Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code. +* [Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code. -- cgit v1.2.3 From f0201e8d2c3c0ee79d0bbca2876d87f374574182 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 14:10:43 +0000 Subject: web commit by NealWalfield: Merge list from [[Hurd/UserGroups]] --- Hug.mdwn | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Hug.mdwn b/Hug.mdwn index 5679502c..026715e5 100644 --- a/Hug.mdwn +++ b/Hug.mdwn @@ -1,14 +1,18 @@ Welcome. This is a web-based collaboration area for Hurd user groups. - + +* [[Hurd/THUG]] - Toronto (GNU/)Hurd User Group +* [Hurdfr.org](http://www.hurdfr.org/) +* [[Hurd/AtelierGnuGulliver]] - Rennes - France +* [Hurd.ru](http://www.hurd.ru/) +* [[Hurd/CHUG]] - California Hurd User Group +* [[Hurd/DHUG]] - Dunedin (GNU/)Hurd User Group +* [[Hug/HurdBr]] - Hurd Br is a brasilian, portuguese speaking, HUG +* HurdUk: http://uwhug.org.uk/ +* HurdEs: http://hurd.es.gnu.org/ +* HurdIt: http://hurd-it.sf.net/ +* HurdCa: http://www.nongnu.org/thug/ +* HurdPl: http://hurd.pl/forum/ +* HurdRu: http://wiki.hurd.ru/ +* HurdIn: http://i-hug.sarovar.org +* HurdUs: http://hurd.gnufans.org/ -- cgit v1.2.3 From 9a6ba35aec12e10ef3f98e5192ed6a3215025b9e Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 14:11:24 +0000 Subject: web commit by NealWalfield: Merge into [[Hug]] --- Hurd/UserGroups.mdwn | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/Hurd/UserGroups.mdwn b/Hurd/UserGroups.mdwn index 0cb9b043..ee67b616 100644 --- a/Hurd/UserGroups.mdwn +++ b/Hurd/UserGroups.mdwn @@ -1,17 +1 @@ -# Hurd User Groups - -* [[Hurd/THUG]] - Toronto (GNU/)Hurd User Group -* [Hurdfr.org](http://www.hurdfr.org/) -* [[Hurd/AtelierGnuGulliver]] - Rennes - France -* [Hurd.ru](http://www.hurd.ru/) -* [[Hurd/CHUG]] - California Hurd User Group -* [[Hurd/DHUG]] - Dunedin (GNU/)Hurd User Group -* [[Hug/HurdBr]] - Hurd Br is a brasilian, portuguese speaking, HUG - --- [[Main/SimonLaw]] - 25 May 2002 - --- [[Main/TWikiGuest]] - 08 Oct 2002 - --- [[Main/GrantBow]] - 11 Oct 2002 - --- [[Main/AndrewMitchell]] - 16 Oct 2002 +See [[Hug]] -- cgit v1.2.3 From 8bc3e621c8491ab650318505550f8916d72c5bc5 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 14:24:03 +0000 Subject: web commit by NealWalfield: Fix a few typos. --- Hurd/contributing.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Hurd/contributing.mdwn b/Hurd/contributing.mdwn index b6c460ca..e21f28be 100644 --- a/Hurd/contributing.mdwn +++ b/Hurd/contributing.mdwn @@ -1,7 +1,7 @@ # Porting Applications Debian is currently the Hurd distribution of choice among Hurd -users and devellopers. Approximately half of the Debian archive +users and developers. Approximately half of the Debian archive has been compiled successfully on the Hurd, however, many programs fail to build for various reasons. A [list of build failures including error messages](http://unstable.buildd.net/buildd/hurd-i386_Failed.html) @@ -23,9 +23,9 @@ not touch the Hurd proper. # Hurd Proper If you are interested in developping the Hurd proper, there is -plenty of work todo. Before you can significantly contribute, +plenty of work to do. Before you can significantly contribute, take some time to learn about the system, e.g., -[[MicroKernelsForBeginners]]. Until you can do the basic exercises +[[Mach/MicroKernelsForBeginners]]. Until you can do the basic exercises listed there, you won't be able to significantly contribute to the Hurd. -- cgit v1.2.3 From 2c71d28c08ec3915ca5b13720212976562d6e003 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Thu, 23 Aug 2007 16:19:26 +0000 Subject: web commit by MichaelBanck: hotfix apt.conf.offline URL --- Distrib/DebianAptOffline.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Distrib/DebianAptOffline.mdwn b/Distrib/DebianAptOffline.mdwn index d1915458..1f44f5fa 100644 --- a/Distrib/DebianAptOffline.mdwn +++ b/Distrib/DebianAptOffline.mdwn @@ -4,7 +4,7 @@ This procedure is based on (pack Having _apt_ installed is needed to use it. -Put into Debian GNU/Hurd's /etc/apt/. +Put into Debian GNU/Hurd's /etc/apt/. #### You _can_ mount your Debian GNU/Hurd partition under another OS. -- cgit v1.2.3 From 649fa1bc962b2473a84d5b57ac4b8da5c630ef52 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Fri, 24 Aug 2007 09:49:51 +0000 Subject: web commit by NealWalfield: Improve language. --- Distrib/DebianAptOffline.mdwn | 54 +++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/Distrib/DebianAptOffline.mdwn b/Distrib/DebianAptOffline.mdwn index 1f44f5fa..8c4f8df2 100644 --- a/Distrib/DebianAptOffline.mdwn +++ b/Distrib/DebianAptOffline.mdwn @@ -1,52 +1,52 @@ -## Installing packages without having a network connection. +# How to Installing Packages without a Network Connection from your Hurd Installation -This procedure is based on (package apt-doc). +This procedure is based on that found in +file:///usr/share/doc/apt-doc/offline.text.gz (package apt-doc). -Having _apt_ installed is needed to use it. +This requires having apt installed on the Host operating system. -Put into Debian GNU/Hurd's /etc/apt/. +Put a copy of (apt.conf.offline)[http://www.bddebian.com/~wiki/Distrib/DebianAptOffline/apt.conf.offline] +into your Debian GNU/Hurd installations /etc/apt/ directory. -#### You _can_ mount your Debian GNU/Hurd partition under another OS. +## If you _can_ mount your Debian GNU/Hurd partition from another OS, which can connect to the Internet -Networked system, user root +As root on the internet connected OS: - # mkdir SOMEWHERE - # mount /dev/DEBIAN_GNU_HURD_PARTITON SOMEWHERE - # cd SOMEWHERE + # mount /dev/DEBIAN_GNU_HURD_PARTITON /mnt + # cd /mnt # apt-get -c etc/apt/apt.conf.offline {update, upgrade, install foo, etc.} -Debian GNU/Hurd, user root +Then , reboot into your Debian GNU/Hurd installation and as root, run: # apt-get {update, upgrade, install foo, etc.} -#### You _can't_ mount your Debian GNU/Hurd partition under another OS. +## If you _cannot_ mount your Debian GNU/Hurd partition under another OS. -Debian GNU/Hurd, user root +From your Debian GNU/Hurd installation run, as the root user: - # tar -cf SOMEWHERE/tar /etc/apt/{apt.conf.offline,sources.list} /var/lib/dpkg/status + # tar cf myhurdsconf.tar /etc/apt/{apt.conf.offline,sources.list} /var/lib/dpkg/status -Copy _SOMEWHERE/tar_ to the remote system. +Copy _myhurdsconf.tar_ to the remote system. -_/var/lib/dpkg/status_ is needed for the remote system's _apt_ to know which packages (and their versions) are already installed on your Debian GNU/Hurd system. +This copies your apt configuration and the status of your system +(what packages are installed, which versions, etc.) -Networked system, any user +From the remote sytem, as any user, run: - $ mkdir debian_gnu_hurd - $ cd debian_gnu_hurd - $ tar -xf SOMEWHERE/tar + $ mkdir myhurd + $ cd myhurd + $ tar -xf myhurdsconf.tar $ mkdir -p var/lib/apt/lists/partial var/cache/apt/archives/partial tmp $ apt-get -c etc/apt/apt.conf.offline {update, upgrade, install foo, etc.} - $ tar -cf SOMEWHERE/tar var/ + $ tar cf myhurdsconf.tar etc/apt/{apt.conf.offline,sources.list} var/ -Copy _SOMEWHERE/tar_ back to your Debian GNU/Hurd system. +Copy _myhurdsconf.tar_ back to your Debian GNU/Hurd system. -If you modified _etc/apt/sources.list_, don't forget to also copy it back. +Finally, from your Debian GNU/Hurd installation as the root user: -Debian GNU/Hurd, user root - - # tar -xf SOMEWHERE/tar + # mkdir tmp + # cd tmp + # tar -xf myhurdsconf.tar # mv var/cache/apt/archives/*.deb /var/cache/apt/archives/ # mv var/lib/apt/lists/*_* /var/lib/apt/lists/ # apt-get {update, upgrade, install foo, etc.} - --- [[Main/ThomasSchwinge]] - 03 Aug 2005 -- cgit v1.2.3 From d7d78e70fb40ec8d8ec6d1ba62ec5138c155775b Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Fri, 24 Aug 2007 09:53:22 +0000 Subject: web commit by NealWalfield: fix link --- Distrib/DebianAptOffline.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Distrib/DebianAptOffline.mdwn b/Distrib/DebianAptOffline.mdwn index 8c4f8df2..d2dac6b8 100644 --- a/Distrib/DebianAptOffline.mdwn +++ b/Distrib/DebianAptOffline.mdwn @@ -5,7 +5,7 @@ file:///usr/share/doc/apt-doc/offline.text.gz (package apt-doc). This requires having apt installed on the Host operating system. -Put a copy of (apt.conf.offline)[http://www.bddebian.com/~wiki/Distrib/DebianAptOffline/apt.conf.offline] +Put a copy of [apt.conf.offline](http://www.bddebian.com/~wiki/Distrib/DebianAptOffline/apt.conf.offline) into your Debian GNU/Hurd installations /etc/apt/ directory. ## If you _can_ mount your Debian GNU/Hurd partition from another OS, which can connect to the Internet -- cgit v1.2.3 From b92da5fbff2f77204853954f8798fa53ccd5e36c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Tue, 28 Aug 2007 16:26:09 +0000 Subject: web commit by MichaelBanck: Add channel logs --- Hurd/HurdIRC.mdwn | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Hurd/HurdIRC.mdwn b/Hurd/HurdIRC.mdwn index bf393c40..bdf4c81b 100644 --- a/Hurd/HurdIRC.mdwn +++ b/Hurd/HurdIRC.mdwn @@ -31,6 +31,7 @@ the log in the channel itself. Instead use a # Rich Text + Don't use it. Don't use colors. Don't use bold. Don't use emphasis. # Greeting @@ -50,4 +51,8 @@ Local user channels include: * #hurd-it - Italian * #hurd-es - Spanish * #hurdfr - French -* #hurd-de - German \ No newline at end of file +* #hurd-de - German + +# Channel logs + +* [#hurd logs](http://richtlijn.be/~larstiq/hurd/) \ No newline at end of file -- cgit v1.2.3 From 1be364d6193198f1c0fe030d02e2b60a2c76a503 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Tue, 28 Aug 2007 17:04:37 +0000 Subject: web commit by tschwinge: Some formatting and move the link to where it belongs. --- Hurd/xen.mdwn | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Hurd/xen.mdwn b/Hurd/xen.mdwn index 1dcf69d9..3d70b4f6 100644 --- a/Hurd/xen.mdwn +++ b/Hurd/xen.mdwn @@ -1,12 +1,17 @@ Note: since GNU Mach doesn't handle PAE, you need a PAE-disabled Hypervisor. -Get the binaries [here](http://dept-info.labri.fr/~thibault/hurd-xen/). -- Copy gnumach-xen and hurd-modules to your dom0 /boot. -- Copy hurd into /etc/xen, edit it for fixing access to your hurd / and swap -- Run xm create -c hurd, gnumach should get started. -- If xm complains about networking, it's Xen fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs. +- Copy `gnumach-xen` and `hurd-modules` to your dom0 /boot. +- Copy `hurd` into `/etc/xen`, edit it for fixing access to your hurd / and swap +- Run `xm create -c hurd`, gnumach should get started. +- If `xm` complains about networking, it's Xen fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs. -If you want to generate these images, first get the gnumach-1-branch-Xen-branch branch from gnumach CVS. Then look for "Ugly" in kern/bootstrap.c, how to generate hurd-modules is explained there, and you'll have to fix EXT2FS_SIZE and LD_SO_SIZE by hand. Then use ./configure --enable-platform=xen && make +If you want to generate these images, first get the `gnumach-1-branch-Xen-branch` branch from gnumach CVS. +Then look for "Ugly" in `kern/bootstrap.c`, how to generate `hurd-modules` is explained there, and you'll have to fix `EXT2FS_SIZE` and `LD_SO_SIZE` by hand. +Then use -The current hurd-modules was built from the debian packages hurd 20070606-2 and -libc0.3 2.6.1-1. + ./configure --enable-platform=xen + make + +Instead, you can get the binaries at . + +The current `hurd-modules` was built from the debian packages `hurd 20070606-2` and `libc0.3 2.6.1-1`. -- cgit v1.2.3 From e7f5543d896d44c0b8ccf2c8ee110959bcb74769 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Wed, 29 Aug 2007 02:19:25 +0000 Subject: web commit by NCommander: Added myself to who runs Hurd --- Hurd/WhoRunsGNU.mdwn | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Hurd/WhoRunsGNU.mdwn b/Hurd/WhoRunsGNU.mdwn index ac425145..c317ef92 100644 --- a/Hurd/WhoRunsGNU.mdwn +++ b/Hurd/WhoRunsGNU.mdwn @@ -17,11 +17,13 @@ There are many now using test installations of Debian GNU/Hurd for testing and d ## I run GNU!
    -
    Budi Rahardjo
    +
    Budi Rahardjo
    http://hurd.indocisc.com, contact at budi@research.indociscNOSPAM.com
    [[Main/JamesAMorrison]]
    http://hurd.dyndns.org,
    -
    Your Name Here
    +
    Michael Casadevall (NCommander)
    +
    +
    Your Name Here
    Link to your system
    -- cgit v1.2.3