640 килобайт

Материал из Lurkmore

(Перенаправлено с 640K должно хватить всем)
Перейти к: навигация, поиск
Wrar64.pngA long time ago, in a galaxy far, far away...
События и явления, описанные в этой статье, были давно, и помнит о них разве что пара-другая олдфагов. Но Анонимус не забывает!

«640КБ должно быть достаточно для каждого» (640K ought to be enough for anybody) — легендарная фраза, приписывается Биллу Гейтсу, основателю Microsoft, 1981-й год, времена создания первых IBM PC и MS DOS 1.0.

Между прочим, сам Билл неоднократно утверждал, что он эту фразу не говорил — увы, истину установить уже не представляется возможным, но мы-то знаем!

Содержание

640КБ на Башорге

— У моего начальника первый компьютер был слабее, чем мой первый смартфон :) Всё течёт, всё меняется. БГ когда-то говорил: «640 килобайт хватит всем». — не сразу понял что речь о БГ из microsoft :) — а для кого-то БГ — это Bill Gilbert =) — О да! Легендарная личность. Кстати для некоторых БГ это Борис Гребенщиков. Я минуты 2 вспоминал в какой он песне спел «640 килобайт хватит всем» :)

Bashorgrufavicon.png399904

Пояснения от Капитана Очевидность

Суть такова

Кто не в курсе или уже забыл — исходя из особенностей ранних микропроцессоров Intel (а именно — 20 адресных линий на выходе, и можете откусить, больше мегабайта напрямую они адресовать не могли физически), в первом и единственном мегабайте адресного пространства реального режима процессоров 8086/8088 и 80186/80188 выделялось 640Кб под ОЗУ, а остальное шло под видеопамять, ПЗУхи, БИОС и прочее. Под влиянием устройства первых РС и ХТ довольно быстро сложилась стандартная организация этого самого первого мегабайта с фиксированными адресами видеопамяти и прочего, которую стали копировать все клоны.

Веселье не замедлило воспоследовать

Впрочем, надо отметить, что во время разработки первого IBM PC более-менее дешёвых микропроцессоров более мощных, чем 8086/8088 просто не было (m68k вышел только в 79-м, за год с небольшим до выпуска РС, да и стоил всё ещё слишком дорого), а память щеголяла ценой от самолёта и выдаивалась откуда возможно по цене золота, 640К казались невероятно огромным объёмом. В дописишные времена, когда например СМ ЭВМ (клон расовой PDP-11) мог, занимая машинный зал, иметь 64, 128, 256, 512 Кб и это казалось много. К этой машине могло быть подключено десяток терминалов на которых можно было решать вполне реальные задачи (например, обсчитывать квартирную плату миллионного города), и одновременно с расчётами играть в Тетрис в режиме реального времени. Так что, 640Кб — это много, очень много.

Да и позже это всё равно была астрономическая величина. Например, самые распространённые в те годы процессоры — i8080 и Z-80, были вообще 8-битными, и традиционно для своего времени имели 16 бит адреса, так что могли адресовать не более 64Кб памяти (а в самой первой серии Спектрумов было вообще всего лишь 16Кб). Вся веселуха началась позже, после выхода 80286, который мог в защищённом режиме адресовать до 16Мб памяти (ибо имел уже 24 ноги на адрес), да и цены на неё значительно упали, так что 1-2 мегабайта уже мало кого пугали.

Ограничение, тем не менее, осталось, так как воспользоваться расширенным адресным пространством можно было только в защищённом режиме, с которым DOS принципиально не дружила. Беда была в том, что благодаря некоторой багофиче 286-й процессор раз переключившись в защищённый режим намертво в нём залипал, и вернуться в реальный мог только через перезагрузку — а интерфейс DOS-а, реализованный не через вызовы подпрограмм, а через программные прерывания (это позволяло сэкономить немаловажные в те годы несколько тактов), нормально работал только в режиме реальном.

Отсюда и величайшее множество программных и аппаратных костылей, вроде плат расширения памяти, работающих через 64Кб окошечко в основном адресном пространстве (тот самый EMS) и первых попыток написать (тормозной и глючный) менеджер расширенной памяти, работающий в защищённом режиме, — что работало очень плохо из-за вышеописанной багофичи, ибо перезагружать процессор надо было долго и печально через контроллер клавиатуры.

С выходом 80386 всё вообще встало с ног на голову. Это был действительно прорывной процессор, обеспечивающий аппаратную поддержку многозадачности и защиты памяти, но, увы, всё это опять-таки работало только в защищённом режиме. Поэтому в те годы получили широчайшее распространение всякие надстройки и расширители, типа QEMM, HIMEM (который уже работал более-менее сносно), PharLap’овских DOS/16M (собственно, это была версия для 286) или DOS/4G, или даже Windows 2.х (имевшей отдельные версии для 286 и 386 процессоров).

Юмор оцените сами. Ибо из-за этой особенности пошли следующие костыли со всякими EMS, HMA, XMS типами памяти и VCPI и DPMI интерфейсами.

Линус таки да

Через 10 лет после предполагаемого рождения сабжевой фразы, Линус Торвальдс, обьявляя всему миру о рождении линукса, заявил следующее:

It's the segmentation that makes it REALLY 386 dependent (every task has a 64Mb segment for code & data - max 64 tasks in 4Gb. Anybody who needs more than 64Mb/task - tough cookies).

[1]

Как и в случае с сабжем, тому тоже были веские причины технического характера. Которые точно так же впоследствии были преодолены внедрением swapping’а.

Тонкий юмор от программистов IE

Вначале был только один Internet Explorer. По крайней мере, Майкрософт хотел, чтобы мир так думал. С этой целью в рамках Первой Великой Войны браузеров Майкрософт изобрел очень много вещей и включил их в свой браузер-который-завершил-войну — Internet Explorer. Одна из этих вещей была названа DHTML Behaviors, а одна из форм поведения называется userData. UserData позволяет веб-странице хранить до 64 Кб данных на каждый домен в иерархической XML-подобной структуре. Доверенные домены, такие как интранет-сайты могут хранить в десять раз больше. И эй, 640 Кб должно быть достаточно для всех. IE не представил какой-либо способ изменить эти соглашения, поэтому нет способа увеличить объем доступной памяти.

А ещё …

Мем продолжает своё существование и по сей день. Был запилен ежегодный конкурс под знаковым названием «the 64k contest». В рамках оного на суд публики принимается абсолютно любой креатив, вы уже догадались, размером не больше 64кб. И понеслось: 3D анимация, компиляторы, трактаты о смысле жизни, только между принявшими участие шахматными программами был устроен отдельный турнир, результаты доставляют.

Алсо

  • В 2015-м году Windows Explorer и Windows Power Shell все еще считают, что 256 байт в пути к файлу хватит всем.

См. также