# Domain/OS Types

In Domain, the files in the networked filesystem aren't merely files, but objects. This filesystem was the first commercial object-store. Each object is an instance of a type. A set of operations that implement a certain behaviour is a trait; types may support one or more traits.

There are a handful of system traits, divided between those that are built-in to the system and those that are separately loaded. Unfortunately, Apollo never released information on how to write traits, so there are few user-written ones floating around.

I'm working on writing a "how to write a trait" page.

## Built-in traits

io
  Standard file-like input-output operations.
io_oc
  Standard file-like open and create.
io_xoc
  Extended open and create, for object with internal structure.
ios_dir
  Directory operations.
sio
  Serial port operations.
prot
  Object protection operations, regarding owner, groups, permissions, etc.
attr
  Object attributes, like size, timestamps, etc.
geo
  Geometry?
gpr
  Graphics primitives?
gsr
  More graphics something?
ipmac
  ?
socket
  A generalization of BSD sockets.
ws
  ?
vstreams
  System V STREAMS.
wm
  Window manager?

## Additional traits

xdl
  Something to do with X-windows displays
xpager
  External (user-space) pager daemon (à la Mach?)