mikro introducing a c mikro kernel
play

mikro - Introducing a C ++ Mikro Kernel mikro Low level C ++ Design - PowerPoint PPT Presentation

mikro - Introducing a C ++ Mikro Kernel Victor Aperc & Julien Freche Introduction Kernel types mikro - Introducing a C ++ Mikro Kernel mikro Low level C ++ Design Victor Aperc & Julien Freche considerations Features and


  1. mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types mikro - Introducing a C ++ Mikro Kernel mikro Low level C ++ Design Victor Apercé & Julien Freche considerations Features and progress viaxxx@lse.epita.fr Conclusion julien.freche@lse.epita.fr http://lse.epita.fr/

  2. Outline I mikro - Introducing Introduction 1 a C ++ Mikro Kernel Victor Apercé & Julien Freche Kernel types 2 Introduction to kernel Introduction Kernel types Monolithic / Micro kernel explained mikro Monolithic / Micro kernel comparison Low level C ++ Design mikro 3 considerations Features and Low level C ++ 4 progress Conclusion Design considerations 5 Features and progress 6 Implemented features Missing features Conclusion 7

  3. Introduction mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types mikro Low level C ++ Introduction Design considerations Features and progress Conclusion

  4. mikro id mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel type: micro kernel Kernel types mikro Status: experimental now but intended to be in production Low level C ++ (if we can :D) Design Language: C ++ considerations Features and Fathers: Victor Apercé, Julien Freche progress Conclusion Birth: in early September 2013 Place of birth: LSE, near Paris, France

  5. Some figures about mikro mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types The most active project of the LSE this year mikro Low level C ++ 2 repositories: kernel and User land Design 2 main authors and 2 contributors considerations Features and ~900 commits representing 5.2 commits per day progress ~27,000 lines Conclusion

  6. Kernel types mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Introduction to kernel Monolithic / Micro kernel explained Monolithic / Micro kernel Kernel types comparison mikro Low level C ++ Design considerations Features and progress Conclusion

  7. Introduction to kernel mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Introduction to kernel Monolithic / Micro kernel explained Monolithic / Micro kernel comparison Introduction to kernel mikro Low level C ++ Design considerations Features and progress Conclusion

  8. Kernel land / User land mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel land Kernel types Code running at a privileged level of the CPU Introduction to kernel Monolithic / Micro kernel explained Monolithic / Micro kernel Bugs are most of the time fatal comparison mikro Low level C ++ User land Design considerations Tasks running at a low privileged level Features and progress Bugs can be recovered by Kernel land Conclusion

  9. Kernel mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Kernel Introduction to kernel Monolithic / Micro kernel Interface between software and hardware explained Monolithic / Micro kernel comparison mikro A part is running in Kernel land but not necessary all Low level C ++ Core of the operating system Design considerations 2 main types: monolithic and micro kernel Features and progress Conclusion

  10. Main component of Kernel mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Main components of kernel are: Kernel types Introduction to kernel Paging (will be discussed in an other talk) Monolithic / Micro kernel explained VFS: Virtual File System Monolithic / Micro kernel comparison Binary loader mikro Low level C ++ Scheduler Design considerations Processor init (will be discussed in an other talk) Features and Drivers progress Conclusion

  11. Monolithic / Micro kernel explained mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Introduction to kernel Monolithic / Micro kernel explained Monolithic / Micro kernel comparison Monolithic / Micro kernel explained mikro Low level C ++ Design considerations Features and progress Conclusion

  12. Monolithic kernel mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Monolithic kernel Introduction to kernel Monolithic / Micro kernel Almost everything privileged is in Kernel land explained Monolithic / Micro kernel comparison mikro Availability of dynamic module loading - most of the time Low level C ++ Very big Design considerations System functionality access: through system calls Features and progress Conclusion

  13. Micro kernel mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Micro kernel Kernel types Introduction to kernel The less as possible resides in Kernel land Monolithic / Micro kernel explained Monolithic / Micro kernel comparison No dynamic module loading mikro Low level C ++ Very light Design Kernel components are User land processes: services considerations Features and System functionality access: through IPC progress Conclusion

  14. IPC mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Introduction to kernel Inter Process Communication Monolithic / Micro kernel explained Communication between 2 User land processes Monolithic / Micro kernel comparison mikro Message passing in micro kernels Low level C ++ Design Will be discussed in an other talk considerations Features and progress Conclusion

  15. Component location mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Components Micro kernel Monolithic kernel Introduction to kernel Paging Kernel & User Monolithic / Micro kernel explained VFS User Monolithic / Micro kernel comparison Binary Loader User mikro Kernel land Scheduler Kernel or User Low level C ++ Processor Init Kernel Design considerations Drivers User Features and progress Conclusion

  16. Examples mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Monolithic kernels Windows (hybrid :D) Introduction Kernel types Darwin, MacOS X kernel (hybrid :D) Introduction to kernel Monolithic / Micro kernel Linux explained Monolithic / Micro kernel comparison *BSD mikro STOS Low level C ++ Design considerations Micro kernels Features and QNX progress Conclusion Mach L4 family, the reference

  17. Monolithic / Micro kernel comparison mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types Introduction to kernel Monolithic / Micro kernel explained Monolithic / Micro kernel comparison Monolithic / Micro kernel comparison mikro Low level C ++ Design considerations Features and progress Conclusion

  18. Complexity mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Monolithic kernel Introduction Very complex Kernel types Introduction to kernel Hard to maintain Monolithic / Micro kernel explained Kernel must be reentrant Monolithic / Micro kernel comparison mikro Micro kernel Low level C ++ Design Kernel land is simple considerations User land is hard to design and complex Features and progress Supposed to be easier to maintain Conclusion Kernel don’t need to be reentrant

  19. Security mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Monolithic kernel Introduction Kernel land is big so many possible bugs Kernel types Introduction to kernel Possibility to exploit dynamic code loading in Kernel land Monolithic / Micro kernel explained Bugs are most of the time fatal Monolithic / Micro kernel comparison mikro Micro kernel Low level C ++ Design Kernel land is simple so less possible bugs considerations Bugs in User land are not fatal Features and progress Still possible exploits in User land services Conclusion Security can be mathematically proved like seL4

  20. Performance mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Monolithic kernel Kernel types Introduction to kernel Very fast due to system calls Monolithic / Micro kernel explained Monolithic / Micro kernel comparison Micro kernel mikro Low level C ++ Slower because of IPC context switches Design IPC must be as fast as possible to improve performance considerations Features and This problem hasn’t been really solved yet progress Conclusion

  21. Knowledge background mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Monolithic kernel Introduction Kernel types First kernels Introduction to kernel Monolithic / Micro kernel Design used a lot explained Monolithic / Micro kernel comparison Less fun, recipe already exists mikro Low level C ++ Micro kernel Design considerations Rare design Features and Still researches on the topic progress Conclusion But let room to innovations!

  22. mikro mikro - Introducing a C ++ Mikro Kernel Victor Apercé & Julien Freche Introduction Kernel types mikro Low level C ++ mikro Design considerations Features and progress Conclusion

Recommend


More recommend