summaryrefslogtreecommitdiff
path: root/documentation.mdwn
blob: 8776f5e88ac232c4c2da7a9704655274dc51bfeb (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
120
121
122
123
124
125
126
127
128
129
130
[[!meta copyright="Copyright © 2008, 2010, 2011, 2015, 2016, 2017 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]]."]]"""]]

You are interested in getting familiar with the GNU/Hurd system architecture,
or specific components of it?  Here is a collection of texts to read.

/!\ A lot of stuff is still missing ([[!taglink open_issue_documentation]]).

[[!toc levels=3]]


# Basic Knowledge

Before you can go details, you have to learn the basics about operating system
architecture.  Yes, really.


## Operating Systems Basics

You can find good free, self-paced online courses about operating systems on <https://www.udacity.com/> .
A free textbook about operating systems is called [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/).

## GNU/Hurd System Architecture


### Capabilities

[[!toggleable id=shapiro_capintro_1999 text="""[[!template id=note
text="*[[shapiro\_capintro\_1999|capability]]*:
{{$capability#shapiro_capintro_1999}}.
{{$capability#shapiro_capintro_1999_text}}."]]"""]]

  * Our use of [[capabilities|capability]].  The
    {{$capability#wikipedia_capability-based_security}} article.
    Alternatively/additionally, [[!toggle id=shapiro_capintro_1999
    text="[shapiro\_capintro\_1999]"]].

    In the GNU/Hurd system, a [[capability]] is represented by a [[Mach
    port|microkernel/mach/port]].

  * {{$capability#wikipedia_object-capability_model}}.  Albeit not directly
    tailored at the GNU/Hurd operating system architecture, this article anyway
    does a good job at describing general principles of a [[capability]]-based
    system architecture.


# Quick overview

You may want to start reading a [[quick overview|overview]] of how the GNU/Hurd system
starts, and thus how it is structured.

# FAQ

[[FAQ]]


# Specific Components

The GNU/Hurd system is composed of the Hurd servers running on top of the
GNU Mach microkernel. Mach only handles scheduling tasks and threads, memory
management, and message passing. Mig is used to abstract RPCs on top of Mach's
message passing. Eventually, the Hurd servers and Unix processes discuss with
each other using these RPCs.

Depending on your background, you may want to start reading the documentation
from userlandish interfaces (Hurd) or from the micro kernel itself (Mach).

  * [[GNU_Hurd|hurd/documentation]]

  * [[Mach|microkernel/mach/documentation]]

  * [[MIG|microkernel/mach/mig/documentation]]

  * [[UNIX]]


# Presentations

## 2016

  * FOSDEM: {{$community/meetings/fosdem_2016#ragkousis_guix_hurd}}
  * FOSDEM: {{$community/meetings/fosdem_2016#thibault_hurd}}

## 2015

  * FOSDEM: {{$community/meetings/fosdem_2015#thibault_hurd}}
  * Debconf 15: {{$community/meetings/debconf15#youpi_hurd}}

## 2014

  * FOSDEM: {{$community/meetings/fosdem_2014#thibault_hurd}}

## 2013

  * GNU Hackers Meeting in Paris: {{$community/meetings/ghm2013#thibault_hurd}}

  * FOSDEM: {{$community/meetings/fosdem_2013#thibault_hurd}}

## 2011

  * GNU Hackers Meeting in Paris: {{$community/meetings/ghm2011#thibault_hurd}}

## 2010

  * GNU Hackers Meeting in the Hague: {{$community/meetings/ghm2010#walfield_hurd}}

  * Debconf 10: {{$community/meetings/debconf10#banck_hurd}}

  * Fosdem 2010: {{$community/meetings/fosdem_2010#olaf_hurd1}}
  * Fosdem 2010: {{$community/meetings/fosdem_2010#olaf_hurd2}}

## 2004

  * 2004-07-02

    Ognyan Kulev, *presentation of the Hurd*, at the seminar *LIO and friends*,
    <http://debian.fmi.uni-sofia.bg/~ogi/hurd/liofest-20040702-hurd.ppt>, in
    Bulgarian.

# General

  * [[Media_Appearances]]