Прохождение IPC для Linux User space exe - PullRequest
1 голос
/ 09 марта 2011

У нас есть программа, назовем ее Y.exe. Он работает во встроенной системе и работает без выхода (то есть система запускается, загружает ядро ​​Linux, все модули ядра, затем Y.exe и Y никогда не возвращает (пространство пользователя)).

Теперь наступает момент, когда нам необходимо изменить способ запуска Y.exe, т.е. включить некоторую отладку, заставить его использовать некоторые другие маршруты кода для тестов и т. Д.

Текущий способ сделать это - скомпилировать и перекомпилировать Y для обработки каждого теста. Это похоже на талию времени, и мы должны быть в состоянии динамически устанавливать условия.

Я бы хотел использовать что-то вроде системы proc / debug из ядра, где вы можете просто сделать что-то вроде:

echo 1 > /proc/test_y

для включения тестов и т. Д.

Видя, что proc / debug являются элементами уровня ядра, их нельзя использовать для исполняемых файлов пользовательского пространства (?).

Помимо реализации полного IPC с помощью сообщений Q или TCP, есть ли другие способы реализации аналогичных функций?

Спасибо.

1 Ответ

1 голос
/ 09 марта 2011

Проверяет ли он наличие файла флага где-то в каждой итерации цикла события?

Установить обработчик сигнала для SIGUSR1?SIGUSR2?

При любом из этих событий установите значение флага в программе, которая будет выполнять тесты или выводить отладочную информацию, а затем переключаться после получения другого, или исчезнет файл флага и т. Д.

Что-то похожее на вышеперечисленное должно обеспечить функциональность, аналогичную той, о которой вы говорите.Сигналы были бы более непосредственными (и, вероятно, более прямыми), но любого механизма должно быть достаточно.

...