Расширение реального времени для ядра Linux: RTAI и RTAI XML
RTAI
RTAI: расширение ядра Linux для приложений реального времени. Детерминированные отклики, POSIX-совместимость, поддержка архитектур x86, ARM, PowerPC и MIPS.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Расширение реального времени для ядра Linux
Real time extension for the Linux kernel
Real time application interface (RTAI) – это расширение реального времени для ядра Linux, позволяющее пользователям разрабатывать приложения со строгими требованиями к времени отклика для Linux. Как и сам Linux, программное обеспечение RTAI является результатом коллективных усилий. RTAI обеспечивает детерминированное реагирование на прерывания, а также задачи реального времени, соответствующие стандарту POSIX и собственные задачи RTAI. RTAI поддерживает различные архитектуры, включая IA 32 (с и без FPU и TSC), x86 64, PowerPC, ARM (StrongARM и ARM7: семейства clps711x, Cirrus Logic EP7xxx, CS89712, PXA25x) и MIPS. RTAI состоит главным образом из двух частей: патча для ядра Linux на основе Adeos, который вводит слой аппаратной абстракции, и широкого спектра сервисов, облегчающих работу программистов в режиме реального времени. Версии RTAI выше 3.0 используют патч ядра Adeos, слегка модифицированный для архитектуры x86, обеспечивающий дополнительную абстракцию и значительно сниженную зависимость от "исправленной" операционной системы. Adeos – это патч ядра, включающий в себя конвейер прерываний (Interrupt Pipeline), в котором различные домены операционной системы регистрируют обработчики прерываний. Таким образом, RTAI может прозрачно перехватывать прерывания, оставляя обработку всех остальных Linux. Использование Adeos также освобождает RTAI от патентных ограничений, возникших в связи с проектом RTLinux.
Real time application interface (RTAI) is a real time extension for the Linux kernel, which lets users write applications with strict timing constraints for Linux. Like Linux itself the RTAI software is a community effort. RTAI provides deterministic response to interrupts, POSIX compliant and native RTAI real time tasks. RTAI supports several architectures, including IA 32 (with and without FPU and TSC), x86 64, PowerPC, ARM (StrongARM and ARM7: clps711x family, Cirrus Logic EP7xxx, CS89712, PXA25x), and MIPS. RTAI consists mainly of two parts: an Adeos based patch to the Linux kernel which introduces a hardware abstraction layer, and a broad variety of services which make lives of real time programmers easier. RTAI versions over 3.0 use an Adeos kernel patch, slightly modified in the x86 architecture case, providing additional abstraction and much lessened dependencies on the "patched" operating system. Adeos is a kernel patch comprising an Interrupt Pipeline where different operating system domains register interrupt handlers. This way, RTAI can transparently take over interrupts while leaving the processing of all others to Linux. Use of Adeos also frees RTAI from patent restrictions caused by RTLinux project.
RTAI-XML
RTAI XML — это серверный компонент RTAI, реализующий сервисно-ориентированный подход к проектированию и разработке приложений управления в реальном времени (RT). Этот проект возник из необходимости университетской группы в гибкой платформе для обучения проектированию систем управления, позволяющей студентам удалённо тестировать свои программы через Интернет. От первоначальных идей к реальной реализации привела альфа-версия RTAI XML, продемонстрировавшая потенциал базовой идеи чёткого разделения задач жёсткого и мягкого реального времени в логике программирования. То, что изначально требовалось для защиты RT-процесса от сбоев, вызванных студентами, теперь становится новой парадигмой RTAI. RTAI XML состоит из серверного компонента, ожидающего входящие вызовы на устройстве, где запущен (или готов к запуску) процесс Target. Универсальная клиентская программа, Host, может обращаться к серверу через сеть TCP/IP, используя стандартный протокол на основе XML, и таким образом взаимодействовать с Target для мониторинга состояния RT-процесса, просмотра собираемых (или генерируемых) системой сигналов, а также для получения и изменения параметров RT (например, коэффициентов усиления в контуре обратной связи PID). Иными словами, RTAI XML предоставляет простой способ удалённого управления приложениями, повышая гибкость проекта RTAI без потери ключевых преимуществ открытой и стандартной реализации. В разделе RTAI XML на этом сайте представлены подробности реализации. Общая архитектура пересмотрена с акцентом на три ключевых компонента: сервер, интерфейс Server Target и связь Server Host. В разделе «Приложения» приведены примеры систем управления на основе RTAI XML, а в разделе «Ссылки» — полезные материалы и ссылки для дальнейшего изучения этой темы.
RTAI XML is a server component of RTAI, implementing a service oriented way to design and develop real time (RT) control applications. This project was born to fulfill the needs of a university group, mainly focused to have a flexible platform for learning control systems design, allowing the students to test their programs remotely, over the Internet. Leaving the first wishful thinking and going to the real implementation gave rise to the alpha version of RTAI XML, that showed the potential impact of the basic idea of a net separation of hard and soft real time tasks in the programmation logic. What was necessary to assure that students could not crash the RT process, is now becoming a new RTAI paradigm. RTAI XML consists of a server component waiting for incoming calls on a box where a real time process, the Target, is running (or ready to). A generic client program, the Host, can reach the server through the TCP/IP network, using a standard protocol based on XML, and hence interact with the Target, in order to monitor the status of the RT process, to see the signals collected (or generated) by the system and also to fetch and change the RT parameters (for example, the gains of a PID feedback ring). In other words, RTAI XML provides a simple way towards remoting of control applications, adding flexibility to the RTAI project, without losing the key features of an open and standard implementation. The RTAI XML section of this site presents the details of the implementation. The general architecture is revised, in order to focus the three key components, the Server, the Server Target interface and the Server Host communication. The Applications section contains some examples of control systems based on RTAI XML and the References section contains hints and links for further readings on this topic.