Запишите мое собственное, 'все - файл' интерфейс

Я хотел бы представить настройки и статистику моей программы в, 'все - файл' способ - вид того, как/proc/и/sys/работают.

Как пример, предположите на мгновение, что apache2 имел этот тип интерфейса. Вы тогда были бы в состоянии сделать что-то вроде этого (гипотетическое):

cd /apache2/virtual_hosts
mkdir 172.20.30.50
cd 172.20.30.50
echo '/www/example1' > DocumentRoot
echo 'www.example1.com' > ServerName
echo 1 > control/enabled
cat control/status
   enabled true
   uptime 4080
   hits 0

Теперь, есть ли какие-либо учебные руководства или подобны о том, как сделать это? Я главным образом ищу методы для 'притворства быть файлом или dir'. Я нахожусь на Linux, POSIX или другое больше портативного метода были бы предпочтительны, но не требуемые.

10
задан Alexander Torstling 14 January 2010 в 21:55
поделиться

3 ответа

В Linux , взгляните на Fuse : реализовать полнофункциональную файловую систему в программе пользовательского пространства.

  • Простая библиотека API
  • Простая установка (нет необходимости исправлять или перекомпилировать ядро)
  • Безопасная реализация
  • Пользовательское пространство - интерфейс ядра очень эффективен
  • Может использоваться непривилегированными пользователями
  • Работает в Linux ядра 2.4.X и 2.6.X
  • Зарекомендовали себя очень стабильно

Посмотрите совместимые платформы здесь . Что касается учебника, то один из хороших, с которыми я столкнулся, - это здесь .

10
ответ дан 3 December 2019 в 22:37
поделиться

Возможно, способ сделать это просто использовать «реальные» файлы и используйте библиотеку изменений (INOTIFY PRUCTED) для обнаружения, когда они изменяются и обновляют ваше поведение соответствующим образом.

The / proc и / sys предназначены для связи для пользователей ядра и не предназначены для программ IPC пользователей - вы должны использовать именованные трубы, розетки, общую память и т. Д.

(AB) Использование предохранителей не очень хорошая идея в этом случае, я думаю.

1
ответ дан 3 December 2019 в 22:37
поделиться

В дополнение к предохранителю, другое решение - экспортировать 9P файловую систему. WMII делает это, например.

4
ответ дан 3 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: