Microkernel-based operating system development
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Microkernel-based operating system development

  • 2,766 views
Uploaded 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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,766
On Slideshare
2,765
From Embeds
1
Number of Embeds
1

Actions

Shares
Downloads
36
Comments
0
Likes
0

Embeds 1

http://115.112.206.131 1

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