Дискета «1,44» - мибибайтнутые колебайты

Как ныне возникла оказия продолжить мою традицию написания немного наивных статей - исследований. Исследований различных простых вещей из нашей жизни, к которым мы привыкли и в которых, как нам кажется, уверенны )

Заранее прошу извинить тех, кто искал быстрые ответы как в справочнике, и за небрежный ироничный стиль изложения. Стиль многим пришёлся по вкусу. Старая привычка написания методичек по информатике для школы с тщательным разжёвыванием потерпевших тоже даёт о себе знать )

Опять, же: какие компы без филосопии?

ПОСТАНОВКА ВОПРОСА

Как то не задумывался над обозначением формата дискет 3,5 дюйма. Но, недавно возникла ситуация с запуском старой игры на виртуальной машине... Встал вопрос с её ёмкостью

Люди недоумевают, почему при формате дискеты в "1,44М" мы по факту получаем меньше, даже с учётом потерь на форматирование и организацию файловой системы.

Стоит разобраться.

Предупреждаю сразу, что статья не о банальности вроде «всё правильно украли подсчитали до нас, а мы просто забыли, что 1024, а не тысяча». Речь как раз о форменном безобразии, которую мы так любим (речь)

Образ "img" дискеты "1,44" составляет 1 474 560 Байт. Значит и ёмкость дискеты в байтах на физическом уровне именно такая. Переносим запятую на "мега", то есть на шесть знаков влево... тогда должно быть "1,47М"?

Конечно нет. Нужно учитывать, что "мегабайт" в данном случае это не миллион, а 1024*1024= 1 048 576. Собственно, это всем известно

Обычный наш опыт тихо шепчет, что, видимо, "1.44" а не "1,47" именно по этой причине. Шепчет. Но точно не говорит, хочет чтобы мы сами посчитали ;)

Мы должны были получить в байтах больше, чем просто "1 440 000" - тут всё сходится. Вроде бы разница как раз на несколько сотых.

Но откуда тогда взялись жалобы на объём менее 1,4М? Может быть мы считаем не в той системе множителей? Нужно применить подход, который принят на маркировке жёстких дисков, где 1GB - это 1000^3, а не 1024^3?

А чего гадать? Давайте посчитаем все точные значения!

Проверим, сколько реально дискета весит в мегабайтах:

1 474 560 / (1024 * 1024) = 1,40625.

ОППА! О-о-о-о-пппа! То есть истинная ёмкость - примерно 1,40M! Почему же этот формат дискет называют "1,44"? Куда же делись ещё 4 сотых мегабайта???

Ладно, разберёмся дальше

Посмотрим, сколько составляет 1,44MB в байтах:

1,44MB = 1,44 * 1024 * 1024 ~= 1 509 949,44

Действительно, существенно больше, чем наш образ дискеты. Существенно для интересующей нас точности

Хорошо, давайте посмотрим в килобайтах

  1. Реальная дискета:

1 474 560 / 1024 = 1440 (KB)

  1. 1,44MB, которые ожидались:

1,44MB = 1 509 949,44 / 1024 = 1474,56 (KB)

  1. Интерсно, что 1 474 560 / 1000 тоже равно 1474,56 )

Так, медленно вытанцовывается...

"1440" - что то смутно напоминает... не узнаю вас в гриме... Это ли не 1,44, умноженное на 1000 ???? O-o! Зачем? Почему?

Может действительно, применим множитель 1000 вместо 1024?

1 474 560 * 1 000 * 1 000 ~= 1,47 M.

Кстати! "1,47M" - Именно так была бы обозначена дискета, если бы при маркировке дискет применялся подход, как в маркировке корпусов жёстких дисков. Но там так - а тут так. Видимо всё дело в жёсткости

Ну и где наши 1,44? В первом случае наша дискета получается меньше, а во втором - больше искомого. Но надо выбирать. Комбинировать эти два метода подсчёта - абсурд. Нельзя для получения мегабайт применять множитель 1000, если для подсчёта килобайт мы УЖЕ применили 1024.

С другой стороны, 1,44 явно связаны с 1440 множителем 1000.

Где же ответ? Может размер образа img неверен?

Вспомним молодость! Нас довели до того, что начнём головками вертеть! И цилиндрами!

В былые времена мы помнится пользовались программой "format"

