“Df” neden “Bi” yi baytların kısaltması olarak kullanıyor?


8

Görünüşe göre df Her boyut için büyük harflerden sonra "ben" koyuyor. Bu Kilobytes / Kibibytes, Gigabytes / Gibibytes ve Mebibytes için mantıklı geliyor (eğer "Mi" nin anlamı buysa). Peki neden baytlar için "Bi" yi kullansın?

Örneğin, sonucumun bir parçası df -h geçerli:

map auto_home           0Bi    0Bi    0Bi   100%       0          0  100%   /home

1
Sonuçları nedir df -H? RTM h seçenek çıkışı taban 2 ve H seçenek çıkışı taban 10'dur.
fd0

Yanıtlar:


9

Ondalık değer ile sayı arasındaki fark ikili önek . Bu durumda, 0 ikili bayt kullandığınızı söylüyor.

Fark ne?

Örnek olarak "Giga" kullanmak, 1000 demektir. 3 bir şeyden (yani Gigahertz).

Bilgisayarlarda ilginç bir problem ortaya çıkarır:

Bir Gigabyte 1000 3 bayt. Ancak bir bayt 8 (ikili) bit. Bunun anlamı teknik olarak 1024 3 bayt. Bunu hesaba katmak için farklı gösterim kullanıyoruz:

  • Giga ondalıktir (taban 10)
  • Gibi ikilidir (temel 2)

Çıktı size ikili birimler kullandığını söylüyor.

Çıktıyı "okunabilir ondalık gösterimi" olarak almak istiyorsanız, büyük harf "H" kullanın:

$ df -H
/dev/disk2      1.1T   413G   706G    37% 100935848 172431606   37%   
map auto_home     0B     0B     0B   100%         0         0  100%   /home

Son olarak, aslında bir Apple konvansiyonu değil, BSD'den bir (bu bir BSD komutu). Daha fazla bilgiyi man sayfasında bulabilirsiniz ( man df ).


8
Bunun soruyu nasıl cevapladığını anlamıyorum. OP aralarındaki farkı bildiklerini açıkça ortaya koyuyor 1GB ve 1GiB. Soru şudur: arasındaki fark nedir 1Bi ve 1B? Neden iki farklı sembol?
Federico Poloni

5
"Bir Gigabyte 1000 ^ 3 bayt. Ancak bir bayt 8 (ikili) bit. Bu da teknik olarak 1024 ^ 3 bayt olduğu anlamına geliyor." - 8 bitlik bir baytın 1000 ^ 3 yerine 1024 ^ 3 anlamında gigabayt'a neden olduğunu anlamıyorum ...
marcelm

@ marcelm Gigabyte = 1024 megabayt. Megabayt = 1024 kilobayt. Kilobayt = 1024 bayt. 1024 = 2 ^ 10.
Dmitry Kudriavtsev

3
@ marcelm Haklısın, bu bir sekreter değil. Bellek (RAM), yongaların nasıl üretildiğinden dolayı her zaman 2 gücün katları olarak ölçülmüştür. Dönen disklerdeki alan, zorunlu değildir, çünkü fiziksel yüzey alanına ve bit yoğunluğuna bağlıdır, bu nedenle disk üreticileri kutularındaki sayıları daha iyi göstermek için 1000'in bile güçlerini kullanmayı seçtiler. "Gibi" ve benzeri önekler aralarında ayrım yapmayı deneyen geçmişe dönük bir yaratımdı, ama açıkça sadece işleri daha da karmaşıklaştırıyorlardı.
BradC

1
Ondalık öneki önceki günlerde 2 ^ x sayıları için kullanmanın asıl nedeni şudur: 2 ^ 10 ~ 10 ^ 3.
klanomath

5

Bi, 1024 birimlerinde olduğunuz anlamına gelir 0 1000 yerine bayt 0 bayt.

yani, aynı ünitedirler, fakat sıfır olmayan üsler anlamına gelen daha büyük öneklerle olmazlardı. Benziyor df sadece 2 ünite modundayken tutarlı olmanın bir yolu olarak, bilgiçlik niteliğinde.

Bu bir düzenleme sözleşmesidir: metrik veya IEC "Bi" birimi yoktur, sadece 2 harfli IEC önekleri bu, bit veya bayt miktarları ile kullanım için "i" ile biter. (örneğin, mebibitler veya mebbitler için Mi.) Ve hayır, bunu asla ironik bir şekilde düz bir yüzle yüksek sesle söylemeniz beklenmez.

"iB" daha anlamlı olabilir (ön eki olmayan ikili baytlar), ancak bu da bir şey değil.


2
Öyleyse "IB" olmamalı mı? ;)
Cai

1024 ^ 0, tam olarak 1000 ^ 0'a (= 1) eşittir, bu nedenle açıklamaz. İkili baytı belirten bir terim / simge yok (çünkü bayt doğal olarak ikilik anlamına gelir) bu yüzden örnek olarak giga kullandım. 0 belirtmek daha da zor çünkü ikilide 0 ve ondalıkta 0 eşit ve kafa karıştırıcı olabilir.
Allan

@Cai: Kontrol ettim, IEC önekleri her zaman önekle birlikte "i" yi içeriyor ve "iB" ana biriminden bahsetmiyor. Güncellenmiş cevaba bakınız. Ancak evet, bunun daha tutarlı olacağı konusunda anlaştılar. Tabi bu bağlamda (FreeBSD / OS X df çıktı), bunun anlamı.
Peter Cordes

1
Belki de hayali bayt?
Federico Poloni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.