UUID (universally unique identifier - evrensel benzersiz tanımlayıcı), bir nesnenin farklı sistemler arasında benzersiz bir şekilde tanımlanmasını sağlayan bir kimliktir. UUID, genellikle bir diskin (disk, USB bellek gibi) bölümlerini veya bir programın kurulu olduğu klasörü tanımlamak için kullanılır.
UUID, 128 bit uzunluğunda bir sayıdır ve genellikle 32 karakterlik bir dizi şeklinde gösterilir. Örneğin, a5a5b816-7b6f-11e9-be4a-2a86e4085a59 gibi bir dizidir. UUID, nerede ve hangi sistemde olursa olsun bir nesnenin eşsiz bir şekilde tanımlanmasını sağlar. Bu sayede, sistemler arasında nesnelerin tanımlanmasında çakışmalar önlenir.
UUID Sürümleri
UUID, 5 farklı sürümü bulunmaktadır. Bu sürümlerin her birinin, birbirinden farklı bir yapısı ve özellikleri vardır. UUID sürümleri şunlardır:
-
UUID Sürüm 1: Bu sürüm, MAC adresleri ve zaman damgaları kullanılarak oluşturulur. Bu sürüm, bir MAC adresi ve bir zaman damgasının birleşiminden oluşur. Bu sürüm, birçok sistemde kullanılabilir ancak MAC adreslerinin özel bir şekilde üretilmesi nedeniyle güvenlik açısından risk oluşturabilir.
-
UUID Sürüm 2: Bu sürüm, Domain Name Service (DNS) ve Person Object (PO) kimlikleri kullanılarak oluşturulur. Bu sürüm, bir DNS veya PO kimliği ile bir zaman damgasının birleşiminden oluşur. Bu sürüm, genellikle organizasyonlar için kullanılır.
-
UUID Sürüm 3: Bu sürüm, bir namespace ve bir dizinin birleşiminden oluşur. Bu sürüm, bir namespace ve bir dizinin hash değerlerinin birleşiminden oluşur. Bu sürüm, veri hashleme işlemlerinde kullanılır.
-
UUID Sürüm 4: Bu sürüm, rastgele oluşturulan bir dizi kullanılarak oluşturulur. Bu sürüm, 128 bit uzunluğunda rastgele üretilen bir diziden oluşur. Bu sürüm, genellikle rastgele veri
- UUID Sürüm 5, bir namespace ve bir dizinin birleşiminden oluşur. Bu sürüm, bir namespace ve bir dizinin hash değerlerinin birleşiminden oluşur. Bu sürüm, veri hashleme işlemlerinde kullanılır. Sürüm 5, UUID Sürüm 3 ile benzer şekilde çalışır ancak daha gelişmiş bir hash fonksiyonu kullanır. Bu sayede, UUID Sürüm 5, daha güvenilir ve daha az hatalı bir şekilde çalışır.
UUID Zaman Damgaları
UUID Sürüm 1 ve UUID Sürüm 2, zaman damgası birleşimi kullanılarak oluşturulur. Bu sürümlerde, zaman damgası, bir zaman dilimine (timestamp) göre oluşturulur ve UUID'nin ilk 60 bit'ini oluşturur. Zaman damgası, Coordinated Universal Time (UTC) dilimi kullanılarak oluşturulur ve milisaniye cinsinden ifade edilir. Zaman damgası birleşimi, aşağıdaki şekildedir:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| time_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| time_mid | time_hi_and_version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|clk_seq_hi_res | clk_seq_low | node (0-1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| node (2-5) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
time_low: 32 bit, UUID'nin ilk 32 bit'ini oluşturur.
time_mid: 16 bit, UUID'nin ikinci 16 bit'ini oluşturur.
time_hi_and_version: 16 bit, UUID'nin üçüncü 16 bit'ini oluşturur ve aynı zamanda UUID'nin sürümünü belirtir.
clk_seq_hi_res: 8 bit, zaman damgasının daha az hassas bir şekilde ifade edilmesini sağlar.
clk_seq_low: 8 bit, zaman damgasının daha az hassas bir şekilde ifade edilmesini sağlar. node: 48 bit, MAC adresini ifade eder (UUID Sürüm 1) veya PO kimliğini ifade eder (UUID Sürüm 2).
UUID, genellikle blkid komutu ile sistemde bulunan bölümlerin veya bir programın kurulu olduğu klasörlerin tanımlanmasında kullanılır. Bu komut, sistemde bulunan bölümlerin UUID'sini ve bu bölümlerin hangi dosya sistemiyle bölündüğünü gösterir. Ayrıca, sistemde bulunan bir bölümün UUID'sini değiştirme işlemini de blkid komutu ile gerçekleştirebilirsiniz. Bu işlem, bir bölümün UUID'sini değiştirirken dikkat edilmesi gereken önemli bir noktadır. Özellikle, bir bölümün UUID'si değiştirildiğinde, bu bölümle ilgili olarak kullanılan tüm bağlantıların ve yapılandırmaların da değiştirilmesi gerekir.
UUID, genellikle Linux ve Unix gibi işletim sistemlerinde kullanılır. Ancak, Windows ve diğer işletim sistemlerinde de kullanılmaktadır. UUID, sistemler arasında dosya paylaşımını ve veri yedekleme işlemlerini gerçekleştirmede de kullanılır. Örneğin, bir disk bölümünün UUID'si değiştirildiğinde, bu bölümle ilgili olarak kullanılan tüm bağlantıların ve yapılandırmaların da değiştirilmesi gerekir. Örneğin, bir disk bölümüne yönelik olarak oluşturulmuş bir bağlantının (link) UUID'si değiştirilirse, bu bağlantı artık doğru bir şekilde çalışmayacaktır. Bu nedenle, UUID değiştirme işlemi özellikle dikkatli bir şekilde yapılmalıdır.
UUID, aynı zamanda birçok dosya sisteminde de kullanılır. Örneğin, ext4, btrfs gibi dosya sistemlerinde de UUID kullanılır. Bu dosya sistemlerinde, bir dosya veya klasörün UUID'si değiştirilebilir. Ancak, bu işlem de dikkatli bir şekilde yapılmalıdır, çünkü dosya sistemi yapısının bozulmasına neden olabilir.
UUID, sistemler arasında dosya paylaşımını ve veri yedekleme işlemlerini gerçekleştirmede de kullanılır. Örneğin, bir disk bölümünün UUID'sini kullanarak bu bölümün yedeklenmesi veya başka bir sisteme kopyalanması sırasında UUID kullanılır. Bu sayede, yedeklenen veya kopyalanan bölümün aynı sistemde bulunan başka bir bölümle çakışmaması sağlanır. Aynı zamanda, yedeklenen veya kopyalanan bölümün aynı sistemde bulunan başka bir bölümle çakışması durumunda da UUID sayesinde bu bölümlerin birbirlerinden ayırt edilebilir. Bu sayede, yedeklenen veya kopyalanan bölümlerin doğru bir şekilde kullanılabilmesi sağlanır.