для форматирования дискет, и ёмкость дискеты задавалась в параметрах "геометрии диска". Понятно, что у магнитного диска две стороны. По-другому: в устройстве «две магнитных головки». Оставалось указать количество дорожек на стороне (в паре с дорожкой с другой стороны получается "цилиндр") и количество секторов, то есть ячеек памяти на дорожке. По стандарту каждый сектор содержал 512 байт

Выглядело это так. Дискета 360K:

format a: /t:40 /n:9

Проверим:

2 стороны * 40 цилиндров (дорожек) * 9 секторов * 512 = 368 640. Делим на 1024: 360KB - всё сходится. Никаких множителей на 1000! Можно было даже не делить, а учитывая что два сектора (по одному с двух сторон) - это как раз 1024 байт, просто взять произведение t*n

Проверим на нашей дискете! Её формат, как известно (но забыто), выглядит так:

format a: /t:80 /n:18. То есть 80 дорожек на 18 секторов

80*18 = 1440 колибайт

ОТВЕТ

Итак мы окончательно выяснили, что ёмкость дискеты в точности 1440КB. То есть тех 1440 "килобайт", когда под приставкой "кило" мы понимаем именно 1024, а не 1000.

Тогда в "мегабайтах": 1440 * 1024 = 1 474 560 ~= 1,41M. Ни какими «1,44» не пахнет.

А как у нас выглядела, кстати, маркировка дискет на конвертах и обозначения в таблицах? Давайте вспомним:

«360KB», «720KB», «1200KB», «1440KB» - тоже никаких "1,44".

Значит, в обиходе, условно, просто была ВЗЯТА ЁМКОСТЬ В КИЛОБАЙТАХ И ПОДЕЛЕНА НА 1000, вместо 1024!

Так-так, а "1200" списка... - это кажется тоже наш поциент? Как там в вальяжные 90-е дискеты обзывались нами при общении?... "1,2M"?

То же самое!

ВЫВОД. И ЕЩО КОЕ ЧТО )

"КАК! И теперь не всё???!" ))) Да, не всё, тут КИБИбайтами запахло!

Наша ситуация - как всегда - следствие естественно сложившихся обстаятельств неточности и некорректного упрощения. Мы имеем дело с жаргонизмом, а не с техническим параметром.

Ситуация на первый взгляд пустяковая, но весьма показательная. Сколько раз мы уже это встречали!

Ничтоже сумняшеся, пивная массовка для простоты дела разделила 1440 на 1000 и получила "1,44 М", что конечно неправильно, поскольку нужно было делить на 1024, либо округлять

Видимо это стихийная ситуация грубой прикидки, связанная с образным восприятием цифр и нечёткой логикой в словестном обиходе. Кто то увидел на экране «1440», и чтобы из "кило" получить "мега", мысленно передвинул запятую на три позиции влево ) Эта ошибка видимо повторялась у многих, поэтому "из уст в уста" таки пошло вкорне некрректное «1,44»

Тут следовало бы и закончить, но...

В тему следует упомянуть: есть историческая путаница в приставках кило- и мега-. В информатике, как известно, было удобнее словом "кило" обозначать множитель 1024, а "мега" - как 1024*1024 = 1 048 576.

Но не все знают, что впоследствии, чтобы не было путаницы с системой СИ, в которой 1К - это 1 000, а 1М - это 1 000 000, "Килобайты" были переименованы в "Кибибайты" и их теперь следовало обозначать как KiB (1024), а "мегабайты" - в "Мибибайты" (1024*1024).

Но эти обозначения не прижились!

В результате в некоторых случаях путаница остаётся. Например, покупатели жёстких дисков сильно удивляются, почему при укзанной маркировке 1ТB, они получают ёмкость не в 1024 "гигабайт", а всего лишь в 1 000 000 000 000, что составляет примерно 0,9 TiB.

Всё это следствия того, что обозначения "TiB" и "MiB" почти не используются на практике

Как же по итогу считать правильный объём дискеты?

Мы должны определиться, в какой системе обозначений мы считаем. Если в Си, то "кило " и "мега", это 1000 и 1 000 000, а если в машинном, то это 1024 и 1024*1024= 1 048 576 соответсвенно.

Если мы хотим объём в единицах, которые использубтся в "свойствах" носителя в операционной системе (DOS или Windows), то «дискета 1,44» - это на самом деле 1,40M, если округлять правильно в меньшую сторону. Минус неотображаемая системная информация о размещении файлов по диску. В результате Windows показывает 1,38MB

72 views·1 share