Nasıl çalışır
Depolama birimleri iki farklı şekilde sayılır ve ikisi de doğrudur. Disk üreticilerinin ve Uluslararası Birim Sistemi'nin kullandığı onluk sistem her ön ekte 1000 ile çarpar: bir kB 1000 bayt, bir MB bir milyon, bir TB ise bir trilyon bayttır. Bilgisayarlarla birlikte doğan ikilik sistem ise 1024 ile çarpar, çünkü bellek ve veri yolları ikinin kuvvetleriyle adreslenir.
Sorun şu ki iki sistem onlarca yıl boyunca aynı adları kullandı. Windows Gezgini "GB" yazdığında aslında gibibayt hesaplıyor, yani üç kez 1024'e bölüyor. Bu yüzden tam olarak bir trilyon bayt içeren 1 TB'lık bir disk ekranda 931,32 GB olarak görünür: eksilen bir şey yok, yalnızca ölçme kuralı değişti. 1998'den beri IEC 80000-13 standardı bu belirsizliği KiB, MiB, GiB ve TiB ikilik ön ekleriyle çözüyor.
Bu araç bir kapasiteyi aynı anda üç aileye de —onluk, ikilik ve bit— dönüştürür; tam bayt sayısını, üreticinin bildirdiği rakamı ve işletim sisteminin göstereceği rakamı, aralarındaki yüzde farkıyla birlikte verir. Tüm hesaplama tarayıcıda yapılır.
Örnekler
1 TB931,32 GBDiskte tam olarak kutunun vaat ettiği kadar, 1.000.000.000.000 bayt var. Sistem bunları üç kez 1024'e böler ve 931,32 GB gösterir; bu aslında 931,32 GiB'dir. Ekranda neredeyse 69 GB eksik gibi görünür; diskte tek bir bayt bile eksik değildir.1 GiB1073741824 BBir gibibayt 2^30 bayttır. Onluk bir gigabayt ise 1.000.000.000; yani ikilik olan %7,37 daha büyüktür. "Bir giga" derken kastettiğinizle her programın anladığı şey arasındaki fark tam olarak budur.4 TB3,64 TiBÖn ek büyüdükçe iki sistem birbirinden daha çok uzaklaşır: kilo'da %2,34, giga'da %6,87 ve tera'da %9,05. Bu yüzden "disk küçük geldi" hissi tam da büyük disklerde artar.100 Mbit12,5 MBAğ bağlantıları bitle, depolama ise baytla ölçülür. 100 Mbit/s'lik bir bağlantı saniyede en fazla 12,5 MB indirir, çünkü her bayt 8 bittir. Bu tek hesap, internet sağlayıcılarına yapılan şikâyetlerin yarısını açıklar.Kullanım senaryoları
- 1 TB'lık bir diskin ya da 64 GB'lık bir belleğin neden ambalajda yazandan daha az kapasite gösterdiğini anlamak.
- Bir API'nin, bir günlüğün ya da ls -l komutunun döndürdüğü bayt cinsinden boyutu okunabilir bir şeye çevirmek.
- Farklı ölçütlerle ölçen iki araç arasında bir yedeğin ya da bir imajın boyutunu karşılaştırmak.
- Belgeler MiB, arayüz MB konuşurken kotaları, birimleri ya da yükleme sınırlarını boyutlandırmak.
- Bir bağlantının Mbit/s cinsinden hızını gerçek indirme hızına, yani MB/s'ye çevirmek.
- Bir müşteriye, satın aldığı diskin vaat edilenden az yer içermediğini rakamlarla açıklamak.
Sık sorulan sorular
1 TB'lık disk aldım ama 931 GB görüyorum, kandırıldım mı?
Hayır. Diskte 1.000.000.000.000 bayt var ve bütün üreticilerin kullandığı onluk sistemde 1 TB tam olarak budur. Windows aynı baytları alıp üç kez 1024'e böler, 931,32 sonucunu bulur ve bunu "GiB" yerine "GB" diye etiketler. Bu bir etiket sorunudur, kapasite sorunu değil: baytların hepsi yerinde. Gerçekten kaybolan şey ayrıdır: biçimlendirme sırasında dosya sisteminin ayırdığı yer.
GB ile GiB arasındaki fark nedir?
Bir GB 1.000.000.000 bayttır (10^9); bir GiB ise 1.073.741.824 (2^30). Gibibayt %7,37 daha büyüktür. Aynı oran her düzeyde yinelenir: kB'ye karşı KiB, MB'ye karşı MiB, TB'ye karşı TiB. İkilik simgelerin ortasında bir "i" bulunur ve kibi, mebi, gibi, tebi diye okunur.
Bütün işletim sistemleri aynı şeyi mi gösterir?
Hayır ve bu kafa karışıklığını artırır. Windows 1024'ün kuvvetleriyle hesaplar ama sonucu GB ve TB diye etiketler; bu yüzden 1 TB'lık disk için 931 GB gösterir. macOS 2009'dan beri onluk ölçer, dolayısıyla aynı disk 1 TB olarak görünür. Linux'ta araca bağlıdır: df -h ve ls -lh 1024, df -H ve ls -l --si 1000 kullanır; birçok yardımcı program da yeri geldiğinde artık GiB yazar. Disk hiç değişmedi; değişen onu ölçendir.
RAM neden kutuda yazanla örtüşüyor?
Çünkü bellek ikinin kuvvetlerine göre üretilir ve adreslenir: "16 GB"lık bir modül aslında 16 GiB, yani 17.179.869.184 bayt içerir. İşletim sistemi de ikilik saydığı için iki sayı örtüşür ve kimse bir şey fark etmez. Disklerde ise tersi olur: üretici onluk, sistem ikilik sayar ve fark hemen göze çarpar.
Fark ön eke göre ne kadar büyür?
Her düzeyde %2,4 birikir. Sistemin gösterdiği sayı kilo'da %2,34, mega'da %4,63, giga'da %6,87, tera'da %9,05, peta'da %11,18 ve eksa'da %13,26 daha küçüktür. Bu yüzden birkaç kB'lık bir dosyada fark hissedilmez; birkaç petabaytlık bir dizide ise yüzlerce terabaytlık bir beklenti farkı eder.
Mbit ile MB aynı şey mi?
Hayır, arada sekiz kat fark var. Ağ bağlantıları saniyedeki bitle, depolama ise baytla ölçülür ve bir bayt 8 bittir. 300 Mbit/s'lik bir bağlantı, protokol başlıkları düşülmeden önce en fazla 37,5 MB/s indirme verir. Üstelik ağ ön ekleri her zaman onluktur: bir Mbit bir milyon bittir, asla 1.048.576 değil.
SSD'mde neden daha da az yer var?
Onluk ile ikilik arasındaki farka iki şey daha eklenir. Birincisi aşırı tedarik (over-provisioning): denetleyici, yıpranmış blokları değiştirmek ve yazmayı hızlandırmak için flash belleğin kullanılamayan bir bölümünü kendine ayırır. İkincisi dosya sistemidir; biçimlendirir biçimlendirmez tablolar, günlük ve üstveri için yer harcar. İkisi de arıza değildir: sürücünün çalışmasının ve uzun ömürlü olmasının bedelidir.
Peki belgelerde hangi birimi kullanmak gerekir?
Kuşkuya yer bırakmayanı. Değer 1024'ün kuvvetleriyle hesaplanıyorsa MiB ya da GiB yaz; 1000'in kuvvetleriyle hesaplanıyorsa MB ya da GB yaz. Bir API'de ya da yapılandırma dosyasında en güvenlisi doğrudan bayt sayısını vermek ve nasıl gösterileceğine arayüzün karar vermesine izin vermektir. Bu, iki aracın aynı dosya için neden farklı rakamlar bildirdiğine dair saatlerce tartışmayı önleyen tek satırlık bir koddur.