A roadmap for the Hurd? Samuel Thibault 2019 February 3rd 1 The - - PowerPoint PPT Presentation

a roadmap for the hurd
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

1

A roadmap for the Hurd?

Samuel Thibault

2019 February 3rd

slide-2
SLIDE 2

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
slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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
slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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
slide-9
SLIDE 9

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
slide-10
SLIDE 10

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\*
slide-11
SLIDE 11

23

Bits to polish

  • Namespace-based translators
  • cd software.tar.gz,,/
  • cat README
  • cd disk.img,,part1,,ext2fs/
slide-12
SLIDE 12

24

Bits to polish

  • mboxfs
  • cd mbox,,/
  • mkdir that_man
  • mv $(grep -l that@mail *) that_man
slide-13
SLIDE 13

25

Bits to polish

  • Xmlfs
  • cd index.html,,/
  • cd html/body/
  • for i in $(find . -name h1); do cat $i/.text ; done
slide-14
SLIDE 14

26

Bits to polish

  • High-level language bindings for translators
  • Perl (pith)
  • Lisp
  • Java
  • Python
slide-15
SLIDE 15

27

Bits to polish

  • Some more in hurdextras/
  • jfs
  • notice
  • run
  • unionfs
slide-16
SLIDE 16

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
slide-17
SLIDE 17

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?
slide-18
SLIDE 18

30

Moving disk drivers to userspace?

  • What’s the issue?
  • Booting the whole stuff :)
  • One more grub-loaded module
slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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 :)

slide-28
SLIDE 28

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