microkernel-based operating system development

33
Microkernel-based operating system development Senko Rašić

Upload: senko-rasic

Post on 23-Jun-2015

2.221 views

Category:

Technology


1 download

DESCRIPTION

Slides from my diploma thesis presentation. Theme was design and implementation of a microkernel-based operating system using open source components.Mostly translated to English, except for a few pictures I don't have a source to, so couldn't change only the text. Hopefully it'll be clear form the context.

TRANSCRIPT

Page 1: Microkernel-based operating system development

Microkernel-based operatingsystem development

Senko Rašić

Page 2: Microkernel-based operating system development

operating system (OS):

A part of software that manageshardware resources and providesa safe environment for processes toexecute in.

Page 3: Microkernel-based operating system development
Page 4: Microkernel-based operating system development

the micro-kernel idea:

Hardware drivers and operating systemservices are regular processes.

The kernel has only the required basicfunctionality

Page 5: Microkernel-based operating system development
Page 6: Microkernel-based operating system development
Page 7: Microkernel-based operating system development
Page 8: Microkernel-based operating system development

intensive inter-process comunication+ slow IPC calls

= bad performance

Page 9: Microkernel-based operating system development

mainstream systems:Monolithic kernels with some elementsof microkernel design

ongoing research:L4, Exokernel, ...

Page 10: Microkernel-based operating system development

L4 microkernel

recursive address spaces highly optimized IPC

L4Ka::Pistachio – an implementation by the

University of Karlsruhe

Page 11: Microkernel-based operating system development
Page 12: Microkernel-based operating system development
Page 13: Microkernel-based operating system development
Page 14: Microkernel-based operating system development
Page 15: Microkernel-based operating system development
Page 16: Microkernel-based operating system development

Open Source software availability community malleability

Page 17: Microkernel-based operating system development

Hasenpfeffer

based on L4 microkernel set of servers cooperating through IPC calls maximal reuse of available open source

components (NIH syndrome avoidance)

Page 18: Microkernel-based operating system development
Page 19: Microkernel-based operating system development

Inter-process communication

server and client processes communication interface IDL4 generates server and client stubs

interface File {

boolean Read(in Capability_t cap,in unsigned long offset, out byteseq_t buffer, inout unsigned long size);

unsigned long Size(in Capability_t cap);

...

}

Page 20: Microkernel-based operating system development

Remote procedure calls

Page 21: Microkernel-based operating system development

capability:

The privilege to invoke a specific RPC.

Page 22: Microkernel-based operating system development

Naming system

Page 23: Microkernel-based operating system development

Name system

Page 24: Microkernel-based operating system development

Features

program loading and execution (ELF) multiprocessing, multithreading standard C library available hard disk (IDE) support TinyScheme i TinyBasic programming

languages

Page 25: Microkernel-based operating system development

3rd party components

IDE disk driver display output, keyboard input C library TinyScheme interpreter TinyBasic interpreter

Page 26: Microkernel-based operating system development

System boot

Page 27: Microkernel-based operating system development

Software Development Kit

Linux system GNU C/C++ compiler L4Ka::Pistachio development environment

Page 28: Microkernel-based operating system development

Testing

QEMU VMWare Workstation L4 KDB (Kernel Debugger)

Test environment: floppy disk image for OS boot (using grub) IDE disk image with ext2 filesystem

Page 29: Microkernel-based operating system development

QEMU & KDB in action

Page 30: Microkernel-based operating system development

Software development

#include <stdio.h>#include <l4/ipc.h>

#define SECOND 1000000UL

int main(int argc, char *argv[]){ char buf[1024];

L4_Sleep(L4_TimePeriod(4 * SECOND)); printf("Hello, I'm %s!\nWho are you: ", argv[0]);

fgets(buf, 1023, stdin); printf("Howdy, %s\n", buf);

return 0;}

Page 31: Microkernel-based operating system development

Software development

Standard C source code Build system config (scons)

based on L4 system build system

Build and creation of floppy image System boot configuration Virtual machine execution and testing

Page 32: Microkernel-based operating system development

Software development

Page 33: Microkernel-based operating system development

In summary

developed system: rudimentary extensable

microkernel: good base for future development

open source: availability malleability