An identification number, theoretically created uniquely. That is, theoretically, no two GUIDs should be the same. Naturally, with a fixed length, this is not possible, since the identifier will eventually overflow. The method by which a GUID is formed depends upon the library used.

For instance, in Microsoft OSes, the GUID is created as a 128-bit number by the operating system and thus the OS acts as the mediator, doling out GUIDs and guaranteeing their uniqueness on that machine. This is done based upon the hardware address of an ethernet card in the machine or, if none is present, another way. Additionally, the date, time, a counter, and some more stuff. (see http://msdn.microsoft.com/library/books/inole/S10E8.HTM for more info) The idea behind this is that each hardware address should be unique. Microsoft makes extensive use of GUIDs in Windows.

There was much concern a while back because Microsoft Windows 98 created each user with a GUID that was sent to Microsoft when the OS was registered. A fix was made available in response to the public uprising. Additionally, there was much concern because Microsoft Office documents also were found to contain user-linkable GUIDs. Again, in response to public uprising, Microsoft made a fix and program to prevent GUIDs from being created and to remove GUIDs from existing documents.

GUIDs have actually been around for a while and are used in a variety of applications, especially in RPCs, where they are known as UUIDs.