minimal is tic micro-kernel development

Upload: riaz-munshi

Post on 16-Jul-2015

22 views

Category:

Documents


0 download

TRANSCRIPT

Minimalistic MicroKernel Development

ABSTRACT:

A micro-kernel consists of near minimum amount of software requiredto implement the Operating System, and shouldn t exceed 20k lines of codes theoretically. Microkernels can show good performance with limited hardware and resources scenarios like embedded systems ,since the cost involved with context-switching between user space and kernel space is largely reduced.Thus,this kind of architecture supports multiCPU Computers Distributed OS, and are easy run as a guest OS in a virtual machine like VMware, bochs, virtualbox etc. The minimalistic microkernel involved in our project will be performing the basic services like low-level address space management, thread management, interprocess communication, system scheduling .The other prime important services like device drivers, file system, various protocol stacks, process managers, memory managers etc. were added to the user space, which would exist as various kernel modules, stored in user space, that dynamically become part of our kernel during run-time.

RequirementsTools Used: C Compiler [ GNU GCC ] Linker [GNU LD ] GNU Make Microsoft Visual C++ 2008 HexEdit MagicISO A virtual Machine [For testing ] e.g.: Bochs, VirtualBox etc. Knowledge in C Knowledge in Assembly Programming Knowledge in Perl Scripting Knowledge of the POSIX API

Skills :

Architecture of Micro-Kernel

Project DependenciesBootLoader:

Using GRUB[Grand Unified Bootloader] as the default bootloader for the project.Kernel Entry:

Written purely is asm, it directs the bootloader i.e. GRUB to our kernel by a _main call and does some additional configurations.Kernel :

This the core part of the project, and deals with communicating with the hardware available to us, and device drivers work upon kernel.Device Drivers:

These are the software drivers specific to a particular hardware resource, and are loaded by the kernel.User Shell:

It is the final and visible part of our kernel, and it provides the interface for its end-users through shell specific commands.

Project Plan

Basic Kernel Rich FeaturesFile System Memory Manager Process Scheduler CD-ROM Support

Graphical InterfaceVGA Programming

Project ProgressSTATUS

Basic Kernel Rich FeaturesFile System Memory Manager Process Scheduler CD-ROM Support

[COMPLETED]

[WORKING]

Graphical InterfaceVGA Programming

[PENDING]

Related Work Bran s Kernel by Brandon FriesenThis project is related to the development of the basic kernel ,which includes the basic dependencies and segments, to be built on top of the IA32 hardware.

Minix 3This project was by Andrew F. Tanenbaum , to help his students grasp typical and OS concepts. Thing now serves a great masterpiece to students undertaking OS development projects.

HelenOSThis project was written by faculty and students , and is has all the features of a modern OS like multi-tasking, SMP,and multi-threading.

Advantages Written from Scratch Uses Micro-Kernel Architecture Makes use of GNU GCC tools for development Scalable, and compact enough for RTOS Considered greatest pinnacle in programming Runs on almost all Intel x86 and x64 family of processors Informative for undergraduate students Simple and Lucid Coding Practices Documentation for end-users and Developers

ReferenceWeb Resources: http://www.wiki.osdev.org http://www.minix3.org http://www.osdever.net http://www.nondot.org/sabre/os/articles http://www.linuxfromscratch.org/lfs/view/6.5/index.html http://www.helenos.org http://oss.sgi.com/LDP/HOWTO/Kernel-HOWTO/index.html http://www.helenos.org/ Text-Book References: Operating System Implementation and Design by Andrew S. Tanenbaum The Design and Implementation of the FreeBSD Operating System Modern Operating Systems by Andrew S. Tanenbaum

ConclusionThe project Minimalistic Micro-kernel Development is intended to give a real example of a working Operating System with specialized features to control the hardware, also the source is well commented and provided with the actual bundle, which is helpful for university graduates to get an emphasis on the field of Operating System Development.

THANK YOU