Опубликован (https://www.hjdskes.nl/blog/cage/) код Cage (https://www.hjdskes.nl/projects/cage/), минималистичного композитного сервера на базе Wayland, ориентированного на обособленный запуск отдельных приложений в режиме киоска. Проект создавался для систем домашней автоматизации, но также может оказаться полезным для создания демонстрационных стендов, электронных вывесок и терминалов самообслуживания. Код проекта написан на языке Си и поставляется (https://github.com/Hjdskes/cage) под лицензией MIT.При использовании Cage интерфейс ограничен одним приложением, а пользователь не может выйти за пределы данного приложения и получить доступ к операционной системе. Все вспомогательные диалоги выводятся по центру экрана без возможности перемещения и изменения размера. Создание окружений осуществляется через запуск приложения под управлением Cage (например, для создания киоска с браузером Epiphany достаточно выполнить "cage /usr/bin/epiphany"). После завершения работы программы композитный сервер тоже завершает свою работу.
Экран привязывается к одному устройству вывода. Поддержка ввода в настоящее время ограничена клавиатурой и мышью, но в ближайшее время обещают добавить поддержку сенсорных экранов. Поддерживается помещение и извлечение данных через буфер обмена. Из протоколов обеспечена совместимость только с xdg-shell, возможность запуска X-приложений через Xwayland не реализована.
URL: https://www.hjdskes.nl/blog/cage/
Новость: https://www.opennet.dev/opennews/art.shtml?num=49869
Johnny Cage - flawless victory
Тем временем даже в билетных метро терминалах видел десяточку. Это как сходить в магазин на самолёте.
погромисты для самолета дешевле чем для дельтаплана
Стоимость часа работы Linux программиста сегодня незначительно отличается от стоимостью часа Windows программиста. Особенно программисты на языках далеких о специфики оборудования C#/Python/Lua/Java/Ruby (сегодня уже для всех этих языков существует сотни интерпретаторов для множества платформ и сотня универсальных библиотек).Сравнивать нужно стоимость разработки и владения продуктом. Скажем в решении для Windows есть определенные преимущества (готовность многих подсистем: графиеской в данном случае), так как многие компании предоставляют драйвера видео для своих устройств под Windows, а для Linux это "долг" и вот это рождает все эти KMS/Wayland и ставит перед программистом новую задачу изучить и реализовать графику (а это дополнительные расходы).
С другой стороны инженерия под Linux не требует поддержки многие годы. Некоторые системы работают по 5-10 лет и программистов просто сокращают (на собственном опыте знаком с таким явлением: разработали систему протестировали и чего штат инженеров держать их сокращают). А вот с Widnows все время какие-то ситуации происходят и нужно решать каждый раз обновлять .NET и ставить Visual Studio компилировать т.д.
Еще одна проблема в Linux это множество интерфейсов взять хотя бы вывод на экран KMS/DRM/X11/Wayland/DifectFB/fbdev/sdl/sdl2/svgalib и программист вынуждены непрерывно следить за новостями из мира Linux и изучать и сравнивать. В Widnows такой проблемы нет существует только один путь (GDI) вывода на экран и он уже реализован оптимальным способом через драйвер и так же со всем остальным: воспроизведение видео, аудио и т.д. А в Linux можно самому написать кодек можно взять libav/ffmpeg или даже посмотреть на IntelPP и т.д.
В конечном итоге я думаю, что дело тут просто квалификации специалистов, жестких временных рамках в которые необходимо реализовать систему (обычно заказчик как в опу ранен и сроки у него горят) и конечно отсутствии системных интеграторов с наработанной статистикой по Linux решениям. Вопрос в целом политический - почему просраны полимеры (экспертиза) в стране.
raspbian+FF замечательно справляются и не нужно никакого винтел
Стандартная "рисовалка" медленная, а "рисовалка" через драйвера GLES/VideoCore требует: покупки драйвера или написания графической прослойки (по сути так же драйвера).
ага, синий экран тоже часто видел, а в последнее время пошли со смайликом)
На бесплатном софте много не распилишь. Добавив виндовс в счёт за оборудование, его (счёт), как минимум, можно удвоить.
> На бесплатном софте много не распилишь. Добавив виндовс в счёт за оборудование,
> его (счёт), как минимум, можно удвоить.Особенно если постараться узнать стоимость корпоративных лицензий (а на терминалы другие не прокатят) и минимальное количество их для заказа.
Вы судя по всему знакомы с этим вопросом. Поясните пожалуйста,
а какая выгода исполнителю или менеджеру проекта выставлять счет
скажем в 100 тыс. или в 200 тыс. где половина будет лицензии Microsoft?Партнеры компании Microsoft предоставляют "откаты" за покупку лицензий?
Получается, что можно скажем получить не 100 тыс., а например 100 тыс.
плюс 50 тыс. откатов?
directFB умел это ещё в 2006-м году.
DOS умел это ещё в …
Не умел.
Самый крутой во времена DOS видео режим 320x200x256 (13h) или медленный SVGAlib протаскиваемый через вызовы BIOS. Очевидно, что DOS без DPMI менеджера не мог корректно выводить изображения. Сегодня мы видим, что можно делегировать разработку драйвера к оборудованию самому разработчику оборудования и это очень удобно, так что DOS логично не подходит, так как для него поддержка будет стоит заведомо дороже.
Зачем directfb, запускается одно полноэкранное приложение на фреймбуфере, и из него нельзя выйти (так как некуда)
Как раз вопрос зачем Cage с этой вашей прослойкой Wayland?
Что такого использует ПО для витрин из Wayland?
Чем проще использовать Cage перед использованием тогоже DirectFB?
Во-первых. DirectFB -- сдох и протух. Если ты находишься в неведении, сходи и погугли.
Во-вторых. Плавные анимации и отсутствие тиринга необходимы для работы киоск-приложений. Это обеспечивает Wayland. Ущербные X.Org или DirectFB это обеспечить не могут. Вот и весь секрет.
Кто мешает собрать аналог DirectFB на базе того же libdrm2?
Товарищ дело спрашивает зачем собирать: cage <- wlroots <- mesa <- ...
Когда драйвер уже написан и можно с ним напрямую работать?
Вопрос только в том, что пока нет подобной библиотеки,
а юные натуралисты почему-то пока стесняются выкладывать
свои поделия.
А можно уточнить?
Иксовое/вяленное приложением там запустится?
Оно же клиент, посылает запросы иксам, они в qt, оно рисует, даёт обратно, икса выводят.
Вяленые приложухи, правда сами картинку рисуют и потом отдают.
Но не уверен, что вяленый не не нужен для дров.
Зависит от поддержки тулкитом. В его лучшие годы файрфокс, например, запускался.
А какая разница выводить слой пикслеей в область памяти devfb или через KMS/DRM. Под ними и так будет слой драйверов. Производители вроде согласитись писать KMS/DRM драйвера и X11 потехоньку будет отходить от дел и переходить тоже на KMS.
Чем это лучше rootston?
На Сишечке, слава богу...
Точно утечки памяти, Null pointer вышибающий процесс все в лучших традициях.
Будь добрей https://www.youtube.com/watch?v=Snr113r5ocY
Удивительно, что не на rust или go
Есть еще адекватные люди.
А чем адекватные? Rust дает более безопастный код (более того там уже готовая операционка с графическим режимом есть самое оно витрины делать), а с Go я согласен не подходящий для данной задачи инструмент.
На си тоже можно безопасно писать, есть инструменты для отлова обращений по некорректному указателю. И стектрейс выпадает как в какой-нибудь яве.
удивительно, что не на electron
Вы только что отличную идею подали этим разгильдяям. Они теперь даже C# изучать не будут.
И так в некоторых банкоматах прощелкивание по кнопкам дает характерный зыук Internet Explorera,
а теперь так точно нахреначат полноэкранных рисовасек.
>запуск отдельных приложений в режиме киоска.Вспомнил 90-е и киоски.