В рамках проекта vdev развивается новая альтернатива devfs и udev

23 декабря 2014 года

Представлен новый проект vdev (virtual device filesystem), нацеленный на разработку менеджера файлов-устройств, выступающего в роли кросс-платформенной и не зависящей от систем инициализации альтернативы udev и devfs. Работа vdev изначально тестируется не только в Linux, но и во FreeBSD и OpenBSD.

Vdev представляет собой виртуальную файловую систему, отражающую в форме файлов подключенные к машине устройства. В отличие от devfs (FreeBSD) и udev/eudev/mdev (Linux), Vdev обеспечивает контроль доступа на уровне процессов, не привязанный к особенностям Linux или BSD-систем. Обращение к специфичным особенностям ОС вынесены в отдельную прослойку, в то время как базовая логика абстрагирована от предоставляемого операционными системами API доступа к устройствам.

В Vdev используется похожая на devfs и udev событийная (Event-driven) модель работы с устройствами, позволяющая на лету добавлять новые устройства и исключать отключенные. Для выполнения данных задач в vdev поддерживаются различные системные API получения уведомлений об изменении состояния оборудования. При этом источником связанных с оборудованием событий может быть не только операционная система, но и другие экземпляры vdev или правки существующего дерева /dev, что делает vdev интересным решением для систем контейнерной виртуализации. Как и в devfs, в vdev реализована возможность отображения для процессов различного контекста корневого дерева устройств, в зависимости от заданных прав доступа.

Особенностью vdev является расширенная система управления доступом, позволяющая задавать фильтры, ограничивающие доступ к дереву устройств не только на основании штатных прав доступа и идентификаторов пользователей/групп, но и в привязке к заданным процессам. Подобный подход позволяет обойтись без установки флагов setuid/setgid и без менеджера управления сеансами при необходимости предоставления процессу доступа к привилегированным файлам устройств. Например, доступ к /dev/dri/* и /dev/input/* может быть предоставлен процессу /usr/bin/X, независимо от пользователя под которым он запущен, что позволяет обойтись без systemd-logind.

Код проекта написан на языке C++ и распространяется под лицензией GPLv3. Виртуальная файловая система создаётся с использованием механизма FUSE. Из зависимостей отмечаются OpenSSL, libfuse, libc, libstdc++ (для STL) и libpthread, а также библиотеки fskit и libpstat, развиваемые автором vdev.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «В рамках проекта vdev развивается новая альтернатива devfs и udev», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.