ManRiX, The Design of Robust and Efficient Microkernel - PowerPoint PPT Presentation

About This Presentation
Title:

ManRiX, The Design of Robust and Efficient Microkernel

Description:

Separate Device Driver managers for separate devices. Bus manager to manage PCI, USB Buses. ... Subsystems and drivers can be restarted at runtime. ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 11
Provided by: manish60
Category:

less

Transcript and Presenter's Notes

Title: ManRiX, The Design of Robust and Efficient Microkernel


1
ManRiX, The Design of Robust and Efficient
Microkernel
  • Presented by
  • Manish Regmi (regmi.manish_at_gmail.com)
  • Rajesh Bikram R.C. (rajesh.rc_at_gmail.com)
  • NITC (Nepal information Technology center)
  • Singhadurbar Kathmandu, Nepal

2
Introduction
  • Microkernel
  • A tiny kernel with very essential services in
    Kernel space and rest services in user space.
  • ManRiX
  • Microkernel architecture with POSIX compliance.
  • Written from scratch using C Assembly.
  • Separate architecture dependent and independent
    files.
  • Open Source project.

3
ManRiXs Design
ManRiXs Microkernel
ManRiXs Architecture
  • Microkernel based Design.
  • Only few essential services in Kernel space.
  • All other services in User Space.
  • Applications Communicate through IPC.

4
Microkernel Components
  • Process and Threads
  • Process Passive Entity and Threads Active entity.
  • Process just encapsulates the threads and
    provides address
  • space.
  • Memory Management
  • Memory Manager is based in Machs VM design.
  • VM manager is divided into two parts, the machine
    dependent part called that Pmap and the machine
    independent part called the vmmap.
  • Supports read/write sharing of memory and copy on
    write sharing of memory.
  • Uses a slab allocator (conceived by Solaris) to
    allocate kernel memory.

5
Contd
  • POSIX Signal and Timers.
  • Signals provide a mechanism for notifying
    processes of system events.
  • 26 signals standard POSIX signals and 5 are
    Real-time Signals.
  • Inter Process Communication (IPC).
  • IPC through Synchronous Message Passing.
  • Three types of messages
  • SHORT messages in CPU Registers.
  • LONG Copying of messages (lt 256 bytes).
  • MAP Through Page Table Mapping.
  • Interrupt Management
  • Microkernel doesnt handle interrupts in kernel
    space.
  • Microkernel acts as an IRQ redirector. User Space
    Applications run the Interrupt Handler.
  • Idle Hooking
  • ManRiX microkernel is capable of making effective
    use of idle CPU.
  • The user can hook a function to run when the
    processors are idle.

6
Contd
  • Kernel Preemption
  • Microkernel is a fully preemptible. It means that
    it is able to preempt a thread even if it is
    running in kernel mode.
  • Highly increases the responsiveness of the system
    and decreases the latencies.
  • Preemption can be disabled at critical section.
  • Symmetric Multiprocessor (SMP) support
  • ManRiX supports Multiprocessors.
  • For Now supports Intel Multi Processors (MP)
    systems only.
  • Kernel Synchronization through Spin locks.
  • Scheduler
  • Supports POSIX style scheduler.
  • 128 priorities where numerically lower value
    means low priority and vice versa.
  • Scheduler is capable of distinguishing between
    interactive and non interactive threads.
  • Scheduler is aware of multiprocessors. Each
    processor has its own run queue.
  • Automatic balancing of Load.

7
User Space Components
  • Based on Client Server Architecture
  • Reduce IPC overhead through implementation
  • Important Components are
  • File server.
  • Console server.
  • Separate Device Driver managers for separate
    devices.
  • Bus manager to manage PCI, USB Buses.
  • ATA manager for managing IDE disks.
  • Floppy Manager for Managing Floppy Controllers.
  • Miscellaneous manager for those who do not have
    their own server.

8
ManRiXgtgt Microkernelgtgt POSIX
  • Why ManRiX?
  • Learn how Operating Systems, Device Drivers work.
  • An attempt to make fast Microkernel based OS.
  • Why Microkernel?
  • Microkernel design makes ManRiX modular and
    scalable.
  • The fault in one subsystem does not bring the
    whole system down.
  • Subsystems and drivers can be restarted at
    runtime.
  • Microkernel code grows slower than that of
    Monolithic kernels.
  • Why POSIX?
  • End users and software developers does not need
    to learn ManRiX specific things.
  • Cuts down Training Cost and time.
  • UNIX/Linux programs will be source compatible
    with ManRiX.

9
Future Plans
  • High Availability Manager.
  • Network Manager.
  • Porting open source applications
  • Support X windows and different window managers
  • Port to different architectures like PPC, X86_64,
    Motorola, ARM etc.
  • Make it real time capable.

10
QA
  • Thank You!

http//manrix.sf.net
http//manrix.sf.net
Write a Comment
User Comments (0)
About PowerShow.com