microkernels: the veterans of os design
TRANSCRIPT
![Page 2: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/2.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 2
A Bit of Historical ContextA Bit of Historical Context
![Page 3: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/3.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 3
A Bit of Historical ContextA Bit of Historical Context
Per Brinch HansenRegnecentralen
The Nucleus of a Multiprogramming System (RC 4000)
1969
extensibility,message passing,
protected components
![Page 4: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/4.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 4
A Bit of Historical ContextA Bit of Historical Context
Per Brinch HansenRegnecentralen
The Nucleus of a Multiprogramming System (RC 4000)
1969
extensibility,message passing,
protected components
Hubert ZimmermanINRIA
Chorus1979
Unix personality, multiserver,distributed systems,
“IPC”, “server”, “micro-kernel”
![Page 5: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/5.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 5
A Bit of Historical ContextA Bit of Historical Context
Per Brinch HansenRegnecentralen
The Nucleus of a Multiprogramming System (RC 4000)
1969
extensibility,message passing,
protected components
Hubert ZimmermanINRIA
Chorus1979
Unix personality, multiserver,distributed systems,
“IPC”, “server”, “micro-kernel”
Richard RashidCarnegie Mellon University
Mach, Mach 3.01985, 1990
Unix too complicated already,4.3BSD UNIX server,distributed systems,
capability-based IPC, new VM,threads
![Page 6: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/6.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 6
A Bit of Historical ContextA Bit of Historical Context
Per Brinch HansenRegnecentralen
The Nucleus of a Multiprogramming System (RC 4000)
1969
extensibility,message passing,
protected components
Hubert ZimmermanINRIA
Chorus1979
Unix personality, multiserver,distributed systems,
“IPC”, “server”, “micro-kernel”
Richard RashidCarnegie Mellon University
Mach, Mach 3.01985, 1990
Unix too complicated already,4.3BSD UNIX server,distributed systems,
capability-based IPC, new VM,threads
Jochen LiedtkeGMD
L41993, 1995
Improving IPC by Kernel Design,minimality principle,
fast IPC, small cache footprint,non-portability
![Page 7: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/7.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 7
MicrokernelMicrokernel
Hardware
Microkernel
![Page 8: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/8.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 8
MicrokernelMicrokernel
Hardware
Microkernel
Minimality: mechanisms for address space and process management and communication
![Page 9: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/9.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 9
MicrokernelMicrokernel
Hardware
Microkernel
Minimality: mechanisms for address space and process management and communication
Minimality: basic scheduling policies
![Page 10: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/10.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 10
MicrokernelMicrokernel
Hardware
Microkernel
Minimality: mechanisms for address space and process management and communication
Minimality: basic scheduling policies
Minimality: mechanisms for dealing with devices
![Page 11: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/11.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 11
Single-server systemSingle-server system
Hardware
Microkernel
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
![Page 12: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/12.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 12
Single-server systemSingle-server system
Hardware
Microkernel
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Reliability: not very helpful, the single server is just another SPOF
![Page 13: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/13.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 13
Single-server systemSingle-server system
Hardware
Microkernel
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Reliability: not very helpful, the single server is just another SPOF
Extensibility: something extra in addition to the OS personality
![Page 14: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/14.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 14
Single-server systemSingle-server system
Hardware
Microkernel
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Reliability: not very helpful, the single server is just another SPOF
Extensibility: something extra in addition to the OS personality
Portability: confine most of machine dependencies in the microkernel
![Page 15: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/15.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 15
Single-server systemSingle-server system
Hardware
Microkernel
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Reliability: not very helpful, the single server is just another SPOF
Extensibility: something extra in addition to the OS personality
Portability: confine most of machine dependencies in the microkernel
Reusability: multiple OS personalities
![Page 16: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/16.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 16
Single-server systemSingle-server system
Hardware
Microkernel
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Reliability: not very helpful, the single server is just another SPOF
Extensibility: something extra in addition to the OS personality
Portability: confine most of machine dependencies in the microkernel
Reusability: multiple OS personalities
Virtualization: multiple isolated OS personalities running at the same time
![Page 17: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/17.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 17
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
![Page 18: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/18.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 18
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall
![Page 19: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/19.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 19
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall syscall redirection
![Page 20: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/20.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 20
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall syscall redirection IPC send syscall
![Page 21: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/21.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 21
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall syscall redirection IPC send syscall IPC receive wakeup
![Page 22: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/22.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 22
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall syscall redirection IPC send syscall IPC receive wakeup
![Page 23: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/23.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 23
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall syscall redirection IPC send syscall IPC receive wakeup
![Page 24: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/24.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 24
Mach + UNIX serverMach + UNIX server
Hardware
Mach 3.0Device drivers
4.3BSD ServerLibs
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
UNIX syscall syscall redirection IPC send syscall IPC receive wakeup restore context
![Page 25: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/25.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 25
Single-server performance ISingle-server performance I
● Mach 3.0 and Ultrix are binary compatible!● Interesting opportunity for comparison
– Chen, J., Bershad, B., N.: The Impact of Software Structure and Policy on CPU and Memory System Performance, 1993
● Execution traces → MIPS R3000 memory simulator → interesting data
● Mach has bigger MCPI than Ultrix
● IPC responsible for a small portion of overall system overhead [IC]
![Page 26: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/26.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 26
Single-server performance ISingle-server performance I
● Mach 3.0 and Ultrix are binary compatible!● Interesting opportunity for comparison
– Chen, J., Bershad, B., N.: The Impact of Software Structure and Policy on CPU and Memory System Performance, 1993
● Execution traces → MIPS R3000 memory simulator → interesting data
● Mach has bigger MCPI than Ultrix
● IPC responsible for a small portion of overall system overhead [IC]
– Liedtke, J.: On µ-Kernel Construction, 1995
![Page 27: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/27.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 27
Single-server performance ISingle-server performance I
U
M
U
M
U
M
U
M
U
M
U
M
U
M
se
de
gre
py
acc
gc
cc
om
pre
ssa
be
spr
es
so
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
0.06
0.08
0.01
0.01
0.03
0.03
0.3
0.3
0.15
0.16
0.2
0.15
0.03
0.03
0.17
0.42
0.02
0.07
0.04
0.1
0.13
0.39
0.1
0.26
0.23
0.38
0.01
0.04
Baseline MCPI for Ultrix and Mach
(From Figure 3 on p. 8)
system cache miss MCPI other MCPI
![Page 28: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/28.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 28
Single-server performance ISingle-server performance I
● Mach 3.0 and Ultrix are binary compatible!● Interesting opportunity for comparison
– Chen, J., Bershad, B., N.: The Impact of Software Structure and Policy on CPU and Memory System Performance, 1993
● Execution traces → MIPS R3000 memory simulator → interesting data
● Mach has bigger MCPI than Ultrix
● IPC responsible for a small portion of overall system overhead [IC]
– Liedtke, J.: On µ-Kernel Construction, 1995● Mach has bigger cache-miss-induced MCPI than Ultrix
● Most of these cache misses are capacity misses
● Mach has relatively more capacity misses than Ultrix
● It is the system cache footprint which matters
![Page 29: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/29.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 29
MkLinuxMkLinux
Hardware
OSF Mach 3.0Device drivers
Linux 2.0 ServerLibs
compressLibs
sedLibs
gccLibs
ApplicationLibs
ApplicationLibs
![Page 30: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/30.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 30
LL44LinuxLinux
Hardware
L4
Linux 2.0 ServerLibs | Device drivers
compressLibs | TEL
sedLibs | TEL
gccLibs | TEL
ApplicationLibs | TEL
ApplicationLibs | TELTEL
![Page 31: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/31.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 31
Single-server performance IISingle-server performance II
● MkLinux and L4Linux both use(d) Linux (2.0)!● Differ in the underlying microkernel
– OSF Mach 3.0 vs. L4
● Interesting opportunity for comparison– Härtig, H. et al.: The Performance of µ-Kernel-Based Systems, 1997
– Example: Linux build
● L4: 6.3% overhead● Mach: 27.1% overhead
Linux L4Linux L4Linux (T) MkLinux (K) MkLinux (U)0
100
200
300
400
500
600
700
476 476 476 476 476
30 33 79 129
Real time for compiling the Linux Server (133 MHz Pentium)
(from Figure 7 on p. 9)
Overhead
Baseline
Tim
e (
s)
![Page 32: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/32.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 32
Single-server performance IISingle-server performance II
● Pentium not ripe for microkernels– INT instruction for doing syscalls
– Untagged TLB
– 8/16+8/16KB L1 cache
![Page 33: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/33.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 33
Single-server performance IISingle-server performance II
● Pentium not ripe for microkernels– INT instruction for doing syscalls
– Untagged TLB
– 8/16+8/16KB L1 cache
● L4– Liedtke, J.: Improving IPC by Kernel Design, 1993
– Liedtke, J.: On µ-Kernel Construction, 1995● synchronous IPC, syscall symmetry: send & wait, reply & receive next, direct process switch
● direct message copy (long IPC), arguments in registers (short IPC)
● use segmentation to avoid TLB flushes
● non-portable, cache-friendly hand-coded implementation in assembly
● minimality principle
![Page 34: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/34.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 34
Single-server performance IISingle-server performance II
● Pentium not ripe for microkernels– INT instruction for doing syscalls
– Untagged TLB
– 8/16+8/16KB L1 cache
● L4– Liedtke, J.: Improving IPC by Kernel Design, 1993
– Liedtke, J.: On µ-Kernel Construction, 1995● synchronous IPC, syscall symmetry: send & wait, reply & receive next, direct process switch
● direct message copy (long IPC), arguments in registers (short IPC)
● use segmentation to avoid TLB flushes
● non-portable, cache-friendly hand-coded implementation in assembly
● minimality principle
– Elphinstone, K., Heiser, G.: From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels?, 2013
![Page 35: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/35.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 35
Single-server performance IISingle-server performance II
● Pentium not ripe for microkernels– INT instruction for doing syscalls [SYSENTER]
– Untagged TLB [PCIDs, global pages, multiple page sizes]
– 8/16+8/16KB L1 cache [larger, deeper caches]
● L4– Liedtke, J.: Improving IPC by Kernel Design, 1993
– Liedtke, J.: On µ-Kernel Construction, 1995● synchronous IPC, syscall symmetry: send & wait, reply & receive next, direct process switch
● direct message copy (long IPC), arguments in registers (short IPC)
● use segmentation to avoid TLB flushes
● non-portable, cache-friendly hand-coded implementation in assembly
● minimality principle
– Elphinstone, K., Heiser, G.: From L3 to seL4: What Have We Learnt in 20 Years of L4 Microkernels?, 2013
![Page 36: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/36.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 36
Multiserver systemMultiserver system
Hardware
Microkernel
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
![Page 37: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/37.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 37
Multiserver systemMultiserver system
Hardware
Microkernel
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now
Oops!
![Page 38: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/38.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 38
Multiserver systemMultiserver system
Hardware
Microkernel
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now and be restarted
![Page 39: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/39.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 39
Multiserver systemMultiserver system
Hardware
Microkernel
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now and be restarted
Verification: assume correctness for servers, formally verify their interactions
![Page 40: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/40.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 40
Multiserver systemMultiserver system
Hardware
Microkernel
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now and be restarted
Verification: assume correctness for servers, formally verify their interactions
Verification: individual servers themselves are easier to check
![Page 41: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/41.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 41
Multiserver systemMultiserver system
Hardware
Microkernel
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now and be restarted
Verification: assume correctness for servers, formally verify their interactions
Verification: individual servers themselves are easier to check
Polymorphism: competing implementations in different languages
![Page 42: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/42.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 42
Multiserver systemMultiserver system
Hardware
Microkernel
Server v2.0Libs
ServerLibs
ServerLibs
ServerLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now and be restarted
Verification: assume correctness for servers, formally verify their interactions
Verification: individual servers themselves are easier to check
Polymorphism: competing implementations in different languages, live updates
![Page 43: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/43.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 43
Multiserver systemMultiserver system
Hardware
Microkernel
Ext4fsLibs
TMPFSLibs
FATLibs
VFSLibs
ServerLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
Fault tolerance: some servers can crash now and be restarted
Verification: assume correctness for servers, formally verify their interactions
Verification: individual servers themselves are easier to check
Polymorphism: competing implementations in different languages, live updates
Polymorphism: multiple implementations of the same IPC protocol
![Page 44: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/44.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 44
Microkernel spectrumsMicrokernel spectrums
Licenses
GPL, BSD, MIT, proprietary
Language
assembly, C, C++, SPARK, Rust
Modularity
single-server – decomposed to protocol level
Compatibility
legacy vs. clean-slate design
Components
reuse vs. reimplementation
Aims
user freedom, reliability, security
Purity
Portability
Specialization
embedded vs. general purpose
![Page 45: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/45.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 45
The ZOOThe ZOO
![Page 46: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/46.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 46
GenodeGenode
IA-32 / AMD64 / ARM / RISC-V / Muen
Base-HW / Codezero / L4/Fiasco / Fiasco.OC /L4Ka::Pistachio / Linux / NOVA / OKL4 / seL4
InitLibs
CoreLibs
TimerLibs
NitpickerLibs
ScoutLibs
FBLibs
● http://genode.org,GPLv2 or commercial license
● Operating system framework for composition of sophisticated systems
● Components also from Linux, DDE, rump kernels, OpenBSD, iPXE, FUSE
● Scenarios: what components will be included
● Recursive structure, resource trading
LaunchpadLibs
liquid_fbLibs
NouxVFS | Libs
bashLibs
![Page 47: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/47.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 47
HelenOSHelenOS
● http://helenos.org, BSD
● Clean-slate design, reimplementation of components
● Modularity: fully decomposed networking stack
● Portability: wide range of supported architectures
● Functionality: USB, sound, networking, file systems, drivers, GUI
AMD64 / ARM / IA-32 / IA-64 / MIPS / PowerPC / SPARC V8 / SPARC V9
SPARTAN
ata_bdLibs
vfsLibs
nsLibs
ethipLibs
e1000Libs
inetsrvLibs
tcpLibs
locsrvLibs
devmanLibs
ext4fsLibs
inetsrvLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
![Page 48: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/48.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 48
HurdHurd
IA-32 / Xen PV
GNU MachLinux drivers*
authLibs
storeiolibstore
netddeLibs
pfinetLibs
ext2fslibdiskfs
procLibs
ApplicationLibs
ApplicationLibs
ApplicationLibs
mplayerlibrumpuser
● http://hurd.gnu.org, GPLv2
● Debian GNU/Hurd, ~80% packages (~34000)
● Freedom #0 (from sysadmin and failures, and to experiment)
● Translators interpose IPC of services exposed in the filesystem
● Support legacy GNU/Linux applications
● Components also from Linux, DDE, rump kernels
![Page 49: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/49.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 49
MINIX 3MINIX 3
IA-32, ARM
MINIX kernel
VFSLibs
MFSLibs
e1000Libs
INET / lwIPLibs
RSLibs
DSLibs
VMLibs
SCHEDLibs
ApplicationLibs
AHCILibs
● http://minix3.org, BSD
● NetBSD userland, thousands packages
● Focus on reliability features: resurrection service, live update
● Components also from lwIP, DDE, rump kernels
MIBLibs
PMLibs
ProcFSLibs
isofsLibs
ext2Libs
![Page 50: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/50.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 50
Microkernels.infoMicrokernels.info
![Page 51: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/51.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 51
In ConclusionIn Conclusion
● Monolithic OSes move functionality to userspace (FUSE, UIO, UMDF)
● Modern Intel CPU more than 1000x faster than the original Pentium
● Modern processors better suited for microkernels
● People have chosen high level programming languages over performance
● Why not choose the added value of microkernels over performance too?
● Microkernels will increasingly use high level programming languages
● Microkernels often function as hypervisors
● Microkernels will hopefully become more ubiquitous
![Page 52: Microkernels: The veterans of OS design](https://reader031.vdocuments.net/reader031/viewer/2022030304/587890701a28ab375f8b5983/html5/thumbnails/52.jpg)
Microkernels: The veterans of OS design, Jakub Jermář, Avast TechTalk, April 8, 2016 52
Q&Awww.microkernel.info
Thank you!Thank you!