1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2009, 2011, 2012, 2015, 2019, Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled
[[GNU Free Documentation License|/fdl]]."]]"""]]
[[!meta title="Hurd Documentation"]]
# Introductory Material
* [[What_Is_the_GNU_Hurd?|What_Is_the_GNU_Hurd]]
* [[Advantages of the Hurd|Advantages]]
* [[The Hurd FAQ|FAQ]]
* [[*The_Hurd_and_Linux*|/hurd-and-linux]], a comment by Richard Stallman.
<!-- This comment "pushes" RMS's comment back into the list. Markdown is just great. -->
* [[*Towards_a_New_Strategy_of_OS_Design*|/hurd-paper]], an architectural
overview by Thomas Bushnell, BSG, notably:
* [[The design|/hurd-paper#design]]
* [[Introduction to Translators|/hurd-paper#translator]] and
[[Existing Translators|hurd/translator]]
* [[Subhurds|hurd/subhurd]]
* [[The auth translator|/hurd-paper#auth]]
* [[The proc translator|/hurd-paper#proc]]
* [[The exec translator|/hurd-paper#exec]]
* [[The ftpfs translator|/hurd-paper#ftpfs]]
<!-- Push! -->
* [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann, notably:
* [[How to get a port?|/hurd-talk#how]]
* [[Pathname resolution example|/hurd-talk#pat]]
* [[Mapping the POSIX Interface|/hurd-talk#map]]
* [[Active vs Passive|/hurd-talk#act]]
* [[Authentication|/hurd-talk#aut]]
* [[Password Server|/hurd-talk#pas]]
* [[Process Server|/hurd-talk#pro]]
<!-- Force push! -->
* [[*The Translator Primer*|Translator_Primer]].
* [[*A Document About Translators*|translators]] by Marcus Brinkmann.
* [[*A_Critique_of_the_GNU_Hurd_Multi-server_Operating_System*|critique]], an
analysis of the GNU Hurd on GNU Mach system, written by Neal Walfield and
Marcus Brinkmann.
## External
* [*Examining the Legendary HURD
Kernel*](http://www.informit.com/articles/printerfriendly.aspx?p=1180992),
an article by David Chisnall.
Also covers a bit of GNU's and the Hurd's history, fundamental techniques
applied, comparisions to other systems.
# Developer References
* [[Coding_Style]]
* [[Rules]]
* [[Trackers]]
* [[Building]]
* [[Toolchain]]
* [[glibc]]
* RPC [[Interface]]s
* Libraries
* [[libpager]]
* [[libports]]
* [[libstore]]
* [[libchannel]]
* [[libtrivfs]]
* [[libmachdev]]
* [[libnetfs]] -- short introductory material
* [[libdiskfs]]
* [[libihash]]
* [[libpthread]]
* [[libfshelp]]
* [[libps]]
* In-development Libraries
* [[libfuse]]
* [[IO_Path]]
* [[Porting]]
* [[Debugging]]
* [[Networking]]
* [[Console]]
* [[System bootstrap|hurd/bootstrap]]
* Additional references
* [[RPC]]: our usage of *Remote Procedure Call*s.
* The [[System Bootstrap|hurd/bootstrap]] explains how the early
boot of the Hurd works. There is an alternative [[RFC bootstrap
proposal|open_issues/serverbootv2]].
* You should read the Hurd's [[IO path|hurd/io_path]] to learn how
glibc's `read ()` works on the Hurd.
* *[[The_GNU_Hurd_Reference_Manual|reference_manual]]*.
* [[*The Hurd Hacking Guide|Hurd_Hacking_Guide]]*, an introduction to GNU Hurd and Mach
programming by Wolfgang Jährling.
* [*Manually Bootstrapping a
Translator*](http://walfield.org/pub/people/neal/papers/hurd-misc/manual-bootstrap.txt),
a text by Neal Walfield about how to *manually connect the translator to
the filesystem*.
* [[*The_Authentication_Server*|auth]], the transcript of a talk about the
details of the authentication mechanisms in the Hurd by Wolfgang Jährling.
* [*The Mach Paging Interface as Used by the
Hurd*](http://lists.gnu.org/archive/html/l4-hurd/2002-06/msg00001.html), a
text by Neal Walfield.
* In the
[[Position_paper_*Improving_Usability_via_Access_Decomposition_and_Policy*|ng/position_paper]]
Neal Walfield and Marcus Brinkmann give an overview about how a future,
subsequent system may be architected.
* [*Generalizing mobility for the Hurd*](https://pdfs.semanticscholar.org/4cce/9abb177cc58c199e13b82d498f37010c2bfc.pdf),
a thesis written by Carl Fredrik Hammar,
investigates the mobility aspect of stores
and how it can be generalized and used for other applications.
The background chapter may be of interest to new developers.
* [[Ada4Hurd]]: some tools to write translators with Ada
|