Как организовать высокоуровневую логику над linux drivers?
Здравствуйте.
Есть драйвер (набор драйверов), предположим в виде символьных устройств /dev/* необходимо реализовать сложную логику на ними. Это значит что какая-то прослойка должна проверять статус у драйверов (например через poll или select (что он делается в данный момент) и из заложенной программы понимать что надо скорректировать из текущего состояния и отсылает команды (например, через ioctl).
Эта прослойка может меняться от сеанса к сеансу.
Предполагаю, что следует взять и написать свой интерпретатор, однако, нет понимания как организовать даже в этом случае работу.
Как организовать такую систему?
===== UPD
Задачу сформулировать можно так:
Есть антенна. Набор железа работы с ней представляется в виде драйверов. Каждый сеанс работы с антенной индивидуален и действия во время сеанса может меняться (например, динамически менять приоритет действий). Надо реализовать инструмент, который позволит программировать сеанс и работать с данными.
Вообще достаточно взять Tcl и написать простую программку, которая открывает устройство, обменивается с ним данными. Но для более точного ответа необходимо знать протокол взаимодействия с устройством.
Система может расширяться и количество драйверов тоже. В том элементе что уже есть на руках - SPID (ryeng.name/blog/3). Т.е. я рассматриваю задачу для абстрактного набора железа.