Встраиваемый Linux в сладком 16: адаптация к IoT

В ELC Europe гуру по встроенному Linux Тим Бирд изучил «Состояние встроенного Linux» и обсудил проблемы, с которыми он сталкивается в дивном новом мире IoT.

Будучи председателем группы по архитектуре рабочей группы CE Фонда Linux, Тим Бирд долгое время был дружелюбным публичным лицом конференций по встраиваемым Linux-технологиям, которые он проводит уже более десяти лет.
На недавнем мероприятии ELC Europe в Берлине Бёрд выступил с лекцией «Статус встраиваемого Linux», в которой он обсудил хорошие новости в таких областях, как поддержка графических процессоров и виртуальное отображение стеков ядра, а также медленный прогресс во времени загрузки, размере системы, и другие области, которые могут помочь Linux конкурировать с ОСРВ в конечных узлах IoT.

Птица также открыла ELCE с приветственными замечаниями и закрыла его презентацией викторины Closing Game.
Знаете ли вы, что Линус Торвальдс был когда-то укушен пингвином или что его отец был членом Европейского парламента?
Или тот Linux еще не вышел на поверхность Марса?
Теперь ты.
(Смотрите видео ниже.)

Берд начал свое выступление, отметив улучшение согласованности ритмов выпусков ядра, которые теперь выполняются между 63 и 70 днями.
Еще одна хорошая новость: когда Грег-Кроа Хартман, с которым Берд брал интервью в ELCE , впервые объявил о следующем выпуске LTS, разработчики ограничились тем, что не торопились вносить исправления в него.
Ядро v4.9 LTS выйдет в начале декабря.

Действительно, Linux созрел, как и подобает ОС, которая по некоторым подсчетам была внедрена в 1,5 миллиарда объектов.
Бёрд считает, что на самом деле это может быть более 2 миллиардов к настоящему времени, хотя никто не знает наверняка.

В любом случае, статус встроенного Linux «великолепен», говорит Берд.
Это не мешает ему беспокоиться о будущем.
«Все знают, что шлюзы IoT будут работать под управлением Linux, но я беспокоюсь, что Linux не будет работать на тех 9 миллиардах конечных узлов, которые они ожидают от IoT», - сказал он.
«Я волнуюсь, что Linux не будет первой ОС, использующей Minecraft на зерновой коробке».

По оценкам Берда, для того, чтобы получить коробку из-под сморщенных хлопьев своей мечты, затраты должны быть сокращены до 1,10 долл. США.
Половина из этого уйдет на дисплей, а 40 процентов будет использовано ЦП, ОЗУ и флэш-памятью.
Остальное будет покрывать батарею и устройство ввода.
«Сегодня у нас по-прежнему 5 долларов на процессор и память», - отметил он.

Дело в том, что ОСРВ, скорее всего, попадут туда первыми.
Бёрд, старший инженер-программист в Sony, упомянул недавний проект аудиоплеера Sony, в котором Nuttx превзошел Linux, потому что «легче добавлять вещи в Nuttx, чем урезать Linux».

Даже если Linux не сможет превзойти RTOS на рынке зерновых, Bird беспокоит то, что Linux не расширяется более агрессивно, чтобы захватить большую часть рынка конечных точек IoT.
«В ядрах этого года было много работы с драйверами на процессорах, графических процессорах и встраиваемых устройствах, и это здорово, - сказал Берд, - но не так много на таких функциях, как время загрузки, размер системы или встроенные файловые системы».

Бёрд отметил уменьшение количества обращений к ядру и обсуждений ELC и ELCE по темам, которые доминировали в первые несколько лет ELC: время загрузки, размер системы, файловые системы, управление питанием, работа в режиме реального времени и безопасность.
Несмотря на то, что для IoT появилось множество легких дистрибутивов Linux, на стороне ядра был достигнут незначительный прогресс в уменьшении занимаемой площади.
Не так много происходит с проектами Linux Kernel Tinification или Linux Tiny .
«Мы не видели много нового с Linux 4.1, когда они избавились от пользователей и групп, сэкономив около 25 тыс.».

