Что больше: 1 ГБ или 1 ГБ?

Казалось бы, странный вопрос. Но не всё так просто...
8-гигабайтная флеш-карта в сравнении с 8 байт ПЗУ на магнитных сердечниках (кстати, тут хорошо видно, почему программирование ПЗУ назвали «прошивкой»).
Фото: Daniel Sancho

Казалось бы, странный вопрос. Но не всё так просто…

В сфере компьютерных технологий исторически сложилась достаточно запутанная система мер. Происхождение ее сходно с традиционными (старинными) мерами — помните: были такие вершки, аршины, сажени (или, если угодно, футы, ярды, мили). То есть сперва из чисто практических соображений брали что-нибудь, подвернувшееся под руку. Потом же, когда решили упорядочить, схватились за голову: поди запомни, что в сажени три аршина, в аршине четыре пяди… ну, и так далее в том же духе.

Вот что-то подобное получилось и с компьютерными единицами. Строго говоря, единственная ситуация, когда мы можем однозначно понять, о каком количестве информации идет речь, это при записи его в битах.

Неприятности начинаются уже с байтами. Это, по своей сути, чисто техническая величина — размер наименьшего адресуемого «кусочка» оперативной памяти. И бывал он разным: и 6 бит, и 9 бит… (Причем, это относится только к «полезной» емкости — физически могут существовать еще и служебные биты, например, бит контроля четности) Но фактическим стандартом стал предложенный около 40 лет назад фирмой IBM 8-битный байт. Сейчас это закреплено и в национальных стандартах, и в рекомендациях МЭК. Хотя, к примеру, французы до сих пор предпочитают говорить не о «байтах», а об «октетах» (и обозначают их буквой «о»).

Но хуже всего получилось с кратными единицами. Началось с измерения объемов оперативной памяти. Она же RAM — Random Access Memory. Память с произвольным доступом. Чтобы реализовать этот произвольный доступ, нужно «раздать» каждому байту свой числовой адрес. Числа в компьютере двоичные, а значит удобно, чтобы объем памяти был кратен 2. С другой стороны, человеку приятнее пользоваться целыми числами. В том числе, для указания объема памяти.

Так из соображений удобства и начали пользоваться двоичными приставками. Названий же для них новых придумывать не стали. Воспользовались существующими с близкими числовыми значениями: 210 = 1024 ≈ 1000 — будем называть «кило» и т.д.

Но для дисков двоичная адресация ни к чему. И, вдобавок, при делении на 1024 результат выходит меньше, чем при делении на 1000. Кто же будет искать лишних трудностей да еще себе в убыток? 😉 Так что объем жестких дисков всегда указывался с использованием десятичных приставок. Однако, когда такой диск ставился в компьютер, операционная система пересчитывала его уже с двоичными приставками. Объём волшебным образом уменьшался! Не меньше удивляет пользователя, когда на DVD-R, на котором написан объем 4,7 GB, не помещается 4,5 гигабайта файлов.

В какой-то момент эта чертовщина начала надоедать — появились международные рекомендации (в частности, стандарт МЭК 60027–2), по которым приставки «кило», «мега», «гига» и т.д. должны использоваться только как десятичные. Для двоичных же придумали другие названия, скомбинированные из начальных букв «старых» и сочетания «би» (от binary = двоичный): «киби», «меби», «гиби»…

Правда, в устной речи эти новые приставки практически не встречаются. Мало того, наш ГОСТ-Р 8.417-2002 фактически подтвердил существующую практику. Хотя использование приставок СИ в качестве двоичных там названо некорректным, но только «для информации».

Ну, а на практике о стандартных обозначениях у нас вообще частенько забывают. Например, по ГОСТ байт положено сокращать заглавной буквой «Б», а бит — вообще писать только полностью. Как же понять, о каком количестве информации идет речь, если мы видим надпись «10 Мб»?  Точно — не получится. Только угадывать по контексту с большей или меньшей вероятностью. Это может быть  10 мегабайт или 10 мегабит, 10 мебибайт или 10 мебибит. Можно даже столкнуться с указанием таким образом скорости передачи — ну, забыли дописать «/с», ерунда какая 😉

А как показывают объем данных разные ОС?

Тут тоже возможны варианты.

Например, в Linux приняты двоичные приставки. И (естественно, в свежих сборках) честно указываются. То есть вы видите, например, «12.4 MiB» и понимаете, что это — двенадцать целых и четыре десятых мебибайта.

В Mac OS X до недавнего времени (и естественно, в классической Mac OS) объем измерялся с использованием двоичных приставок, но указывались обычные десятичные (то есть для приведенного выше примера было бы написано «12.4 MB»). А для особо дотошных — еще и точное число байт (т.е. «12.4 MB (13002342 byte)»). Но с выпуском Mac OS X 10.6 Snow Leopard ситуация изменилась. Возможно, Apple просто надоело объяснять недовольным пользователям, куда пропадает емкость их дисков (Этому, между прочим, была посвящена специальная статья на сайте компании). Но углубляться в различия «мега» и «меби» тут не стали. Просто перешили к обозначению всех величин с привычными «простым пользователям» десятичными приставками. И теперь в гигабайте ровно миллиард байтов. Точка.

Alt Linux
Snow Leopard
 

Использовано фото Daniel Sancho from Málaga, Spain на основании лицензии Creative Commons Attribution 2.0 Generic.

Добавить комментарий