Tại sao `df` sử dụng tên miền Bi Bi làm chữ viết tắt cho byte?


8

Rõ ràng dflà đặt "i" sau chữ in hoa cho mỗi kích thước. Điều này có ý nghĩa đối với Kilobytes / Kibibytes, Gigabyte / Gibibytes và Mebibytes (nếu đó là những gì "Mi" là viết tắt của). Nhưng tại sao nó lại sử dụng "Bi" cho byte?

Ví dụ, một phần kết quả của tôi df -hlà:

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

1
Kết quả là df -Hgì? RTM- hđầu ra tùy chọn là cơ sở 2 và Hđầu ra tùy chọn là cơ sở 10.
fd0

Câu trả lời:


9

Đó là sự khác biệt giữa giá trị thập phân và tiền tố nhị phân . Trong trường hợp này, nó nói rằng bạn đang sử dụng 0 byte nhị phân.

Có gì khác biệt?

Sử dụng "Giga" làm ví dụ của chúng tôi, nó có nghĩa là 1000 3 của một cái gì đó (tức là Gigahertz).

Trong máy tính, nó đặt ra một vấn đề thú vị:

Một Gigabyte là 1000 3 byte. Tuy nhiên, một byte là 8 bit (nhị phân). Có nghĩa là về mặt kỹ thuật 1024 3 byte. Để giải thích cho điều này, chúng tôi sử dụng các ký hiệu khác nhau:

  • Giga là số thập phân (cơ sở 10)
  • Gibi là nhị phân (cơ sở 2)

Đầu ra cho bạn biết rằng nó đang sử dụng các đơn vị nhị phân.

Nếu bạn muốn nhận đầu ra trong "ký hiệu thập phân có thể đọc được của con người", hãy sử dụng chữ "H" viết hoa:

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

Cuối cùng, đó thực sự không phải là một quy ước của Apple, mà là từ BSD (đó là lệnh BSD). Bạn có thể tìm thêm thông tin trên trang man ( man df).


8
Tôi không hiểu làm thế nào điều này trả lời câu hỏi. OP làm rõ rằng họ biết sự khác biệt giữa 1GB1GiB. Câu hỏi là: sự khác biệt giữa 1Bivà là 1Bgì? Tại sao hai biểu tượng khác nhau?
Federico Poloni

5
"Một Gigabyte là 1000 ^ 3 byte. Tuy nhiên, một byte là 8 bit (nhị phân). Điều đó có nghĩa là về mặt kỹ thuật là 1024 ^ 3 byte." - Tôi không thấy cách một byte là 8 bit dẫn đến gigabyte có nghĩa là 1024 ^ 3 thay vì 1000 ^ 3 ...
marcelm

@marcelm Gigabyte = 1024 megabyte. Megabyte = 1024 kilobyte. Kilobyte = 1024 byte. 1024 = 2 ^ 10.
Dmitry Kudriavtsev

3
@marcelm Bạn nói đúng, đó không phải là trình tự. Bộ nhớ (RAM) luôn được đo bằng bội số sức mạnh của 2, do cách thức sản xuất chip. Không gian trên đĩa quay không nhất thiết, vì nó phụ thuộc vào diện tích bề mặt vật lý và mật độ bit, vì vậy các nhà sản xuất đĩa đã chọn sử dụng các mức chẵn 1000 để làm cho các số trên hộp của chúng trông đẹp hơn. "Gibi" và các tiền tố tương tự là một sáng tạo hồi tố để cố gắng phân biệt giữa chúng, nhưng rõ ràng chúng chỉ làm cho mọi thứ trở nên lộn xộn hơn.
BradC

1
Lý do thực sự tại sao tiền tố thập phân được sử dụng cho 2 ^ x số trong những ngày trước đó là: 2 ^ 10 ~ 10 ^ 3.
klanomath

5

Bi có nghĩa là bạn ở đơn vị 1024 0 byte, thay vì 1000 0 byte.

tức là chúng cùng một đơn vị, nhưng sẽ không có tiền tố lớn hơn có nghĩa là số mũ khác không. Có vẻ như dfchỉ là mô phạm, như một cách để thống nhất khi ở chế độ đơn vị sức mạnh 2.

Đây là một quy ước được tạo thành: không có đơn vị "Bi" theo số liệu hoặc chỉ có các tiền tố IEC 2 chữ cái kết thúc bằng "i", để sử dụng với số lượng bit hoặc byte. (ví dụ: Mi cho mebibytes hoặc mebibits.) Và không, bạn sẽ không bao giờ nói to điều đó một cách trớ trêu thay với khuôn mặt thẳng.

"iB" có thể có ý nghĩa hơn (byte nhị phân không có tiền tố), nhưng nó cũng không phải là một điều.


2
Vậy thì không nên là "iB"? ;)
Cai

1024 ^ 0 chính xác bằng 1000 ^ 0 (= 1) nên không giải thích được. Không có thuật ngữ / ký hiệu để chỉ byte nhị phân (vì byte vốn ngụ ý nhị phân) nên tôi đã sử dụng giga làm ví dụ. Thậm chí còn khó hơn khi chỉ ra 0 vì 0 ở dạng nhị phân và 0 ở số thập phân là bằng nhau và có thể gây nhầm lẫn.
Allan

@Cai: Tôi đã kiểm tra, các tiền tố IEC luôn bao gồm "i" với tiền tố và không đề cập đến đơn vị cơ sở "iB". Xem câu trả lời cập nhật. Nhưng có, đồng ý rằng sẽ phù hợp hơn. Tất nhiên, trong bối cảnh này ( dfđầu ra FreeBSD / OS X ), đó là ý nghĩa của nó.
Peter Cordes

1
Có lẽ iB là byte tưởng tượng ?
Federico Poloni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.