The system is split into these major parts:

daemon

  The moo daemon (mood) manages method sandboxing, uid stacks, and method
  privlidge elevation. 
  
  The moo daemon knows about a minimum of object oriented stuff, as it is
  necessary to implement the permissions model, but it does not bother with
  things like inheritence and so on.

proxy library

  The proxy library (libmooproxy) is a preloadable library which translates
  standard unix system calls (open, unlink, and so on) into calls to the
  moo daemon.

  The proxy library currently knows nothing much about the overlying object
  oriented stuff. It is just a wrapper that forwards the appropriate calls
  to the moo daemon.

bindings

  The design allows for any number of language moo bindings. These bindings
  typically translate between higher-level object-oriented operations (like
  object->getfield) and unix system calls. This is where all the core
  object oriented infrastructure resides.

methods

  Moo methods may be implemented in any language, and need not use a
  language binding, although most will.
