1 / 10

ManRiX, The Design of Robust and Efficient Microkernel

ManRiX, The Design of Robust and Efficient Microkernel. Presented by: Manish Regmi ( regmi.manish@gmail.com ) Rajesh Bikram R.C. ( rajesh.rc@gmail.com ) NITC (Nepal information Technology center) Singhadurbar Kathmandu, Nepal. Introduction. Microkernel

shiri
Download Presentation

ManRiX, The Design of Robust and Efficient Microkernel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ManRiX, The Design of Robust and Efficient Microkernel Presented by: Manish Regmi (regmi.manish@gmail.com) Rajesh Bikram R.C. (rajesh.rc@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. ManRiX’s Design • Microkernel based Design. • Only few essential services in Kernel space. • All other services in User Space. • Applications Communicate through IPC. ManRiX’s Microkernel ManRiX’s Architecture

  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 Mach’s 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 (< 256 bytes). • MAP: Through Page Table Mapping. • Interrupt Management • Microkernel doesn’t 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. ManRiX>> Microkernel>> 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. Q&A Thank You! http://manrix.sf.net http://manrix.sf.net

More Related