Синтетическая файловая система
В информатике синтетическая файловая система или псевдофайловая система — это иерархический интерфейс для нефайловых объектов, которые выглядят так, как если бы они были обычными файлами в дереве дисковой файловой системы или файловой системы длительного хранения . Доступ к этим нефайловым объектам можно получить с помощью тех же системных вызовов или служебных программ, что и к обычным файлам и каталогам . Общий термин как для обычных файлов, так и для нефайловых объектов — узел .
Преимущество синтетических файловых систем заключается в том, что известную семантику файловых систем можно повторно использовать для универсального и легко реализуемого подхода к межпроцессному взаимодействию . Клиенты могут использовать такую файловую систему для выполнения простых файловых операций на своих узлах и не должны реализовывать сложные методы кодирования и передачи сообщений , а также другие аспекты разработки протоколов . Для большинства операций можно использовать обычные файловые утилиты, поэтому даже создание сценариев довольно просто.
Это общеизвестно, поскольку все является файлом и обычно считается, что оно произошло из Unix .
Примеры
[ редактировать ]/proc файловая система
[ редактировать ]В мире Unix обычно существует специальная файловая система, смонтированная в /proc . Эта файловая система реализована в ядре и публикует информацию о процессах . Для каждого процесса существует каталог (названный по идентификатору процесса ), содержащий подробную информацию о процессе: статус , открытые файлы, карты памяти , монтирования и т. д.
/proc впервые появился в Unix 8-й редакции, [1] а его функциональность была значительно расширена в Plan 9 от Bell Labs . [2]
Файловая система Linux /sys
[ редактировать ]Файловая система /sys в Linux дополняет /proc, предоставляя пользовательскому пространству много (не связанной с процессом) подробной информации о состоянии ядра. Более традиционные системы Unix находят эту информацию в вызовах sysctl.
ОбексФС
[ редактировать ]ObexFS — это файловая система на основе FUSE , которая обеспечивает доступ к объектам OBEX через файловую систему. Приложения могут работать с удаленными объектами по протоколу OBEX, как если бы это были просто (локальные) файлы.
Файловые серверы Plan 9
[ редактировать ]В семействе операционных систем Plan 9 от Bell Labs концепция синтетической файловой системы 9P используется в качестве общего метода IPC . В отличие от большинства других операционных систем, дизайн Plan 9 сильно распределен: в то время как в других мирах ОС существует множество (и часто больших) библиотек и платформ для общих задач, Plan 9 инкапсулирует их в файловые серверы. Самым важным преимуществом является то, что приложения могут быть намного проще и что службы работают независимо от сети и платформы - они могут находиться практически на любом хосте и платформе в сети и практически в любой сети, если файловый сервер может быть смонтирован приложением. .
Plan 9 расширяет эту концепцию: большинство служб операционной системы, например, доступ к оборудованию и сетевой стек, представлены как файловые серверы. Таким образом, можно легко использовать эти ресурсы удаленно (например, один хост имеет прямой доступ к блочным устройствам или сетевым интерфейсам другого хоста) без необходимости использования дополнительных протоколов.
Другие реализации протокола файловой системы 9P также существуют для многих других систем и сред. [3]
Встраиваемые системы
[ редактировать ]Широко известно, что отладка встроенных систем или даже устройств «система-на-кристалле» (SoC) является сложной задачей. [ нужна ссылка ] Было реализовано несколько протоколов для обеспечения прямого доступа к внутрикристальным устройствам, но они, как правило, являются проприетарными, сложными и трудными в использовании.
Исследования предполагают использование синтетических файловых систем на основе 9P , сетевой файловой системы Plan 9, в качестве универсальной схемы доступа к этой информации. Основное преимущество заключается в том, что 9P очень прост и его довольно легко реализовать на аппаратном уровне, и его можно легко использовать практически в любой сети (от последовательного соединения до Интернета).
Плюсы и минусы
[ редактировать ]Основным аргументом в пользу использования синтетических файловых систем может быть гибкость и легкий доступ к сервис-ориентированным архитектурам . Как только заметное количество приложений будет использовать эту схему, общие накладные расходы (код, потребление ресурсов, работы по обслуживанию) могут быть значительно сокращены. Здесь также применимы многие общие аргументы в пользу SOA.
Аргументы против синтетических файловых систем включают тот факт, что семантика файловой системы может не соответствовать всем сценариям приложений. Например, сложные удаленные вызовы процедур со многими параметрами, как правило, трудно сопоставить со схемами файловой системы. [ нужна ссылка ] и может потребоваться перепроектирование приложения.
Ссылки
[ редактировать ]- ^ "страница proc из раздела 4 восьмого руководства unix" . Man.cat-v.org . Проверено 28 августа 2015 г.
- ^ «Страница процесса из раздела 3 руководства по плану 9» . Man.cat-v.org . Проверено 28 августа 2015 г.
- ^ «Реализации 9P» . 9p.cat-v.org . Проверено 28 августа 2015 г.
Внешние ссылки
[ редактировать ]- Протокол синтетической файловой системы 9P .
- БРАУН, Джеффри: Встроенные файловые системы для поддержки сложных встраиваемых систем. [ мертвая ссылка ]
- ПИСУПАТИ, Бхани Н.: Структура виртуальной файловой системы для поддержки разработки встроенного программного обеспечения.
- Миннич, Рон: Почему Plan9 не умер и чему мы можем у него научиться