# Domain/OS uid_$t

Unique Identifiers, or UIDs, are the fundamental object in Apollo Domain/OS. They are composed of a timestamp and a machine (node) number, and therefore every time you call uid_$gen, you get a guaranteed unique object. Domain uses these to identify everything from filesystem objects to processes to object types and traits. They are defined in `<apollo/base.h>`.

     31             16 15             0
    +----------------------------------+
    |CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC|    .clock
    +--------+--------+----------------+
    |iiii----|----NNNN|NNNNNNNNNNNNNNNN|    .node
    +--------+--------+----------------+

    C..C - Top 32-bits of clock (4 mSec units)

    iiii - A counter if more than one UID is generated
           in one four-millisecond interval

    N..N - Node ID