本節書摘來自異步社群《unix/linux 系統管理技術手冊(第四版)》一書中的第1章,第1.8節,作者:【美】evi nemeth , garth snyder , trent r.hein , ben whaley著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
unix/linux 系統管理技術手冊(第四版)
像kilo-(千)、mega-(兆)和giga-(吉)這樣的公制字首都定義為10的幂:一百萬是1,000,000。但是,計算機的類型定義長期以來一直借用這些字首,但卻用它們代表2的幂。例如,一兆記憶體實際是220,即1,048,576位元組。這種借用的機關甚至混入了正式标準,像jedec固态技術協會的标準100b.01,該标準認定這些字首表示2的幂(雖然有些質疑)。
為了恢複清楚的含義,國際電工委員會(international electrotechnical commission,iec)規定了一組數字字首(分别是kibi-、mebi-、gibi-等,縮寫為ki、mi和gi),明确基于2的幂。這類機關含義總是清楚的,但它們才開始得到廣泛使用。原來的kilo-系列字首則兩種含義都在用。
通過上下文關系才能幫助判斷到底按哪一種含義算。ram總是按2的幂來算,而網絡帶寬一定按10的幂來算。存儲空間一般按10的幂為機關算,但是塊和頁的大小則用2的幂計算。
我們在書中以2的幂計算iec的機關,用10的幂計算公制機關,對粗略值以及确切的底數不清楚、沒有文檔或者不可能确定的情況用公制。在指令輸出裡,以及配置檔案節選中,我們都保留原本的值和機關記法。我們把bit(位)縮寫為b,而把byte(位元組)縮寫為b。表1.2給出了一些例子。
a.也就是說,硬碟塊大小為512位元組,數倍之後最接近108的數值
b.但是根據微軟的說法,仍然是沒有足夠的記憶體運作64位版的windows 7
在“8kb記憶體!”中,縮寫k不屬于任何标準。它是一個計算機行話,指公制縮寫k(代表kilo-,千),後者起初表示1,024而不是1,000。但是即便更大一些公制字首的縮寫都已經變成大寫[譯者注:m、g、t],對于k卻不能以此類推也用k。後來,人們開始混淆這種差別,開始也用k代表1,000。
ubuntu的linux發行版本做了大膽嘗試,以求在這個問題上保持合理性和一緻性;參考wiki.ubuntu.com/unitspolicy了解更多的細節。