summaryrefslogtreecommitdiff
path: root/hurd/documentation.mdwn
blob: b79ddb0a8a9f899382a17861c15787a755c501e6 (plain)
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
[[!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]]
  * [[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&nbsp;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