Your SlideShare is downloading. ×
Hints for L4 Microkernel
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Hints for L4 Microkernel

1,451
views

Published on

Introduce L4 microkernel principles and concepts and Understand the real world usage for microkernels

Introduce L4 microkernel principles and concepts and Understand the real world usage for microkernels

Published in: Technology

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,451
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
99
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Hints for L4 MicrokernelJim Huang ( 黃敬群 ) <jserv@0xlab.org>May 30, 2013 / NCTU, Taiwan
  • 2. Rights to copyAttribution – ShareAlike 3.0You are freeto copy, distribute, display, and perform the workto make derivative worksto make commercial use of the workUnder the following conditionsAttribution. You must give the original author credit.Share Alike. If you alter, transform, or build upon this work, you may distribute theresulting work only under a license identical to this one.For any reuse or distribution, you must make clear to others the license terms of this work.Any of these conditions can be waived if you get permission from the copyright holder.Your fair use and other rights are in no way affected by the above.License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode© Copyright 2013 0xlabhttp://0xlab.org/Corrections, suggestions, contributions and translationsare welcome!Latest update: May 16, 2013
  • 3. Goals of This Presentation• Introduce L4 microkernel principles and concepts– from “Microkernel Construction”http://os.inf.tu-dresden.de/Studium/MkK/– From "Microkernel-based Operating Systems"http://www.inf.tu-dresden.de/index.php?node_id=1314• Understand the real world usage for microkernels• Explore the modern implementation of modern L4microkernel
  • 4. Agenda• Background Knowledge• Microkernel-based Operating Systems• Case Study
  • 5. Background Knowledge
  • 6. Microkernel Concepts• Minimal kernel and hardware enforce separation• Only kernel runs in CPU privileged mode• Components are user!level processes• No restrictions on component software• Reuse of legacy software
  • 7. principle of least privilege (POLA)A capability is a communicable, unforgeable token of authority. It refers to a value thatreferences an object along with an associated set of access rights. A user program on acapability-based operating system must use a capability to access an object.
  • 8. Case Study: Bugs inside big kernels• Drivers cause 85% of Windows XP crashes.– Michael M. Swift, Brian N. Bershad, Henry M. Levy: “Improving theReliability of Commodity Operating Systems”, SOSP 2003• Error rate in Linux drivers is 3x (maximum: 10x)– Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, Dawson R.Engler: “An Empirical Study of Operating System Errors”, SOSP 2001• Causes for driver bugs– 23% programming error– 38% mismatch regarding device specification– 39% OS-driver-interface misconceptions– Leonid Ryzhyk, Peter Chubb, Ihor Kuz and Gernot Heiser: “Dingo:Taming device drivers”, EuroSys 2009
  • 9. Microkernel• Minimalist approach– IPC, virtual memory, thread scheduling• Put the rest into user space– Device drivers, networking, file system, user interface• Disadvantages– Lots of system calls and context switches• Examples: Mach, L4, QNX, MINIX, IBM K42
  • 10. DROPS(Dresden Real-Time Operating System)
  • 11. Virtualization based on L4Re• Isolate not only processes, but also complete• Operating Systems (compartments)– “Server consolidation”
  • 12. 3 Generations of Microkernel• Generation 1: Mach (1985-1994)• Generation 2: L3 & L4 (1990-2001)• Generation 3: seL4, Fiasco.OC, NOVA (2000-)
  • 13. 3 Generations of Microkernel• Mach (1985-1994)– replace pipes with IPC (more general) – improved stability (vs monolithic kernels)– poor performance• L3 & L4 (1990-2001)– order of magnitude improvement in IPC performance• written in assembly, sacrificed CPU portability• only synchronus IPC (build async on top of sync) – very small kernel: more functions moved to userspace• seL4, Fiasco.OC, Coyotos, NOVA (2000-)– platform independence– verification, security, multiple CPUs, etc.
  • 14. History about L4 Microkernels(1)
  • 15. History about L4 Microkernels(2)
  • 16. L4 Family (incomplete)Source: Microkernel-based Operating Systems – Introduction,Carsten Weinhold, TU Dresden (2012)
  • 17. L4 API vs. ABI• L4 project was originally established by JochenLiedtke in the 1990s and is actively researched by theL4Ka team at the University of Karlsruhe incollaboration with NICTA / University of New SouthWales and the Dresden University of Technology.• L4 is defined by a platform-independent1 API and aplatform-dependent ABI
  • 18. Microkernel-based OperatingSystems
  • 19. Microkernel-based OperatingSystems - Introduction• Information:– Carsten Weinhold– Dresden, Oct 09th 2012• Filename: 01-Introduction.pdf– Page 22 – Page 46
  • 20. POSIX on L4Re
  • 21. L4Re Backend example: time()
  • 22. Case Study: Security
  • 23. Apply Fiasco.OC for ARM• Mission: To implement a software stack that allows theemulation of the mobile operating system to use thefunctionality of hardware protection mechanisms• Essential components– ARM TrustZone extension– Fiasco.OC microkernel– Android
  • 24. ARM TrustZone• ARM’s processor extension that allows for a softwareTPM implementation• Available on all major ARM mobile phone SoC• There is limited open source development withTrustZone
  • 25. ARM TrustZone: Application Examples• Secure PIN Entry• Digital Rights Management• e-Ticketing Mobile TV (Netflix)
  • 26. Trust Platform Module (TPM)• A TPM is a chip that resides on the motherboard, andprovides 4 basic functionalities– Secure storage and reporting of platformconfigurations– Protected private key storage– Cryptographic functions– Initialization and management functions
  • 27. System OverviewThe highest part of the stack willbe a program we write that usesTrustZone’s TPM featuresApplication will makeTrustZone calls to themicrokernel
  • 28. TPM Design Goals• use the secure world to provide two TPM services:– Random Number Generation– RSA Key Generation• An Android application will be able to use the TPMservices provided and will be able to perform thefollowing tasks:– encrypt sensitive data using the secure world– decrypt sensitive data using the secure world
  • 29. Reference• From L3 to seL4: What Have We Learnt in 20 Years ofL4 Microkernels? Kevin Elphinstone and GernotHeiser, NICTA/UNSW• Microkernel Construction"http://os.inf.tu-dresden.de/Studium/MkK/• Microkernel-based Operating Systemshttp://www.inf.tu-dresden.de/index.php?node_id=1314• The L4 Microkernel, Hermann Härtig, TechnischeUniversität Dresden• Microkernels, Arun Krishnamurthy, University ofCentral Florida
  • 30. http://0xlab.org