lkml.org 
[lkml]   [1996]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: SCSI device numbering (was: Re: Ideas for v2.1
  Date: 	Wed, 3 Jul 1996 23:00:24 -0400
From: "Theodore Y. Ts'o" <tytso@mit.edu>

Stephen and I have been planning to add an 128-bit universally unique ID
(UUID) in the ext2 superblock to help automate this process. It's also
useful for his "supermount" for detecting when a removeable disk has
really been changed.

How do you generally a globally unique UUID? Simple. Generate a 128
bit UUID as follows:

32 bits tv_sec of volume creation
32 bits tv_usec of volume creation
32 bits IP address of host which created the volume,
or a random number if not available
32 bits random number

The basic idea of globally unique ID's is stolen from the DCE RPC, and its
predecessor, the Apollo RPC. It's a nice way of picking a universally
unqiue ID in a decentralized manner; while there's a chance you might
have a collision, it's so small as to be virtually non-existent.

Excellent! And even before UUID's, Apollos used 64 bit UIDs internally for
virtually everything. Essentially all interesting objects, be they ephemeral
or persistent, were identified by their UID. If I recall correctly, the
original UID had 20 or so bits of node ID (guaranteed unique), 40 bits of
timestamp, and another 4 bits to avoid collisions. They generalized this to
UUIDs somewhat later when Apollo RPC was created. Before Apollo made serious
efforts at Unix compatibility in Domain/OS, it was even possible to have an
uncatalogued file system object that could only be accessed by its UID.

Leonard


\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.052 / U:23.368 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site