Компьютер изнутри...

Функция 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 также может его выполнять, только об этом мало кто из пользователей нынче знает.