В ядре Линукса есть возможность сделать реалтайм. Обычно эта опция отключена. Или патч есть тля ядра. Насколько я помню было два пути, но я мало знаком с темой.
Пару лет назад я работал с LinuxCNC
http://linuxcnc.org/. Там как раз использован такой реалтайм Линукс. Реально ядро управляет несколькими шаговыми двигателями, посылая раз в миллисекунду (на хорошем железе можно и чаще) сигналы драйверам. Точнее по умолчанию 1 килогерц, а это раз в пол миллисекунды.
Там сделана shared memory структура, через которую управляют драйверами ядра. Куда и сколько шагать. Коды доступны