next up previous
Next: ORB Design and Refactoring Up: KORBit: A Kernel Space Previous: Kernel

Use Cases

  1. Object-Oriented Layer: Using an in-kernel CORBA implementation, it is possible to expose an Object-Oriented view of the kernel and all of its services. This would elevate the operating system beyond the 30+ year old procedural model, into a more modern object-based approach.

  2. Network Transparency: The ORB can route method invocations to local or remote objects, all without explicit intervention from the user. This enables normal applications to work in a distributed manner without changes. For example ls and cp) are automatically forwarded to the correct machine giving us a transparent distributed file system almost for ``free'' (see figure 1).

    Figure 1: Distributed filesystem
    \begin{figure}\begin{center}
\epsfig{file=dfs.eps,height=6cm}\end{center}\end{figure}

  3. Object Services: New kernel services could be written in any language with ORB bindings, and then integrated into the Kernel. This allows device drivers to be written in perl, for example. Furthermore, these new services could be ``pervasively object-oriented'': represented both internally and externally as objects.

  4. User Space Services: With an in-kernel ORB, services that are traditionally provided by the kernel can be exported to user space. As easily as a userland process can invoke methods on an object that resides in kernel space, a kernel space client can invoke methods on an object that resides in user space. For example, a serial port driver could be written in user space, and the user could then dynamically change driver at will (to change from a wheel mouse to a tablet, for example). Another example of possible applications is a file system implemented as a user space object (see figure 2).

    Figure 2: Filesystem implemented in user space
    \begin{figure}\begin{center}
\epsfig{file=userfs.eps,height=7cm}\end{center}\end{figure}


next up previous
Next: ORB Design and Refactoring Up: KORBit: A Kernel Space Previous: Kernel