Comment Linux traite-t-il les unités? Utilise-t-il des décimales ou des binaires?
Decimal Prefix
name base 10 exp base 1000 exp digits
kilo 10^3 1000^1 1000
mega 10^6 1000^2 1000000
giga 10^9 1000^3 1000000000
Binary Prefix
name base 2 exp base 1024 exp digits
kibi 2^10 1024^1 1024
mibi 2^20 1024^2 1048576
gibi 2^30 1024^3 1073741824
Maintenant, si vous jetez un œil à deux commandes, par exemple du
et fdisk
, vous pouvez voir la différence:
Voici un exemple pour le mien de disque dur externe 1 To:
$ du -sh
956G .
Lors de l'exécution de fdisk
:
$ Sudo fdisk -l
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
La documentation du noya ne dit pas un mot sur les préfixes SI. Lorsque les préfixes apparaissent dans la documentation, ils apparaissent sans les idiotes i
(k
, M
, etc., au lieu de ki
, Mi
) (voir man 5 proc
, par exemple). Depuis les outils GNU n'ont pas pris en charge le préfixe SI bien après la sortie de Linux, et Linus ne ressemble pas à quelqu'un qui change le code du noyau simplement parce qu'une organisation de normalisation préfère différents préfixes, je pense que Linux, lorsqu'il utilise ces préfixes, utilise des préfixes binaires.
Les pages de manuel développées dans le cadre de la documentation du noya , cependant, en discutent. Voir man 7 units
:
Thus, today, MB = 1000000B and MiB = 1048576B.
In the free software world programs are slowly being changed to con‐
form. When the Linux kernel boots and says
hda: 120064896 sectors (61473 MB) w/2048KiB Cache
the MB are megabytes and the KiB are kibibytes.
références Wikipédia ceci, et les messages de la liste de diffusion par ESR (aka Eric S. Raymond, un développeur de noyau bien connu) ( [1] , [2] , [3] , [4] ) montre qu'un patch changeant kB
en KiB
, etc. dans une partie de la documentation, a été acceptée, mais une partie de celle-ci a continué à utiliser les anciennes variantes. Ainsi, les préfixes sont binaires (ou sont destinés à être binaires).