Хибер. Нате

Когда-то давно, когда на Земле еще правил DOS, я задумал написать программу, которая могла бы сбрасывать на диск состояние компьютера и восстанавливать его по запросу. Тогда я был активным геймером и задуманная программа должна была помочь сохранить состояние любой игры в любом месте.

Жаль, но в то время эта задача была практически невыполнимой, а то бы я, возможно, уже сказочно разбогател. :) Или не я. Вряд ли мне принадлежит первенство в рождении этой идеи. Как показала практика, трудность не в сохранении дампа базовой (как тогда это называлось) памяти и содержимого XMS, да и с сохранением состояния контролера клавиатуры и прерываний (как не странно некоторые игры перепрограммировали и то и другое) я бы справился. Мне помешал защищенный режим и оставшееся оборудование.

Сначала на моем пути встал EMM386, этот менеджер VCPI и EMS-памяти переводил процессор в защищенный режим (protected mode). Программировать под него я не умел, но из того, что знал, я сделал, может быть ошибочный, вывод - я не смогу после восстановления состояния компьютера сделать "так как было". Я решил на защищенный режим "забить" и загружать содержимое EMS уже после старта DOSа и самого EMM386. VCPI я не трогал, да он нигде и не использовался.

Потом появился DOS4GW. Его требовали DOOM и другие игрушки. Эта библиотека (или как это еще назвать?) так же использовала для своих темных дел защищенный режим. Я узнал слово DPMI. С DPMI так же легко как с EMS я работать не умел, не было документации. Это стало первым гвоздем в гроб моей идеи.

Вторым, и последующими гвоздями, оказалось оборудование. Слово драйвер тогда рождало несколько другие ассоциации, ни о какой универсализации работы с оборудованием речи не шло. Так что нелегкий труд по опросу и сохранению состояния какой-нибудь карточки ложился целиком на плечи программиста. Для примера, со своей видеокарточкой, монстром от фирмы Trident с 512К на борту я бы еще как-то справился, но поддержка видеокарт всех фирм и моделей - задача для меня одного непосильная. То же и с другими компонентами.

Шли годы...
Незаметно появилась и вошла в нашу жизнь ОС Windows. Операционная система встала над защищенным режимом. Слово "драйвер" получило другой смысл, прослойка между операционкой и оборудованием... Слова XMS, EMS и VCPI стали забываться, а DPMI - расшифровываться по-другому. Появился ACPI и, как его часть, "OnNow". И Windows2000, как первая, по крайней мере в линии Windows, которая умеет его поддерживать. Ну хотя бы часть - ту что, "suspend-to-disk". И при условии поддержки ACPI оборудованием. Мы, не все конечно, узнали слово "Hibernate".

Идея "suspend-to-disk" или, как он называется в W2K, "Hibernate" недалека от того, что придумал в свое время я. На диске создается файл, куда после входа в этот режим за 10-20 секунд сбрасывается все, включая содержимое памяти машины и состояние его многочисленных компонентов, после чего предлагается нажать на кнопку "Откл.". После включения, компьютер говорит "Hibernating" и примерно за полминуты (у кого как) загружается. WinAmp продолжает играть с того места, где вы его "схибернатили", Word показывает содержимое ранее открытого документа, браузер - страницу... В общем все так, как будто компьютер и не отключали.

"Здорово", - подумал я, и отправился в недра настроек своей W2K - искать, где у меня спрятан этот самый режим. Найти с первого раза мне его не удалось. Пришлось идти в большой Интернет и читать. Все оказалось просто. Оказывается, по умолчанию возможность использования этого режима отключена. Так исторически сложилось. А для его включения необходимо выполнение двух условий:

  1. все оборудование, включая материнскую плату, должно уметь работать с ACPI
  2. BIOS, который на этот самой плате стоит так же должен знать, что это такое
Выяснить, как дело обстоит у вас просто - достаточно зайти на "Панель управления" ("Control Panel"), там найти "Управление энергопитанием" ("Power") и посмотреть, есть ли у вас закладка "Hibernate". Если есть - включайте режим, в списке "Lock-Restart-Shutdown" появится новый элемент. Если нет - вам не повезло, но не отчаивайтесь, возможно, не все еще потеряно, перейдите по первой ссылке внизу страницы и попробуйте поэкспериментировать.

Мне повезло. У меня машина "белой сборки" IBM-IntelliStation-чего-то-там и "Hibernate", теперь одна из причин, которая примеряет меня с существованием Windows 2000. :)
5 января 2001 13:03

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML: