Heterogeneous Multikernel OS Yauhen Klimiankou BSUIR Evgeny.Klimenkov@gmail.com Why new OS needed? • Great shift in computer system architecture. • A lot of criticism accumulated in regard to the monolithic operating system design. • Upcoming era of Internet of Things. Hardware • Multicore and manycore computer systems • Heterogeneous computer systems. • Tight integration of devices into processor. • Modularization of computer system design in such a way that each module has its own computation resources. Software • Monolithic kernel based OS – Lack of flexibility – Lack of reliability – Lack of scalability – Lack of security – Lack of simplicity – Lack of predictability • Microkernel based OS – Lack of performance (only one actual issue) OS Design Development Application Application Application Kernel Kernel Kernel Monolithic Kernel First generation Microkernel Second Generation Microkernel OS Design Development Application Application Application Application Kernel Kernel Kernel Monolithic Kernel First generation Microkernel Second Generation Microkernel Multikernel Multikernel OS Structure Kernel A CPU A Kernel B A B CPU B IKC space Kenrel C C CPU C D Kernel D CPU D Pool of RAM Role of the kernel in OS • Kernel is: – CPU Driver – Tasks execution container • Kernel functions are: – CPU and memory frame management. – Multitasking and IPC. – Hardware management interface. – Protection. – Inter-Kernel Communication Inter-Kernel Communication • Asynchronous message passing • Dynamical scope-based inter-kernel communication network A - Communication Scope - Communication Agent B Main ideas • Second generation microkernel as a base • Moving from static design to dynamic design • Moving from centralized design to decentralized design • Moving from one kernel design to many kernels design Benefits • Simplicity of kernel implementation • More intensive use of CPU caches • Reducing the amount traffic and locks on the memory bus. • Ease of portability • The high level of configurability • Reducing the synchronization overhead on multiprocessor systems Principal advantages • Improved flexibility/portability • Full software dynamics • Improved reliability and fault tolerance Flexibility/Portability • Kernel Minimalism (Kernel is CPU driver) – Small footprint – Adequate for embedded systems that are highly restricted in resources • Native support of heterogeneous computer systems • Native support of UMA and NUMA computer systems • Possibly, will be useful for systems with advanced FPGA Full software dynamics • • • • Second generation microkernel as a base Dynamics in space Short-term dynamics in time Long-term dynamics in time Reliability/Fault tolerance • • • • • • Second generation microkernel as a base Distributed system design Decentralization Native support for functionality doubling High-speed system recovery No loss of context in case of failure