Комментарии 17
Вы категорически неправильно используете линукс. От слова «совсем». Вы ставите дистрибутив общего назначения с интерфейсами общего назначения. Существует масса способов сделать странное — ctrl-shirt-u, Alt-Sys-Rq, Ctrl-Alt-Fx, etc. Более того, вынос логов на /var/log (на отдельный раздел) совершенно не решает задачи идемпотентности системы (то, что вы говорили про «многочисленные перезагрузки по питанию).
Как это делать Правильно:
1. Squashfs и система в ramdisk'e. После того, как ОС загрузилась, блочное устройство не примонтировано и не используется. Это гарантирует, что никакие сбои по питанию не приведут к ошибке при записи. Правильно настроенный ramdisk не даст сожрать слишком много памяти, а в случае runaway-процесса просто приведёт к перезагрузке системы (вместе с сбросом всей той гадости, что была в системе).
2. Приложение должно запускаться под голыми x'ами, без каких-либо login manager'ов. Идеальный вариант — systemd-unit, который зависит от X'ов, и является зависимостью multiuser.target. Там же можно настроить всё восхитительное: а) изоляцию приложения от системы. б) cgroups для лимитов ресурсов в) правила перезапуска г) Удобство мониторинга.
3. Доступ для обслуживания — только через заблокированные интерфейсы. ssh, serial console. Grub в режиме отключенной графики и клавиатуры (на экране не будет менюшек, менюшки будут на последовательных портах).
4. Отключены все plug-n-play штуки, которые не используются для системы. Вы никогда не знаете, какую замечательную PCI-to-USB плату вам воткнут в usb с доступом к системной плате.
5. Заблокированы все системные кнопки — ctrl-alt-del, suspend, alt-sysrq. Если интерфейс точ, то проще всего это сделать отключив клавиатуру „вообще“.
6. Отключены все режимы энергосбережения экранов.
7. В настройках сети выключены все странные вещи — приём ipv6 ra и privacy extensions (или ipv6 целиком), dhcp у ipv4 (если не DHCP в своей сети).
8. Отключены виртуальные консоли linux — графическая сессия и только. Для конфигурирования — ssh/serial.
Как это делать Правильно:
1. Squashfs и система в ramdisk'e. После того, как ОС загрузилась, блочное устройство не примонтировано и не используется. Это гарантирует, что никакие сбои по питанию не приведут к ошибке при записи. Правильно настроенный ramdisk не даст сожрать слишком много памяти, а в случае runaway-процесса просто приведёт к перезагрузке системы (вместе с сбросом всей той гадости, что была в системе).
2. Приложение должно запускаться под голыми x'ами, без каких-либо login manager'ов. Идеальный вариант — systemd-unit, который зависит от X'ов, и является зависимостью multiuser.target. Там же можно настроить всё восхитительное: а) изоляцию приложения от системы. б) cgroups для лимитов ресурсов в) правила перезапуска г) Удобство мониторинга.
3. Доступ для обслуживания — только через заблокированные интерфейсы. ssh, serial console. Grub в режиме отключенной графики и клавиатуры (на экране не будет менюшек, менюшки будут на последовательных портах).
4. Отключены все plug-n-play штуки, которые не используются для системы. Вы никогда не знаете, какую замечательную PCI-to-USB плату вам воткнут в usb с доступом к системной плате.
5. Заблокированы все системные кнопки — ctrl-alt-del, suspend, alt-sysrq. Если интерфейс точ, то проще всего это сделать отключив клавиатуру „вообще“.
6. Отключены все режимы энергосбережения экранов.
7. В настройках сети выключены все странные вещи — приём ipv6 ra и privacy extensions (или ipv6 целиком), dhcp у ipv4 (если не DHCP в своей сети).
8. Отключены виртуальные консоли linux — графическая сессия и только. Для конфигурирования — ssh/serial.
+17
Я думаю это было его первое свидание с linux. Добавлю ещё, что если уж используется debian, то собрать образ автоматически не составит труда, при помощи debootstrap и chroot.
А для совсем энтузиастов, можно задействовать gentoo (что, кстати, многие и делают): если выпилить всё, что не нужно конечному устройству, то получиться небольшой оптимизированный под будущее железо дистрибутив. Правда в последнем варианте, будет собираться капец как долго.
А для совсем энтузиастов, можно задействовать gentoo (что, кстати, многие и делают): если выпилить всё, что не нужно конечному устройству, то получиться небольшой оптимизированный под будущее железо дистрибутив. Правда в последнем варианте, будет собираться капец как долго.
+2
А можно вообще обойтись без иксов если приложение написано на QT — запускал так простой QML который открывает страничку в QTWebKit в режиме eglfs c GBM бэкэндом.
(одноплатник orange pi lite)
(одноплатник orange pi lite)
0
Сравнение Linux-у нужно 200 мбайт, а Windows 400 мбайт, это конечно очень подробное сравнение двух операционных систем.
Все-таки по таким примерам стоит сравнивать, например, два разных дистрибутива Linux.
А для двух настолько разных ОС, надо сравнивать какие преимущества и недостатки эти две экоструктуры дают, а затем уже сравнивать их потребление, понимая от чего отказываешься.
Все-таки по таким примерам стоит сравнивать, например, два разных дистрибутива Linux.
А для двух настолько разных ОС, надо сравнивать какие преимущества и недостатки эти две экоструктуры дают, а затем уже сравнивать их потребление, понимая от чего отказываешься.
0
Что то про android не заслуженно забыли, там тоже есть киоск мод
Считай из коробки.
Единственно только проблематично управлять удаленно. Но этот пункт почему то упущен в требованиях.
Считай из коробки.
Единственно только проблематично управлять удаленно. Но этот пункт почему то упущен в требованиях.
Заголовок спойлера
К системе не предъявляются особые требования по быстродействию или режимам реального времени, однако, необходимо чтобы интерфейс откликался на команды пользователя без ощутимых задержек;
Система должна быть устойчива к многократным жестким перезагрузкам, не должно быть необходимости выполнения специального сценария для завершения работы;
Должна быть предусмотрена возможность быстрого клонирования готовой сборки на серию устройств с выполнением всех необходимых настроек в автоматическом режиме.
0
Работал когда-то с банкоматами.
Везде был only windows, хотя казалось бы.
А причина проста: драйвера на специфичную для такого рода устройств периферию, угу, точнее их отсутствие под linux
Везде был only windows, хотя казалось бы.
А причина проста: драйвера на специфичную для такого рода устройств периферию, угу, точнее их отсутствие под linux
+1
На рисунке плата Qotom pico itx c UEFI без BIOS. Кто скажет, реально на ней linux запустить?
Например, OpenWrt, а может Debian?
Например, OpenWrt, а может Debian?
0
1 — ели устанавливается крыска(xfce) то на кой ляд ещё и fluxbox? куча мусора ведь подтянется… не проще сразу fluxbox? например юзаю крыску и доволен почти всем.
2- зачем скрывать меню grub-а? вот прикинь не запускается основная конфигурация… а такое после обновления на новую версию частенько бывает. и как выбрать другую конфигурацию? а так в грубе стрелкой на клаве выбрал и нет проблем.
2- зачем скрывать меню grub-а? вот прикинь не запускается основная конфигурация… а такое после обновления на новую версию частенько бывает. и как выбрать другую конфигурацию? а так в грубе стрелкой на клаве выбрал и нет проблем.
+1
Я правильно понимаю, аппетиты десятки никак не умерить в режиме IoT?
0
шановный, а какие это затраты при обслуживании Linux-а? О_о лет 5 юзаю и никому ни разу не платил. если руки и голова кривые, то наверное с лялексом не нужно связываться.
0
На сайте Microsoft есть хорошая инструкция, описывающая, что и как делать: docs.microsoft.com/en-us/windows-hardware/customize/enterprise/enterprise-custom-portal
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Развёртывание встраиваемой системы на базе Windows и Linux