Програми Linux незабаром будуть доступні в ОС Chrome, починаючи з Google Pixelbook, завдяки Project Crostini. Що таке Crostini і чому це так важливо? Ми занурюємося в найбільшу зміну в ОС Chrome з моменту інтеграції програми Android.
Ось усе, що вам потрібно знати про річну таємну розробку Google функціональних можливостей програми Linux в ОС Chrome, також відому як проект Crostini.
У двох словах, це спосіб запускати звичайні програми Linux в ОС Chrome без шкоди для безпеки та ввімкнення режиму розробника. (ще не доступний) офіційне налаштування станів що це «Запускати інструменти, редактори та IDE Linux на вашому Chromebook».
Crostini є кульмінацією кількох років розробки, яка дозволила функціоналу працювати достатньо безпечно, щоб відповідати високим стандартам безпеки ОС Chrome. Щоб зрозуміти, чому він лише з’являється, краще поглянути на те, що було раніше.
Розглядаючи Crostini в контексті темних віків ОС Chrome
До того, як програми для Android з’явилися на сцені, в ОС Chrome не було багато функціональності в режимі офлайн, не кажучи вже про корисні програми для продуктивності. Навіщо будь-якій здоровій людині купити Chromebook? «Це просто веб-браузер», — було заключне зауваження кожного огляду Chromebook. Веб-магазин Chrome був стільки, скільки ви могли отримати, але вибір програм був досить бідним і рідко оновлювався. Любителі пригод можуть спробувати запустити програми Android за допомогою інструменту під назвою
АРК зварювальник, але це було помилкою, і продуктивність була поганою.Щоб обійти обмеження офлайн, розчаровані користувачі або стерли ОС Chrome і встановили Linux, або використовували інструмент з відкритим кодом грінки щоб налаштувати одночасне робоче середовище [наприклад, Ubuntu Unity], яке працює поверх ядра ОС Chrome.
Запуск заміни дистрибутива GNU/Linux або Crouton вимагав достатнього ноу-хау та часто був пронизаний помилками — і жоден із варіантів не був особливо зручним чи безпечним. Натисніть неправильну клавішу, і ви стерте свій пристрій або заблокуєте його, і якщо ви залишите своє середовище Crouton незашифрованим, будь-який гість може отримати до нього доступ.
Інтеграція додатків Android, створення прецеденту
Програми для Android з’явилися на ОС Chrome у 2016 році та стали величезним кроком у розвитку офлайн-функціональності, але ввімкнення цієї функції було не просто «підключи та працюй». Єдиний спосіб, яким він міг би працювати в ОС, яка цінує безпеку, — це ефективно використовувати її в ізольованому програмному середовищі.
Новим рішенням, яке обрали розробники ОС Chrome, було контейнеризація, спосіб об’єднання програм у окремі виконувані пакети. Використовуючи контейнер і кілька налаштувань, їм вдалося отримати повне середовище Android і все його залежності працюватимуть у контейнері, відокремленому від решти ОС Chrome, але запущеному на тій самій ядро.
Але програми для Android зазвичай не розробляються з урахуванням форм-фактора настільного комп’ютера/ноутбука. Додайте поганий сенсорний досвід в ОС Chrome, і ви отримаєте розчаровуючу продуктивність, якщо програми взагалі працювали.
Незважаючи на те, що досі програми для Android допомагали подолати розрив у продуктивності, все ще залишалося бажання отримати величезну бібліотеку повноцінних програм для настільних ПК. Як і у випадку з початковою проблемою Android, просто відкривши можливість запуску програм Linux збільшити поверхню атаки ОС Chrome, оскільки шкідливі програми можуть отримати доступ до всього на хост-ОС. Тож цього разу розробники розробили функціональні можливості додатків для Linux якомога меншими, на додаток до того, що вони вже навчилися з Android.
Оборона в глибину
Як випливає з назви, Crostini схожий на Crouton, але замість того, щоб мати незахищений простір користувача поруч із Chrome OS, він має дві стіни між ними. Перша стіна — це Termina VM, реалізація KVM (віртуальна машина на основі ядра) ОС Chrome. Щойно ця віртуальна машина запускається, вона створює другу стіну — контейнер, — який потім містить програму, яку ви насправді хочете запустити. Отже, коли ви хочете запустити свою повноцінну настільну програму Klondike, вона працює в контейнері всередині віртуальної машини.
Розробники не зробили загальнодоступну документацію особливо легкою для сприйняття з нетехнічної точки зору, але, з мого неофіційного читання неспеціаліста, програмне забезпечення архітектура для ОС Chrome тепер, ймовірно, виглядає так [примітка: усе працює моє, точно не є офіційним документом команди ОС Chrome, ймовірно, абсолютно не відповідає дійсності, будь ласка, не Зроби мені боляче]:
Коротше кажучи, компонент віртуальної машини має окремий простір користувача та віртуальні пристрої (vCPU, IP, MAC тощо), а контейнер — це запакована програма, яка використовує ці ресурси. На цьому етапі я повинен додати застереження, що компонент VM насправді не емулює апаратне забезпечення.
Тільки багаті люди… поки що
Деякі, як-от спільнота на Reddit's /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 приваблива, але якщо прискорення графічного процесора недоступне, наразі це не можна.
Ми не знаємо, які обмеження спричинить повітряний зазор хост/контейнер (якщо такі є). Зв’язок між контейнером і ОС Chrome контролюється, тож чи призведе це до затримки чи навіть відключить деякі периферійні пристрої?
У нас є багато запитань без відповіді, і це лише питання часу, коли все буде розкрито. Багато хто переконаний Google I/O 2018 за кілька тижнів станеться велике відкриття — це має сенс, оскільки це конференція розробників. А поки залишайтеся з нами, оскільки ми стежимо за Кростіні.
Джерела:
Максим Лін – Контейнери Chrome OS
Chromium Git - Комплект контейнерів ARC, vm_tools, проект-термін, crosvm