Some of mooix's features (and buzzwords) include:

* Methods can be written in _any_ language.

  Because mooix methods are regular unix programs, any program written in
  any language can be used as a mooix method. Write methods in C for speed,
  take advantage of perl's text processing power, or python's (or ruby's!)
  OO goodness. Or even write something in shell script, just 'cause you
  can. No more struggling with a crippled moo-specific language.

* Flexible user authentication, and login via ssh, telnet, etc.

  Since mooix is (normally) logged into when a user logs into the unix
  system that hosts it, mooix user authentication can be based on PAM, NIS,
  or whatever other technology you like. And the user can log in using ssh,
  telnet, or whatever other remote login method you want to install. Mooix
  also supports logins from MUD clients such as TinyFugue, and includes MCP
  support.

* Multiple sessions per user.

  Have you ever wanted to have more than one window open on a moo, each
  logged in as the same user? Mooix makes it easy. Log in from work without
  logging out from home (just don't let the boss catch you..).

* Natural Language Processing.

  Mooix processes plain English to figure out what you mean. There's no
  need to talk to it in stilted zork-ese ("get lamp"), when you can say 
  "Pick up the lamp and light it, then enter the cave". (You can still use
  the short forms if you prefer.)

* Use your favorite unix tools in the moo.

  Programmers can write programs while logged into the moo, using a
  favorite editor. The moo makes use of other unix tools like pagers, as
  well. It even prompts using readline, with tab completion.

* Hierarchical object-oriented database.

  Surprise! This is just the regular unix filesystem; a mooix object is a
  special directory, a method is a program in a directory, etc. This makes
  for easy object maintanance and administration using your favorite file
  managing tools.

* Method sandboxing.

  Each method runs in its own sandbox, so no method can interfere with any
  other.

* Enhanced permissions system.

  Mooix extends the traditional unix file permissions system with an
  object oriented twist. The added semantics eliminate the need for any
  set-uid methods, or world-writable files. They make it easy to write an
  object and let anyone fiddle with it, without much worry about them
  tricking its methods into doing something you did not intend.

* Upgradability.

  Since mooix uses the unix filesystem as its object database, and because
  of a special object splitting method used to partition the core moo
  objects between immutable objects in /usr and locally-changeable objects
  in /var, it is possible, and rather easy to upgrade a moo database
  without losing your local changes.

* Pre-emptive multitasking environment.

  Since mooix methods run as regular unix processes, a bunch of them can be
  running at one time. With no messing with threads, and no worries about 
  an expensive operation locking up everyone's moo sesion until it finishes.

* Scalability.

  Unlike some moos, mooix supports an effectively unlimited number of
  objects of any size (just add disk space). Mooix requires about five
  megabytes of memory per user logged in, and can use as much memory as
  your OS and hardware support. Mooix is inherently parallelized and thus
  scalable on SMP machines.

* Online debuggering.

  Debug objects right inside the moo. Includes comprehansive tracing,
  plus breakpoints and more.

* Funky daemon name.

   What other system can boast of a daemon named "mood"?


Mooix has the following noteworthy mis-feature:

- Anyone who is allowed to add code to the moo has a shell account.

  That's right, because mooix methods run as regular unix processes, if
  you're allowed to write a method, you're not much more than one '/bin/sh'
  away from an shell (unprivledged) on the system. There are technologies
  like User Mode Linux (and the virtual server patch
  http://www.solucorp.qc.ca/miscprj/s_context.hc) that we hope will
  alleviate this problem (and throwing a spare machine at it works pretty
  well too), but for now only trusted people should be allowed to add code
  to your moo. So think hard before installing mooix on your system, and
  think harder before giving anyone a programmer account.
