Mengapa `df` menggunakan" Bi "sebagai singkatan untuk byte?

8

Rupanya dfmenempatkan "i" setelah huruf kapital untuk setiap ukuran. Ini masuk akal untuk Kilobytes / Kibibytes, Gigabytes / Gibibytes, dan Mebibytes (jika itu yang dimaksud dengan "Mi"). Tetapi mengapa menggunakan "Bi" untuk byte?

Sebagai contoh, bagian dari hasil saya df -hadalah:

map auto_home           0Bi    0Bi    0Bi   100%       0          0  100%   /home
Kiochi
sumber
1
Apa hasil df -H? RTM- hkeluaran opsi adalah basis 2 dan Houtput opsi adalah basis 10.
fd0

Jawaban:

9

Ini perbedaan antara nilai desimal dan awalan biner . Dalam hal ini, ia mengatakan Anda menggunakan 0 byte biner.

Apa bedanya?

Menggunakan "Giga" sebagai contoh kita, itu berarti 1000 3 dari sesuatu (yaitu Gigahertz).

Di komputer itu menimbulkan masalah yang menarik:

Gigabyte adalah 1000 3 byte. Namun byte adalah 8 (biner) bit. Yang berarti secara teknis 1024 3 byte. Untuk menjelaskan hal ini, kami menggunakan notasi yang berbeda:

  • Giga adalah desimal (basis 10)
  • Gibi adalah biner (basis 2)

Output memberitahu Anda bahwa itu menggunakan unit biner.

Jika Anda ingin mendapatkan output dalam "notasi desimal yang dapat dibaca manusia", gunakan huruf kapital "H":

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

Akhirnya, ini sebenarnya bukan konvensi Apple, tetapi satu dari BSD (ini adalah perintah BSD). Anda dapat menemukan lebih banyak info di halaman manual ( man df).

Allan
sumber
8
Saya tidak mengerti bagaimana ini menjawab pertanyaan. OP menjelaskan bahwa mereka tahu perbedaan antara 1GBdan 1GiB. Pertanyaannya adalah: apa perbedaan antara 1Bidan 1B? Mengapa dua simbol berbeda?
Federico Poloni
5
"Gigabyte adalah 1000 ^ 3 byte. Namun satu byte adalah 8 (biner) bit. Yang berarti secara teknis 1024 ^ 3 byte." - Saya tidak melihat bagaimana satu byte menjadi 8 bit mengarah ke gigabyte yang berarti 1024 ^ 3 bukannya 1000 ^ 3 ...
marcelm
@marcelm Gigabyte = 1024 megabyte. Megabyte = 1024 kilobyte. Kilobyte = 1024 byte. 1024 = 2 ^ 10.
Dmitry Kudriavtsev
3
@marcelm Anda benar, itu non-sequitur. Memori (RAM) selalu diukur sebagai kelipatan kekuatan 2, karena cara pembuatan chip. Ruang pada cakram pemintalan belum tentu, karena tergantung pada luas permukaan fisik dan kepadatan bit, sehingga pembuat disk memilih untuk menggunakan kekuatan genap 1000 untuk membuat angka-angka pada kotak mereka terlihat lebih baik. "Gibi" dan awalan serupa adalah ciptaan retroaktif untuk mencoba membedakan di antara mereka, tetapi jelas mereka hanya membuat segalanya lebih berantakan.
BradC
1
Alasan sebenarnya mengapa awalan desimal digunakan untuk 2 ^ x angka pada hari-hari sebelumnya adalah: 2 ^ 10 ~ 10 ^ 3.
klanomath
5

Bi berarti Anda dalam satuan 1024 0 byte, bukan 1000 0 byte.

yaitu mereka adalah unit yang sama, tetapi tidak dengan awalan yang lebih besar yang berarti eksponen tidak nol. Sepertinya dfhanya menjadi orang yang bertele-tele, sebagai cara untuk konsisten ketika dalam mode power-of-2 unit.

Ini adalah konvensi buatan: tidak ada satuan metrik atau IEC "Bi", hanya awalan 2 huruf IEC yang diakhiri dengan "i", untuk digunakan dengan jumlah bit atau byte. (mis. Mi untuk mebibytes atau mebibits.) Dan tidak, Anda tidak diharapkan untuk mengatakan itu dengan lantang ironis dengan wajah lurus.

"iB" mungkin lebih masuk akal (byte biner tanpa awalan), tetapi juga bukan sesuatu.

Peter Cordes
sumber
2
Maka bukankah seharusnya "iB"? ;)
Cai
1024 ^ 0 persis sama dengan 1000 ^ 0 (= 1) sehingga tidak menjelaskannya. Tidak ada istilah / simbol untuk menunjukkan byte biner (karena byte secara inheren menyiratkan biner) jadi saya menggunakan giga sebagai contoh. Ini bahkan lebih sulit untuk menunjukkan 0 karena 0 dalam biner dan 0 dalam desimal sama dan dapat membingungkan.
Allan
@Cai: Saya telah memeriksa, awalan IEC selalu menyertakan "i" dengan awalan, dan tidak menyebutkan unit dasar "iB". Lihat jawaban yang diperbarui. Tapi ya, setuju itu akan lebih konsisten. Tentu saja, dalam konteks ini ( dfkeluaran FreeBSD / OS X ), itulah artinya.
Peter Cordes
1
Mungkin iB adalah byte imajiner ?
Federico Poloni