[unios] A Component Kernel Model

OJ Hickman hickman1@peak.org
Mon, 28 Dec 1998 22:45:15 -0800


From: OJ Hickman <hickman1@peak.org>

A Component Kernel Model
By Omer James Hickman - December 28, 1998

The basic function of the Component Kernel is to track
component objects and the dependencies between objects.
Objects are 1) Hardware Resource Block (HRB) - all hardware
resources associated with a physical device (IO, ints, DMA),
2) Software Objects - actual program and library code (code
segment, data segment, IPC ports, direct call relocation
data). Driver software objects aquire HRB objects and then
provide abstractions to the hardware independent objects.

So the Component Kernel maintains databases of resources
used by each device, all service objects available to the
system, provide basic thread and memory management and cull
unused objects. The HRB objects would be defined by simple
configuration files read by the kernel.

System diagram:

User Level:    +--------
               |   ****************
               |   * User Program *>*****
               |   ****************     *
Service Level: +--------  |    |        *
               |   ******************** *
               | *<* Service Object 1 * *
               | * ******************** *
               | *                      *
               | * ******************** *
               | * * Service Object 2 ***
               | * ********************
Driver Level:  +-*------  |   |       | (Hardware dependent)
               | * ***************** ************
               | *** Driver Object * * Driver 2 *
               |   ***************** ************
Hardware Level:+-----    !            !
               |   ************    ************
               |   * Device 1 *    * Device 2 *
               |   ************    ************
               +-----


Ledger: *** = IPC; | = interobject calls; ! = direct
hardware manipulation (memory read/write, IO).

Best as I could do in ASCII :)


Threads start in and work from a 'home' software object.
They can, via synchronized calling, call into other objects
and have access to both the home and far objects
datasegments at the same time. Libraries are just objects
that have no threads in them or datasegment.

Software Object interaction takes place by interobject
calling and classic IPC systems in the kernel.



I know this is much like what has been discussed, I hope
this provides an idea for a simple workable OO kernel
implamention.
-- 
_______________________________________________
"Imagination is more important than knowledge."
- Albert Einstein

Omer James Hickman - hickman1@peak.org - ojh@hotmail.com
http://members.tripod.com/~OJ_Hickman - updated 12/28/98

------------------------------------------------------------------------
To unsubscribe from this mailing list, or to change your subscription
to digest, go to the ONElist web site, at http://www.onelist.com and
select the User Center link from the menu bar on the left.
------------------------------------------------------------------------
UniOS Group
http://members.xoom.com/unios