Откуда появляется последний кадр жизни Ubuntu после ребута?
Сидел читал статью про Wikileaks и у меня зависла напрочь Ubuntu. Не работали даже Alt+SysRq сочетания. После ресета в первый момент запуска X'ов мелькает состояние экрана в том виде, в каком он был до зависания — Хром с открытым Хабром. Интересует вопрос откуда он берётся? Подобный эффект также наблюдается при переключении учётных записей: перед запросом пароля на мнгновение показывается рабочий стол пользователя к которому ты переключаешься в том состоянии, в котором он был перед предыдущей сменой аккаунта.
Подробнее — в устройстве вывода видео в современных ПК.
SI? Врядли, для этого есть методы попроще, например к X11 сессии подключиться втихаря.
Если вкратце и упрощенно:
Картинка рабочего стола лежит в видеопамяти по адресу 0x0100 и выше, текстовый режим с 0x0000 до 0x0050. При ресете компьютера память не очищается, в ней всё остаётся, при загрузке перезаписывается только кусок от 0000 до 0050 (при выводе на экран биоса, загрузочной информации). При переходе в графический режим видеокарта переключается в графический режим (как ни странно), но _запись данных_ в этот участок начинается позже (пока графическая подсистема прочухается и т.п.), вот в этот момент и показывается то, что было в этом куске памяти, а именно последний кадр жизни предыдущей сессии.
кстати, на счёт переключения пользователей я, наверное, соврал. Скорее всего, дело было при выходе станции из энергосбережения перед выводом запроса пароля.
@ekzo что труднее — поломать X11, чтобы позволял цепляться, или видеодрайвер, чтобы читать из видеопамяти да ещё куда-то передавать данные?
Плюс подозреваю что в Х11 есть и штатные методы подключения к имеющейся сессии, вопрос лишь в получении доступа.