ОС Fuchsia работает над поддержкой запуска немодифицированных программ Linux

Разработчики Google выпущен несколько дней назад план реализации механизма для запуска немодифицированных программ, скомпилированных для Linux на операционная система Фуксия.

Чтобы запускать программы Linux в пользовательском пространстве, планируется предоставить слой "starnix" для поддержки Linux ABI.. На развитом уровне системные интерфейсы ядра Linux реализованы в драйвере, который запускается как процесс для операционной системы Fuchsia, который работает в пространстве пользователя и преобразует запросы программ Linux в вызовы соответствующих подсистем Fuchsia.

Замечено, чтоe во время разработки проекта многие подсистемы Fuchsia придется модифицировать. для реализации всех системных интерфейсов, доступных в Linux. Архитектура starnix во многом такая же, как у подсистемы Windows для Linux, которая использует Windows для преобразования системных вызовов Linux в системные вызовы Windows.

Планируется реализовать код starnix в Rust для минимизации возможных векторов уязвимостей.s, которые потенциально могут быть использованы для повышения привилегий процесса Linux до процесса starnix.

Для обеспечения безопасности в Starnix по возможности будут использоваться стандартные механизмы защиты Fuchsia.

Например, при доступе к системным службам, таким как файловая система, сетевой стек или графическая подсистема, starnix будет только транслировать запросы, конвертируя Linux ABI в ABI системы Fuchsia, допуская те же ограничения, что и для общих процессов Fuchsia.

Это также реализует специфичные для Linux механизмы авторизации, например, определение ситуаций, в которых один процесс Linux имеет право завершить другой.

Разработчики Fuchsia разработали поддержку для запуска приложений Linux в прошлом, но они экспериментировали с реализацией, которая работает по аналогии с тем, как запуск приложений Linux организован в Chrome OS.

Для совместимости с Linux Fuchsia предложила библиотеку Machina., что позволило программам Linux запускаться на специальной изолированной виртуальной машине, сформированной с использованием гипервизора на основе ядра Zircon и спецификаций Virtio.

Не исключено использование виртуализации, поскольку полная реализация интерфейса системы Linux - нетривиальная задача.

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

В какой-то момент Microsoft начала разрабатывать свой уровень совместимости с Linux с помощью переводчика, но в конечном итоге перешла на использование собственного ядра Linux в подсистеме Windows для Linux 2.

Кроме того, Fuchsia уже предоставляет уровень совместимости с POSIX Lite который работает поверх Fuchsia System ABI. POSIX Lite позволяет запускать некоторые программы Linux, но требует перекомпиляции кода приложения и, в некоторых случаях, изменения исходного кода.

Одна из проблем с POSIX Lite это неполная реализация всех функций POSIX, включая вызовы для изменения глобального состояния процессов (например, функцию уничтожения), которые противоречат концепциям безопасности в Fuchsia, запрещающим изменение глобального состояния процессов. Выражать.

Использование POSIX Lite оправдано при портировании открытых приложений.s, но не решает проблем с запуском программ, для которых нет доступа к коду (например, невозможно добиться совместимости с Android-приложениями, содержащими скомпилированные нативные вставки).

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

Система основана на микроядре Zircon, основанном на разработках проекта LK, расширенном для использования в различных классах устройств, включая смартфоны и персональные компьютеры.

источник: https://fuchsia.googlesource.com


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.