1
A roadmap for the Hurd? Samuel Thibault 2019 February 3rd 1 The - - PowerPoint PPT Presentation
A roadmap for the Hurd? Samuel Thibault 2019 February 3rd 1 The - - PowerPoint PPT Presentation
A roadmap for the Hurd? Samuel Thibault 2019 February 3rd 1 The Hurd is all about freedom #0 The freedom to run the program, for any purpose I.e.: Freedom from sysadmin! WTH is fdisk/mke2fs/... hidden in /sbin? I should be
2
The Hurd is all about freedom #0
“The freedom to run the program, for any purpose” I.e.:
- Freedom from sysadmin!
- WTH is fdisk/mke2fs/... hidden in /sbin?
- I should be able to just work with my disk/network access
- Freedom to innovate
- Experimental filesystem, personal work-flow, new kind of
process combination,…
- Give a PCI card function to a process
- Freedom from misbehaving programs and drivers
15
Micro-kernel layering
p fj n e t p r
- c
a u t h e x t 2 f s r
- t
u s e r s h c p K e r n e l
T a s k s , m e m
- r
y , I P C
16
Micro-kernel layering
p fj n e t p r
- c
a u t h e x t 2 f s r
- t
u s e r s h c p K e r n e l
T a s k s , m e m
- r
y , I P C
17
Micro-kernel layering
- Server crash? Not a problem
- “Computer bought the farm” is just an error, not something-of-
the-death
- Easier to debug/tune
- Just run gdb, gprof, …
- Can dare crazy things
- The Hurd console has dynamic font support
– See chinese support in pseudo-graphical mode (actually pure VGA
textmode!) of Debian installer.
– And Emojis!
- Kernel only handles Tasks, memory, IPC
- Can virtualize at a very fine grain
18
Hurd possibilities
i s
- f
s K e r n e l p fj n e t p r
- c
a u t h e x t 2 f s r
- t
u s e r s h c p f t p f s
19
Hurd possibilities
€ s e t t r a n s
- c
~ / f t p : / h u r d / h
- s
t m u x / h u r d / f t p f s / ( j u s t
- n
c e f
- r
g
- d
) € s e t t r a n s
- a
~ / m n t / h u r d / i s
- 9
6 6 f s ~ / f t p : / / f t p . g n u .
- r
g /
- l
d
- g
n u / g n u
- f
2 / h u r d
- F
2
- m
a i n . i s
- €
l s ~ / m n t R E A D M E
- r
- F
A I L …
- Only downloads what is needed.
- Can be permanently stored in ext2fs
€ s e t t r a n s ~ / . s i g n a t u r e / h u r d / r u n / u s r / g a m e s / f
- r
t u n e
20
Current state
- Quite stable
- Have not reinstalled boxes for a decade
- Debian buildds keep building packages, no hang after
weeks!
- ~75% of Debian archive builds out of tree
- XFCE, gnome, KDE, …
- Support merged upstream: gcc, glibc, llvm
- Ongoing: go, rust
- Debian distribution
- GuixSD/Arch ongoing
21
A roadmap?
- Many many existing bits, just needs polishing
- The tail of “90% support done in 10% time, 10%
support done in 90%time”
- But would be so cool to have really working!
- Many ongoing project ideas
- Would welcome help
- Many crazy ideas
- Would welcome experimenting
22
Bits to polish
- httpfs/ftpfs
- cd /http://ftp.debian.org/debian/pool/main/h/hurd
- dpkg -iO *20181030-2*.deb
- cd /ftp://ftp.gnu.org/
- find . -name emacs\*
23
Bits to polish
- Namespace-based translators
- cd software.tar.gz,,/
- cat README
- cd disk.img,,part1,,ext2fs/
24
Bits to polish
- mboxfs
- cd mbox,,/
- mkdir that_man
- mv $(grep -l that@mail *) that_man
25
Bits to polish
- Xmlfs
- cd index.html,,/
- cd html/body/
- for i in $(find . -name h1); do cat $i/.text ; done
26
Bits to polish
- High-level language bindings for translators
- Perl (pith)
- Lisp
- Java
- Python
27
Bits to polish
- Some more in hurdextras/
- jfs
- notice
- run
- unionfs
28
Ongoing work, welcomes help
- PCI arbiter
- Safe concurrent access to PCI config space
- Seed FOSDEM’18 talk Hurd’s PCI arbiter
- Could use an IO-MMU to make it safe
- ACPI translator
- Provide access to ACPI operations
– System shutdown…
- Rump translator (and libguestfs?)
- Hardware support, filesystems support
- See FOSDEM’16 talk Hurd, Rump kernel, sound, and USB
- 64bit kernel support
- Then on 64bit userland support
- SMP support
29
No driver in the kernel?
- Minimal kernel support
- Tasks, memory, IPC
- But also, ATM
- Disk drivers
- We moved network drivers to userspace
thanks to netdde
- See FOSDEM’14 talk GNU/Hurd DDE userland
device drivers
- Move disk drivers?
30
Moving disk drivers to userspace?
- What’s the issue?
- Booting the whole stuff :)
- One more grub-loaded module
31
Hurd boot
K e r n e l r
- t
e x t 2 f s e x e c
T a s k s , m e m
- r
y , I P C , d i s k
32
Hurd boot
p r
- c
a u t h s t a r t u p K e r n e l r
- t
e x e c e x t 2 f s
T a s k s , m e m
- r
y , I P C , d i s k
33
Hurd boot
p r
- c
a u t h s t a r t u p K e r n e l r
- t
e x e c e x t 2 f s
T a s k s , m e m
- r
y , I P C , d i s k
p r
- c
a u t h s t a r t u p K e r n e l r
- t
e x e c e x t 2 f s i n i t
T a s k s , m e m
- r
y , I P C , d i s k
34
Hurd boot
p r
- c
a u t h s t a r t u p K e r n e l r
- t
e x e c e x t 2 f s
T a s k s , m e m
- r
y , I P C , d i s k
p r
- c
a u t h s t a r t u p K e r n e l r
- t
e x e c e x t 2 f s i n i t p fj n e t n e t d d e
T a s k s , m e m
- r
y , I P C , d i s k
35
Hurd boot, userland disk
d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x t 2 f s e x e c
36
Hurd boot, userland disk
d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x t 2 f s e x e c p r
- c
a u t h s t a r t u p d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x e c e x t 2 f s
37
Hurd boot, userland disk
d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x t 2 f s e x e c p r
- c
a u t h s t a r t u p d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x e c e x t 2 f s i n i t
38
Hurd boot, userland disk
d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x t 2 f s e x e c p r
- c
a u t h s t a r t u p d i s k K e r n e l
T a s k s , m e m
- r
y , I P C
r
- t
e x e c e x t 2 f s i n i t p fj n e t n e t d d e
124
Conclusion
- A lot of nice things to achieve in GNU/Hurd
- Really finish them
– It’s fun to hack something – It’s better to have it finished :)
- Making a microkernel-based OS a real thing is
hard
- GNU/Hurd is almost there with Debian/Guix/Arch
– Just needs your help :)
125
Thanks!
- For listening
- And to the people working on all this
- http://hurd.gnu.org/
- http://www.debian.org/ports/hurd/
- http://people.debian.org/~mbanck/debian-hurd.pdf
- The increasing irrelevance of IPC performance for
microkernel-based Operating Systems
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.37.9653&rep=rep1&type=pdf