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