- Embeddedsoft.ru
- Плюсы и минусы операционной системы
- (Linux Embedded)
- Что дает операционная система?
- Почему именно Linux?
- На каком «железе» стоит создавать встраиваемую систему?
- Как прошивать получившиеся блоки?
- Что такое Embedded Linux?
- Развёртывание встраиваемой системы на базе Windows и Linux
- Требования к интерфейсу
- Путь Windows
- Быстрое решение
- Правильное решение
- 1. Первичная установка
- 2. Конфигурация системы
- 3. Установка программ
- 4. Ручная настройка системы
- 5. Финальная автоматическая настройка системы
- Путь Linux
- Простое решение
- 1. Первичная установка
- 2. Конфигурация системы
- 3. Установка программ
- 4. Финальная настройка системы
- Выводы
- Проблема выбора
Embeddedsoft.ru
Плюсы и минусы операционной системы
(Linux Embedded)
Что дает операционная система?
Большую часть (в разумных пределах) задач встраиваемых систем можно решить без операционной системы (обычная «железяка» cortex M4 или ARM7 могут работать с сетью по каналу ethernet, иметь свой веб-сервер на борту, флеш-память, графический дисплей). Операционная система позволяет создавать сложные системы сбора данных, использовать множество утилит и программ, написанных для данной системы (flash-player, анимация, сетевые утилиты ftp, ssh и прочие).
Архитектура программного обеспечения в операционных системах обычно сильно отличается от архитектуры встраиваемой системы с единым standalone-приложением, включающим в себя работу с драйверами и алгоритмы работы системы в целом. Операционная система подразумевает многопоточность и многозадачность, возможность запуска нескольких отдельных программ одновременно.
Стоит учесть, что если в операционной системе нет каких-то драйверов и BSP не полная, то задача работы с железом усложняется в разы, т.к. разработчик должен понимать и основы работы ОС, драйверов, в то же время обладать опытом работы с железом на низком уровне.
С другой стороны, надо понимать что создавая встраиваемую систему задача не сделать полнофункциональный настольный компьютер, а лишь «промежуточное звено», которое даже может не иметь дисплея вовсе. Применение операционной системы не будет разумным в случае, если необходимо просто «помигать светодиодом» или даже просто выводить на экран статическое изображение согласно данным, приходящим по единственному интерфейсу rs-232.
Чаще всего используют linux, хотя в зависимости от задачи возможно использование и других ОС (для задач реального времени и низкопроизводительных микроконтроллеров используют FreeRTOS, QNX, Windows CE).
Почему именно Linux?
На данный момент Linux хорошо поддерживает различные архитектуры. Linux бесплатный, что важно когда создаются серийные устройства. У Linux большинство исходных кодов бесплатны, что не так важно для обычного настольного ПК, но становится часто важным для разработчиков встраиваемых систем, т.к. исходные коды позволяют собрать программное обеспечение под свою платформу. Не у всех есть понимание того факта, что программы собранные под настольный компьютер (архитектура x86) не будут запускаться на другой архитектуре (ARM, AVR32).
На каком «железе» стоит создавать встраиваемую систему?
Сейчас чаще всего используют ARM (cortex, tdmi), также популярные MIPS, AVR32 и прочие. ARM имеет хорошую поддержку в плане готового программного обеспечения и дистрибутивов, имеет хороший показатель производительности/энергопотребления. Многие программы портированы на ARM-архитектуру.
Как прошивать получившиеся блоки?
Многие разработчики standalone-приложений привыкли создавать один проект в какой-нибудь среде разработки (IAR, Keil, ImageCraft и прочие), настраивать проект под определенный «камень» и прошивать при помощи JTAG или UART. Со встраиваемыми системами конечно намного больше возни для разработчика. Многие ОС загружаются при помощи загрузчика, который стоит и прошивать как обычное приложение. Дальше (как правило при помощи ethernet, реже RS-232) при помощи загрузчика из консоли загружается сама операционная система. Процесс загрузки Linux, к примеру, описан на многих интернет-ресурсах. Стоит отметить, что когда система готова и отлажена, возможно считать образ получившейся системы (фактически всю флеш-память ОС) и на производстве прошивать целиком всю флеш-память.
Источник
Что такое Embedded Linux?
в Linux 11.09.2019 0 822 Просмотров
Термин «Embedded – встроенный Linux®» может использоваться для описания любого варианта операционной системы, работающей на встроенной компьютерной системе – специализированного устройства или платформы, интегрированных в более крупный общий продукт, такой как устройство бытовой электроники или часть оборудования. Модульная архитектура ядра Linux® наряду с поддержкой широкого спектра микропроцессоров и других типов оборудования сделала систему популярной в области вычислений. Но в некоторых сценариях Linux® может страдать от снижения производительности, поскольку ей требуется дополнительное программное обеспечение для работы в качестве операционной системы реального времени (RTOS), что является требованием для некоторых встроенных систем.
Несмотря на это, для встроенных систем используется множество пользовательских дистрибутивов Linux® – от мобильных телефонов до оборудования для тестирования авионики.
Встроенный компьютер отличается от персонального компьютера (ПК) тем, что встроенная система спроектирована или сконструирована для одной или нескольких конкретных целей, в то время как ПК предназначены для широкого спектра функций. Встроенный компьютер может быть спроектирован с минимальной производительностью, необходимой для достижения его конкретных целей, что обеспечивает лёгкую и высокоэффективную компьютерную платформу. Категория охватывает широкий спектр вычислительных устройств, от бытовой электроники до оборудования авионики, роверов и космических кораблей, которые исследуют солнечную систему. Но, как и любой компьютер, аппаратное обеспечение встроенной системы бесполезно без программной платформы, и во многих случаях выбранная программная платформа представляет собой некий вид встроенной Linux®.
Linux® доказала свою популярность во многих областях встраиваемых вычислений благодаря высокому уровню настройки и гибкости, а также разнообразной аппаратной поддержке. Ядро Linux® имеет модульную архитектуру, что означает, что разработчик или инженер может выбирать драйверы и программное обеспечение высокого уровня, необходимое для конкретной системы. Поддержка множества различных микропроцессорных архитектур также является важным преимуществом, предлагаемой встроенной Linux®, поскольку во встроенных системах может использоваться микропроцессор, который сильно отличается от тех, которые имеются в ПК. Как проект программного обеспечения с открытым исходным кодом, Linux® также может использоваться без ограничений и лицензионных отчислений, которые могут присутствовать в коммерческих предложениях.
Встраиваемые системы часто требуют операционной системы реального времени – операционной системы, способной реагировать на события в течение очень короткого периода времени. Поскольку ядро Linux® не было разработано с учётом производительности в режиме реального времени, для обеспечения этой функциональности, поверх ядра необходимо запустить дополнительное программное обеспечение. Это является потенциальным недостатком использования встроенной Linux®, поскольку это дополнительное программное обеспечение потребляет больше ресурсов.
Некоторые версии встроенной Linux® могут быть построены практически с нуля, в то время как другие являются слегка изменёнными версиями существующих дистрибутивов. Как коммерческие, так и некоммерческие организации предлагают свои собственные готовые дистрибутивы, предназначенные для производителей и дизайнерских фирм. Например, мобильные телефоны и медиаплееры обычно используют готовые варианты встроенной Linux®. Компьютерные системы или сетевые устройства могут использовать только слегка изменённую версию дистрибутива Linux® для настольных компьютеров.
В областях с высокими требованиями в режиме реального времени или требованиями к производительности конечный пользователь часто активно участвует в разработке системы. Например, Национальное управление по аэронавтике и исследованию космического пространства (НАСА) получает программное обеспечение Linux® от сторонних поставщиков, но устанавливает руководящие указания для поставщиков. Другие организации, такие как компании, производящие оборудование для тестирования авионики, могут разработать собственный вариант встроенной Linux®.
Источник
Развёртывание встраиваемой системы на базе Windows и Linux
В процессе разработки устройств, имеющих графический человеко-машинный интерфейс, рано или поздно возникает задача не только создания самого интерфейса, но и выбора платформы, на базе которой он должен работать. В качестве такой платформы может быть либо одноплатный компьютер с операционной системой, либо микроконтроллер с экраном и набором соответствующих библиотек, либо какое-то иное оригинальное решение.
Часто бывает, что на верхнем уровне системы управления, на котором работает интерфейс, выполняются также задачи связи с внешним миром и взаимодействие с широким набором периферийных устройств. Более того, интерфейс сам по себе может быть довольно требователен к графическим ресурсам. Учитывая это и в целях экономии трудозатрат можно взять за основу именно одноплатный компьютер и установить на него готовую операционную систему. Разработка программ в этом случае может сильно упроститься за счет использования современных фреймворков с хорошей документацией и набором примеров.
Требования к интерфейсу
С точки зрения пользователя интерфейс должен удовлетворять следующим требованиям:
- При загрузке на весь экран должно появляться одно приложение, оно же интерфейс, оно же графическая оболочка;
- Кроме этого приложения пользователю не должно быть доступно больше ничего;
- Приложение должно работать всё время, система не должна засыпать, экран не должен выключаться;
- Все сочетания клавиш, помощники, специальные возможности и прочие подобные функции должны быть отключены;
- В случае любого сбоя приложения — оно должно автоматически перезапускаться системой;
- К системе не предъявляются особые требования по быстродействию или режимам реального времени, однако, необходимо чтобы интерфейс откликался на команды пользователя без ощутимых задержек;
- Система должна быть устойчива к многократным жестким перезагрузкам, не должно быть необходимости выполнения специального сценария для завершения работы;
- Должна быть предусмотрена возможность быстрого клонирования готовой сборки на серию устройств с выполнением всех необходимых настроек в автоматическом режиме.
Другими словами, полное ограничение действий пользователя, устойчивость и масштабируемость.
Что касается операционной системы для одноплатного компьютера, то рассмотрим сразу два варианта, один на базе Windows, другой на базе Linux, и сравним их между собой.
Для примера создадим интерфейс киоска с сенсорным экраном. А в качестве приложения возьмем один из учебных примеров Qt Quick и реализуем его с некоторыми изменениями. Фреймворк Qt доступен для обоих операционных систем.
Чтобы не углубляться в нюансы установки Windows и Linux на ARM платформы, систему можно легко собрать на базе какого-нибудь x86-совместимого процессора. В данном случае для экспериментов была использована одна из множества доступных плат на платформе Intel Bay Trail.
Пакет всех программ и скриптов доступен на GitHub.
Путь Windows
В свое время для создания встраиваемых систем была представлена Windows Embedded от Microsoft. Еще в ранней версии Windows Embedded XP разработчикам предоставлялся набор инструментов для сборки максимально урезанных, но оснащенных нужными драйверами образов. Эти сборки требовали минимум оперативной памяти и прекрасно работали даже на слабых процессорах. Технология получила свое развитие в версии Windows Embedded Standard 7, где процесс создания собственных сборок был доведен до ума. В Windows Embedded применялась идеология открытого каталога модулей, и любой желающий мог оснастить свою систему только необходимым набором компонентов. Последняя версия, в которой был доступен такой подход, хотя уже в урезанном виде, это Windows Embedded Standard 8.1.
Современная Windows 10 IoT позиционируется как альтернатива Windows Embedded, но сильно отличается от своих предшественников. Открытый каталог компонентов более недоступен. Пропала возможность собирать лёгкие образы из конструктора и делать из них собственные установочные диски. Специальные опции именно встраиваемой системы, такие как фильтр записи, брендирование загрузчика, клавиатурный фильтр и прочее, теперь настраиваются уже в предварительно установленной системе. Причем, поддержка этих функций доступна только в составе тяжелой версий Windows 10 Enterprise.
Однако, несмотря на высокие системные требования, особенно к объему оперативной памяти, использование даже тяжёлых версий во встраиваемых решениях не вызывает особых проблем, в первую очередь за счет доступности аппаратных комплектующих. Тем более, не стоит забывать, что в последнее время становится сложнее купить лицензию на старые продукты от Microsoft.
Быстрое решение
При первом рассмотрении выясняется, что в даже в обычной Windows 10 есть уже встроенная функция «Assigned Access» (рис. 1), которая выглядит, как готовое решение поставленной задачи.
Рис. 1. Функция «Assigned Access»
Программа, которую можно использовать в этом случае в качестве интерфейса, должна быть изначально разработана как приложение Universal Windows Platform. Эти приложения в формате appx устанавливаются, например, на Windows Phone. Простое полноэкранное приложение, конечно, можно преобразовать в appx и подписать необходимыми сертификатами, а после этого установить. Оно может работать как интерфейс, но без должной защиты. К сожалению, в штатном режиме «Assigned access» для пользователя всё равно остается открытым доступ к некоторым системным настройкам и горячим клавишам. Получить в результате интерфейс, соответствующий всем изложенным выше требованиям, с помощью такого подхода не получится. Система должна быть настроена вручную, иным способом.
Правильное решение
1. Первичная установка
Итак, в первую очередь нам необходим дистрибутив Windows 10 Enterprise LTSB. Можно взять оригинальный образ Microsoft, можно какой-нибудь облегчённый или сделать свой, с помощью сторонних инструментов. Для экспериментальной платы была выбрана одна из готовых сборок (облегчённая 32-битная версия).
Устанавливаем систему из дистрибутива на целевую плату. При установке разбиваем диск на два раздела, C: — для системы, D: — для основного приложения, служебных программ и журналов. Такая разбивка пригодится в дальнейшем для фильтра записи. После установки дожидаемся появления меню настойки параметров, либо меню с настройками сети и дальше не продолжаем.
Перезагружаемся в служебный режим через Ctrl+Shift+F3.
Если в процессе установки не было ошибок, то после перезагрузки система сама зайдет в служебный аккаунт администратора и на экране появится окно SysPrep (рис. 2). Его надо закрыть, запускать SysPrep мы будем иначе, используя специальный файл ответов, который еще предстоит создать.
Рис. 2. Служебный режим.
2. Конфигурация системы
Для дальнейших действий понадобится Deployment Tools из комплекта Windows 10 Assessment and Deployment Kit.
Из диска с установленным на плату дистрибутивом Windows нужно извлечь файл образа install.wim. Бывает, что в некоторых сборках этот файл может храниться в сжатом виде с расширением esd. В этом случае его сначала нужно распаковать. Для этого используется утилита dism.
Выясним порядковый номер нужной версии внутри контейнера (SourceIndex).
Затем, извлечём файл образа (в данном случае, первый в контейнере).
Теперь нужно открыть образ в Windows System Image Manager (из комплекта Deployment Tools) и сгенерировать каталог.
Стоит отметить, что работать с образами в Windows System Image Manager можно только в том случае, если разрядность образа совпадает с разрядностью хоста. То есть, нельзя в 64-битной системе редактировать образ 32-битной версии. Тут, как говорится, без комментариев.
Когда каталог создан, отредактируем файл ответов для утилиты SysPrep. Введем данные о владельце, добавим нужных пользователей и настроим первый автологин (рис. 3).
Рис. 3. Создание файла ответов.
Все параметры перечислять смысла нет, с содержимым файла ответов можно ознакомится в репозитории. Главное, не забыть выставить параметры CopyProfile в true, SkipReam в 1 и включить автологин администратора. Свой ключ продукта можно вписать в разделе 4 specialize — Microsoft-Windows-Shell-Setup — ProductKey.
3. Установка программ
Далее понадобится собственно файл образа install.wim, поэтому его нужно положить рядом с файлом ответов customize.xml, в котором после сохранения нужно вручную заменить путь к образу. В конце файла строка должна выглядеть так:
Для получения демонстрационного интерфейса «KioskShell» нужно собрать версию для Windows из исходников. Советы по сборке есть в репозитории.
Копируем Файлы на плату и получаем следующую структуру файлов и каталогов:
4. Ручная настройка системы
Когда система находится в служебном режиме можно перезагружаться сколько угодно раз, система будет возвращаться в него автоматически. При длительном простое до настройки питания, однако, экран может заблокироваться и обратно уже будет не зайти, поможет только перезагрузка. Так как в каждом конкретном проекте могут быть свои особенности по настройке, ее лучше делать вручную, но можно воспользоваться и скриптами автоматизации.
Установим нужные компоненты встраиваемой системы и отключим контроль учетных записей (см. AfterSetup.bat из репозитория)
Установим все драйвера, настроим железо (IP сетевой карты, разрешение и ориентацию экрана, порты внешних устройств и прочее), отключим залипание клавиш и все специальные возможности.
Так как в будущем хотелось бы иметь возможность удаленного администрирования, включим доступ по RDP. Срок действия пароля администратора будет убран на этапе автоматической настройки.
Далее, нужно отключить обновление системы в Local Group Policy Editor (в разделе Computer Configuration — Administrative Templates — Windows Components — Windows Update нужно установить Configured Automatic Updates значение Disabled). Помимо этого, нужно ещё отключить автоматическое сканирование Центра обновления Windows (в планировщике заданий в разделе Microsoft — Windows — UpdateOrchestrator нужно отключить все задачи), иначе каждый раз при загрузке будет всплывать чёрное окно, а при подключении к Интернету Windows может внезапно начать обновляться.
Далее, настроим параметры питания. Для этого нужно сначала в разделе Advanced Power Settings сделать видимыми все настройки питания (для этого в реестре в каждом подразделе в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20 при наличии параметра Attributes нужно присвоить ему значение 2). Теперь, когда все настройки доступны, отключаем спящий режим, режим отсутствия, убираем действие по кнопке питания (если, конечно, не нужно иное) и отключаем таймер авторизации при простое. Далее, убираем режим ожидания с подключением (в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power нужно присвоить параметру CsEnabled значение 0). При необходимости, выключаем адаптивную регулировку яркости экрана.
Когда все настройки системы выполнены, у нас есть последняя возможность внести какие либо правки, так как второй запуск скрипта AfterSetup.bat запустит механизм автоматической настройки с помощью SysPrep, остановить который будет нельзя. Систему ещё надо не забыть активировать (с вариантами активации корпоративных версий Windows предлагается ознакомиться самостоятельно). Ещё на этом этапе можно сделать резервную копию всего диска и зафиксировать предварительное состояние образа на случай каких-либо изменений в будущем.
По окончании работы SysPrep не перезагрузит, а выключит компьютер — на этом моменте можно создать уже рабочий образ, готовый для портирования на серию.
5. Финальная автоматическая настройка системы
После первой загрузки рабочего образа (см. FirstLogon.bat из репозитория) произойдёт настройка защищённого интерфейса, автологин будет перенастроен на учетную запись User и будут отключены сочетания клавиш, которыми можно сломать систему. Далее, будет настроен и активирован Unified Write Filter. В данном случае, фильтр настроен на защиту всех разделов, кроме папок Service и Logs, и использует своп размером 256 Мб. Система перезагрузится несколько раз и, если всё сделано правильно, то при очередной загрузке появится защищённый интерфейс, запущенный от имени учетной записи User.
Для обслуживания системы на месте есть возможность попасть на экран входа в систему и, например, зайти в учетную запись администратора. В Windows 10 для этого предусмотрен штатный способ, нужно 5 раз подряд нажать клавишу «Win».
Путь Linux
Единого стандартного способа создания встраиваемых систем с графическим интерфейсом на базе Linux не существует. Как не существует и единого общего дистрибутива, всё таки, это семейство систем, которое создано на совершенно иных принципах. Наиболее близким по тематике может показаться проект Yocto Linux. Однако в нем достаточно сложно собирать образы, насыщенные приложениями, драйверами и сторонними библиотеками. Для решения поставленной задачи проще взять готовый, хорошо поддерживаемый дистрибутив и настроить его вручную.
Простое решение
1. Первичная установка
Итак, в первую очередь нам необходим сам дистрибутив, например Debian. Можно взять и другой, можно сделать свой. Главное, чтобы в дистрибутиве не было системы автоматического обновления. Для экспериментальной платы был выбран Debian Linux 9 (64-битная версия, ядро 4.9).
Устанавливаем систему традиционным способом. При установке разбиваем диск на два раздела, sda1 — / для системы, sda2 — /var/log для системных и программных логов. Такая разбивка пригодится в дальнейшем для фильтра записи. Устанавливаем штатный графический интерфейс xfce и сервер ssh. Добавляем в процессе установки пользователя administrator и задаем пароль.
После установки первым делом из аккаунта root добавляем пользователя administrator в группу sudo.
Заходим в систему под логином administrator и добавляем нового пользователя user.
Для удобства можно убрать для него пароль совсем, так как доступ для этого аккаунта будет всё равно везде закрыт.
2. Конфигурация системы
Устанавливаем драйверы, пакеты прошивок, дополнительные программы по желанию.
Для возможности удаленного администрирования в будущем, при необходимости, можно установить и настроить сервер vnc. Однако, в данном случае в этом нет смысла, так как все задачи администрирования можно легко выполнить через консоль, а для этого достаточно только доступа по ssh.
В Linux есть возможность использовать разные оконные менеджеры для разных пользователей. Для работы интерфейса пользователя установим минималистский менеджер с возможностью тонкой настройки. А для конфигурации понадобится ещё несколько приложений.
С помощью arandr можно изменить разрешение и ориентацию экрана, если это необходимо, а затем сохранить конфигурацию как скрипт (рис. 4).
Рис. 4. Настройка экрана.
Далее необходимо один раз зайти в систему под учетной записью user, предварительно выбрав в качестве оконного менеджера установленный ранее fluxbox, а затем обратно выйти. Это нужно для того, чтобы fluxbox при первом запуске создал все файлы настроек и был выбран в качестве стандартного менеджера для аккаунта user (см. файл .dmrc в домашнем каталоге пользователя).
Теперь нужно настроить fluxbox на соответствие требованиям к интерфейсу, описанным выше. Для этого в /home/user/.fluxbox/init выключим панель session.screen0.toolbar.visible: false, в /home/user/.fluxbox/keys закомментируем все сочетания клавиш кроме кнопок громкости, а в /home/user/.fluxbox/startup добавим запуск скрипта настройки экрана, отключение энергосберегающих функций монитора и автозапуск полноэкранного приложения. Скрипт будет перезапускать приложение в случае неожиданного сбоя.
Теперь необходимо ускорить процесс загрузки системы и скрыть его от пользователя. Для этого в /etc/default/grub установим GRUB_TIMEOUT=0 и в /etc/grub.d/10_linux выставим quiet_boot=«1». Для отображения анимации при загрузке в параметры ядра GRUB_CMDLINE_LINUX нужно добавить опцию splash, а в случае изменения ориентации экрана ещё опцию fbcon=rotate:1 или fbcon=rotate:3 в зависимости от направления. При необходимости можно поменять разрешение и ориентацию на экране входа в систему. Для этого в /etc/lightdm/lightdm.conf нужно указать display-setup-script=set_resolution.sh. А если необходимо скрыть курсор, то добавить xserver-command=X -core -nocursor.
Выберем стиль анимации загрузки.
И окончательно зафиксируем все изменения.
3. Установка программ
Для получения демонстрационного интерфейса «KioskShell» нужно собрать версию для Linux из исходников. Советы по сборке есть в репозитории.
Копируем файлы на плату и получаем следующую структуру файлов и каталогов:
4. Финальная настройка системы
На этом этапе можно сделать резервную копию всего диска и зафиксировать предварительное состояние образа на случай каких-либо изменений в будущем.
Настроим автоматический вход в систему под учетной записью user, для этого в /etc/lightdm/lightdm.conf установим autologin-user=user.
Теперь установим защиту от записи.
При установке выбираем dynamic fake device map.
Отредактируем файл настроек /etc/bilibop/bilibop.conf. Активируем модуль параметром BILIBOP_LOCKFS=«true» и добавим раздел с логами в исключения BILIBOP_LOCKFS_WHITELIST=»/var/log». Разрешим возможность временного отключения защиты при необходимости BILIBOP_LOCKFS_POLICY=«soft». И так как в системе нет шифрования, нужно установить BILIBOP_LOCKFS_SWAP_POLICY=«soft».
Перезагружаем систему и, если всё сделано правильно, появится защищенный интерфейс, запущенный от имени учетной записи user.
Последний этап может быть легко автоматизирован для получения системы с автоматической настройкой при первом запуске. Это позволит создать дистрибутив для масштабирования на несколько устройств (данный механизм предлагается реализовать самостоятельно).
Для обслуживания системы на месте есть возможность попасть на экран входа в систему и зайти в учетную запись администратора. В Linux для этого нужно сначала попасть в консоль через Ctrl+Alt+F1. После входа в аккаунт администратора принудительно вывести пользователя user из системы.
Затем вернуться в графический режим через Ctrl+Alt+F7 и ещё раз зайти под администратором.
Выводы
Независимо от того, какой из путей был выбран, в конечном итоге получится один и тот же результат. При правильной настройке пользовательский интерфейс будет соответствовать всем требованиям, описанным выше. Возможны лишь визуальные различия, связанные, как правило, с особенностями отрисовки графических элементов с использованием аппаратного ускорения на разных платформах.
Рис. 5. Интерфейс в рабочем режиме.
Так как основой системы является одноплатный компьютер, не составит проблем установить любой сенсорный экран или другие органы управления. При наличии соответствующего приложения, на данной базе можно создать не только консоль управления прибора или интерактивную панель мониторинга, но так же и другие устройства, например, информационные или торговые терминалы.
Проблема выбора
Существует мнение, что Linux очень сложен в настройке и обслуживании, но при этом бесплатен, а Windows проста и удобна, но при этом стоит денег. Это, пожалуй, верно, но только на бытовом уровне. Когда дело касается создания встраиваемых систем стоит принимать во внимание иные обстоятельства. Например, тонкая настройка Windows, особенно в части управления питанием и другими низкоуровневыми элементами, уже не кажется простой и удобной. Причем, не стоит забывать, что Windows 10 довольно требовательна к ресурсам. В данном примере удалось измерить несколько раз потребление памяти чистой системы, и оно составляло около 400 Мб в состоянии простоя. Для сравнения, Linux Debian со всеми дополнениями занимал в памяти около 200 Мб. Конечно, при наличии нескольких гигабайт оперативной памяти это не проблема, но всё же, при использовании Windows и высоконагруженных клиентских приложений приходится брать более мощные одноплатные компьютеры. Linux менее требователен к ресурсам, но действительно сложен в настройке и требует аккуратного подхода, особенно при работе с загрузчиком. Более того, при разработке и внедрении в систему некоторых элементов иногда бывает необходима сборка собственного ядра с особыми параметрами. Это эффективно, но требует соответствующего уровня квалификации.
В рамках создания защищенного интерфейса однозначный выбор сделать сложно. Трудоемкость развёртывания систем оказывается примерно одинаковой. Затраты на приобретение лицензий на Windows для серии приборов могут сравняться с затратами на обслуживание систем на Linux. Какую систему выбрать, решать вам.
Различные человеко-машинные интерфейсы, созданные на базе описанных примеров, были внедрены автором в электронные приборы для самых разных применений и доказали свою работоспособность в реальном мире.
Источник