Компьютер изнутри...
Функция malloc — операционной системе: Прошу выделить 257 Кбайт Conventional Memory в связи с производственной необходимостью.
Операционная система — главной программе: Выделить 257 Кбайт Conventional Memory не представляется возможным в связи с отсутствием таковых. Есть 3 Мбайта Extended. Берете?
Главная программа — обработчику исключений: С памятью облом. Что делать будем?
Обработчик исключений — процедуре оптимизации: Необходимо добиться экономии памяти за счет более рационального использования системных ресурсов.
Контроллер прерываний — обработчику прерываний: Тут это... юзер кнопку нажал...
Главная программа — обработчику прерываний: Не дергайся! Подержит и отпустит.
Процедура оптимизации — обработчику исключений: Готово!
Главная программа — обработчику исключений: Ну что там?
Обработчик исключений — главной программе: Еще хуже стало. Может, на диск посвопимся?
Главная программа — жесткому диску: Прошу принять на хранение swap-файл в размере 257 Кбайт.
Жесткий диск — главной программе: Ваша просьба не может быть удовлетворена за недостатком места.
Главная программа — операционной системе: Что еще за глюк? Было же место!
Жесткий диск — главной программе: Ничего не глюк. Вы еще прошлый swap-файл на 4 мега не забрали. А я, между прочим, не резиновый. И даже не стэкерный.
Контроллер прерываний — обработчику прерываний: Тут это... юзер опять кнопку давит...
Обработчик прерываний — PC speaker?y: Ну скажи ему что-нибудь, пусть отвяжется!
PC speaker — юзеру: Бииип!
Главная программа — операционной системе: Ну, может, можно чего-нибудь перераспределить?
Операционная система — главной программе: Другим задачам тоже память нужна. Вам что, General Protection Error схлопотать охота?
Главная программа — хакерской функции: Ну-ка выясни, кто там отожрал всю память, и выкини их к экстишной матери!
Контроллер прерываний — обработчику прерываний: Тут юзер <Ctrl>+ <Alt>+<Del> жмет!
Главная программа — обработчику прерываний: Да отруби ты этому зануде клавиатуру! Мы тут делом заняты...
Хакерская функция — главной программе: Оп-паньки!
Главная программа — операционной системе: Ну что там? Сколько памяти свободно?
Операционная система — главной программе: 320 Conventional и... ой, куда это Extended Memory Manager делся?
Главная программа — хакерской функции: Ты что начистила, сволочь?
Хакерская функция — главной программе: А че я, че я? Мне сказали выкинуть, я и выкидываю!
Функция malloc — операционной системе: Прошу выделить 257 Кбайт Conventional Memory в связи с производственной необходимостью.
Операционная система — главной программе: Не могу. У меня в Extended Memory важные данные лежали. И вообще, я с вами скоро повешусь!
Кнопка RESET — процессору: Ну что? Доигрались?
(Холодный «рестарт»...)
Autoexec.bat — главной программе: Так на чем мы остановились?..
Возможно, многие не помнят, а кто-то и вовсе не знает DOS. Поэтому мы сочли необходимым сопроводить данную историю некоторыми пояснениями.
malloc — функция на языке Си, выделяющая программе блок памяти запрошенного размера.
Conventional Memory — область памяти от нуля до 640 Кбайт. С легкой руки Билла Гейтса, заявившего тогда, что любой программе в обозримом будущем 640 Кбайт памяти хватит за глаза, это ограничение было заложено в архитектуру первых ПК и в дальнейшем породило массу проблем для программистов и схемотехников.
Extended Memory — память выше первого мегабайта, работать с которой было тем не менее достаточно проблематично. При проектировании ПК подразумевалось, что максимальный объем адресуемой компьютером памяти не будет превышать 1 Мбайт. Чтобы подчеркнуть «исключительный» характер памяти, она была удостоена специального названия.
Обработчик исключений — подпрограмма, выполняющаяся в исключительных ситуациях (прежде всего ошибочных).
Контроллер прерываний — устройство, генерирующее прерывание, т.е. специальную команду, по которой выполнение текущей программы приостанавливается и вызывается программа-обработчик, соответствующая номеру прерывания.
«Посвопиться» — расширить объем памяти, используя swap-файл для размещения в нем частей системы, которые в данный момент не используются.
Стэкерный жесткий диск... Мы сами не знаем, что это за штука.
Вообще стэк — цепочка из однородных элементов, которую можно удлинять за счет добавления этих элементов. Исходя из этого можно предположить, что стэкерный жесткий диск — такой накопитель на жестких магнитных дисках, в который можно добавлять по необходимости непосредственно диски (сами металлические кругляши!). Сами понимаете, это пока невозможно.
General Protection Error — аналог «все плохо», «черный экран смерти» для DOS-программ. Выдавался драйвером расширенной памяти и приводил к полному зависанию компьютера.
Хакерская программа — очевидно, подразумевается программа, позволяющая удалять другие программы из оперативной памяти. В эпоху DOS было несколько таких утилит. Как следует из текста, жертвой программы пал драйвер, отвечающий за работу с памятью более 1 Мбайт.
Холодный «рестарт» — старт компьютера при включении питания или нажатии кнопки RESET. Горячий «рестарт» — перезапуск ОС нажатием клавиш <Ctrl>+<Alt>+<Del>.
Autoexec.bat — пакетный файл, выполняющийся при старте DOS. Впрочем, Windows также может его выполнять, только об этом мало кто из пользователей нынче знает.
Комментарии
Пояснение: Байт - это типа копейки, но побольше;))