Представьте, что вам нужен файл - например, /etc /hosts - но каждый раз, когда файл читался, а не считывал его из файловой системы, его содержимое представляло собой вывод приложения - например, скрипта, который очищает конфигурацию на сайтах apache - включен

Я чувствую, что это должно быть возможно, например, код ядра генерирует почти все в /sys и /proc , которые, я считаю, монтируются как виртуальные файловые системы. Существует ли какое-либо наложение виртуальной файловой системы пользовательского пространства общего назначения, которое позволило бы мне делегировать сценарий или двоичный файл в качестве выходных данных, которые должны отображаться при каждом чтении файла, или этот вариант использования просто не появляется очень часто?

(Я полагаю, что его неправильное использование может значительно замедлить работу системы, и, возможно, есть более эффективные способы - в вышеупомянутом случае предпочтительнее было бы задание cron, которое запускалось каждые 10 минут - но мне любопытно, встречалось ли это раньше и пыталось )

1 ответ1

0

Да, это называется FUSE. Ядро позволяет реализовать полнофункциональные файловые системы в пользовательском пространстве, и вы, возможно, уже использовали некоторые из них: sshfs, curlftpfs, ntfs-3g, archivefs, wikipediafs ...

Интерфейс FUSE более низкоуровневый, чем вы описываете (файловая система все еще должна индивидуально обрабатывать открытия, чтения, записи ...), но она имеет привязки для различных языков от Python до bash. У большинства из них есть пример «Привет, мир», который можно адаптировать для предоставления вывода внешней программы в качестве данных.

В настоящее время FUSE работает на Linux, различных BSD, macOS, Solaris ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .