Личные инструменты

640 килобайт

Материал из Lurkmore

(Перенаправлено с 640K должно хватить всем)
Перейти к: навигация, поиск
A 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 килобайт хватит всем» :)

399904

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

[править] Суть такова

Кто не в курсе или уже забыл — исходя из особенностей ранних микропроцессоров 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’а.

[править] См. также


Источник — «http://lurkmore.ru/640_килобайт»