XScreenSaver
Оригинальный автор(ы) | Джейми Завински |
---|---|
Разработчик(и) | Джейми Завински |
Первоначальный выпуск | 17 августа 1992 г |
Стабильная версия | 6.08 / 10 октября 2023 г [1] |
Написано в | ANSI C , X11 , OpenGL |
Операционная система | Unix , MacOS , iOS , Android |
Тип | Заставка |
Лицензия | МОЯ лицензия [2] |
Веб-сайт | jwz.org/xscreensaver/ |
XScreenSaver — это бесплатная коллекция с открытым исходным кодом, состоящая из более чем 240 [3] заставки для операционных систем Unix , macOS , iOS и Android . Он был создан Джейми Завински в 1992 году и до сих пор поддерживается им, новые выпуски выходят несколько раз в год. [4]
Платформы
[ редактировать ]Бесплатное программное обеспечение и с открытым исходным кодом Unix-подобные операционные системы , работающие под управлением X Window System (такие как Linux и FreeBSD ), почти исключительно используют XScreenSaver. [ нужна ссылка ] В этих системах имеется несколько пакетов: один для системы сохранения и блокировки экрана и два или более для режимов отображения, разделенных произвольно. [5]
В системах Macintosh XScreenSaver работает со встроенной macOS заставкой .
В системах iOS XScreenSaver — это автономное приложение, которое может запускать любые хаки в полноэкранном режиме.
В системах Android режимы отображения XScreenSaver работают либо как обычные заставки (которые Android иногда называет «мечтами»), либо как живые обои .
не существует Официальной версии для Microsoft Windows , и разработчик не рекомендует никому ее портировать. Автор считает Microsoft «компанией с порочной, грабительской, антиконкурентной деловой практикой». [6] и говорит, что, как один из первоначальных авторов Netscape Navigator , он держит «личную неприязнь» к Microsoft из-за ее поведения во время Первой браузерной войны .
Архитектура программного обеспечения
[ редактировать ]XScreenSaver Демон отвечает за обнаружение бездействия, гашение и блокировку экрана, а также запуск режимов отображения. Каждый из режимов отображения (называемых «хаками» от исторического использования « display hack ») представляет собой отдельную программу.
Это важная функция безопасности, поскольку режимы отображения выделяются в отдельный процесс из системы блокировки экрана. Это означает, что ошибка программирования в одном из режимов графического отображения не может поставить под угрозу сам блокировщик экрана (например, сбой в режиме отображения не приведет к разблокировке экрана).
Это также означает, что сторонняя заставка может быть написана на любом языке или с использованием любой графической библиотеки, при условии, что она способна отображать внешнее окно.
По историческим причинам и из соображений переносимости все включенные хаки написаны на ANSI C. Около половины из них используют API X11 , а около половины — API OpenGL 1.3.
Вместо того, чтобы разветвлять кодовую базу и переписывать хаки для разных платформ, XScreenSaver содержит несколько уровней совместимости.
- Чтобы хаки на основе X11 могли работать в macOS и iOS , XScreenSaver содержит полную реализацию API X11 , построенную на основе Cocoa («jwxyz»). [7]
- Чтобы хаки на основе OpenGL 1.3 могли работать в iOS и Android системах , которые поддерживают только OpenGL ES , XScreenSaver содержит реализацию API OpenGL 1.3, встроенную поверх OpenGL ES 1.0 («jwzgles»). [7]
- А чтобы хаки на основе X11 могли работать на iOS и Android , XScreenSaver также содержит реализацию API X11 в терминах OpenGL ES 1.0. [8]
Безопасность
[ редактировать ]В дополнение к изолированной программной среде режимов отображения демон XScreenSaver связывается с как можно меньшим количеством библиотек. В частности, он не связан с инфраструктурами графического интерфейса, такими как GTK или KDE , а использует только необработанный Xlib для отображения диалогового окна разблокировки.
В последние годы некоторые дистрибутивы Linux начали использовать по умолчанию фреймворки гашения экрана gnome-screensaver или kscreensaver вместо фреймворка, включенного в XScreenSaver. [9] В 2011 году gnome-screensaver был разделен как mate-screensaver и cinnamon-screensaver . Более ранние версии этих платформ по-прежнему зависели от коллекции хранителей экрана XScreenSaver, которая составляет более 90% пакета. [10] Однако в 2011 году в версии 3 gnome-screensaver полностью отказалась от поддержки заставок, поддерживая только простое гашение экрана. [11] а с 2018 года Linux Mint 4.0.8 заставка с корицей больше не поддерживает хаки XScreenSaver. [12]
Те дистрибутивы Linux, которые заменили XScreenSaver другими платформами блокировки экрана, столкнулись с заметными проблемами безопасности. Эти другие платформы имеют историю ошибок безопасности, которые позволяют разблокировать экран без пароля, например, просто удерживая клавишу до тех пор, пока шкафчик не выйдет из строя. [13] [14] [15] [16] [17] [18] [19]
В 2004 году Завински написал об архитектурных решениях, принятых в XScreenSaver с целью избежать именно этого класса ошибок: [20] В 2015 году он пошутил: «Если вы не используете XScreenSaver в Linux, то можно с уверенностью предположить, что ваш экран не блокируется». [21]
Режимы отображения
[ редактировать ]Включенные хаки очень разнообразны: от простой 2D- психоделии до 3D-демонстрации сложных математических принципов, моделирования других компьютерных систем и воссоздания артефактов и эффектов из фильмов.
Хотя многие из новых хаков в полной мере используют возможности современных компьютеров, возраст проекта означает, что некоторые из старых хаков могут показаться современным людям устаревшими, поскольку изначально они были написаны для гораздо менее мощных компьютеров.
Примеры хаков включают в себя: [3]
- Атлантида — анимация OpenGL, показывающая китов и дельфинов.
- BSOD — показывает фальшивые фатального экрана смерти варианты Microsoft Windows от многих компьютерных систем, включая «Синий экран смерти» Linux , панику ядра , сбой Darwin , ошибку Amiga « Guru Meditation », грустный Mac и многое другое.
- Apple2 – имитирует компьютер Apple II , показывая, как пользователь вводит простую программу на языке BASIC и запускает ее. При запуске из командной строки это полнофункциональный эмулятор терминала (как и Phosphor ).
- Штрих-код несколько цветных штрих-кодов . – по экрану прокручивается
- Поток — трехмерное отображение странных аттракторов .
- Летающие тостеры — летающие 3D-тостеры, вдохновленные классической заставкой After Dark .
- Gears — OpenGL-анимация взаимосвязанных шестерен и планетарных шестерен .
- GLMatrix — анимация OpenGL, похожая на последовательность заголовков « цифрового дождя » из трилогии «Матрица» .
- Молекула - анимация OpenGL, показывающая заполняющие пространство или шарообразные модели ряда распространенных лекарств и других молекул, из которых тридцать восемь (38) встроены. Он также может читать PDB (банк данных белков) из файл или файлы, помещенные в каталог, в качестве входных данных.
- Пенроуз — апериодическое заполнение экрана цветными плитками Пенроуза .
- Прожектор — размещает движущийся прожектор на рабочем столе в стиле вступительных сцен фильма о Джеймсе Бонде .
- Sproingies — анимация в стиле видеоигры Q*bert .
- Webcollage – создает коллажи из случайных изображений, найденных в сети.
- XAnalogTV – имитирует аналоговый телевизор с электронно-лучевой трубкой , включая визуальные артефакты и проблемы с приемом.
- XPlanet – рисует планеты и другие небесные тела, которые обновляются в реальном времени.
- XMatrix — анимация, похожая на эпизод « цифрового дождя » из трилогии «Матрица» .
Некоторые из включенных хаков очень похожи на демо-эффекты, созданные демосценой :
- Boing - основан на программе 1984 года, которая считается первой демо-версией Amiga , показывающей прыгающий красно-белый мяч.
- Bumps — реализация полноэкранного 2D- бамп маппинга .
- Метаболлы – еще один распространенный демонстрационный эффект.
- Муар2 — движущиеся интерференционные круги , похожие на те, что были в старых демо-версиях Amiga.
- ShadeBobs — еще один эффект, распространенный в старых демо-версиях Amiga.
- XFlame – эффект огня на основе фильтра, также известный как эффект пламени.
См. также
[ редактировать ]XScreenSaver был представлен в «Спящем режиме: искусство заставки» . [22] выставка галереи, курируемая Рафаэлем Розендалом, в Роттердаме в Het Nieuwe Instituut в 2017 году.
Ссылки
[ редактировать ]- ^ «Журнал изменений» . Проверено 4 марта 2024 г.
- ^ «Список авторских прав Debian XScreenSaver» . 24 декабря 2020 г. Проверено 24 декабря 2020 г.
- ^ Jump up to: а б «Список хранителей экрана, включенных в коллекцию XScreenSaver» . 8 декабря 2020 г. Проверено 24 декабря 2020 г.
- ^ «История выпусков XScreenSaver» . 8 декабря 2020 г. Проверено 24 декабря 2020 г.
- ^ «Список пакетов Debian XScreenSaver» . 24 декабря 2020 г. Проверено 24 декабря 2020 г.
- ^ «XScreenSaver: Версия для Windows» . www.jwz.org . Проверено 24 декабря 2020 г.
- ^ Jump up to: а б «Запись в блоге jwz.org о порте iOS» . 19 июня 2012 года . Проверено 24 декабря 2020 г.
- ^ «Запись в блоге jwz.org о порте Android» . 23 мая 2016 года . Проверено 24 декабря 2020 г.
- ^ «Часто задаваемые вопросы по XScreenSaver относительно KDE/Gnome» . Проверено 24 декабря 2020 г.
- ^ «Распространение исходного кода XScreenSaver» . 8 декабря 2020 г. Проверено 24 декабря 2020 г.
- ^ Кампанья, Джованни (21 марта 2011 г.). «Re: Каков статус заставки в GNOME3?» . gnome-shell (список рассылки).
- ^ «Анонс Linux Mint 19.1» . 20 декабря 2018 года . Проверено 24 декабря 2020 г.
- ^ «Gnome-Screensaver Key Flood» . 16 апреля 2014 года . Проверено 24 декабря 2020 г.
- ^ «Наводнение ключей заставки с корицей» . Гитхаб . 22 августа 2014 года . Проверено 24 декабря 2020 г.
- ^ «CVE-2014-1949, обход блокировки заставки Cinnamon» . 16 января 2015 года . Проверено 24 декабря 2020 г.
- ^ «Рекомендации по безопасности Mandriva MDVSA-2015:162» . 29 марта 2015 года . Проверено 24 декабря 2020 г.
- ^ «CVE-2015-7496. Удерживайте ESC, чтобы разблокировать сеанс Gnome GDM» . 24 ноября 2015 года . Проверено 18 января 2021 г.
- ^ «CVE-2019-3010, повышение привилегий в ответвлении Oracle Solaris XScreenSaver» . 23 октября 2019 г. Проверено 24 декабря 2020 г.
- ^ "Обход блокировки заставки Cinnamon через виртуальную клавиатуру" . Гитхаб . 15 января 2021 г. Проверено 15 января 2021 г.
- ^ «XScreenSaver: в диалоговых окнах Toolkit» . 19 октября 2004 года . Проверено 24 декабря 2020 г.
- ^ «Публикация в блоге jwz.org об ошибках безопасности Gnome» . 4 апреля 2015 года . Проверено 24 декабря 2020 г.
- ^ «Спящий режим: искусство заставки: интервью Джейми Завински» . 27 января 2017 года . Проверено 24 декабря 2020 г.
Внешние ссылки
[ редактировать ]- СМИ, связанные с XScreenSaver, на Викискладе?
- Официальный сайт
- «XScreenSaver» . Бесплатный код .