Интересные GitHub-проекты: облачная файловая система pingfs

pingfs — «настоящее облачное хранилище».
pingfs

pingfs — это аналог привычной файловой системы, но с одним отличием. Все данные хранятся в сети Интернет в качестве ICMP Echo-пакетов (пингов), «путешествующих» между компьютером пользователя и удалёнными серверами.

Проект реализован с использованием API сырых сокетов и FUSE (filesystem in userspace, файловая система в пользовательском пространстве), поэтому для полноценной работы и запуска проекта необходимы права суперпользователя. Linux является единственной ОС, на которой возможно запустить программу. Поддерживаются обе версии протокола удалённых хостов, IPv4 и IPv6.

Работа с проектом

Для компиляции проекта необходимо запустить make в корневой папке. Чтобы начать использование, необходимо:

  • Создать текстовый файл с именами хостов и их IP-адресами;
  • Запустить программу в режиме root-пользователя при помощи команды: ./pingfs <название файла> <точка монтирования>. Программа начнёт проверку хостов на правильность их реакции посредством отправки нескольких пингов. На экран будет выведена некоторая информация и статистика, затем будет произведено монтирование файловой системы;
  • pingfs останется запущенным и будет печатать статистику по пакетам и байтам каждую секунду.

Чтобы остановить работу программы:

  • Нажмите Ctrl+C;
  • В противном случае, можно воспользоваться командой fusermount -u.

Поддерживаемые операции

  • Создание и удаление обычных файлов;
  • Листинг файлов;
  • Переименование файлов;
  • Чтение, запись и усечение файлов;
  • Настройка и получение прав на доступ к файлам.

Неподдерживаемые операции

  • Создание и удаление каталогов;
  • Создание жёстких и мягких ссылок на файлы;
  • Временные отметки (в этой версии они всегда равны 0).

Автор проекта отмечает, что в настоящее время производительность обработки LAN-хостов слишком низкая. Передача данных между ними часто приводит к потере пакетов, поэтому используйте pingfs с осторожностью.

В качестве шутки над идеей проекта пользователи Reddit уже придумали ему девиз:

Где мои данные? Не могу сказать. Но они существуют? Надеюсь.

Вячеслав Шарунов