Оригинальный автор(ы) | Джейми Завински |
---|---|
Разработчик(и) | Джейми Завински |
Первоначальный выпуск | 17 августа 1992 г. ( 1992-08-17 ) |
Стабильный релиз | 6.08 / 10 октября 2023 г. ( 2023-10-10 ) [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 иногда называет «Daydreams»), либо как живые обои .
Официальной версии для Microsoft Windows не существует , и разработчик отговаривает кого-либо от ее портирования. Автор считает Microsoft «компанией с порочной, хищнической, антиконкурентной деловой практикой» [6] и говорит, что как один из первоначальных авторов Netscape Navigator он испытывает «личную неприязнь» к Microsoft из-за ее поведения во время Первой войны браузеров .
Демон XScreenSaver отвечает за обнаружение бездействия, гашение и блокировку экрана, а также за запуск режимов отображения. Режимы отображения (называемые «хаками» от исторического использования « display hack ») являются отдельными программами.
Это важная функция безопасности, поскольку режимы отображения изолированы в отдельный процесс от фреймворка блокировки экрана. Это означает, что программная ошибка в одном из графических режимов отображения не может поставить под угрозу сам блокировщик экрана (например, сбой в режиме отображения не разблокирует экран).
Это также означает, что сторонняя заставка может быть написана на любом языке или с использованием любой графической библиотеки, при условии, что она сможет отображаться во внешнем окне.
По историческим причинам и из соображений переносимости все включенные хаки написаны на ANSI C. Примерно половина из них использует API X11 , а примерно половина — API OpenGL 1.3.
Вместо того чтобы разветвлять кодовую базу и переписывать хаки для разных платформ, XScreenSaver содержит несколько уровней совместимости.
В дополнение к изоляции режимов отображения, демон XScreenSaver связывается с минимальным количеством библиотек. В частности, он не связывается с такими GUI-фреймворками, как GTK или KDE , а использует только сырой Xlib для рендеринга диалогового окна разблокировки.
В последние годы некоторые дистрибутивы Linux начали использовать фреймворки gnome-screensaver или kscreensaver для гашения экрана по умолчанию вместо фреймворка, входящего в состав XScreenSaver. [9] В 2011 году gnome-screensaver был разделен на mate-screensaver и cinnamon-screensaver . Более ранние версии этих фреймворков по-прежнему зависели от коллекции экранных заставок XScreenSaver, которая составляет более 90% пакета. [10] Однако в 2011 году gnome-screensaver версии 3 полностью прекратил поддержку экранных заставок, поддерживая только простое гашение экрана, [11] а с 2018 года cinnamon-screensaver 4.0.8 Linux Mint больше не поддерживает хаки XScreenSaver. [12]
Те дистрибутивы Linux, которые заменили XScreenSaver другими фреймворками блокировки экрана, столкнулись с заметными проблемами безопасности. Эти другие фреймворки имеют историю ошибок безопасности, которые позволяют разблокировать экран без пароля, например, просто удерживая клавишу до тех пор, пока блокировщик не рухнет. [13] [14] [15] [16] [17] [18] [19]
В 2004 году Завински написал об архитектурных решениях, принятых в XScreenSaver с целью избежать этого класса ошибок, [20] что привело его к шутке в 2015 году: «Если вы не используете XScreenSaver на Linux, то можно с уверенностью предположить, что ваш экран не блокируется». [21]
Включенные в сборник хаки весьма разнообразны: от простой 2D- психоделии до 3D-демонстраций сложных математических принципов, моделирования других компьютерных систем и воссоздания артефактов и эффектов из фильмов.
Хотя многие из новых хаков в полной мере используют возможности современных компьютеров, возраст проекта означает, что некоторые из старых хаков могут показаться современным глазам устаревшими, поскольку изначально они были написаны для гораздо менее мощных компьютеров.
Примеры взломов включают в себя: [3]
Некоторые из включенных хаков очень похожи на демонстрационные эффекты, созданные демосценой :
XScreenSaver был представлен в «Спящем режиме: искусство заставки» [ 22], галерее-выставке, которую курировал Рафаэль Розендал в Het Nieuwe Instituut в Роттердаме в 2017 году.