diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-03-03 19:46:46 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-03-03 19:46:46 +0100 |
commit | 316ab6a9b804f0073f40d7d3a8d058592de0a714 (patch) | |
tree | 121d92bf4c825922a5357e0b23bdad8d9278d485 /overview.mdwn | |
parent | d418a95ae94077e8e6a568b8e30f026d999a4a9f (diff) | |
download | web-316ab6a9b804f0073f40d7d3a8d058592de0a714.tar.gz web-316ab6a9b804f0073f40d7d3a8d058592de0a714.tar.bz2 web-316ab6a9b804f0073f40d7d3a8d058592de0a714.zip |
Add quick overview for first-comers
Diffstat (limited to 'overview.mdwn')
-rw-r--r-- | overview.mdwn | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/overview.mdwn b/overview.mdwn new file mode 100644 index 00000000..d674caa6 --- /dev/null +++ b/overview.mdwn @@ -0,0 +1,56 @@ +[[!meta copyright="Copyright © 2015 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]]."]]"""]] + +This provides an quick overview of how the GNU/Hurd system starts, and thus how +it is structured. + +# Grub + +The GNU/Hurd system uses multiboot, and thus usually booted from grub, which +loads into memory the GNU Mach kernel, the ext2fs server (see later), and the +exec server (see later). It then gives hand to GNU Mach, passing the latter as +payloads. + +# GNU Mach + +GNU Mach initializes a basic console, and tasks, memory management and +interprocess communication. It also initializes drivers for disk. It then +creates two tasks for the ext2fs and exec servers. + +# ext2fs + +ext2fs is given as a parameter the name of the device of the root filesystem. It +opens it through the GNU Mach disk driver, and mounts the filesystem found on +it. When it is ready, it can start booting the system by starting the "startup", +"proc", and "auth" servers. It does so by using the "exec" server already loaded +by GNU Mach: "exec" handles loading the binaries of the three new servers, just +like it will handle loading binaries in the GNU/Hurd system in general. ext2fs +then gives hand to "startup". + +# proc + +Proc knows about processes: what pid they have, passing signals, managing tty +sessions, etc. + +# auth + +Auth knows about identities: uid, gid, etc. + +# startup + +"startup" is the real system starting point: it basically runs /sbin/init, at +which point we end up with the standard Unix boot up. + +# netdde / pfinet + +At some point of the boot process, networking will have to be configured. This +is done by starting "pfinet", the TCP/IP stack, from /servers/socket/2, which +itself starts the network device driver server, "netdde", from /dev/netdde. |