XScreenSaver: Коллекция заставок для различных платформ
XScreenSaver
XScreenSaver: бесплатные и открытые скринсейверы для Unix, macOS, iOS и Android. 240+ режимов, регулярные обновления с 1992 года. Linux, FreeBSD и macOS.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Программное обеспечение для заставки экрана XScreenSaver — это бесплатный и открытый набор, включающий более 240 заставок для операционных систем Unix, macOS, iOS и Android. Он был создан Джейми Завински в 1992 году и до сих пор поддерживается им, с выходом новых версий несколько раз в год.
Screensaver software
XScreenSaver is a free and open source collection of 240+
screensavers for Unix, macOS, iOS and Android operating systems. It was created by Jamie Zawinski in 1992 and is still maintained by him, with new releases coming out several times a year.
Платформы
Свободные и открытые Unix-подобные операционные системы, использующие X Window System (например, Linux и FreeBSD), практически исключительно используют XScreenSaver. В этих системах существует несколько пакетов: один для заставки и блокировки экрана, и два или более для режимов отображения, разделенных несколько произвольно. В системах Macintosh XScreenSaver работает со встроенной в macOS заставкой. В системах iOS XScreenSaver является автономным приложением, способным запускать любые хаки на полный экран. В системах Android режимы отображения XScreenSaver работают либо как обычные заставки (которые Android иногда называет "Daydreams"), либо как живые обои. Официальной версии для Microsoft Windows не существует, и разработчик не рекомендует никому её портировать. Автор считает Microsoft "компанией с злонамеренной, хищнической и антиконкурентной деловой практикой" и заявляет, что, будучи одним из первых авторов Netscape Navigator, он питает "личную неприязнь" к Microsoft из-за её поведения во время Первой браузерной войны.
The free software and open source Unix like operating systems running the X Window System (such as Linux and FreeBSD) use XScreenSaver almost exclusively. On those systems, there are several packages: one for the screen saving and locking framework, and two or more for the display modes, divided somewhat arbitrarily. On Macintosh systems, XScreenSaver works with the built in macOS screen saver. On iOS systems, XScreenSaver is a stand alone app that can run any of the hacks full screen. On Android systems, the XScreenSaver display modes work either as normal screen savers (which Android sometimes refers to as "Daydreams") or as live wallpapers. There is no official version for Microsoft Windows, and the developer discourages anyone from porting it. The author considers Microsoft to be "a company with vicious, predatory, anti competitive business practices"
and says that, as one of the original authors of Netscape Navigator, he holds a "personal grudge" against Microsoft because of its behavior during the First Browser War.
Архитектура программного обеспечения
Демон XScreenSaver отвечает за обнаружение бездействия, затемнение и блокировку экрана, а также запуск режимов отображения. Режимы отображения (называемые "хаками" от исторического использования термина "display hack") представляют собой отдельные программы. Это важная функция безопасности, поскольку режимы отображения изолированы в отдельном процессе от системы блокировки экрана. Это означает, что ошибка программирования в одном из графических режимов отображения не сможет скомпрометировать саму систему блокировки экрана (например, сбой в режиме отображения не разблокирует экран). Это также означает, что стороннюю заставку можно написать на любом языке программирования или с использованием любой графической библиотеки, при условии, что она способна отрисовывать изображение в предоставленном внешне окне. По историческим причинам и для обеспечения переносимости, все включенные хаки написаны на ANSI C. Примерно половина из них использует API X11, а другая половина – API OpenGL 1.3. Вместо того, чтобы создавать отдельные ветки кодовой базы и переписывать хаки для различных платформ, XScreenSaver содержит ряд слоев совместимости. Чтобы хаки, основанные на X11, могли работать на macOS и iOS, XScreenSaver содержит полную реализацию API X11, построенную на основе Cocoa ("jwxyz"). Чтобы хаки, основанные на OpenGL 1.3, могли работать на iOS и Android, которые поддерживают только OpenGL ES, XScreenSaver содержит реализацию API OpenGL 1.3, построенную на основе OpenGL ES 1.0 ("jwzgles"). И чтобы хаки, основанные на X11, могли работать на iOS и Android, XScreenSaver также содержит реализацию API X11 в терминах OpenGL ES 1.0.
The XScreenSaver daemon is responsible for detecting idle ness, blanking and locking the screen, and launching the display modes. The display modes (termed "hacks" from the historical usage "display hack") are each stand alone programs. This is an important security feature, in that the display modes are sandboxed into a separate process from the screen locking framework. This means that a programming error in one of the graphical display modes cannot compromise the screen locker itself (e. g., a crash in a display mode will not unlock the screen). It also means that a third party screen saver can be written in any language or with any graphics library, so long as it is capable of rendering onto an externally provided window. For historical and portability reasons, the included hacks are all written in ANSI C. About half of them use the X11 API, and about half use the OpenGL 1.3 API. Rather than forking the code base and re writing the hacks to target different platforms, XScreenSaver contains a number of compatibility layers. To allow the X11 based hacks to run natively on macOS and iOS, XScreenSaver contains a complete implementation of the X11 API built on top of Cocoa ("jwxyz"). To allow the OpenGL 1.3 based hacks to run natively on iOS and Android systems, which only support OpenGL ES, XScreenSaver contains an implementation of the OpenGL 1.3 API built in top of OpenGL ES 1.0 ("jwzgles"). And to allow the X11 based hacks to run natively on iOS and Android, XScreenSaver also contains an implementation of the X11 API in terms of OpenGL ES 1.0.