Псевдо файловые системы на * nix - PullRequest
6 голосов
/ 17 января 2010

Мне нужны некоторые указатели мнений о создании псевдофайловых систем для систем linux / * nix.

Во-первых, когда я говорю «псевдофайловая система», я имею в виду что-то вроде / proc, где структура внутри представляет не реальные файлы на дисках или что-то подобное, а состояние ядра. Я хотел бы попробовать нечто подобное в качестве интерфейса для приложения.

В качестве примера вы можете сказать, смонтировать ftp-URL в вашу файловую систему, и ваше браузерное приложение позволит вам взаимодействовать с удаленной системой, выполняя для нее команду ls и др. И переводя стандартные запросы файловой системы в ftp.

Итак, первый вопрос: как это сделать? Я немного читал об этом, и похоже, что вам нужно реализовать новый модуль ядра. Если возможно, я бы хотел этого избежать - я думаю, что кто-то, возможно, уже предоставил инструмент для такого рода действий и предоставил модуль для помощи.

Мой второй вопрос: есть ли у кого-нибудь хороший список примеров приложений / служб / чего бы то ни было, использующих этот вид техники для обеспечения интерфейса на основе файловой системы.

Наконец, если у кого-то есть мнение о том, почему это может быть хорошей / плохой идеей сделать такую ​​вещь на общем уровне, я бы хотел это услышать.

Ответы [ 2 ]

10 голосов
/ 17 января 2010

Файловая система пользовательского пространства через fuse , вероятно, будет вашим лучшим выбором.

3 голосов
/ 18 января 2010

Что касается следующей части вашего вопроса (какие приложения используют этот метод), то есть оконный менеджер wmii , он использует файловую систему 9p через v9fs, который является портом 9p для Linux. На plan9 есть много примеров, в частности, acme. Я предложил fuse, потому что он кажется более активно развивающимся и распространенным в мире Linux, но, насколько мне известно, plan9 является в значительной степени эталоном для этого подхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...