
В прошлый раз в «Fuchsia Friday» мы изучили два прототипа устройств, которые Google разрабатывает для работы на Fuchsia, и упомянули, что в разработке находится третье «устройство». Сегодня мы рассмотрим Machina, встроенный эмулятор Fuchsia.
Одна из главных проблем при создании совершенно новой ОС, особенно сегодня, — это проблема «курицы и яйца». Без хороших приложений, зачем потребителям покупать продукт? И наоборот, без потребителей, зачем разработчикам создавать приложения?
Мы снова и снова рассматривали возможность совместимости Fuchsia с Android, но что, если этим не ограничиться? Если Fuchsia должна стать полноценной операционной системой для ноутбуков/настольных компьютеров, разве она не должна также иметь некоторую совместимость с приложениями для традиционной ОС?
Вот где приложение «Guest» становится актуальным. Guest позволяет загружать виртуальную ОС внутри Fuchsia. Официально Guest поддерживает Zircon (Fuchsia) и операционные системы на базе Linux (включая Debian), но есть также свидетельства того, что тестируется его совместимость с Chrome OS. На момент написания статьи мне удалось успешно протестировать Guest только с простой версией Linux.
Это, конечно, ничего особенного, поскольку мы занимаемся этим годами с такими приложениями, как VMWare и QEMU. Отличием Guest станет его более прямая связь между вашим устройством Fuchsia и его «гостем». Чтобы сделать это возможным, Guest использует библиотеку под названием Machina.
Machina
Согласно официальной документации:
Machina — это библиотека, построенная поверх гипервизора Zircon, для предоставления виртуализированных периферийных устройств, которые интегрируются с системой garnet.
Это звучит довольно расплывчато, так что давайте разберемся. В целом, Machina — это фреймворк для запуска второй, виртуальной операционной системы поверх Fuchsia. В этом смысле он немного похож на QEMU (эмулятор, используемый Android Studio для симуляции устройств Android), поэтому Machina также появляется в главном списке устройств Zircon подобно QEMU, чтобы ОС знала, что она работает в эмуляторе.
Один из основных механизмов, используемых Machina, называется ‘Virtio’. Virtio — это проект по стандартизации виртуализации ОС, который также был выбран для использования в KVM Linux. Частью стандарта Virtio является ‘vsock’ (сокращение от virtual socket), который может открывать прямые каналы между хостовой операционной системой и ее гостем, обеспечивая удобства, которые были бы невозможны иначе.
Vsock — это все еще довольно новая технология (Linux получил поддержку только в 2016 году), поэтому найти хорошие примеры ее использования немного сложно. Не говоря уже о том, что Fuchsia, вероятно, найдет для нее свои уникальные применения. Однако мы можем взглянуть на некоторые преимущества, предлагаемые другой системой vsock, чтобы получить представление о том, чего ожидать:
- Отсутствие задержки мыши
- Автоматическая регулировка разрешения
- Поддержка копирования и вставки (текст и изображения)
- Поддержка передачи файлов
- Поддержка нескольких дисплеев
Crostini
Эти функции совместимости с Linux могут показаться знакомыми, поскольку команда Chromium работает над очень похожими функциями для Chrome OS. Благодаря недавнему проекту Crostini, устройства Chrome OS скоро получат возможность устанавливать и запускать приложения Linux, с поддержкой важных функций, таких как буфер обмена и многое другое.
Под капотом Crostini и Machina на самом деле очень похожи. Учитывая это, разумно предположить, что они могут работать аналогично, с приложениями Linux, открывающимися как любые другие приложения. Ранее на этой неделе мы даже получили представление о упрощенном представлении файлов, которое появится в Chrome OS, чтобы сделать файлы Android и Linux более доступными. Очень вероятно, что Fuchsia получит аналогичный интерфейс для управления файлами между Android, Linux и Chrome OS.
Что все это значит?
С Machina от Fuchsia и Crostini на Chrome OS становится ясно, что мы начинаем видеть будущее, где границы между мобильными и настольными приложениями стираются. Интересно, что нет ничего, что мешало бы Guest и Machina работать на мобильном устройстве. В этом возможном будущем вы сможете использовать «настольные» приложения со своего телефона и наоборот.
Пока что реальность не слишком захватывает, но знайте, что мы внимательно следим за этим в будущем.