Google предлагает способ запускать программы Android и Linux «нативно» в Fuchsia OS

Уже много лет Google разрабатывает Fuchsia, операционную систему, которая явно *не* основана на Linux. Последнее предложение для Fuchsia OS показывает, как эта «не Linux» операционная система сможет запускать «неизмененные» программы как для Android, так и для Linux.

Одной из самых больших проблем при создании новой операционной системы, особенно такой, которая создается с нуля, как Fuchsia, является то, что люди по праву захотят запускать свои любимые приложения на этой ОС. В случае с Fuchsia, которая теоретически может служить преемником как Chrome OS, так и Android, люди, вероятно, захотят запускать приложения Android и Linux, наряду с нативными приложениями Fuchsia.

До сих пор предполагалось, что Fuchsia сможет достичь этого тем же способом, которым Chrome OS в настоящее время может запускать приложения Linux — запуская полный экземпляр Linux в виртуальной машине. Chrome OS даже планирует использовать эту же стратегию для возможности запускать приложения Android благодаря проекту под названием arcvm.

Однако у подхода с виртуальной машиной есть свои недостатки. Во-первых, управление файлами между «хостом» (например, Fuchsia) и «гостем» (Android) может быть сложным или неудобным. Кроме того, Fuchsia делает упор на безопасность, пытаясь по возможности изолировать программы друг от друга. Чтобы сохранить такой уровень изоляции с приложениями Linux, Fuchsia пришлось бы запускать более одной виртуальной машины, что могло бы замедлить работу.

Реклама — прокрутите вниз для получения дополнительной информации

На этой неделе было предложено альтернативное решение для запуска программ, предназначенных для Linux и Android, в Fuchsia. Вместо запуска самого Linux, Fuchsia получит систему под названием «Starnix», которая будет действовать как переводчик между инструкциями для ядра Linux и инструкциями для ядра Zircon в Fuchsia.

Site default logo image

По сути, программы Linux будут работать «как обычно», не подозревая, что они работают не в ОС на основе Linux. В то же время Starnix будет выполнять работу по обеспечению того, чтобы приложение могло функционировать в Fuchsia так же, как оно должно функционировать в Linux. Если вы хоть немного знакомы с работой Linux, полное предложение Starnix — это интересный материал для чтения, особенно их планы по поддержке Linux «как она говорит», что означает сохранение каждой особенности или неявного поведения.

Что более интересно для тех, кто проявляет обычный интерес к Fuchsia, так это то, как именно разработчики намерены использовать Starnix. В нескольких случаях предложение говорит об использовании Starnix для запуска кода из Android непосредственно в Fuchsia.

По мере того как мы расширяем вселенную программного обеспечения, которое мы хотим запускать на Fuchsia, мы сталкиваемся с программным обеспечением, которое мы хотим запускать на Fuchsia, но которое мы не можем перекомпилировать. Например, приложения Android содержат нативные модули кода, скомпилированные для Linux. Чтобы запускать это программное обеспечение на Fuchsia, нам нужно иметь возможность запускать бинарные файлы без их изменения.

Например, мы будем запускать некоторые низкоуровневые тестовые бинарные файлы из дерева исходного кода Android, а также бинарные файлы из Linux Test Project.

Из этого мы видим, что Google может намереваться обеспечить Fuchsia возможность *глубокой* поддержки приложений Android, без каких-либо исключений, например, для приложений, использующих Android NDK для написания на C или C++. Конечно, в долгосрочной перспективе Starnix следует использовать только как временную меру, чтобы сделать ОС Fuchsia от Google более универсальной, пока разработчики не портируют свои приложения на новую ОС. Практически в любой ситуации нативное приложение Fuchsia будет работать лучше, чем приложение Linux или Android, запущенное через Starnix.

Тем не менее, Starnix для Fuchsia находится только на этапе предложения, и предстоит проделать значительный объем работы, чтобы добиться чего-то похожего на надлежащую совместимость Android/Linux с Fuchsia/Zircon. Чтобы попытаться избежать подводных камней такого предприятия, Google изучает успехи и неудачи аналогичных проектов, таких как первоначальная подсистема Windows для Linux (WSL1). Однако вполне возможно, что это предложение и усилия потерпят неудачу, и Fuchsia вернется к использованию виртуальных машин для своих нужд Android/Linux.

Если добавление совместимости с Linux и Android в Fuchsia звучит интригующе, Google недавно открыл проект для участия сообщества с открытым исходным кодом.

Подробнее о Fuchsia: