Встраиваемый Linux – это операционная система или ядро, созданное на основе системы Linux и предназначенное для встроенных устройств и систем. Системы Linux компактны и эффективно работают со встроенными системами и компонентами.
Во-первых, давайте узнаем, что такое встроенные системы.
Встроенная система – это аппаратная компьютерная система на базе полупроводникового микропроцессора со встроенным программным обеспечением, разработанная для выполнения определенной функции в качестве независимой или обширной системы. Ядром встроенных систем является интегральная схема, предназначенная для выполнения вычислительных процессов и операций в режиме реального времени.
Встроенные системы могут быть простыми: от отдельных микроконтроллеров до сложных подключенных периферийных устройств, от отсутствия пользовательского интерфейса до материалистического графического пользовательского интерфейса. Они могут быть построены в соответствии со своими задачами, от единичных до любых интенсивных комплексов. Их применение варьировалось от часов до гибридных транспортных средств.
Мы можем разделить встроенные системы в соответствии с их производительностью, функциями, требованиями и внутренними компонентами. Благодаря этим сведениям их можно разделить на отдельные категории и дополнительные подкатегории.
Здесь мы разделим встроенные системы по их программам, дизайну, производительности и функциям.
Мы также можем классифицировать встраиваемые системы в соответствии с их внутренними компонентами и микроконтроллерами на три типа:
Дополнительную информацию о встроенных системах можно найти в наших предыдущих статьях. Здесь мы обсудим встроенный Linux.
Linux похожа на любую другую операционную систему, включая Windows, iOS или Android. Linux может включать в себя графические пользовательские интерфейсы, полнофункциональные настольные приложения, как и другие операционные системы. Возможно, вы не знали, но Linux — это второй выбор после Windows для настольных ПК.
Linux намного ценнее, чем операционная система, поскольку она доступна с открытым исходным кодом. Исходные коды Linux и других компонентов доступны онлайн и бесплатны для использования; Любой может свободно просматривать их и вносить изменения в коды по своему усмотрению.
Мы можем объяснить это как операционную систему или ядро Linux, предназначенное для встраиваемых систем и устройств. Они используют одно и то же ядро, но оно может отличаться от других обычных операционных систем. Linux может быть эффективно спроектирован для встроенной системы любого размера, минимального по сравнению с другими, что требует меньше вычислительной мощности и энергии со всеми необходимыми функциями и функциями.
Вы можете знать или нет, но вы уже так или иначе используете Linux. Linux используется во многих типах устройств в качестве программного обеспечения. Возьмем общий пример; ОС Android от Google Inc. основана на Linux и представляет собой некую встраиваемую систему, предназначенную для мобильных устройств. Smart TV, iPad, автомобильные навигационные системы — другие общие примеры. Некоторые примеры небольших встраиваемых систем Linux
Как мы видели, Linux присутствует почти везде, даже в Microsoft Windows в качестве компонентов для WSI. Но лучшее применение Linux — это Android от Google.
Разработка Linux в основном выполняется на собственном хосте Linux. Тем не менее, разработка встраиваемых систем Linux может выполняться с помощью версии Linux для ПК со встроенными библиотеками и инструментами, что делает ее идеальной для проектирования и разработки продуктов для встраиваемых систем. Пользователям Windows нужен только узел виртуальной среды; мы можем установить Ubuntu или другую ОС Linux в виртуальной среде и создать программные продукты для встроенных систем.
Microsoft также предлагает собственную среду разработки для Linux под названием WSL или Windows Sub-System for Linux, которая поставляется со встроенной операционной системой Windows 10. WSL открывает разработчикам интерфейс ядра, совместимый с Linux.
Как вы читали в этой статье, Linux используется в самых разных местах, а встроенный Linux является частью любого другого электронного устройства, которое мы используем; Что доказывает, что у них есть что предложить. Они компактнее других операционных систем и обеспечивают те же функциональные возможности и требования к встроенным компонентам. Некоторые общие преимущества:
Кроме того, большинство разработчиков используют Linux для своих обычных целей, что делает его привычным для работы.
Предполагается, что индустрия встраиваемых систем будет быстро развиваться благодаря потенциальным технологическим разработкам, включая виртуальную реальность, дополненную реальность, искусственный интеллект, глубокое обучение, машинное обучение и Интернет вещей. Embedded Linux станет основным компонентом этих будущих технологий, чтобы сделать их более эффективными и точными. Мы уже используем встроенные системы с Linux, и будущее готово для большего.
Если вы только начинаете создавать свой собственный электронный продукт, вы должны знать о встраиваемой системе Linux.
Сегодня мы кратко поговорим о встроенных системах и о том, почему вам следует подумать об использовании Linux для ваших начинающих проектов.
Встроенная система — это компьютер, который служит для выполнения определенных задач, связанных с вычислениями для операций в реальном времени. Встраиваемые системы окружают нас повсюду: в потребительских, промышленных, телекоммуникационных и даже медицинских приложениях.
Встраиваемые системы могут иметь разную степень сложности: от простого термометра до современных смартфонов. Сегодня спрос на мощные встроенные системы растет, поскольку современные приложения, такие как машинное обучение, внедряются в потребительские устройства.
Встраиваемый Linux — это тип ядра Linux, специально разработанный для встроенных устройств. Например, популярная операционная система для смартфонов Android – это разновидность встроенного Linux, адаптированная для смартфонов.
Проще говоря, ядро — это ядро операционной системы, которое управляет работой компьютера и его аппаратного обеспечения, особенно памятью и процессором. Другими словами, ядро — это интерфейс между программным и аппаратным обеспечением.
Для получения более подробной информации об архитектуре Linux Джордж Хиллиард предлагает отличный обзор и введение.
Если вы пытаетесь создать свой собственный проект, разработка ядра с нуля для вашего оборудования — невероятно сложный процесс, поскольку он требует глубоких знаний как оборудования, так и кода.
Возможно, вы также слышали о ядерных ядрах задач (без операционной системы) для микроконтроллеров, таких как FreeRTOS, Azure RTOS, RT-Thread, µC/OS, но в этих вариантах отсутствует управление памятью и защита, которые имеют решающее значение для создание современных приложений. По этой причине вам может потребоваться более комплексное решение.
К счастью, использование встроенного Linux на микропроцессоре во встроенных приложениях дает много преимуществ, таких как встроенное управление динамической памятью и модули безопасности, которые вы, возможно, захотите рассмотреть.
За прошедшие годы Linux расширился до поддержки большого количества архитектур ЦП, включая x86, ARM, PowerPC и т. д. Таким образом, независимо от того, с каким оборудованием вы работаете, есть большая вероятность, что ядро Linux уже существует для него.
Linux поддерживает практически все языки программирования и утилиты, необходимые для разработки встроенных систем. С Linux вы не ограничены каким-либо конкретным программным обеспечением. Если вы чем-то недовольны, есть большая вероятность, что альтернатива доступна — или вы можете быть первым в сообществе, кто ее разработает!
Ядро Linux с открытым исходным кодом позволяет использовать результаты работы тысяч разработчиков по всему миру. Изменяя или напрямую внедряя существующие пакеты, вы можете гораздо проще и быстрее запускать и запускать свои собственные приложения.
Теперь, когда мы узнали больше о преимуществах встроенного Linux, пришло время изучить, как мы можем его использовать!
Лучший способ погрузиться в мир встраиваемых систем Linux — приобрести одноплатный компьютер. Сегодня существует множество доступных одноплатных компьютеров, поставляемых со специализированными встроенными дистрибутивами Linux, которые вы можете сразу начать разрабатывать и использовать в своих собственных проектах.
Дистрибутивы или «дистрибутивы» Linux – это различные разновидности операционных систем, работающих на ядре Linux. Они могут предлагать различные встроенные функции или инструменты, обеспечивающие различные возможности для пользователей и разработчиков.
Чтобы лучше использовать ограниченные ресурсы встроенных устройств, дистрибутивы серверов не поставляются с графическим пользовательским интерфейсом или графическим пользовательским интерфейсом. Вместо этого придется использовать интерфейс командной строки.
Ещё больше рекомендуемых дистрибутивов Linux для начинающих см. на странице Лучшие дистрибутивы Linux 2020 для начинающих.
Одним из популярных и экономичных встраиваемых решений Linux является Raspberry Pi 4, который поставляется с собственной операционной системой Raspberry Pi OS. Настольная ОС очень удобна для начинающих и проста в использовании, с официальными пошаговыми руководствами от Raspberry Pi Foundation и обширной поддержкой сообщества.
Вас также могут заинтересовать следующие популярные встроенные одноплатные компьютеры Linux:
SBC | Операционная система | Хорошо | Стоимость |
Raspberry Pi Zero / Zero W | Linux | Низкая стоимость и малый форм-фактор | $5/$10 |
Raspberry Pi 4 | Linux | Введение и обучение с отличной поддержкой | 35 долларов США |
Odyssey — X86J4105864 | Windows и Linux с сопроцессором Arduino | Разработка высокопроизводительных граничных вычислений | 258 долл. США |
Комплект разработчика NVIDIA Jetson Nano 2 ГБ | Linux | Удобный вариант машинного обучения для начинающих | 59 долл. США |
Комплект разработчика NVIDIA Jetson Xavier NX | Linux | Высокопроизводительный искусственный интеллект и машинное обучение | 399 долларов США |
таблица>
Чтобы узнать больше об одноплатных компьютерах, которые можно использовать со встроенным Linux и не только, посетите: Альтернативы Raspberry Pi: 17 лучших одноплатных компьютеров в 2020 году.
Встраиваемый Linux: индивидуальное решение
Если ни один из существующих вариантов операционной системы Linux не соответствует вашим потребностям или вы просто хотите сделать это самостоятельно, вы можете приступить к созданию собственной встраиваемой системы Linux несколькими способами.
Yocto — проект для совместной работы с открытым исходным кодом, предоставляющий гибкий набор инструментов и платформу для создания пользовательских систем на базе Linux независимо от аппаратной архитектуры.
Buildroot — простой, эффективный и удобный инструмент для создания встроенных систем Linux с помощью кросс-компиляции.
OpenWrt — настраиваемая среда Linux для встраиваемых устройств (обычно беспроводных маршрутизаторов)
Чтобы получить дополнительную информацию о каждом из этих специализированных встраиваемых решений Linux, посетите каждый из их веб-сайтов, чтобы получить дополнительную информацию о том, как начать работу.
Дополнительные учебные ресурсы
Вот также некоторые онлайн-ресурсы и курсы, которые вы можете изучить для более глубокого понимания ядра Linux и встроенных приложений. Я настоятельно рекомендую статьи Bootlin, так как они бесплатны и удобны для начинающих.
Заключение
Итак, если вы хотите разработать собственный проект и вам нужна надежная платформа для создания приложений, обязательно попробуйте встроенный Linux. Благодаря обширному аппаратному обеспечению и поддержке сообщества вы сможете настроить и запустить свои устройства в кратчайшие сроки.
Почему встроенный Linux? Двадцать лет назад это не считалось жизнеспособным решением для встраиваемых систем.
Что Embedded Linux может привнести в ваш продукт? Когда это хороший выбор, а когда следует выбрать что-то другое?
Встроенный Linux, RTOS, «голое железо»: я немного запутался, в чем разница?
Начнем с «голого железа» — подхода, наиболее близкого к оборудованию.
Проще говоря, «голое железо» означает написание кода, который работает без операционной системы, что позволяет максимально эффективно использовать базовые аппаратные ресурсы. Он идеально подходит для младших микроконтроллеров. Однако масштабируемость может быть проблемой. При добавлении таких функций, как расширенный пользовательский интерфейс (UI) или возможность подключения, вам, вероятно, придется перейти к следующему шагу.
Операционная система реального времени (сокращенно RTOS) предоставляет разработчику больше возможностей, таких как многозадачность и программные таймеры, которые обеспечивают быстродействие систем. ОСРВ может работать в системах с ограниченными возможностями, а ее размер составляет порядка 10 КБ ПЗУ/512 КБ ОЗУ. Обычно они работают на микроконтроллерах ARM Cortex-M. Отладка значительно сложнее по сравнению с «голым железом». Некоторые из проблем включают обработку параллельного доступа к ресурсам и взаимодействие между задачами.
А встроенный Linux? При переходе в область микропроцессоров (таких как микропроцессоры на базе Cortex-A, такие как те, что используются в смартфонах), вам потребуется использовать подходящую операционную систему, например Embedded Linux. С этими платформами шаблонный код, необходимый только для инициализации устройства, становится очень сложным. Пакет поддержки платы (BSP) часто используется для переносимости, что означает, что вам не придется изменять код приложения, если вы позже решите перейти на другое оборудование. Дистрибутивы Linux доступны во всех вариантах (подробнее об этом позже), но требования к памяти обычно на несколько порядков выше, чем у RTOS.
Итак, когда вы обычно используете Embedded Linux вместо RTOS или просто переходите на "голое железо"?Вот несколько сценариев, которые помогут вам выбрать лучший вариант для вашего проекта.
Я хочу продемонстрировать прототип с пользовательским интерфейсом группе потенциальных клиентов или инвесторов
Использование Embedded Linux позволяет вам создать Proof of Concept гораздо быстрее, чем при использовании более простой платформы. Используя такой фреймворк, как Qt (у Bluefruit есть опыт в этом), вы можете создать пользовательский интерфейс за несколько дней. Имея пользовательский интерфейс, вы можете провести исследование пользователей и собрать данные о том, как они будут взаимодействовать с вашим продуктом. Изменения вносятся относительно легко. Это позволяет быстро получать отзывы и значительно сокращает время выхода на рынок.
Мне нужен звуковой интерфейс для моей системы
В богатой экосистеме с открытым исходным кодом вы найдете несколько готовых к использованию голосовых помощников. Легко почувствовать себя перегруженным разнообразием доступных вариантов (см. раздел «С чего начать? Слишком большой выбор!», чтобы узнать больше об этом), поэтому одна из самых больших проблем — найти решение, наиболее подходящее для вашей проблемы. пытаюсь решить.
Мне нужно многофункциональное устройство с широкими возможностями подключения
Подключение к облаку, интерфейс с сенсорным экраном, встроенный веб-сервер — вот ситуации, в которых лучше выбрать Embedded Linux. Богатая экосистема позволяет вам построить полноценную систему гораздо быстрее, чем если бы вы работали на чистом железе. Если вы хотите использовать надежное шифрование, потоковое аудио или видео, возможно, вы захотите использовать одну из библиотек с открытым исходным кодом, которая также работает в Linux.
Я хочу управлять бесколлекторным двигателем постоянного тока
Вы не хотите использовать для этого Embedded Linux — это было бы излишним. Однако, если вам нужен пользовательский интерфейс для управления вашим двигателем, вы можете выбрать двухпроцессорное решение, такое как серия STM32MP, с микроконтроллером ARM Cortex-M, выполняющим интенсивные вычисления, управление двигателем в реальном времени и ARM Cortex. - Работающий Embedded Linux для пользовательского интерфейса.
Мне нужно масштабируемое приложение
С сотнями компьютеров на модулях, способных работать под управлением Embedded Linux, очень легко перенести ваше программное обеспечение с одной платформы на другую, практически не привязываясь к базовому оборудованию.
А как насчет Windows IoT?
Ранее известный как Windows Embedded, это еще один распространенный вариант многофункциональных встраиваемых продуктов. Из-за его закрытого характера перенос на неподдерживаемую платформу обычно более сложен. Например, существуют ограничения на то, какие версии могут работать на архитектурах ARM. Лицензирование, цены и долгосрочная поддержка также должны быть тщательно продуманы. Доступность обновлений безопасности обычно медленнее по сравнению с приложениями на базе Linux.
Меня беспокоит стоимость
При использовании Embedded Linux создание прототипа может быть очень быстрым. Хотя выйти на коммерческую стадию может быть несколько сложнее. Тот факт, что он с открытым исходным кодом, не означает, что он бесплатный, как в случае с «бесплатным пивом», и вы должны тщательно продумать варианты лицензирования (см. ниже).
Встроенная ОС Linux значительно тяжелее, чем RTOS, и требует более мощного процессора. Если вам нужно сэкономить несколько фунтов стерлингов, вам следует подумать о том, чтобы выбрать устройство меньшего размера и запустить RTOS или даже просто «голое железо». Имейте в виду, что это должно быть сбалансировано с затратами на разработку, так как ОСРВ, вероятно, будет выше для достижения того же набора функций.
(Наличие дорожной карты для ваших продуктов поможет вам сделать правильный выбор.)
Для технологических компаний рекрутинг также может быть проблемой. Гораздо проще нанять инженеров по Embedded Linux, чем найти опытных специалистов по работе с «голым железом».
Меня беспокоит мощность
Это зависит от того, насколько сложен ваш продукт? Как только вы начинаете рассматривать продукты с очень высоким уровнем сложности, использование операционной системы становится важным для упрощения пространства для разработки, но требует более мощного оборудования. Вы можете перевести устройство в режим пониженного энергопотребления во время простоя, что для сложных систем может значительно упростить операционная система, такая как Embedded Linux. Но если вашему устройству требуется чрезвычайно малое энергопотребление, этих крупных компонентов, вероятно, будет слишком много, поэтому вам понадобится приложение на чистом железе, разработанное с учетом энергопотребления от начала до конца.
Меня беспокоит лицензирование
Так и должно быть! Это сложный мир. GNU/Linux (ее собственное имя) — это программное обеспечение с открытым исходным кодом, но существует множество лицензий, начиная от разрешительных, таких как MIT, и заканчивая гораздо более ограничительными, такими как GPL v3.
Ссылка на библиотеки под лицензией GPL в вашем программном обеспечении искажает кодовую базу, а это означает, что вы должны опубликовать весь исходный код. Часто именно этот аспект удерживает организации от использования программного обеспечения с открытым исходным кодом.
Но прежде чем вы спишете этот вариант со счетов, некоторые поставщики предлагают два варианта лицензирования: (бесплатную) лицензию с открытым исходным кодом или (платную) коммерческую лицензию, которая обеспечивает лучшую защиту вашей интеллектуальной собственности (ИС). , не требует публикации исходного кода и поставляется с технической поддержкой.
Лицензирование — очень сложная область, но мы можем проконсультировать вас по этому вопросу и, при необходимости, свяжем вас с доверенными партнерами.
Мне нужно создать прототип
Здесь можно создать прототип с помощью Raspberry Pi с Raspbian. Raspbian по своей сути представляет собой встроенную операционную систему Linux и предлагает множество возможностей для создания прототипов при разработке продуктов, прежде чем переходить на выделенное оборудование.
В прошлом году мы успешно использовали платы Raspberry Pi и Raspbian при создании прототипа для клиента. Это сочетание помогает раскрыть полные системные требования, когда придет время перейти к следующему этапу разработки.
Мне нужен проверяемый код
Открытый исходный код означает, что код можно проверить на наличие уязвимостей и скрытых бэкдоров. Популярное программное обеспечение с открытым исходным кодом также пользуется большой поддержкой сообщества. Однако следует отметить, что открытый исходный код не означает обитаемый. Известно, что некоторые части ядра Linux трудно понять.
С чего начать? Слишком большой выбор!
Существует множество «разновидностей» дистрибутивов Embedded Linux. Но одной из сильных сторон движения за открытый исходный код является количество доступных решений, а это означает, что, вероятно, существует несколько существующих программных библиотек для решения каждой проблемы, которую вы пытаетесь решить. Но важность кураторства не следует недооценивать.
Некоторыми из критериев, которые следует учитывать, являются зрелость проекта, соответствующая поддержка сообщества, варианты лицензирования и, конечно же, качество исходного кода.
Мы рекомендуем создать свой собственный дистрибутив с помощью такого инструмента, как Yocto (у нас есть команды с опытом его использования). Кривая обучения может показаться крутой, но она того стоит, поскольку позволяет включать только те пакеты, которые вам действительно нужны, тем самым уменьшая площадь вашего приложения, нагрузку на техническое обслуживание и поверхность атаки для угроз кибербезопасности.
Самая большая ошибка Embedded Linux? Безопасность
Безопасность важнее всего. Не проходит и дня, чтобы в заголовки газет не попало новое нарушение безопасности IoT. Встроенная система Linux мощна, но с большими возможностями приходит и большая ответственность.
Настраивать, настраивать, настраивать
Конфигурация имеет ключевое значение, и вам следует тщательно продумать, какие службы и функции вам действительно нужны, а какие нет. Все, что вам не нужно, должно быть отключено, чтобы злоумышленники не могли воспользоваться лазейкой.
Нет «безопасности по неизвестности»
Повсеместное распространение Embedded Linux делает его предпочтительной целью для злоумышленников. Напротив, нишевые операционные системы реального времени гораздо менее уязвимы, поскольку их поверхность атаки намного меньше. Чем больше вы полагаетесь на обычное, широко доступное программное обеспечение, такое как Embedded Linux, тем чаще вам придется обновлять свою систему, поскольку вы обгоняете хакеров, которые могут изучать ваше программное обеспечение в частности.
Тем не менее, это не такая простая дихотомия, как кажется, потому что «безопасность через неизвестность» также довольно рискованна. Есть большие преимущества в использовании зрелых библиотек безопасности по сравнению с развертыванием собственных/использованием каких-то неизвестных или вообще отказом от этого, потому что это СЛОЖНО.
Обновления
Наконец, вам также нужно подумать об обновлениях встроенного ПО и устранении брешей в системе безопасности после того, как ваше устройство выйдет из эксплуатации. Какой канал вы будете использовать? Общеизвестно, что беспроводные обновления уязвимы, но любой интерфейс потенциально может быть использован решительным хакером. Четко определите, какие функции вам действительно нужны, чтобы в будущем не создавать себе головную боль при обслуживании.
В любой системе есть потенциальные недостатки
Несмотря на все это, разработчики продуктов не должны избегать Embedded Linux. Любая встраиваемая система, работает ли она на «голом железе», RTOS или Embedded Linux, будет иметь недостатки, в том числе связанные с безопасностью.
Встраиваемый Linux может быть хорошим выбором для встроенной системы
Мы надеемся, что прочитав этот пост, вы увидите, что Embedded Linux может многое предложить встраиваемым системам. Команды просто должны тщательно взвесить, является ли это правильным выбором для их продукта.
Советы по разработке встроенного программного обеспечения
Разработка встроенного программного обеспечения и двигатели BLDC
Коллекторные и все чаще бесколлекторные двигатели постоянного тока (BLDC) повсюду в нашей жизни. Преобразование электрической энергии в механическую для всего […]
Небольшие изменения, большой эффект: экологичная разработка программного обеспечения для встраиваемых систем
Знаете ли вы, что на мобильном телефоне приложение, отправляющее данные через 3G, потребляет в 1,7 раза больше энергии, чем выполнение […]
Подтверждение разработки концепции Raspberry Pi и искусственного интеллекта для встраиваемых систем
В течение последних 12 месяцев Bluefruit Software занималась периферийным искусственным интеллектом. Наши исследования и разработки в области оборудования для классификации звука (ACE) […]
Качественное программное обеспечение для встраиваемых систем
Вам нужны инженеры и тестировщики встроенного программного обеспечения, чтобы помочь с вашим последним проектом Embedded Linux?Bluefruit Software имеет более чем 20-летний опыт разработки высококачественного программного обеспечения, тестирования и консультирования клиентов в различных секторах, включая медицинские технологии, промышленность, аэрокосмическую и научную отрасли.
Знаете ли вы, что у нас есть ежемесячный информационный бюллетень?
Если вы хотите ежемесячно получать информацию о разработке программного обеспечения, методах Lean-Agile, достижениях в области технологий и многом другом, подпишитесь сегодня!
Я делаю (бесплатную) операционную систему (просто хобби, не будет такой большой и профессиональной, как gnu) для клонов 386(486) AT. […] Он НЕ переносимый (использует переключение задач 386 и т. д.) и, вероятно, никогда не будет поддерживать ничего, кроме AT-жестких дисков, поскольку это все, что у меня есть :-(.” [1]
Вышеизложенное является выдержкой из первоначального объявления Линуса Торвальдса о том, что стало известно во всем мире как операционная система (ОС) Linux, датированном августом 1991 года. Оглядываясь назад, можно сказать, что сейчас, когда мы находимся в гораздо лучшем положении, это невероятно скромно. оценить весь революционный размах своего поста. Сегодня более 96,4% из 1 миллиона лучших серверных приложений работают на Linux [2]. В общедоступных облаках 90% рабочих нагрузок используют Linux в качестве своей ОС, причем Ubuntu является самым популярным дистрибутивом Linux [3], [4]. Несмотря на дебют в качестве операционной системы общего назначения (GPOS) для аппаратного обеспечения на базе архитектуры x86, Linux вышел за рамки веб-серверов и с тех пор широко применяется во встроенных системах.
Эта серия блогов, состоящая из двух частей, призвана предоставить читателю широкий обзор тем, охватывающих мир Linux, встроенных систем и Интернета вещей (IoT) в целом. В части I этой серии блогов мы начнем с обзора встроенной экосистемы, затем объясним роль Linux в ней и закончим объяснением причин растущей популярности ОС во встроенных системах. Во второй части мы сосредоточимся на самых насущных проблемах, с которыми сегодня сталкиваются предприятия в сфере встраиваемых систем. Приступим.
Встроенный ландшафт
Несмотря на то, что встроенная система представлена в нескольких видах и формах, она обычно выполняет выделенную функцию, ограничена в ресурсах и содержит механизм обработки. С риском чрезмерного упрощения мы можем выделить три широкие категории размеров встроенной системы Linux: [5]
- Системы небольшого размера, включающие маломощный ЦП с не менее 2 МБ постоянной памяти (ПЗУ) и 4 МБ оперативной памяти (ОЗУ).
- Системы среднего размера с примерно 32 МБ ПЗУ, 64 МБ ОЗУ и процессором средней мощности.
- Встроенные системы большого размера с мощными процессорами и большим объемом памяти.
Охватывая практически все категории потребительских расходов — от автомобилей до управления энергопотреблением дома — Linux присутствует во встроенных системах повсеместно.
Однако так было не всегда, поскольку прогресс в области полупроводниковых технологий существенно способствовал внедрению Linux в мире встраиваемых систем. Такой рост объясняется несколькими причинами. Среди них цены на флэш-память со временем снизились, что обеспечивает необходимое массовое хранилище для файловой системы Linux [7]. Точно так же маломощные малогабаритные системы на кристалле (SoC) все чаще становятся основным процессором, выбираемым разработчиками. Как следствие, практически каждая встраиваемая система может работать под управлением Linux — и работает!
Что такое встроенный Linux?
Теперь мы можем лучше ответить на первый вопрос: "Что такое встроенный Linux?"
Есть три уровня, на которых мы можем попытаться ответить:
- Система
- Ядро (т. е. ядро ОС)
- Дистр
Система
Интуитивно под встроенной системой Linux понимается просто встроенная система, работающая на ядре Linux. Давайте сосредоточимся на оставшихся двух частях.
Ядро Linux
Линус никогда не поставлял «встроенную версию» ядра Linux. Как разработчик встраиваемых систем, вам может не потребоваться специализированное ядро для вашей системы, и вместо этого вы можете полагаться на официальную версию. Однако часто бывает так, что вам может понадобиться ядро, сконфигурированное для поддержки вашего пользовательского оборудования, поскольку конфигурация сборки ядра на встроенном устройстве обычно отличается от конфигурации на сервере или рабочей станции.
Дистр (или дистрибутив)
Третья перспектива, которую следует учитывать, — это дистрибутив. Здесь «дистрибутив» — это общий термин, обычно включающий пакеты программного обеспечения, службы и среду разработки поверх самой ОС. Ubuntu Core, разновидность Ubuntu для встроенных устройств, является примером встроенного дистрибутива Linux.
Встроенный Linux и RTOS
Зачем использовать встроенный Linux?
Следующий вопрос, который возникает, заключается в том, что делает Linux идеальным кандидатом для встраиваемой системы? От масштабируемости до поддержки разработчиков и инструментов — есть множество причин, почему это так. Подробное обсуждение каждого требует отдельной книги.Здесь мы ограничимся упоминанием нескольких выдающихся:
- Поддержка оборудования
- Сеть
- Модульность
- Коммерческая поддержка
Поддержка оборудования
Linux работает на 32- и 64-разрядных архитектурах ARM, x86, MIPS и PowerPC. В то время как 32-разрядный процессор способен хранить 2 32 (один бит равен либо 0, либо 1, следовательно, возможны 2 комбинации) значений, 64-разрядный процессор может хранить больше адресов памяти. Процессоры ниже 32-разрядных не могут работать с Linux, что исключает традиционные встроенные системы. Для более подробного обсуждения поддержки оборудования вы можете ознакомиться с богатой экосистемой платформ для Ubuntu Core здесь.
Сеть
Все мы хорошо понимаем, что в большинстве потребительских продуктов ожидаемые сетевые возможности уже готовы к использованию. К счастью, Linux поддерживает широкий набор сетевых протоколов. Независимо от того, требуется ли вашему встраиваемому Linux-проекту Wi-Fi, широкополосная мобильная связь (WWAN) или соединение Ethernet, системные сетевые службы, такие как NetworkManager, поддерживаются в Linux. Вы можете легко установить NetworkManager в Ubuntu Core, следуя этому руководству.
Модульность
Третья причина преобладания Linux во встраиваемых системах — его модульность. Благодаря тому, что несколько программных пакетов объединяются в стек ОС Linux, разработчики могут настраивать его для любых целей. Например, параметры настройки Ubuntu Core включают настройку аппаратного и программного обеспечения, а также конкретных ядер.
Коммерческая поддержка
Еще одним важным, но иногда упускаемым из виду соображением при выборе Linux для встраиваемых систем является доступность коммерческой поддержки.
Свободно доступные системы сборки, поддерживаемые сообществом, такие как Yocto и Buildroot, позволяют разработчикам создавать собственные дистрибутивы Linux для большинства аппаратных архитектур. К сожалению, различные проблемы, которые проекты сообщества не решают, обязательно всплывут при поставке встроенного Linux в производство. Однако этот пробел легко заполняется поставщиками встраиваемых систем Linux, которые предоставляют поддержку и опыт корпоративного уровня, что значительно сокращает время выхода на рынок.
Предоставление собственного набора исправлений, исправлений безопасности и тестирования оборудования не только дорого обходится предприятию, но и отвлекает от основной деятельности. К счастью, специалисты по ядру из Canonical, коммерческого спонсора Ubuntu, всегда готовы помочь. Команда Canonical создает, исправляет и поддерживает Ubuntu Core для встраиваемых устройств.
Если вам интересно, на этом веб-семинаре или в этом техническом описании можно найти подробное обсуждение преимуществ и недостатков, ожидающих разработчиков встраиваемых систем при развертывании собственного дистрибутива Linux по сравнению с коммерчески поддерживаемым решением.
Заключение
К настоящему моменту читатели должны быть знакомы с ролью, которую Linux играет на рынке встраиваемых систем. В первой части этой серии блогов, состоящей из двух частей, мы увидели, как Linux с его прочно зарекомендовавшим себя среди серверов и облачных сред быстро становится де-факто операционной системой для встраиваемых систем. Есть очевидные причины для выбора Linux для встраиваемой системы: от аппаратной поддержки и поддержки сетевых протоколов до широких возможностей настройки и модульности. Вы можете получить представление о том, как Ubuntu Core, встроенный вариант наиболее широко используемой серверной операционной системы в Интернете [8], устанавливает новые стандарты для встраиваемых систем Linux, просмотрев его техническое описание.
В части II этой серии блогов мы обсудим, как разработчики должны уделять пристальное внимание вопросам безопасности и возможности обновления, если они хотят воспользоваться преимуществами стремительного роста Интернета вещей. Увидимся там.
Вы рассматриваете Ubuntu Linux для своего следующего проекта встраиваемых систем?
Дополнительная литература
Почему Linux лучше всего подходит для встраиваемых систем? Узнайте из полного руководства по Linux для встраиваемых приложений.
На этом эксклюзивном веб-семинаре вы узнаете больше о среде встраиваемых систем, Интернете вещей и о том, как Ubuntu Core поднимает планку для встраиваемых систем Linux.
Хотите узнать больше о разнице между Linux реального времени и встроенной системой? Ознакомьтесь с мини-сериалом о ядре Linux с малой задержкой.
Заинтересованы в подробном сравнении встроенной и купленной встроенной системы Linux? Прочтите Embedded Linux: сделать или купить? технический документ.
Если вы хотите повысить удобство использования, безопасность и время выхода на рынок корпоративных устройств, прослушайте вебинар, посвященный Ubuntu Core 20.
IoT как услуга
Быстро вывести устройство Интернета вещей на рынок. Сосредоточьтесь на своих приложениях, мы берем на себя все остальное. Canonical предлагает установку оборудования, интеграцию приложений, передачу знаний и техническую поддержку для вывода вашего первого устройства на рынок. Магазин приложений и обновления безопасности гарантированы.
Магазин приложений для Интернета вещей
Создайте экосистему платформы для подключенных устройств, чтобы открыть новые возможности для получения дохода. Получите безопасный, размещенный и управляемый мультитенантный магазин приложений для своих устройств Интернета вещей.
Читайте также: