Компания Timesys, занимающаяся разработкой Linux-сервисов для встроенных систем, начала распространение Linux ядра реального времени (real-time Linux kernel) для процессоров Atmel ARM9. Ядро 2.6.24.4-rt4 включает патч RT_PREEMPT, написанный Ingo Molnar и Thomas Gleixner, а также патчи для таймера высокого разрешения и другие, специфичные для платформы Atmel.
Патч RT_PREEMPT — это тот же самый патч, который используется в real-time версиях Linux таких производителей, как Red Hat, Novell MontaVista. Ожидается, что он войдет в основную ветку ядра но пока в полной поставке его нет. Код гарантирует синхронизацию времени завершения операции по таймеру, которая требуется во многих приложениях критической важности в сфере предоставления услуг связи, в здравоохранении, при проведении финансовых операций и в оборонных целях.
Новое ядро и патчи сконфигурированы и протестированы для обеспечения функционирования real-time задач. Поддерживается вытесняющая многозадачность (preemption), обработка прерываний по расписанию, таймеры с высокой разрешающей способностью, мьютексы с наследованием приоритета (mutexes with priority inheritance), сообщает компания. Модифицированное ядро работает на эталонной платформе Atmel ARM9, включая AT91SAM9260, AT91SAM9261, AT91SAM9263, AT91SAM9RL, AT91CAP9 и новую версию процессора AT91SAM9G20 с кешем команд и данных 32KB и частотой 400MHz.
Timesys перечислила следующие возможности оптимизированного ядра:
- Улучшенная POSIX совместимость — поддержка real-time реализации POSIX интерфейсов, включая сигналы и очереди сообщений.
- Полностью вытесняющая Большая Блокировка Ядра (BKL) — позволяет задачам с низким приоритетом накладывать BKL без увеличения задержек.
- Полная вытесняющая многозадачность реального времени — уменьшение задержек в ядре за счет уменьшения не выгружаемых блоков.
- Процедуры обработки прерываний, основанные на потоках (ISR) — улучшение времени отклика для задач реального времени при большом количестве прерываний.
- Таймеры высокого разрешения — сокращение задержек для действий, которые должны запускаться по таймаутам, которые меньше, чем самый короткий интервал.
- Поддержка наследования приоритетов мьютексов — уничтожение несвязанной инверсии приоритетов (unbounded priority inversion) для системных и пользовательских задач, исполняемых ядром, и пользовательских мьютексов.
- Отладка и трассировка — возможность проследить задержки в ядре во время выполнения задачи.
- Полная конфигурируемость — контролируемый пользователем компромисс, между задержкой в ядре и пропускной способностью.
Базовый пакет распространяется бесплатно, для желающих получить дополнительную поддержку и расширенный комплект инструментов сборки предоставляется коммерческая версия.
|