По словам Берда, если разработка встраиваемых систем с открытым исходным кодом продолжит расширяться за пределы Linux до RTOS, таких как Nuttx, FreeRTOS, Mbed и Zephyr Linux Foundation, фрагментация будет только увеличиваться, считает Берд.
«У нас уже слишком много встроенных дистрибутивов Linux.
Это затрудняет совместное использование неядерного контента, такого как общесистемные и ориентированные на обратную связь оптимизации или улучшения безопасности.
Нам нужно найти способы поделиться нашим управлением пакетами и нашими возможностями тестирования ». Однако Bird вряд ли выступит против RTOS, заявив:« Это действительно большое дело, когда Linaro объявил о поддержке Zephyr ».

Поскольку разработчики IoT все чаще работают как с Linux, так и с RTOS, необходимо интегрировать не только больше технологий, но и разрешительные лицензии не-GPL, такие как BSD, которые все чаще используются RTOS.
«У нас слишком много ОС с разными лицензиями», - сказал Берд, прежде чем порекомендовать один, по общему признанию, противоречивый ответ: код двойного лицензирования для GPL и BSD.

Обобщение против специализации

Все эти проблемы разыгрываются против борьбы во встроенном Linux между обобщением и специализацией.
«В открытом исходном коде мы хотим обобщить, чтобы получить сетевые эффекты большой группы сотрудников», - сказал Берд.
«Дерево устройств смещает ядро ​​в сторону большего обобщения, а драйверы пишутся для обработки всех возможных конфигураций IP-блоков на нескольких процессорах.
Но во встраиваемых системах мы хотим специализироваться и сделать наши устройства максимально эффективными, экономичными и экономичными.
Но тогда вы теряете этот общественный эффект.

Это напряжение ограничивало прогресс технологий, таких как более быстрое время загрузки и меньшие размеры.
«Мы можем сделать быструю загрузку, но в большинстве методов используются специализации ядра, которые отклоняются в апстриме.
Время загрузки уникально для каждой платформы, и сокращения, как правило, не являются основными. »Проблема заключается в том, что такие улучшения, как быстрая загрузка и измельчение Linux, требуют вычитающей и аддитивной инженерии.
«Если вы попытаетесь разорвать Linux на части, вы получите Franken-Linux.
Вы не можете разорвать кусочки чисто.

Недавно Берд был глубоко вовлечен в автоматизацию тестирования, где он руководит проектом LTSI под названием Fuego .
«Каждая компания создает свой собственный тест, который ведет к фрагментации», - сказал Берд.
«Автоматизация тестирования может помочь компенсировать потери сообщества, связанного со специализированным программным обеспечением.
Нам нужно делиться не только тестовыми пакетами, но и опытом тестирования ».

По словам Берда, сохранение этих принципов поможет решить эти проблемы.
«Посмотрите на другие проекты, чтобы найти общность.
Найдите способ поделиться идеями как минимум и напишите, если можете.
И продолжай работать над добычей. »

Основные характеристики Embedded Linux 2016

В дополнение к изучению общей картины, Bird подробно рассказал о прогрессе встроенного Linux в определенных сегментах.
Он также подытожил основные моменты последних выпусков ядра, таких как LightNVM в Linux 4.4, поддержка мультиплатформенности ARM в Linux 4.5 и обновление колеса таймера в Linux 4.8.

В Linux 4.9 появится технология, которая называется виртуально сопоставленными стеками ядра, которая помогает обнаруживать переполнения стека, очищать код ядра и ускорять создание процессов.
«Возможность отлавливать переполнение стека внутри ядра - огромная проблема», - сказал Берд.
«Это такой уровень надежности, которого мы никогда раньше не видели».

