Основные проблемы с использованием ядра Linux для замены микроконтроллерных систем - это управление устройствами, с которыми вы взаимодействуете. Для этого вам, возможно, придется написать драйверы. Я бы сказал придерживайтесь C в качестве языка, потому что вы захотите сохранить пространство пользователя как можно более чистым. Изучите библиотеку uclibc для более простой стандартной библиотеки C.
http://www.uclibc.org/
Вы также можете найти busybox полезным. Это обеспечивает множество утилит пользовательского пространства в виде одного двоичного файла.
http://www.busybox.net/
Тогда это просто вопрос загрузки из некоторого хранилища в работающую систему и запуска некоторой управляющей логики через init, который взаимодействует с вашим оборудованием. При необходимости вы можете получить доступ к работающей системе и запустить утилиты busybox. Действительно, единственное отличие состоит в том, что пользовательское пространство намного меньше, чем в обычном дистрибутиве, и вы будете работать «ближе» к ядру с точки зрения целей.
Также посмотрите в реальном времени Linux.
http://www.realtimelinuxfoundation.org/
Если вам нужно официальное обещание завершения задачи. Я подозреваю, что самым сложным будет загрузка / постоянное хранение и взаимодействие с вашим оборудованием, если оно экзотическое. Если вы не знакомы с загрузкой Linux, тогда
http://www.cromwell -intl.com / UNIX / Linux-boot.html
Могу помочь.
Короче говоря, если вы не разрабатывали глубокий уровень для Linux, не создавали свой собственный дистрибутив или не имели опыта работы с ядром, тогда вы можете найти программирование трудным .
http://www.linuxdevices.com/ Может также помочь
Удачи