http://marte.unican.es/
MaRTE OS - ядро реального времени для встраиваемых приложений реализующее "минимальное подмножество реального времени стандарта POSIX.13".
Главной особенностью(собственно той самой отличительной чертой) ядра является то, что оно большей частью написано на языке Ада с небольшими частями на Си и ассемблере.
Собственно что такое Ада объяснять я здесь не буду, можете зайти на русскоязычный сайт, посвященный этому языку: http://ada-ru.org/, Приведу разве что лишь цитату с заголовка главной страницы этого сайта:
Ада - мощнейший объектно-ориентированный язык общего назначения ориентированный на разработку надежного программного обеспечения. В язык включены механизмы поддержки параллельного исполнения, обработки исключений, настраиваемых модулей, поддержки распределенных вычислений, стандартные интерфейсы с другими языками и библиотеками. Ада имеет компиляторы под практически любую операционную систему плюс Java байткод.
Для сборки я использовал последний релиз ядра на момент написания статьи версии 1.7_13 и систему компилятора GNAT GPL 2007 (http://www.adacore.com/home/).
Ядро можно собрать как под x86 архитектуру так и как обычное приложение Linux. Я использовал первый вариант. В качестве среды запуска был выбран эмулятор qemu (0.9.0) и образ дискеты с установленным загрузчиком Grub(который был взят с официального сайта) в качестве устройства запуска.
Разработку приложений можно вести как на языке Ада так и на С, причем для конечной сборки нужно использовать обертки для gcc и gnatmake, поставляемые вместе с пакетом, имеющими префикс m (например mgnatmake, mgcc, mld). Конечная собранная система представляет из себя единственный файл, который скармливается загрузчику, содержащий собственно само ядро и приложение, запускаемое после загрузки ядра. В ядре нет понятия процессов(хотя я могу и ошибаться), хотя главное приложение может порождать дочерние потоки(нити, или задачи в терминологии Ады). Судя по типу Task_Types в спецификации пакета kernel, задачи могут быть четырех видов: MAIN_TASK, IDLE_TASK, USER_TASK, SIGNAL_HANDLER_TASK. Поддерживаются такие алгоритмы планировщика как: FIFO, Round-Robin и Sporadic Server.
Различные параметры системы, как то максимальное количество задач, устройств; диапазон приоритетов, размер стэка и пр. задаются в пакете kernel/configuration_parameters.ads. Драйвера и устройства описываются в пакете kernel/kernel-devices_table.ads (свое устройство или драйвер можно статически прописать в объекты The_Driver_Table и The_Device_Files_Table этого файла и скомпилировать приложение с использованием опции -a утилиты mgnatmake). Однако устройство может быть только одного из следующих типов: Device, File, Mount_Point.
Вот текст простейшей программы, взятой из стандартных примеров:
Код: Выделить всё
with MaRTE_OS;
with Text_IO;
procedure Hello_World is
begin
Text_IO.New_Line;
Text_IO.Put ("Hello, I'm an Ada program running on MaRTE OS.");
Text_IO.New_Line (2);
end Hello_World;
Запускаем:
qemu -fda ./grubfloppy.img -localtime -m 30 -boot a -net nic,model=rtl8139 -net tap,ifname=tap1,script=/etc/qemu-ifup -monitor stdio
Скриншот
Как видите здесь нет ничего такого «эдакого»

ls -lh export/mprogram
-rwxr-xr-x 1 val val 564K 2008-02-18 11:55 export/mprogram
Размер системы получился 564Кб.
Что имеется из драйверов:
Драйвер i2c и bttv чипсетов; Ethernet карт sis900, eepro100, rtl8139; поддержка FAT, SVGA.
TCP/IP как такового нет, однако реализован свой сетевой протокол: Real-Time Ethernet Protocol(RT-EP).
Ну и на последок приведу несколько примеров применения MarteOS (информация взята с официального сайта).
Hard Real-Time система контроля подвижных роботов (University of Zaragoza)
http://webdiis.unizar.es/GRPTR/
Mobile Robot OTILIO and Wheel-chair TRITON: http://webdiis.unizar.es/GRPTR/images/otil...riton020614.jpg
Pioneer Robots:
http://webdiis.unizar.es/GRPTR/images/fami...eer20041009.jpg
Industrial Robot Controllers (University of Cantabria)
We have developed distributed robot controllers for radioactive environments using MaRTE OS and RT-EP as the communication protocol. Our application involves a 6 degrees of freedom "PUMA" robot arm and three PCs (one of then embedded in the pendant).
Robocup (University of York)
Preparing a team for the robot 5-a-side football championship. Each robot has an embedded Pentium 233MHz PCs running MaRTE OS. For more information visit http://www.cs.york.ac.uk/robocup.
Control of Railway Scale Model with GNAT and MaRTE OS (University of Applied Science HES-SO, School of Engineering of Geneva)
Railway simulators and real railway scale models are used by students in their lab works on concurrent and real-time programming with Ada. A new implementation of our existing base packages was realised with GNAT and MaRTE OS. ( http://www.eig.unige.ch/lii/Maquette_C.htm )