Вот краткий обзор некоторых тенденций 2016 года для встроенного Linux, выделенных Bird, как внутри, так и вне проекта ядра:

  • Время загрузки - Как уже отмечалось, не так уж и много трясется.
    XIP от Intel (eXecute-In-Place) для x86 «приветствовался», но «асинхронное исследование никуда не делось».
  • Деревья устройств - «Наложения, кажется, работают должным образом», но проверка приостановлена.
    Обновление спецификации дерева устройств находится в стадии обсуждения.
  • Графика - Vulkan API v1.0 от Khronos Group предоставил долгожданную альтернативу Direct3D или OpenGL с меньшими затратами ресурсов процессора и графического процессора.
    «AMD планирует открыть драйвер, и Intel и Valve уже работают над ним.
    Nvidia поддерживает это ». Плохая новость: Qt изменила свою лицензию с LGPL 2.0 на 3.0, что« нежелательно для многих продуктов бытовой электроники », - сказал Берд.
    «Это беспокоит многих людей в нашей отрасли».
  • Графические процессоры - «Freedreno (Adreno) и Etnaviv (Vivante) действительно продвинулись с бесплатными драйверами». Также была работа над графическим процессором Broadcom VC4 от Raspberry Pi.
    Плохая новость: в проекте Lima (ARM Mali) нет ничего нового, и пока что нет ничего о PowerVR.
  • Файловые системы. Чтобы устранить тенденцию к созданию непрозрачного блочного хранилища на основе блоков, используемого в eMMC, появились такие решения, как LightNVM, платформа для хранения параметров SSD.
    LightNVM позволяет ядру «перемещать слой трансляции флэш-памяти из аппаратного обеспечения черного ящика в программное обеспечение, где у вас есть видимость». Также: «Free Electrons делает хорошую работу по обработке UBIFS MLC NAND».
  • Работа в сети - поддержка Bluetooth 4.2 повышает безопасность, скорость и интеграцию 6LoWPAN с ячеистой сетью.
    Также была работа над протоколами IoT, такими как Thread.
  • Linux реального времени . Последняя версия RT-preeemp была выпущена в Linux 4.8, и « Томас Глейкснер говорит, что осталось всего 10 тыс. Строк.
    Я думаю, что это будет нечто большее ». Кроме того, Xenomai 3.0.1 появился с новым ядром Cobalt.
  • Безопасность - в 2016 году мало что произошло. Однако: «Новый проект по усилению безопасности ядра направлен на устранение классов проблем, а не отдельных исправлений».
  • Размер системы - в 2016 году ничего особенного не произошло, хотя и здесь помогли патчи XIP.
    В дальнейшем: «Николас Питр делает интересную работу над gcc –gc-секции, а Виталий Вул работает над материалом».
  • Тестирование. Было проделано много работы над Kselftest, LAVA V2, Fuego и Kernelci.org, который Bird называет «самой успешной, общедоступной, распределенной системой тестирования Linux в мире».
  • Toolchain - «Хем Радж делает интересную работу в Yocto Project для Clang».
  • Трассировка - eBPF используется для динамической трассировки, и существует новая файловая система tracefs, которая больше не является частью debugfs.
    Также была работа над триггерами Ftrace.

Для получения дополнительной информации, смотрите полное видео основного выступления ниже:

Keynote: статус встроенного Linux

Посмотрите все 125+ сессий ELC + OpenIoT Summit, посвященных последним разработкам для встроенного Linux и IoT с открытым исходным кодом, здесь .
Конференция по встраиваемому Linux + OpenIoT Summit North America состоится 21-23 февраля 2017 года в Портленде, штат Орегон.
Есть чем поделиться со встроенным сообществом Linux и IoT?
Конкурс предложений открыт.
Отправьте доклад на конференцию по встроенному Linux здесь и на саммит OpenIoT здесь .

Эта статья защищена авторским правом © 2016 Linux.com и была первоначально опубликована здесь .
Он был воспроизведен этим сайтом с разрешения его владельца.
Пожалуйста, посетите Linux.com для получения последних новостей и статей о Linux и open source.