640 килобайт

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

«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 анимация, компиляторы, трактаты о смысле жизни, только между принявшими участие шахматными программами был устроен отдельный турнир, результаты доставляют.
  • Windows Explorer и Windows Power Shell считали, что 260 байт в пути к файлу хватит всем вплоть до выхода Windows 10.

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

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автомат
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный Python
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач
Pi image.png Смысл большой в числах — они сильны и велики
Числа и цифры+11.02.0π3,53,628/641314/88161920252834384042515763778086101121128220228265282314322359404410502640646666111111381200+ε133715001812200023003310360537309000/~96001230940 00010050026060213 000 0001 000 000 000 (СталинскийЗолотой) • 1 208 925 819 614 629 174 706 176G64144 00024:0020204:19 - 4:20
Проценты90% женщин95% населения (95 простых процентов) • Инфа 100%146%
Время3 секунды5 секундПолшестого7:4010:101917 год1980-е (1984 год) • 1990-е2000-е (2000 год) • 2010-е (2012 год)
Прочее1 Guy 1 Jar2 Girls 1 CupSweet home2 в 13 Guys 1 Hammer58 видов геевАвтомобильные номераГетДЕЕ1991ГРДеление на нольЗакон ПаретоКодМатанМатановая капчаНатуральные числаПростые числаВещественные числаРулеткаСотни нефтиВеликая теорема ФермаТеория относительностиЧуть более, чем наполовинуСемь чудес светаКвадратура кругаТри обезьяныДевушка и пять негров (Piper Perri Surrounded) • Проклятие 7Два срокаDota 25.11.17Дока 2Несчастливые числаСчастливые числаВсыпать по первое числоВосьмая заповедь (SCP)Недостающий Номер