Выбор Embedded Linux для устройства
Я начинаю создавать приложение QT с sqlite для ручного устройства. Мой менеджер проектов просит меня выбрать операционную систему (встроенный Linux) для устройства (мы не рассматриваем Android).
Как и в Desktop, много ли встраиваемых Linux-дистрибутивов для устройств? Если да, то какой встроенный Linux мне следует рассмотреть?
3 ответа
У вас есть несколько вариантов, но я предложу более простой и, по моему мнению, лучше два.
- Buildroot - это набор make-файлов, который позволяет вам создавать ваши собственные встроенные дистрибутивы. Может также позаботиться о сборке ядра Linux, набора инструментов и загрузчика barebox или U-Boot. Легко расширяемый и с практически нулевой кривой обучения. У вас полностью работающая система за считанные часы.
- Yocto - полноценная (и сложная) система сборки. Предлагается вместо Buildroot, когда вам нужно МНОГО пакетов / компонентов, и вам может потребоваться гибкость в расширении системы непосредственно на месте. То, что вы можете сделать, в значительной степени зависит от доступных "слоев" (наборов правил для создания объектов): вы объединяете слои вместе, чтобы получить свою систему. Имеет крутую кривую обучения, но используется и поддерживается несколькими поставщиками (например, Atmel, TI).
В любом случае, если у вас нет более чем веских причин, я настоятельно рекомендую первое.
Есть несколько дистрибутивов Linux, которые будут использоваться с ARM. Может быть, вы должны рассмотреть Fedora ARM https://fedoraproject.org/wiki/Architectures/ARM
Вы можете использовать Qt для встраиваемого устройства, это быстро и совместимо со многими аппаратными средствами, и если ваше оборудование не поддерживается, перенести его на новое оборудование не так сложно, плюс у него есть специальная система рендеринга.
На этот вопрос сложно ответить, не зная больше о требованиях проекта (не только о требованиях к программному обеспечению, но и о нефункциональных), а также о возможностях платформы.
Angstrom (на основе OpenEmbedded) - еще одна возможность для Linux.
Я бы оспорил предположение, что операционная система должна быть Linux. Зачем? Если важно выходить на рынок или иметь коммерческую поддержку, вам лучше использовать коммерческие встраиваемые или RT операционные системы, такие как VxWorks или QNX.
Есть также профессионально поддерживаемые дистрибутивы Linux, такие как Montavista
Хотя бесплатные дистрибутивы Linux, ну, в общем, бесплатны, вы, как правило, сами по себе, и время вашей команды не бесплатное.