Your SlideShare is downloading. ×
Microkernel-based operating system development
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

Microkernel-based operating system development

2,169
views

Published on

Slides from my diploma thesis presentation. Theme was design and implementation of a microkernel-based operating system using open source components. …

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.

Published in: Technology

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

  • Be the first to like this

No Downloads
Views
Total Views
2,169
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
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. Microkernel-based operating system development Senko Rašić
  • 2. operating system (OS): A part of software that manages hardware resources and provides a safe environment for processes to execute in.
  • 3.  
  • 4. the micro-kernel idea: Hardware drivers and operating system services are regular processes . The kernel has only the required basic functionality
  • 5.  
  • 6.  
  • 7.  
  • 8. intensive inter-process comunication + slow IPC calls = bad performance
  • 9. mainstream systems: Monolithic kernels with some elements of microkernel design ongoing research: L4, Exokernel, ...
  • 10. L4 microkernel
    • recursive address spaces
    • highly optimized IPC
    • L4Ka::Pistachio – an implementation by the
    • University of Karlsruhe
  • 11.  
  • 12.  
  • 13.  
  • 14.  
  • 15.  
  • 16. Open Source software
    • availability
    • community
    • malleability
  • 17. Hasenpfeffer
    • based on L4 microkernel
    • set of servers cooperating through IPC calls
    • maximal reuse of available open source components (NIH syndrome avoidance)
  • 18.  
  • 19. Inter-process communication
    • server and client processes
    • communication interface
    • IDL 4 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);
      • ...
    • }
  • 20. Remote procedure calls
  • 21. capability: The privilege to invoke a specific RPC.
  • 22. Naming system
  • 23. Name system
  • 24. Features
    • program loading and execution ( ELF )
    • multiprocessing, multithreading
    • standard C library available
    • hard disk ( IDE ) support
    • TinyScheme i TinyBasic programming languages
  • 25. 3 rd party components
    • IDE disk driver
    • display output, keyboard input
    • C library
    • TinyScheme interpreter
    • TinyBasic interpreter
  • 26. System boot
  • 27. Software Development Kit
    • Linux system
    • GNU C/C++ compiler
    • L4Ka::Pistachio development environment
  • 28. Testing
    • QEMU
    • VMWare Workstation
    • L4 KDB ( Kernel Debugger )
    • Test environment:
      • floppy disk image for OS boot (using grub)
      • IDE disk image with ext2 filesystem
  • 29. QEMU & KDB in action
  • 30. 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(&quot;Hello, I'm %s!nWho are you: &quot;, argv[0]); fgets(buf, 1023, stdin); printf(&quot;Howdy, %sn&quot;, buf); return 0; }
  • 31. 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
  • 32. Software development
  • 33. In summary
    • developed system:
      • rudimentary
      • extensable
    • microkernel:
      • good base for future development
    • open source:
      • availability
      • malleability

×