GNU/Hurd AKA Extensibility from the Ground Samuel Thibault 2011 - - PowerPoint PPT Presentation

gnu hurd aka extensibility from the ground
SMART_READER_LITE
LIVE PREVIEW

GNU/Hurd AKA Extensibility from the Ground Samuel Thibault 2011 - - PowerPoint PPT Presentation

GNU/Hurd AKA Extensibility from the Ground Samuel Thibault 2011 August 26th 1 <marcus> Jeroen: you are a Hurd developer. Being insane is part of the public image. 2 It's all about freedom #0 Extensibility for the user Mount one's


slide-1
SLIDE 1

1

GNU/Hurd AKA Extensibility from the Ground

Samuel Thibault

2011 August 26th

slide-2
SLIDE 2

2

<marcus> Jeroen: you are a Hurd developer. Being insane is part of the public image.

slide-3
SLIDE 3

3

It's all about freedom #0

Extensibility for the user

  • Mount one's own files
  • Access archives content
  • Access remote files
  • Experiment with filesystems
  • Access one's own network
  • Access remote networks / VPN
  • Access virtual machine network
  • Redirect one's sound
  • Through network
  • Sound effects
  • Recording
  • ...
slide-4
SLIDE 4

4

Outline

  • The big hammer
  • Traditional monolithic layering
  • Gvfs layering
  • FUSE layering
  • Micro-kernel layering
slide-5
SLIDE 5

5

Outline

  • The big hammer
  • Traditional monolithic layering
  • Gvfs layering
  • FUSE layering
  • Micro-kernel layering
  • Hurd possibilities
slide-6
SLIDE 6

6

Outline

  • The big hammer
  • Traditional monolithic layering
  • Gvfs layering
  • FUSE layering
  • Micro-kernel layering
  • Hurd possibilities
  • So what?
slide-7
SLIDE 7

7

Outline

  • The big hammer
  • Traditional monolithic layering
  • Gvfs layering
  • FUSE layering
  • Micro-kernel layering
  • Hurd possibilities
  • So what?
  • Yet more fun
slide-8
SLIDE 8

8

The big hammer

Just run KVM/qemu/virtualbox/whatever!

  • Quite slower
  • and kvm not available to users by default
  • Communication between guest and host is a

burden Goal: having extensibility simply at the shell prompt

slide-9
SLIDE 9

9

Traditional monolithic layering

EXTxFS ISOFS NFS VFS IP Kernel root user ifconfig mount sh cp

slide-10
SLIDE 10

10

Traditional monolithic layering

  • User mounts through “users” option
  • Need to ask root

– and frowned upon

  • Only kernel-provided filesystems
  • User network through tap
  • Need to ask root
  • No firewall tuning support
slide-11
SLIDE 11

11

gvfs layering

EXTxFS ISOFS NFS VFS cp IP Kernel root user ifconfig mount sh gvfs gedit

slide-12
SLIDE 12

12

gvfs layering

  • Supports a lot of nice features
  • Transparent ftp, webdav, smb, ...
  • Only works for gnome applications
  • Not even in gnome-terminal shells
  • Not easily extensible
  • i.e., does not compose well.
slide-13
SLIDE 13

13

FUSE layering

EXTxFS ISOFS NFS IP user ifconfig mount sh cp FUSE VFS root fuse Kernel

slide-14
SLIDE 14

14

FUSE layering, user

EXTxFS ISOFS NFS ifconfig mount fuse IP sh cp FUSE VFS root Kernel user

slide-15
SLIDE 15

15

FUSE layering

  • Provides a lot of nice features, but
  • Does not combine well by default
  • cd ~/.avfs/#ftp:ftp.gnu.org/.../coreutils-6.9.tar.bz2#
  • does not work
  • Does not optimize well by default
  • fuseiso9660 ~/.avfs/#ftp:ftp.gnu.org/.../foo.iso ~/mnt
  • downloads it all!
  • Does not provide all root features by default
  • How to deal with partitioned disk image?
  • e2fsck what?

→ Users are still second-class citizens

slide-16
SLIDE 16

16

Micro-kernel layering

pfinet proc auth ext2fs root user sh cp Kernel

Tasks, memory, IPC

