summaryrefslogtreecommitdiff
path: root/community/weblogs/antrik/plan9-and-the-hurd-major-differences.mdwn
blob: 9e6143bf246bcf5f817c89bd30208cc24f47e7a2 (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
[[!meta copyright="Copyright © 2009 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="Major differences between Plan9 and the Hurd"]]

There are some similarities between the Hurd and Plan 9 regarding the file 
system handling -- but there are also very fundamental differences which go 
far beyond monolithic vs. microkernel design:

- The Hurd is UNIX (POSIX) compatible

- While (almost) all services are attached to the file system tree, not
  all services actually export a file system interface!  
  
  Personally, I advocate using FS-based interfaces as much as possible.
  Yet, there are some cases where they get very awkward and/or
  inefficient, and domain-specific interfaces simply make a lot more
  sense.  
  
  Also, some Hurd services are indeed used to implement the file systems
  in the first place -- they work below the FS level, and obviously
  can't use an FS interface!

- File systems are completely decentralized -- clients always talk to
  the FS servers directly, without any central VFS layer. (I don't think
  that's the case in Plan 9?)  
  
  This offers much more flexibility -- the way the FS interfaces
  themselves work can be modified. Many things can be implemented as
  normal translators, that would require special VFS support on other
  systems. (Extended attributes, VFS-based union mounts, local
  namespaces, firmlink, magic file name suffixes etc.)

- The system design allows users and applications to change almost all
  aspects of the system functionality in the local environment easily
  and without affecting other parts of the system.  
  
  (This is possible with Plan 9 to some extent; but the Hurd allows it
  at a much lower level -- including stuff like the filesystem
  interfaces, access control mechanisms, program execution and process
  management, and so on.)

I hope I didn't forget any major differences...