+ All Categories
Home > Documents > GNU/Hurd AKA Extensibility from the Ground

GNU/Hurd AKA Extensibility from the Ground

Date post: 03-Feb-2022
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
32
1 GNU/Hurd AKA Extensibility from the Ground Samuel Thibault 2011 August 26th
Transcript
Page 1: GNU/Hurd AKA Extensibility from the Ground

1

GNU/HurdAKA

Extensibility from the Ground

Samuel Thibault

2011 August 26th

Page 2: GNU/Hurd AKA Extensibility from the Ground

2

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

Page 3: GNU/Hurd AKA Extensibility from the Ground

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

● ...

Page 4: GNU/Hurd AKA Extensibility from the Ground

4

Outline

● The big hammer● Traditional monolithic layering● Gvfs layering● FUSE layering● Micro-kernel layering

Page 5: GNU/Hurd AKA Extensibility from the Ground

5

Outline

● The big hammer● Traditional monolithic layering● Gvfs layering● FUSE layering● Micro-kernel layering● Hurd possibilities

Page 6: GNU/Hurd AKA Extensibility from the Ground

6

Outline

● The big hammer● Traditional monolithic layering● Gvfs layering● FUSE layering● Micro-kernel layering● Hurd possibilities● So what?

Page 7: GNU/Hurd AKA Extensibility from the Ground

7

Outline

● The big hammer● Traditional monolithic layering● Gvfs layering● FUSE layering● Micro-kernel layering● Hurd possibilities● So what?● Yet more fun

Page 8: GNU/Hurd AKA Extensibility from the Ground

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

Page 9: GNU/Hurd AKA Extensibility from the Ground

9

Traditional monolithic layering

EXTxFS ISOFS NFS

VFS

IPKernel

root user

ifconfig

mount

sh

cp

Page 10: GNU/Hurd AKA Extensibility from the Ground

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

Page 11: GNU/Hurd AKA Extensibility from the Ground

11

gvfs layering

EXTxFS ISOFS NFS

VFS

cp

IPKernel

root user

ifconfig

mount

sh

gvfsgedit

Page 12: GNU/Hurd AKA Extensibility from the Ground

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.

Page 13: GNU/Hurd AKA Extensibility from the Ground

13

FUSE layering

EXTxFS ISOFS NFS

IP

user

ifconfig

mount

sh

cp

FUSE

VFS

root

fuse

Kernel

Page 14: GNU/Hurd AKA Extensibility from the Ground

14

FUSE layering, user

EXTxFS ISOFS NFS

ifconfig

mountfuse

IP

sh

cp

FUSE

VFS

root

Kernel

user

Page 15: GNU/Hurd AKA Extensibility from the Ground

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

Page 16: GNU/Hurd AKA Extensibility from the Ground

16

Micro-kernel layering

pfinetproc

auth

ext2fs

root user

sh

cp

Kernel Tasks, memory, IPC

Page 17: GNU/Hurd AKA Extensibility from the Ground

17

Micro-kernel layering

pfinetproc

auth

ext2fs

root user

sh

cp

Kernel Tasks, memory, IPC

Page 18: GNU/Hurd AKA Extensibility from the Ground

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

Page 19: GNU/Hurd AKA Extensibility from the Ground

19

Hurd possibilities

isofs

Kernel

pfinetproc

auth

ext2fs

root user

sh

cp

ftpfs

Page 20: GNU/Hurd AKA Extensibility from the Ground

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 permanentsettrans ~/.signature /hurd/run /usr/games/fortune

Page 21: GNU/Hurd AKA Extensibility from the Ground

21

How does it work?

isofs

Kernel

pfinetproc

auth

ext2fs

root user

ftpfssh

cplibc

libc

Page 22: GNU/Hurd AKA Extensibility from the Ground

22

Hurd possibilities (cont'ed)

ftpfs

isofs

Kernel

root

pfinet

ext2fs

auth

proc pfinetuser

ext2fs

part

sh

cp

Page 23: GNU/Hurd AKA Extensibility from the Ground

23

Hurd possibilities (cont'ed)

ftpfs

isofs

Kernel

root

pfinet

ext2fs

auth

proc pfinetuser

ext2fs

part

sh

cp

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

Page 24: GNU/Hurd AKA Extensibility from the Ground

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, ...

Page 25: GNU/Hurd AKA Extensibility from the Ground

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

Page 26: GNU/Hurd AKA Extensibility from the Ground

26

Neighbour Hurds

pfinetproc

auth

ext2fs

root

cpshuser

pfinetproc

auth

ext2fs

root

cpshuser

Kernel

Page 27: GNU/Hurd AKA Extensibility from the Ground

27

Neighbour Hurds

cpsh cpsh

pfinet

Kernel

user user

proc

auth

ext2fs

rootproc

auth

ext2fs

root

Page 28: GNU/Hurd AKA Extensibility from the Ground

28

Sub-Hurd

pfinetproc

auth

ext2fs

root

sh

cp

Kernel

user

pfinetproc

auth

ext2fs

user/root

Page 29: GNU/Hurd AKA Extensibility from the Ground

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?

Page 30: GNU/Hurd AKA Extensibility from the Ground

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

Page 31: GNU/Hurd AKA Extensibility from the Ground

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!

Page 32: GNU/Hurd AKA Extensibility from the Ground

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


Recommended