Z jakich jednostek rozmiaru pliku korzystają aplikacje w systemie Ubuntu?

13

Zauważyłem, że różne aplikacje używają różnych jednostek lub mają na myśli różne rzeczy.

Na przykład, mam natknąć kB, KB, KiB, Kbi K. Ile bajtów reprezentuje każda z tych jednostek?

Jeśli istnieją różne definicje tych jednostek, które z nich wykorzystują aplikacje?

Flimm
źródło

Odpowiedzi:

20

Wprowadzenie:

Dane w komputerach elektronicznych są przechowywane i przesyłane na różne sposoby, ale zawsze są interpretowane jako sekwencja wartości binarnych, 0 lub 1. Jedna wartość binarna nazywana jest bitem. Osiem bitów nazywa się oktetem lub bajtem. W tej sprawie istnieje konsensus.

Bit jest oznaczony jako b, a bajt jako B. W tej kwestii istnieje konsensus, a jeśli kiedykolwiek zauważysz, że aplikacja łamie tę konwencję, jest to zdecydowanie błąd lub błąd. Ludzie często mylą te dwa elementy, ale twórcy aplikacji i producenci w ogóle nie.

Po dotarciu do większych jednostek istnieją dwie szkoły myślenia, co niestety oznacza, że ​​nie ma konsensusu. Różne systemy operacyjne i różne aplikacje należą do jednej szkoły myślenia.


Polityka jednostek Ubuntu:

Ubuntu ma opublikowaną politykę jednostek , która definiuje takie jednostki.

Pierwszy zestaw jednostek to wielokrotności 1024. (Dlaczego 1024? Ponieważ 1024 to 2 do potęgi 10, co może ułatwić życie programistom.) Ten zestaw jednostek nazywa się jednostkami binarnymi lub prefiksami IEC, po standardzie IEC które je zdefiniowały:

  • Jeden kibibajt : 1KiB= 1024 bajty (zwróć uwagę na duże K)
  • Jeden mebibajt : 1MiB= 1024KiB= 1048576 bajtów
  • Jeden gibibajt : 1GiB= 1024MiB= 1048576KiB= 1073741824 bajtów

Drugi zestaw jednostek to wielokrotności 1000. Jest to o wiele ściślej dopasowane do powszechnie stosowanych jednostek w układzie SI, takich jak liczniki, litry i gramy. Kilogram to 1000 gramów; w ten sam sposób kilobajt to 1000 bajtów. Ten zestaw jednostek nazywany jest jednostkami dziesiętnymi lub przedrostkami SI.

  • Jeden kilobajt : 1kB= 1000 bajtów (zwróć uwagę na małe litery k)
  • Jeden megabajt : 1MB= 1000kB= 1000000 bajtów
  • Jeden gigabajt : 1GB= 1000MB= 1000000kB= 1000000000 bajtów

Tradycyjne jednostki:

Tradycyjnie wiele aplikacji, systemów operacyjnych i programistów używało jednostek binarnych, nadając im nazwy SI. Ubuntu, GNOME i OS X starają się przestrzegać opublikowanych standardów, jak wyjaśniono wcześniej, jednak Microsoft Windows i wiele narzędzi UNIX nadal korzystają z tych tradycyjnych jednostek, więc musisz o nich wiedzieć.

  • Jeden kilobajt : 1KB= 1024 bajty (zwróć uwagę na duże K)
  • Jeden megabajt : 1MB= 1024KB= 1048576 bajtów
  • Jeden gigabajt : 1GB= 1024MB= 1048576KB= 1073741824 bajtów

Tradycyjnie jednak prędkości są podawane w bitach na sekundę, z prefiksami SI! Tak więc 1 Mb / s to tak naprawdę 1000000 bitów na sekundę, czyli 125000 bajtów na sekundę, nawet w systemie Microsoft Windows.


Jak uniknąć dwuznaczności:

Jak widać, te sprzeczne definicje prowadzą do wielu nieporozumień. Kiedy mówię 1MB, czy mam na myśli milion bajtów, czy mam na myśli 1048576 bajtów?

Aby uniknąć dwuznaczności, należy zastosować jedną z następujących strategii:

  • Używaj wyłącznie prefiksów IEC. 1MiBjest zawsze jednoznaczny.
  • Uwzględnij konwersję do liczby bajtów. np .: 1 MB lub 1000000 bajtów
  • Użyj zarówno prefiksów IEC, jak i SI, np .: 1MiB lub około 1,048 MB. Wolę to rozwiązanie, ponieważ wyjaśnia, co masz na myśli, a czytelnik nie musi wykonywać żadnych obliczeń umysłowych.

Tam, gdzie występuje dwuznaczność, oto dobry zestaw zasad, które mi dobrze służyły:

  • Jeśli zauważysz KB(dużą literą K), prawdopodobnie używane są tradycyjne jednostki.
  • Jeśli zauważysz kB(małą literą k), prawdopodobnie używane są jednostki SI.
  • Jeśli liczba opisuje prędkość, prawdopodobnie są używane jednostki dziesiętne.
  • Jeśli numer jest w OS X, w nowoczesnych aplikacjach Ubuntu lub GNOME, prawdopodobnie używane są jednostki dziesiętne.
  • Jeśli liczba znajduje się na dysku twardym lub innym urządzeniu komputerowym, prawdopodobnie używane są jednostki dziesiętne.
  • Jeśli numer pochodzi z narzędzia wiersza polecenia w systemie Linux, prawdopodobnie używane są tradycyjne jednostki binarne.
  • Jeśli numer pochodzi z aplikacji Microsoft Windows, prawdopodobnie używane są tradycyjne jednostki binarne.

Jeśli chodzi o aplikacje Ubuntu, spójrz na tę listę, określając, które aplikacje używają który system .

Bibliografia:

Flimm
źródło