Французский математик Фабрис Беллар (Fabrice Bellard), основавший в свое время проекты QEMU и FFmpeg, а также создавший самую быструю формулу вычисления числа Пи и разработавший формат изображений BPG, опубликовал новый проект VFsync и связанный с ним эмулятор RISCVEMU. Система предусматривает три варианта использования: запуск утилиты в режиме командной строки, выполнение в web-браузере виртуальной машины с отдельным окружением операционной системы и запуск виртуальной машины на локальной системе при помощи эмулятора. Наработки проекта распространяются под лицензий MIT.

Одной из целей VFsync является предоставление высокого уровня безопасности, для чего и предлагается запуск виртуальных машин. Подразумевается, что окружение из виртуальной машины полностью независимо от текущей системы и может быть синхронизировано из внешнего хранилища для получения доступа к своим данным и рабочему окружению независимо от того, к какому компьютеру удалось получить доступ. Перед передачей на сервер информация шифруется на стороне клиента с использованием алгоритма AES (ключ для шифрования создаётся при помощи PBKDF2 HMAC SHA-256), обмен данными осуществляется по HTTPS. Для данных может быть использовано как предлагаемое проектом облачное хранилище, так и компоненты запущенные на своём оборудовании.

В случае запуска в браузере применяется реализация эмулятора JS/Linux, написанного на языке JavaScript и способного запустить Linux. После запуска в браузере выводится приглашение консоли, из которого можно подключиться к облачному хранилищу (используется команда "vflogin username"), загрузить свои файлы в домашнюю директорию, произвести работу с файлами при помощи штатных unix-утилит (запускается busybox) и синхронизировать изменения.

Для запуска графической оболочки предлагается более производительное решение на базе эмулятора RISCVEMU, позволяющего создать виртуальную машину с 128-разрядной архитектурой RISC-V. В отличие от традиционных систем виртуализации RISCVEMU не требует отдельной загрузки дискового образа (загружается типовой образ, соответствующий конфигурации, заданной в формате JSON). Поддерживается SDL, VirtIO, сетевой интерфейс, IDE, PS/2, vmmouse и VGA.

Клиент для работы в командной строке по принципам взаимодействия напоминает системы управления версиями, а предоставляемые опции похожи на Subversion. Основное отличие состоит в том, что по умолчанию выполняется операция обновления локального содержимого до состояния на сервере (вместо коммита изменений на сервер), поддерживается только одна ветка HEAD, невозможен откат изменений, все метаданные и данные шифруются перед отправкой на сервер и хранятся в зашифрованном виде.

Например, для получения своих файлов можно использовать команду "vfsync -u user1 co https://vfsync.org/u/user1/home my_home", а для отправки изменений на сервер достаточно просто запустить vfsync. В случае возникновения конфликтов локальный файл будет переименован, а его место займёт вариант с сервера. При удалении файла на локальной системе он также удаляется и на сервере без необходимости явного выполнения команды remove.

Источник: http://www.opennet.ru/opennews/art.shtml?num=46985