Linux and

Hermann Härtig Infotag TU Dresden Oktober 2004 1992 Andy Tanenbaum ./.

“The alternative is a -based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel's job is to handle the message passing, handling, low-level management, and possibly the I/O.”

“Microkernels have won.” Linus Torvalds on Microkernels as fashion

“In fact, this made me think that the microkernel approach was essentially a dishonest approach aimed at receiving more dollars for research. I don't necessarily think these researchers were knowingly dishonest. Perhaps they were simply stupid. Or deluded. I mean this in a very real sense. The dishonesty comes from the intense pressure in the research community at that time to pursue the microkernel topic. In a research lab, you were studying microkernels or you weren't studying kernels at all. So everyone was pressured into this dishonesty, even the people designing Windows NT. While the NT team knew the final result wouldn't approach a microkernel, they knew they had to pay lip service to the idea.”

... and he had a valid point here ! Linux Torvalds on ...

... as basis for Apple OS X

"Frankly, I think it's a piece of crap," What is a (real) microkernel-based system ?

“The alternative is a “The alternative is a microkernel-based microkernel-based system, in which most of system, in which most of the OS runs as separate the OS runs as separate processes, mostly outside processes, mostly outside the kernel. They the kernel. They communicate by message communicate by message passing. The kernel's job passing. The kernel's job is to handle the message is to handle the message passing, interrupt passing, interrupt handling, low-level handling, low-level process management, and process management, possibly the I/O.” but no I/O drivers.” “Microkernels will win.” “Microkernels have won.”

Andy Tanenbaum, 1992 Hermann Härtig, 2004 An example of a real microkernel: L4 family of kernels ()

The microkernel provides: – address spaces – threads – communication – and page faults as messages An example implementation: L4/Fiasco (TU Dresden) ca 15 KLOC mature fast download it from os.inf.tu-dresden.de (GPL)

Another implementation: L4/Pistacchio: Karlsruhe and Sydney Dresden : the first L4 application (TU Dresden)

Time-Sharing Applications download it from os.inf.tu-dresden.de (GPL) L4Linux

Fiasco L4Linux: the first L4 application (TU Dresden)

Time-Sharing (Härtig, Hohmuth, Liedtke, Schönberg, Wolter: Applications The Performance of µ-Kernel based Systems, SOSP 1997) e t u n mi er

4

L Linux s p ob j

Fiasco simulated load 10 L4Linux: the first L4 application (TU Dresden)

AIM Suite-VII benchmark - jobs per minute Time-Sharing 120 (Härtig, Hohmuth, Liedtke, Schönberg, Wolter: Applications The Performance of µ-Kernel based Systems, 100 SOSP 1997) e t u

80 n

60 mi e t er u n i m 4 r s pe L Linux 40 s p ob j

ob Monol. Linux j 20 L4 Linux MkLinux/Monkeolrnel. Linux LM4k Liinunuxx 0 0 10 20 30 40 50 60 70 80 90 100 110 simulated load Fiasco AIM simulated load 11 But, where is the benefit ... ? X-Window System

presenter L4Linux

DOpE installer window server

L4 - ENV

L4/Fiasco Micro-Kernel Screen Shot Internet Transaction

Web Browser: Server Cart edit and sign

Linux/Win XP Linux/Win XP

Network Your password(s), credit card number, ...

Linux App mozilla applet

X11

Linux see: Understanding Data Lifetime via Whole System Simulation Jim Chow, Ben Pfaff, Tal keyboard Garfinkel, Kevin Christopher, and Mendel Rosenblum, Stanford University Usenix Security 04 Split Transaction

Untrusted

Web Browser: L4S oIPckCet to Cart Server Cart edit InSterfaockecet Sign

4 Linux/Win XP IP S ta k L Linux

Minimal Trusted Platform

Network password, credit card number, keys, ... Split Transaction Demo

Web Browser: L4 IPC to Cart Server Cart edit Socket Sign

4 Linux/Win XP IP S ta c k L Linux

L4Env: DOpE, ...

L4 Fiasco

Network Split Transaction Demo

Web vi: L4 IPC to Cart Server Cart edit Socket Sign

4 L Linux IP S t a c k

L4Env: DopE, ...

L4 Fiasco

loopback Message Sequence

Web Server Untrusted Browser Cart Signer Browse / Build Cart Checkout Ready Cart Ready Initiate Secure Connection

Send Cart Display Cart. Wait for user input Accept / Reject

Send Commit Message Exchange Signed Hashes Verify & Done to commit transaction

Verify & Done NIZZA

LLiLniniunuxux xAp ApApppsp

Cart Bank 4 LLLininuuxx Signer SW ... „Minimal Trusted Platform“ Secure User Installer NS GUI IO Storage Auth.

L4 Fiasco DResden Real-Time OS

Time-Sharing Real-Time Applications Applications

(RTFS) RTNET RTGUI

L4Linux SCSI Ethernet VGA driver driver driver

Basic Resource Managers (Memory, Busses, Caches …) user kernel L4 micro-kernel (Fiasco) Linux and Microkernels, the future ? An source alternative to Microsoft NGSCB ? Danke! Fragen ??? Various

● Split Transactions have been designed and implemented by Lenin Singaravelu of Georgia Tech during his internship at TU Dresden paper forthcoming

● citations from various sources on the internet

● you may copy and distribute this document as specified by this license: http://creativecommons.org/licenses/by-sa/2.0/