У меня и моего коллеги есть проект по созданию драйвера, который обеспечит доступ к удаленному диску, как к локальному диску (используя SSH / SCP).Диск должен обычно рассматриваться как диск, и операции могут быть ограничены простыми файловыми операциями (копирование, перемещение, удаление), без вывода списка файлов и т. Д. Драйвер должен быть модулем ядра Linux (может быть, не полностью ...).
Нам удалось собрать некоторую информацию и идеи, и, может быть, кто-то мог бы проверить их или подтолкнуть нас в правильном направлении?
Мы думали о том, чтобы разделить его на 2 компонента:
- модуль ядра, реализующий виртуальный диск,
- демон пользовательского пространства, отвечающий за связь SSH / SCP,
, потому что мы не можем представить реализацию связи SSH в модуле ядра(ДА, это, вероятно, ВОЗМОЖНО, но ..).
Для связи по SSH / SCP мы думаем, что можем использовать libssh .Что касается реализации виртуальных дисков в модуле ядра, мы нашли учебник .
Другой случай - связь между ядром и пользовательским пространством.Мы также нашли статью , в которой обсуждается множество возможностей, таких как UDP-сокеты или NETLINK.
С этим решением мы можем забыть о любых вещах, связанных с SSH / SCP, в модуле ядра - это будетпрозрачен для ядра.
Хорошо ли наше мышление?Может быть, есть некоторые оговорки, которые мы не предвидели?Это правильный путь, или, может быть, есть лучший / более простой метод (но все же связанный с ядром linux, потому что это основное поле проекта;))?Какие идеи мы должны использовать?Полезные ссылки:)
РЕДАКТИРОВАТЬ : Это проект, который мы должны сделать для обучения в университете - так что не проблема найти уже реализованное решение, а сделать свое собственное ..