SlideShare a Scribd company logo
http://d3s.mff.cuni.czhttp://d3s.mff.cuni.cz
Martin Děcký
decky@d3s.mff.cuni.cz
CHARLES UNIVERSITY IN PRAGUE
faculty of mathematics and physicsfaculty of mathematics and physics
What Could Microkernels
Learn from Monolithic
Kernels (and Vice Versa)
What Could Microkernels
Learn from Monolithic
Kernels (and Vice Versa)
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 2
What a Long Title ...What a Long Title ...
Just barely missed the prize for the
longest talk title of the devroom ...
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 3
What a Long Title ...What a Long Title ...
Just barely missed the prize for the
longest talk title of the devroom ...
Still, the title is not saying enough.
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 4
What a Long Title ...What a Long Title ...
Just barely missed the prize for the
longest talk title of the devroom ...
Still, the title is not saying enough.
This is an opinion piece. Feel free to
disagree and let's discuss that.
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 5
IntroductionIntroduction
Martin Děcký
Computer science researcher
Operating systems
Charles University in Prague
Co-author of HelenOS (since 2004)
Portable general-purpose microkernel multiserver
operating system designed and implemented from scratch
User of GNU/Linux (since 1998)
Also occasional contributor
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 7
HelenOS 0.6.0HelenOS 0.6.0
Released on December 21st 2014
Culmination of more than 2 years of development
(including GSoC '12, GSoC '14, ESA SOCIS '13)
GUI
Support for BeagleBoard, BeagleBone, Raspberry Pi, MIPS
Malta, LEON3
ext4 as default root file system, UDF support
IPv6 support, auto-configuration
Audio support (including Intel HD Audio)
Miscellaneous (guard pages, device drivers, telnet, VNC)
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 8
About the Premise ...About the Premise ...
Could the microkernel systems really
learn something from the monolithic
systems?
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 9
Microkernels vs. Monolithic KernelsMicrokernels vs. Monolithic Kernels
GDI NOD
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 10
Microkernels vs. Monolithic KernelsMicrokernels vs. Monolithic Kernels
Microkernels
Monolithic
Kernels
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 11
Microkernels vs. Monolithic KernelsMicrokernels vs. Monolithic Kernels
Microkernels
Monolithic
Kernels
The Iron
Curtain
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 12
Microkernels & Monolithic KernelsMicrokernels & Monolithic Kernels
Microkernels
Monolithic
Kernels
Terminological
demarcation
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 13
Microkernels & Monolithic KernelsMicrokernels & Monolithic Kernels
Microkernels
Monolithic
Kernels
Terminological
demarcation
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 14
Microkernels & Monolithic KernelsMicrokernels & Monolithic Kernels
componentization
isolation
dynamicity
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 15
Meet the New Kid on the BlockMeet the New Kid on the Block
OSv
Operating system for virtual machines
Only drivers for virtual and paravirtual devices
Real devices can be supported via rump kernels
Slim API necessary to run POSIX applications and
a JVM
In kernel mode
Single user, single process, single image, single address
space
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 17
Microkernels → Monolithic KernelsMicrokernels → Monolithic Kernels
More power for user space
Gradually moving some drivers to user space
(where it makes sense)
FUSE, libusb, networking stack, etc.
Performance might not be actually very problematic
The only trouble is memory copying, but we can avoid it
Caching can be still done in a “monolithic” way
We can see the opposing trend in many cases
KMS/DRM
Due to removing duplicities, not due to the technical
limitations
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 18
Microkernels → Monolithic Kernels (2)Microkernels → Monolithic Kernels (2)
Explicit architecture
Software architecture (components) can be
explicitly visible in the code
Compared to metadata (naming conventions, etc.) that
usually disappear after compilation
Common objection: We don't want to restrict the code
Don't we really?
Passing pointers anywhere is just not necessary
Pointers are not important, the data are
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 19
Microkernels → Monolithic Kernels (3)Microkernels → Monolithic Kernels (3)
Bootstrap is not run-time execution
An operating system is not an “algorithm”
It has been running forever
It will be running forever
The “initial state” is indistinguishable from the
“idle state”
There is no “terminal state”
Designing the same code paths for both the
bootstrap, termination and run-time execution
harms all of them
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 21
Monolithic Kernels → MicrokernelsMonolithic Kernels → Microkernels
Smart algorithms and data structures
Surprisingly enough, groundbreaking ideas are
usually implemented and evaluated in the
monolithic kernels first
Copy-on-Write
Object allocator
Read-Copy-Update
Namespaces
Global resources (single-system image)
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 22
Monolithic Kernels → MicrokernelsMonolithic Kernels → Microkernels
Smart algorithms and data structures (cont.)
Advanced scheduling
Earliest Deadline First
Multi-level scheduling
Dynamic tracing and instrumentation
Support for Hardware Transactional Memory
Security features
Address space layout randomization
Extended Fault Isolation (XFI)
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 23
Monolithic Kernels → Microkernels (2)Monolithic Kernels → Microkernels (2)
Scalability
Monolithic systems are shown to scale to
thousands of CPUs
Surprisingly, many microkernel systems still target
only uniprocessor machines
Surprisingly enough, monolithic systems have been
successfully scaled down for embedded devices
Sure, a monolith is not necessarily a huge object
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 24
Monolithic Kernels → Microkernels (3)Monolithic Kernels → Microkernels (3)
Portability
Most monolithic systems are (surprisingly)
portable
Even with respect to the execution environment
Many microkernel systems are (surprisingly) hard
to port
Usually a proper hardware abstraction layer is missing
This leads us to ...
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 25
Microkernel Non-GoalsMicrokernel Non-Goals
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 26
RestartingRestarting
Dependability through restarting servers
A demonstration of the powerfulness of the
isolation
Microkernel design by itself does almost nothing
for managing the internal state of the servers
Servers are rarely stateless
The logical state is rarely limited to a single server
Restarting of a server rarely solves the root cause of the
failure
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 27
Binary Size as a Measure of QualityBinary Size as a Measure of Quality
Micro means small, right?
Is a microkernel with a size of 50 KB a better kernel
than a microkernel with a size of 150 KB?
What about 49 KB?
Measuring things such as cyclomatic complexity
might be more reasonable, but at best there is
a correlation (not causation) between the value
and the probability of bugs
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 28
Brain-Dead MicrokernelBrain-Dead Microkernel
Using trivial algorithms as a safeguard
Again, there is a correlation at best
Trivial bugs in trivial code
(with non-trivial consequences)
Simplicity is desirable, but not without
consideration
We know many sophisticated ways how to make
sure a complex piece of code is correct
(e.g. formal verification)
Martin Děcký, FOSDEM 2015, February 1st
2015 What Could Microkernels Learn ... 29
ConclusionConclusion
Remember the Amdahl Law
Optimize for the common case
The common case is context-dependent
Acknowledge other people's common cases
Avoid black-or-white vision
Acknowledge other people's ideas
Know your goals and non-goals
Avoid misguided goals

More Related Content

Similar to What Could Microkernels Learn from Monolithic Kernels (and Vice Versa)

Microkernels and Beyond
Microkernels and BeyondMicrokernels and Beyond
Microkernels and Beyond
David Evans
 
Isn't the Monolith Just Enough?
Isn't the Monolith Just Enough?Isn't the Monolith Just Enough?
Isn't the Monolith Just Enough?
pflueras
 
what is core-i
what is core-i what is core-i
what is core-i
RiMirockstar
 
Mocking vtcc3 - en
Mocking   vtcc3 - enMocking   vtcc3 - en
Mocking vtcc3 - en
vgrondin
 
Blockchain presentation-tech ontap-tv-v1
Blockchain presentation-tech ontap-tv-v1Blockchain presentation-tech ontap-tv-v1
Blockchain presentation-tech ontap-tv-v1
Tony Vernall
 
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Skelton Thatcher Consulting Ltd
 
How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...
Matthew Skelton
 
Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016
Skelton Thatcher Consulting Ltd
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
Anatole Tresch
 
Technology Trends, LBS, 2002
Technology Trends, LBS, 2002Technology Trends, LBS, 2002
Technology Trends, LBS, 2002
Shantanu Bhagwat
 
La préservation des logiciels: défis et opportunités pour la reproductibilité...
La préservation des logiciels: défis et opportunités pour la reproductibilité...La préservation des logiciels: défis et opportunités pour la reproductibilité...
La préservation des logiciels: défis et opportunités pour la reproductibilité...
Roberto Di Cosmo
 
OpenTelemetry: The future (present) of Observability
OpenTelemetry: The future (present) of ObservabilityOpenTelemetry: The future (present) of Observability
OpenTelemetry: The future (present) of Observability
Gustavo Corrêa Alves
 
Unembedding embedded systems with TDD: Benefits of going beyond the make it w...
Unembedding embedded systems with TDD: Benefits of going beyond the make it w...Unembedding embedded systems with TDD: Benefits of going beyond the make it w...
Unembedding embedded systems with TDD: Benefits of going beyond the make it w...
Francisco Climent Pérez
 
Tim connecting-the-dots
Tim connecting-the-dotsTim connecting-the-dots
Tim connecting-the-dots
Timothy Head
 
Elastically scalable architectures with microservices. The end of the monolith?
Elastically scalable architectures with microservices. The end of the monolith?Elastically scalable architectures with microservices. The end of the monolith?
Elastically scalable architectures with microservices. The end of the monolith?
Javier Arias Losada
 
VLSI
VLSI VLSI
VLSI
So Ma
 
Hardware/Software Co-Design for Efficient Microkernel Execution
Hardware/Software Co-Design for Efficient Microkernel ExecutionHardware/Software Co-Design for Efficient Microkernel Execution
Hardware/Software Co-Design for Efficient Microkernel Execution
Martin Děcký
 
Cost-effective software reliability through autonomic tuning of system resources
Cost-effective software reliability through autonomic tuning of system resourcesCost-effective software reliability through autonomic tuning of system resources
Cost-effective software reliability through autonomic tuning of system resources
Vincenzo De Florio
 
Essay On Cryptography
Essay On CryptographyEssay On Cryptography
Essay On Cryptography
Haley Johnson
 
EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14
Ian Phillips
 

Similar to What Could Microkernels Learn from Monolithic Kernels (and Vice Versa) (20)

Microkernels and Beyond
Microkernels and BeyondMicrokernels and Beyond
Microkernels and Beyond
 
Isn't the Monolith Just Enough?
Isn't the Monolith Just Enough?Isn't the Monolith Just Enough?
Isn't the Monolith Just Enough?
 
what is core-i
what is core-i what is core-i
what is core-i
 
Mocking vtcc3 - en
Mocking   vtcc3 - enMocking   vtcc3 - en
Mocking vtcc3 - en
 
Blockchain presentation-tech ontap-tv-v1
Blockchain presentation-tech ontap-tv-v1Blockchain presentation-tech ontap-tv-v1
Blockchain presentation-tech ontap-tv-v1
 
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
 
How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...How to break apart a monolithic system safely without destroying your team - ...
How to break apart a monolithic system safely without destroying your team - ...
 
Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016Teams and monoliths - Matthew Skelton - Velocity EU 2016
Teams and monoliths - Matthew Skelton - Velocity EU 2016
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
 
Technology Trends, LBS, 2002
Technology Trends, LBS, 2002Technology Trends, LBS, 2002
Technology Trends, LBS, 2002
 
La préservation des logiciels: défis et opportunités pour la reproductibilité...
La préservation des logiciels: défis et opportunités pour la reproductibilité...La préservation des logiciels: défis et opportunités pour la reproductibilité...
La préservation des logiciels: défis et opportunités pour la reproductibilité...
 
OpenTelemetry: The future (present) of Observability
OpenTelemetry: The future (present) of ObservabilityOpenTelemetry: The future (present) of Observability
OpenTelemetry: The future (present) of Observability
 
Unembedding embedded systems with TDD: Benefits of going beyond the make it w...
Unembedding embedded systems with TDD: Benefits of going beyond the make it w...Unembedding embedded systems with TDD: Benefits of going beyond the make it w...
Unembedding embedded systems with TDD: Benefits of going beyond the make it w...
 
Tim connecting-the-dots
Tim connecting-the-dotsTim connecting-the-dots
Tim connecting-the-dots
 
Elastically scalable architectures with microservices. The end of the monolith?
Elastically scalable architectures with microservices. The end of the monolith?Elastically scalable architectures with microservices. The end of the monolith?
Elastically scalable architectures with microservices. The end of the monolith?
 
VLSI
VLSI VLSI
VLSI
 
Hardware/Software Co-Design for Efficient Microkernel Execution
Hardware/Software Co-Design for Efficient Microkernel ExecutionHardware/Software Co-Design for Efficient Microkernel Execution
Hardware/Software Co-Design for Efficient Microkernel Execution
 
Cost-effective software reliability through autonomic tuning of system resources
Cost-effective software reliability through autonomic tuning of system resourcesCost-effective software reliability through autonomic tuning of system resources
Cost-effective software reliability through autonomic tuning of system resources
 
Essay On Cryptography
Essay On CryptographyEssay On Cryptography
Essay On Cryptography
 
EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14
 

More from Martin Děcký

Lessons Learned from Porting HelenOS to RISC-V
Lessons Learned from Porting HelenOS to RISC-VLessons Learned from Porting HelenOS to RISC-V
Lessons Learned from Porting HelenOS to RISC-V
Martin Děcký
 
Formal Verification of Functional Code
Formal Verification of Functional CodeFormal Verification of Functional Code
Formal Verification of Functional Code
Martin Děcký
 
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, CapabilitiesIPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, Capabilities
Martin Děcký
 
Unikernels, Multikernels, Virtual Machine-based Kernels
Unikernels, Multikernels, Virtual Machine-based KernelsUnikernels, Multikernels, Virtual Machine-based Kernels
Unikernels, Multikernels, Virtual Machine-based Kernels
Martin Děcký
 
Porting HelenOS to RISC-V
Porting HelenOS to RISC-VPorting HelenOS to RISC-V
Porting HelenOS to RISC-V
Martin Děcký
 
FOSDEM 2014: Read-Copy-Update for HelenOS
FOSDEM 2014: Read-Copy-Update for HelenOSFOSDEM 2014: Read-Copy-Update for HelenOS
FOSDEM 2014: Read-Copy-Update for HelenOS
Martin Děcký
 
HelenOS: State of the Union 2012
HelenOS: State of the Union 2012HelenOS: State of the Union 2012
HelenOS: State of the Union 2012
Martin Děcký
 

More from Martin Děcký (7)

Lessons Learned from Porting HelenOS to RISC-V
Lessons Learned from Porting HelenOS to RISC-VLessons Learned from Porting HelenOS to RISC-V
Lessons Learned from Porting HelenOS to RISC-V
 
Formal Verification of Functional Code
Formal Verification of Functional CodeFormal Verification of Functional Code
Formal Verification of Functional Code
 
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, CapabilitiesIPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, Capabilities
 
Unikernels, Multikernels, Virtual Machine-based Kernels
Unikernels, Multikernels, Virtual Machine-based KernelsUnikernels, Multikernels, Virtual Machine-based Kernels
Unikernels, Multikernels, Virtual Machine-based Kernels
 
Porting HelenOS to RISC-V
Porting HelenOS to RISC-VPorting HelenOS to RISC-V
Porting HelenOS to RISC-V
 
FOSDEM 2014: Read-Copy-Update for HelenOS
FOSDEM 2014: Read-Copy-Update for HelenOSFOSDEM 2014: Read-Copy-Update for HelenOS
FOSDEM 2014: Read-Copy-Update for HelenOS
 
HelenOS: State of the Union 2012
HelenOS: State of the Union 2012HelenOS: State of the Union 2012
HelenOS: State of the Union 2012
 

Recently uploaded

ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
OnePlan Solutions
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
ICS
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
dhavalvaghelanectarb
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
chandangoswami40933
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
Luigi Fugaro
 

Recently uploaded (20)

ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
 

What Could Microkernels Learn from Monolithic Kernels (and Vice Versa)

  • 1. http://d3s.mff.cuni.czhttp://d3s.mff.cuni.cz Martin Děcký decky@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physicsfaculty of mathematics and physics What Could Microkernels Learn from Monolithic Kernels (and Vice Versa) What Could Microkernels Learn from Monolithic Kernels (and Vice Versa)
  • 2. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 2 What a Long Title ...What a Long Title ... Just barely missed the prize for the longest talk title of the devroom ...
  • 3. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 3 What a Long Title ...What a Long Title ... Just barely missed the prize for the longest talk title of the devroom ... Still, the title is not saying enough.
  • 4. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 4 What a Long Title ...What a Long Title ... Just barely missed the prize for the longest talk title of the devroom ... Still, the title is not saying enough. This is an opinion piece. Feel free to disagree and let's discuss that.
  • 5. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 5 IntroductionIntroduction Martin Děcký Computer science researcher Operating systems Charles University in Prague Co-author of HelenOS (since 2004) Portable general-purpose microkernel multiserver operating system designed and implemented from scratch User of GNU/Linux (since 1998) Also occasional contributor
  • 6.
  • 7. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 7 HelenOS 0.6.0HelenOS 0.6.0 Released on December 21st 2014 Culmination of more than 2 years of development (including GSoC '12, GSoC '14, ESA SOCIS '13) GUI Support for BeagleBoard, BeagleBone, Raspberry Pi, MIPS Malta, LEON3 ext4 as default root file system, UDF support IPv6 support, auto-configuration Audio support (including Intel HD Audio) Miscellaneous (guard pages, device drivers, telnet, VNC)
  • 8. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 8 About the Premise ...About the Premise ... Could the microkernel systems really learn something from the monolithic systems?
  • 9. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 9 Microkernels vs. Monolithic KernelsMicrokernels vs. Monolithic Kernels GDI NOD
  • 10. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 10 Microkernels vs. Monolithic KernelsMicrokernels vs. Monolithic Kernels Microkernels Monolithic Kernels
  • 11. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 11 Microkernels vs. Monolithic KernelsMicrokernels vs. Monolithic Kernels Microkernels Monolithic Kernels The Iron Curtain
  • 12. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 12 Microkernels & Monolithic KernelsMicrokernels & Monolithic Kernels Microkernels Monolithic Kernels Terminological demarcation
  • 13. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 13 Microkernels & Monolithic KernelsMicrokernels & Monolithic Kernels Microkernels Monolithic Kernels Terminological demarcation
  • 14. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 14 Microkernels & Monolithic KernelsMicrokernels & Monolithic Kernels componentization isolation dynamicity
  • 15. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 15 Meet the New Kid on the BlockMeet the New Kid on the Block OSv Operating system for virtual machines Only drivers for virtual and paravirtual devices Real devices can be supported via rump kernels Slim API necessary to run POSIX applications and a JVM In kernel mode Single user, single process, single image, single address space
  • 16.
  • 17. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 17 Microkernels → Monolithic KernelsMicrokernels → Monolithic Kernels More power for user space Gradually moving some drivers to user space (where it makes sense) FUSE, libusb, networking stack, etc. Performance might not be actually very problematic The only trouble is memory copying, but we can avoid it Caching can be still done in a “monolithic” way We can see the opposing trend in many cases KMS/DRM Due to removing duplicities, not due to the technical limitations
  • 18. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 18 Microkernels → Monolithic Kernels (2)Microkernels → Monolithic Kernels (2) Explicit architecture Software architecture (components) can be explicitly visible in the code Compared to metadata (naming conventions, etc.) that usually disappear after compilation Common objection: We don't want to restrict the code Don't we really? Passing pointers anywhere is just not necessary Pointers are not important, the data are
  • 19. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 19 Microkernels → Monolithic Kernels (3)Microkernels → Monolithic Kernels (3) Bootstrap is not run-time execution An operating system is not an “algorithm” It has been running forever It will be running forever The “initial state” is indistinguishable from the “idle state” There is no “terminal state” Designing the same code paths for both the bootstrap, termination and run-time execution harms all of them
  • 20.
  • 21. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 21 Monolithic Kernels → MicrokernelsMonolithic Kernels → Microkernels Smart algorithms and data structures Surprisingly enough, groundbreaking ideas are usually implemented and evaluated in the monolithic kernels first Copy-on-Write Object allocator Read-Copy-Update Namespaces Global resources (single-system image)
  • 22. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 22 Monolithic Kernels → MicrokernelsMonolithic Kernels → Microkernels Smart algorithms and data structures (cont.) Advanced scheduling Earliest Deadline First Multi-level scheduling Dynamic tracing and instrumentation Support for Hardware Transactional Memory Security features Address space layout randomization Extended Fault Isolation (XFI)
  • 23. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 23 Monolithic Kernels → Microkernels (2)Monolithic Kernels → Microkernels (2) Scalability Monolithic systems are shown to scale to thousands of CPUs Surprisingly, many microkernel systems still target only uniprocessor machines Surprisingly enough, monolithic systems have been successfully scaled down for embedded devices Sure, a monolith is not necessarily a huge object
  • 24. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 24 Monolithic Kernels → Microkernels (3)Monolithic Kernels → Microkernels (3) Portability Most monolithic systems are (surprisingly) portable Even with respect to the execution environment Many microkernel systems are (surprisingly) hard to port Usually a proper hardware abstraction layer is missing This leads us to ...
  • 25. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 25 Microkernel Non-GoalsMicrokernel Non-Goals
  • 26. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 26 RestartingRestarting Dependability through restarting servers A demonstration of the powerfulness of the isolation Microkernel design by itself does almost nothing for managing the internal state of the servers Servers are rarely stateless The logical state is rarely limited to a single server Restarting of a server rarely solves the root cause of the failure
  • 27. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 27 Binary Size as a Measure of QualityBinary Size as a Measure of Quality Micro means small, right? Is a microkernel with a size of 50 KB a better kernel than a microkernel with a size of 150 KB? What about 49 KB? Measuring things such as cyclomatic complexity might be more reasonable, but at best there is a correlation (not causation) between the value and the probability of bugs
  • 28. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 28 Brain-Dead MicrokernelBrain-Dead Microkernel Using trivial algorithms as a safeguard Again, there is a correlation at best Trivial bugs in trivial code (with non-trivial consequences) Simplicity is desirable, but not without consideration We know many sophisticated ways how to make sure a complex piece of code is correct (e.g. formal verification)
  • 29. Martin Děcký, FOSDEM 2015, February 1st 2015 What Could Microkernels Learn ... 29 ConclusionConclusion Remember the Amdahl Law Optimize for the common case The common case is context-dependent Acknowledge other people's common cases Avoid black-or-white vision Acknowledge other people's ideas Know your goals and non-goals Avoid misguided goals