Благодаря Project Crostini приложения Linux скоро будут доступны в Chrome OS, начиная с Google Pixelbook. Что такое Кростини и почему это так важно? Мы углубимся в самые большие изменения в Chrome OS с момента интеграции приложений Android.
Вот все, что вам нужно знать о многолетней секретной разработке Google функциональности приложений Linux в Chrome OS, также известной как Project Crostini.
Короче говоря, это способ запускать обычные приложения Linux в Chrome OS без ущерба для безопасности или включения режима разработчика. (пока нет в наличии) официальная настройка состояния что это «запуск инструментов, редакторов и IDE Linux на вашем Chromebook».
Crostini — это кульминация нескольких лет разработки, которая позволила обеспечить достаточно безопасную работу функциональности, чтобы соответствовать высоким стандартам безопасности Chrome OS. Чтобы понять, почему он только появился, лучше всего взглянуть на то, что было раньше.
Помещаем Кростини в контекст — темные века Chrome OS
До того, как на сцену вышли приложения для Android, в Chrome OS было не так много автономных функций, не говоря уже о полезных приложениях для повышения производительности. Зачем любому здравомыслящему человеку покупать Chromebook? «Это всего лишь веб-браузер», — таково было заключительное замечание в каждом обзоре Chromebook. В Интернет-магазине Chrome было столько всего, сколько вы могли бы получить, но выбор приложений был довольно скудным и редко обновлялся. Авантюристы могут попробовать запускать приложения для Android с помощью инструмента под названием
Дуговой сварщик, но это было случайно, и производительность была плохой.Чтобы обойти ограничения в автономном режиме, разочарованные пользователи либо удалили Chrome OS и установили Linux, либо использовали инструмент с открытым исходным кодом. Крутон для настройки одновременной среды рабочего стола [например, Ubuntu Unity], работающей поверх ядра Chrome OS.
Запуск замещающего дистрибутива GNU/Linux или Crouton требовал немало знаний и часто был пронизан ошибками, и ни один из вариантов не был особенно удобным для пользователя или безопасным. Нажмите не ту клавишу, и вы сотрете свое устройство или заблокируете его, а если вы оставите свою среду Crouton незашифрованной, любой гостевой пользователь сможет получить к ней доступ.
Интеграция с Android-приложением, создание прецедента
Приложения для Android появились в Chrome OS в 2016 году, и это был огромный скачок в офлайн-функциональности, но включить эту функциональность было не просто по принципу «подключи и работай». Единственный способ, которым он мог работать в ОС, которая ценит безопасность, — это эффективная изолированная программная среда.
Новое решение, которое выбрали разработчики Chrome OS, было контейнеризация, способ объединения приложений в автономные исполняемые пакеты. Используя контейнер и более чем несколько настроек, им удалось получить полную среду Android и все его зависимости для запуска в контейнере, отделенном от остальной части Chrome OS, но работающем на том же ядро.
Но приложения для Android обычно не разрабатываются с учетом форм-фактора настольного компьютера или ноутбука. Добавьте к этому плохой сенсорный опыт в Chrome OS, и вы получите разочаровывающую сессию производительности, если приложения вообще работают.
В то время как приложения для Android до сих пор помогали сократить разрыв в производительности, все еще существовало стремление к огромной библиотеке полноценных настольных приложений. Как и в случае с первоначальной проблемой Android, простое открытие возможности запуска приложений Linux увеличить поверхность атаки Chrome OS, потому что вредоносные приложения могут получить доступ ко всему на ОС хоста. Поэтому на этот раз разработчики разработали функциональность приложений для Linux как можно более разрозненной, в дополнение к тому, что они уже изучили в Android.
Глубокая защита
Как следует из названия, Crostini похож на Crouton, но вместо того, чтобы иметь небезопасное пространство пользователя рядом с Chrome OS, между ними есть две стены. Первая стена — это Termina VM, реализация Chrome OS KVM (виртуальная машина на основе ядра). Как только эта виртуальная машина запускается, она создает вторую стену — контейнер, в котором находится приложение, которое вы действительно хотите запустить. Поэтому, когда вы хотите запустить свое полноценное настольное приложение Klondike, оно запускается в контейнере внутри виртуальной машины.
Разработчики не сделали общедоступную документацию особенно удобной с нетехнической точки зрения, но, судя по моему неофициальному непрофессиональному чтению, программное обеспечение Архитектура для Chrome OS сейчас выглядит примерно так сделал мне больно]:
Короче говоря, компонент VM имеет отдельное пространство пользователя и виртуальные устройства (vCPU, IP, MAC и т. д.), а контейнер — это упакованное приложение, которое использует эти ресурсы. На этом этапе я должен добавить предостережение о том, что компонент VM на самом деле не эмулирует какое-либо оборудование.
Только богатые люди... пока
Некоторые, например, сообщество Reddit. /r/Crostini, уже начали возиться с Кростини на их Google Pixelbooks. К сожалению, Pixelbook — пока единственное устройство с функциональностью Crostini., но признаки указывают на то, что другие устройства, даже с системой на кристалле ARM, получат поддержку в будущем. Но возможно еще не совсем для 32-битных машин. Есть также намеки на то, что некоторые части функциональности виртуальной машины необходимы для запуска Crostini. не будет доступен для устройств со старыми версиями ядра.
Если вы зашли так далеко, вы, вероятно, задаетесь вопросом: что я могу запустить? Успех был ограничен. Разработчики Chrome намекнули, что у них запущена Visual Studio. Пользователи Reddit заработали WINE и Android Studio, а ChromeUnboxed пригодился. видео демонстрация. Но мы, вероятно, не узнаем всех возможностей — и ограничений — до того, как Google действительно что-то продемонстрирует. Что мы знаем, так это то, что приложения являются постоянными, что означает, что вы можете продолжить с того места, на котором остановились, и что разработчики работают над тем, чтобы сделать их доступными в вашем списке последних приложений.
Что дальше? Несколько моментов для рассмотрения
Если вы находитесь на канале разработчика на Chromebook, отличном от Pixelbook, возможно, приложение Terminal появилось на вашем Chromebook. Вы можете увидеть ошибку «не удалось запустить консьержа». Это потому, что функциональность виртуальной машины не была включена на устройствах, отличных от Pixelbook… пока.
Мы еще не знаем, как распределяются ресурсы и какие накладные расходы производят эти вложенные приложения. Идея игр в Linux-совместимых играх Steam заманчива, но если GPU-ускорение недоступно, то на данный момент это невозможно.
Мы не знаем, какие ограничения будет создавать воздушный зазор между хостом и контейнером (если таковые имеются). Связь между контейнером и Chrome OS контролируется, поэтому приведет ли это к задержке или даже к отключению некоторых периферийных устройств?
У нас есть много вопросов без ответов, и это только вопрос времени, когда все будет раскрыто. Многие убеждены Google I/O 2018 через несколько недель будет большое открытие — это имеет смысл, поскольку это конференция разработчиков. А пока следите за обновлениями, пока мы следим за Кростини.
Источники:
Максим Лин — Контейнеры Chrome OS
Хром Гит - Комплект контейнеров ARC, vm_tools, проект-терминал, crosvm