Как и чем можно реализовать GUI приложения в качестве графической оболочки Linux?
С помощью каких инструментов или каким образом возможно реализовать GUI прикладного приложения в качестве графической оболочки Linux? То есть после загрузки операционной системы пользователь должен видеть лишь графический интерфейс целевой программы. Для чего это нужно? Есть всевозможные одноплатные компьютеры (raspberry pi и прочие), чтобы не нагружать ресурсы одноплатника работой с графической оболочкой Linux, хотелось бы создать свой дистрибутив Linux, в котором в качестве графической оболочки будет лишь GUI, какой-либо программы, что позволит снизить нагрузку на систему. Реализацию подобного видел в видеорегистраторах для видеоналюдения. Но как реализовать подобное не знаю. Подскажите в какую сторону стоит копать
Если вам программа ровно одна - то ее и запускать при старте. Никаких лишних оболочек не нужно.
Если нужна легковесная оболочка - см. Awesome Windows Manager, OpenBox Window Manager. И просто используй их. Загляни внуть исходников и забудь про то, чтобы забыть как страшный сон свою идею про "написать оболочку самому". Или не забудь.
В качестве примера легковесного дистрибутива см. исходники BunsenLabs Linux. Существенно легче, чем он у вас вообще не получится сделать универсальный дистрибутив.
Только узкоспециализированный. Но это см. первые два предложения в моем тексте.
Если вам программа ровно одна - то ее и запускать при старте. Никаких лишних оболочек не нужно.
Да, программа будет ровно одна. Но я не представляю, как можно запустить программу с GUI например на серверной версии linux, без Desktop environment?
nvrstyle, по минимуму для GUI только X-сервер нужен.
Их туева хуча существует.
Для некоторых программ правда потребно больше, чем голый Х-сервер. Может понадобится и WM и DM для особо капризных.
Однако с точки зрения экономии ресурсов заморачиваться с оболочкой смысла нет - сама главная (основная, единственная) программа может жрать куда как больше, чем OpenBox/Awesome. Если она сколько-нибудь сложная. Например, браузер.
Не слишком понятно - хотите написать свое приложение с гуем или же хотите запускать существующее приложение при старте?
Если первое - существует вагон и еще тележечка тулкитов - правда большинство из них старые и страшные.
- Стандартный X Toolkit
- Tk
- Motif
...и что-то там еще было. Ну, qt разумеется, но qt - это не про экономию ресурсов :)
Если второе - запускать программу вместоWM Там возможно с ключами запуска придется пошаманить, чтобы сразу растянуть на полный экран - ведь кнопок управления не будет!
Как запускать? Через .xinitrc, если Х стартует с DM или через startx - если вручную.
m0nym,
Именно по этому веб интерфейс настолько распространился
1. кросплатформенность, притом совершанно полная.
2. Стандартизация
3. Минимальная трудозатратность.
4. Нет проблемы с кодерами.
5. вы же не фотошоп делаете где нужна ( скорость самого приложения) .
Как правило на железках это именно управляющий софт, а его скорость работы вообще не важна, несколько байт в секунду он точно передать успеет.
Веб сервер сам по себе очень маленький по сравнению с инициализацией x11 даже не близко.
Если хотите быстро и очень быстро не взирая на время разработки то возьмите Калибри ос https://kolibrios.org/ru/index , отрежте все что вам там надо и добавьте ваш гуи.
Очень быстро и очень маленький размер
Виктор Таран, здесь use case устройства совершенно другой. В пример был приведён роутер, но роутер не подключается к монитору. На роутере запущен веб-сервер, на который можно зайти из браузера на другом устройстве. Мне же необходимо само устройство подключать к монитору. Например raspberry pi подключается к монитору, на raspberry запущено приложение, которое написано на плюсах, чтобы работало быстрее и пользователь работает с приложением на raspberry pi, а не получает доступ к нему с другого устройства
Именно по этому веб интерфейс настолько распространился
1. кросплатформенность, притом совершанно полная.
2. Стандартизация
3. Минимальная трудозатратность.
4. Нет проблемы с кодерами.
5. вы же не фотошоп делаете где нужна ( скорость самого приложения) .
Главное что тут важно - кросс-платформенность.
Кросс-платформенность, посему минимизация трудозатрат. Отсюда следует массовость - посему большое количество кодеров.
Стандартизация - ага, конечно.
Задача у топикстартера совсем иная - минимизация ресурсов ОС и запуск одного GUI-приложения.
Если вы не уловили сарказма в моих словах - веб-интерфейс говно по эффективности использования ресурсов.
Универсальность и простота для разраба - в нем прет впереди минимизации.
m0nym,
cарказм ваш был очевиден, вот только от этого веб интерфейс хуже не стал.
Я бы вам в таком случае рекомендовал вовсе отказаться от интерфейса или сделать его консольным.
Дабы линукс умудряется работать как-то без GUI вовсе, и хуже от этого не стал.
1. чистая консоль ( ваша)
2. консльная админка