slide-17
SLIDE 17

17

Micro-kernel layering

pfinet proc auth ext2fs root user sh cp Kernel

Tasks, memory, IPC

slide-18
SLIDE 18

18

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 of Debian

installer.

  • Kernel only handles Tasks, memory, IPC
slide-19
SLIDE 19

19

Hurd possibilities

isofs Kernel pfinet proc auth ext2fs root user sh cp ftpfs

slide-20
SLIDE 20

20

Hurd possibilities

$ settrans ~/ftp: /hurd/hostmux /hurd/ftpfs / (just once for good) $ settrans ~/mnt /hurd/iso9660fs ~/ftp://ftp.gnu.org/old-gnu/gnu-f2/hurd-F2-main.iso $ ls ~/mnt README-or-FAIL …

  • Only downloads what is needed.
  • Can be permanent

settrans ~/.signature /hurd/run /usr/games/fortune

slide-21
SLIDE 21

21

How does it work?

isofs Kernel pfinet proc auth ext2fs root user ftpfs sh cp libc libc

slide-22
SLIDE 22

22

Hurd possibilities (cont'ed)

ftpfs isofs Kernel root pfinet ext2fs auth proc pfinet user ext2fs part sh cp

slide-23
SLIDE 23

23

Hurd possibilities (cont'ed)

ftpfs isofs Kernel root pfinet ext2fs auth proc pfinet user ext2fs part sh cp

i.e. ISO image inside a disk image on ftp over a VPN

slide-24
SLIDE 24

24

Hurd possibilities (cont'ed)

  • VPN running as user
  • Parted running as user
  • Chroot as user
  • ...
  • No less power than root
  • Since root uses the same mechanism anyway!
  • Except hardware access, of course

– And still, could be interfaced safely thanks to I/O MMU

  • More power for everybody (root and non-root)
  • Combine translators, invent new ones without kernel

programming, ...

slide-25
SLIDE 25

25

So, FUSE vs Hurd?

  • FUSE is here
  • At last!
  • Not available by default on Linux installations
  • Does not permit everything to users
  • Hurd is here too
  • At last!
  • Provides everything by default

– Including ioctls, arbitrary RPCs actually, could have a node which

is a file, AND a directory, AND a CD drive,...

  • Permits everything to users

– Hardware access is controlled

slide-26
SLIDE 26

26

Neighbour Hurds

pfinet proc auth ext2fs root cp sh user pfinet proc auth ext2fs root cp sh user Kernel

slide-27
SLIDE 27

27

Neighbour Hurds

cp sh cp sh pfinet Kernel user user proc auth ext2fs root proc auth ext2fs root

slide-28
SLIDE 28

28

Sub-Hurd

pfinet proc auth ext2fs root sh cp Kernel user pfinet proc auth ext2fs user/root

slide-29
SLIDE 29

29

Neighbour/Sub-Hurd

Looks like Linux containers

  • Except they can be combined in many ways,

including recursive

  • Since it is simply the standard features in the Hurd
  • Since it is safer, because ext2fs, pfinet, etc. are not

shared

  • And complete
  • Since that's how a normal Hurd system is structured

already.

– Linux containers have a hard time being completely contained,

e.g. sound?

slide-30
SLIDE 30

30

Current State

  • Hardware support
  • DDE Linux 2.6 drivers layer for network boards
  • IDE, SCSI, PCMCIA, Xorg, ...
  • Xen domU
  • Software support
  • ~68% of Debian archive

– XFCE, almost gnome, almost KDE – Firefox (aka iceweasel), gnumeric, …

  • Standard Debian Installation CD
  • Plan to release in Debian Wheezy
  • Arch Hurd LiveCD and GHAMP
slide-31
SLIDE 31

31

People at work nowadays

  • Emilio Pozuelo Monfort : gnome
  • Jeremie Koenig : glibc, openjdk
  • Olaf Buddenhagen : community, mentor
  • Pino Toscano : KDE
  • Samuel Thibault : debian installer, autobuilders
  • Thomas Schwinge : GNU gdb, gcc
  • And various porters : Gabriele Giacone, Svante

Signell, …

  • You're welcome!
slide-32
SLIDE 32

32

Thanks!

  • 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