MuiString: Home   μString kernel
  [[idx]]
[Home] | [Documenation] | [Git] | [Download] | [Showcase] | [Core development team]
 

μString kernel start page

What is μString ?

μString is a microkernel or exokernel (call it whatever like you want) - a part of the Jari Operating System Research Project.
For the better support and project life it's licensed under GNU GPLv2 License and you can freely use it in your targets, modify and run this microkernel. μString designed to be stable exists to both source code and API, it's supposed to be a source code backward compatibility that makes a development more effictive compairing with linux kernel for example.

Compare it

μString has a many differences with regular operating system kernels. There are another architecture and another rules.
Many existing microkernels have many drivers and semantics implemented in, but μString doesn't.
Our kernel goes with a minimal way and doesn't know about semantics, only several things are implemented within kernel - it's a bootstrap drivers of PICs, timers and SMP related devices, and a security simple abstraction - there are generally two groups of the user space applications - trusted and untrusted.
Here the features table:

Feature GNU Linux GNU Mach μString
Memory management kernel kernel only basics in kernel
Scheduling kernel kernel kernel
Threads kernel kernel user space
Exceptions kernel kernel user space
Exceptions and irq routing kernel kernel kernel
Device drivers kernel kernel, user space user space
Internal naming kernel user space user space
Security kernel kernel user space
IPC kernel kernel user space
Virtual File System kernel kernel user space
File Systems kernel user space user space
Hardware Bus support kernel kernel user space
TCP/IP kernel kernel user space
Terminals support kernel user space user space

Moving all logical abstractions from kernel to user space, giving a lot of benefits, such as security and performance benefits.
μString kernel has a several key features that makes possible to built an extended operating system set.

Kernel Real-time scheduling O(1) memory allocating CPU monopolizing Drivers isolation Strong security
Linux none none none none yes, via patch
GNU Mach none none none yes, with limits yes
QNX yes none none yes none
MS Windows none none none none none
μString yes yes yes yes, full w.IOMMU yes

With μString you can setup a hard politics for your servers and have a determined CPU time slices for each task what you want.
Also, there are possible to limit memory amount for tasks and make a guarantee for task operational.

Why kernel is minimalistic ?

There are many papers written about microkernel vs monolithic kernel.
You can find many pluses and minuses of the both architectures, but there are many reasons to use microkernel in your operating system includeing the following:

  • You have a stable and simple core system.
  • Hardware driver doesn't crash the whole system.
  • Force reloading of the crashed servers.
  • Building different systems on top of the stable microkernel.
  • More secure way within one host.
  • More faster and effective development.

In addition you getting the new features with μString microkernel:

  • New abstraction level for system development.
  • New level of security within all operating system.
  • Real-time operating (depends on the kernel servers).
  • A platform for more effictive researching.
  • General used protocol for more flexible network cluster process migration and syncing.
  • All-in-one filesystem interface for operating with any kind of objects.

There are many pluses that provide microkernel architecture and MString itself, now you can get involved with this technology to improving your system, research new technology and many many other purposes.

 
idx.txt · Last modified: 2008/09/22 19:15 (external edit)