Помогите с файловой системой FUSE [закрыто]

Я новичок в Ubuntu, и мне нужно создать файловую систему на основе FUSE. Я видел много примеров в Интернете, но не могу понять разницу между ними. Некоторые примеры из того, что я видел до сих пор, включают программы на C, например:

  1. Мне интересно, почему модульные тесты создаются с помощью Python, а именно модуля py.test.
  2. Некоторые архивы файловой системы FUSE содержат исходные тексты ядра, а некоторые нет. Я не понимаю, почему так сделано.
  3. На официальной странице загрузки я изучил все примеры. Пожалуйста, помогите мне понять разницу между fuse-2.9.7.tar.gz, fuse-2.9.7.tar.gz.asc и Source code (zip), Source code (tar.gz).
-3
задан 29 June 2016 в 08:11

1 ответ

Три главных вопроса

Я повредил Ваш вопрос в эти три области, которыми Вы были обеспокоены. В то время как я не могу помочь Вам записать файловую систему FUSE, я могу ответить на те 3 вопроса:

  1. Заключая программирование Wikipedia:In в кавычки, поблочное тестирование является методом тестирования программного обеспечения, которыми отдельными единицами исходного кода, наборами одного или нескольких модулей компьютерной программы вместе со связанной управляющей информацией, процедуры использования и рабочие процессы, тестируются, чтобы определить, годны ли они к использованию.

В отношении того, почему использовался Python: Это было сделано, потому что некоторые, если не все языки программирования содержат Платформы Поблочного тестирования. Платформа позволяет программисту использовать что-то, что уже существует, чтобы расширить и протестировать их код. Python был выбором программиста для libfuse проекта. См. Руководство Автостопщика по Python: Тестирование Вашего Кода.


  1. Из файла README.md:

FUSE (Файловая система в Пространстве пользователя) является интерфейсом для программ пространства пользователя для экспорта файловой системы в ядро Linux. Проект FUSE состоит из двух компонентов: модуль ядра предохранителя (сохраняемый в обычных репозиториях ядра) и libfuse библиотека пространства пользователя (сохраняемый в этом репозитории). libfuse обеспечивает ссылочную реализацию для общения с модулем ядра FUSE.

Файловая система FUSE обычно реализуется как автономное приложение, которое связывается с libfuse. libfuse, обеспечивает функции, чтобы смонтировать файловую систему, размонтировать его, считать запросы из ядра и передать ответы обратно. libfuse предлагает два API: "высокий уровень", синхронный API и асинхронный API "низкого уровня". В обоих случаях входящие запросы от ядра передаются основной программе с помощью обратных вызовов. При использовании высокоуровневого API обратные вызовы могут работать с именами файлов и путями вместо inodes, и обработка запроса заканчивается, когда функция обратного вызова возвращается. При использовании API низкого уровня обратные вызовы должны работать с inodes, и ответы должны быть отправлены явно с помощью отдельного набора API-функций.


В отношении Вашего вопроса все архивы должны содержать Файлы C. Если то, что Вы загрузили, не содержало файлы C, это, вероятно, не был архив FUSE.


  1. Весь основанный на Linux исходный код всегда прибывает в формат <packagename-Ver.si.on>.<compression format>.

    • .tar.gz характерно для Linux. Это коротко для Архива Tar GZipped. Читать man tar и man gzip для получения дополнительной информации.
    • .zip распространено в Windows. Это коротко для Заархивированного Файла. Это - эквивалентный Linux, стал двумя командами. Читать man zip и man unzip.
    • .asc обычно упоминается как Контрольная сумма ASCII. Этот файл используется, чтобы проверить, что файл, который Вы загрузили, не повреждается. Проверить это использование программа охраны Конфиденциальности GNU. Посмотрите UNIX / Linux: Проверка Ключей Подписи Файла PGP TarBall для примеров.

Оценка самого FUSE

Обратите внимание на то, что Вы, вероятно, не должны писать свою собственную файловую систему FUSE, поскольку большинство дистрибутивов содержит пакет FUSE. Ubuntu является одним из тех дистрибутивов. Посмотрите Чиновника Страница Репозитория Ubuntu для FUSE и установите его с sudo apt-get-update && sudo apt-get install fuse.

3
ответ дан 29 September 2019 в 00:58

Другие вопросы по тегам:

Похожие вопросы: