Несмотря на то, что новостей про ОС Fuchsia немного, проект продолжает развиваться, и очень активно. Доказательство — сообщение от разработчиков о своих планах реализовать механизм для запуска немодифицированных программ, которые собраны для Linux.
Основывается этот механизм на специальной «прослойке», которая получила название starnix. Именно она обеспечивает совместимость с ABI Linux.
Системные интерфейсы ядра Linux реализуются в обработчике, который запускается в виде процесса для операционной системы Fuchsia. Процесс работает в пространстве пользователя, транслируя запросы Linux-программ в обращения к соответствующим подсистемам ОС. При разработке этого проекта многие подсистемы придется модифицировать, чтобы пользователям были доступны все необходимые системные интерфейсы.
Архитектура «прослойки», по словам разработчиков, сильно напоминает аналогичную подсистему для Windows, которая называется Windows Subsystem for Linux. Она тоже используется для трансляции системных вызовов Linux в системные вызовы Windows.
Код прослойки будет написан на Rust для того, чтобы снизить проблемы с уязвимостями. Разработчики считают, что этот язык программирования поможет снизить до минимума опасность появления уязвимостей, которые могут эксплуатироваться для поднятия привилегий Linux-процесса до самого процесса starnix. Для этого будут также использоваться штатные механизмы защиты Fuchsia.
Пример: при обращении к файловой системе, сетевому стеку или графической подсистеме starnix будет транслировать запросы, преобразуя Linux ABI в Fuchsia System ABI. Это, в свою очередь, позволит использовать те же ограничения, которые используются для обычных процессов в Fuchsia. Также будут использоваться и стандартные для Linux механизмы контроля полномочий.
Стоит отметить, что возможность запуска приложений Linux под Fuchsia разработчики ОС развивали и ранее. Но они использовали реализацию, которая похожа на то, что применяется в Chrome OS. В целом, понять их можно, ведь Fuchsia является своеобразным pet-проектом Google. Ранее для совместимости с Linux предлагалось использовать библиотеку Machina, запускающую Linux-софт в специальной виртуальной машине, которая формируется посредством гипервизора на базе ядра Zircon и спецификаций VirtIO.
Насколько можно судить, виртуализация будет использоваться в Fuchsia параллельно, поскольку реализовать системный интерфейс Linux не так-то и просто. Скорее всего виртуализация будет использоваться вместе с «прослойкой». В этом случае ядро Linux будет работать в отдельной виртуальной машине, что неплохо, но требует ресурсов. Именно по причине ресурсоемкости команда Microsoft, которая занималась Windows Subsystem for Linux, отказалась от транслятора и использовала родное ядро Linux в WSL 2.
К слову, разработчики Fuchsia тоже не зря свой хлеб едят — в ОС уже предоставляется уровень совместимости POSIX Lite, работающий поверх Fuchsia System ABI. Все это позволяет обеспечить запуск ряда Linux-программ, но при этом нужно перекомпилировать приложения или даже модифицировать исходные тексты. Одна из проблем POSIX Lite — неполная реализация всех возможностей POSIX.
Главная проблема здесь — отсутствие поддержки вызовов для изменения глобального состояния процессов, включая kill. Соответственно, если есть расхождение с концепциями обеспечения безопасности в Fuchsia, то изменение глобального состояния запрещается. Тем не менее, использование lite-версии POSIX оправдывает себя, если требуется портировать приложения с открытым исходным кодом. Правда, возникает проблема с запуском программ, у которых нет доступа к коду.
Что касается Fuchsia, то это универсальная ОС: где именно она будет использоваться, пока неизвестно. Тем не менее, она совместима практически с любыми типами устройств, включая рабочие станции, смартфоны, IoT-устройства и потребительскую технику. Разработка ведется с учетом опыта создания Android-платформы и недостатков в области масштабирования и обеспечения безопасности.
Основа новой операционной системы — микроядро Zircon, которое, в свою очередь, базируется на наработках проекта LK.
Проект относительно активно развивался несколько лет, причем в сети публиковались предположения о том, что Google разрабатывает ее в качестве альтернативы Android. Все это время ОС продолжала развиваться. Например, в 2017 году сообщалось, что ОС получила новый пользовательский интерфейс, возможности командной строки и еще несколько возможностей. В 2018 году Google выложила новую версию своей ОС, которую уже можно было протестировать.
У Fuchsia есть собственный графический интерфейс, который написан на Dart с использованием фреймворка flutter.
Кроме того, проект развивает:
- фреймворк для построения интерфейсов пользователя Peridot;
- пакетный менеджер Fargo;
- стандартную библиотеку libc;
- систему рендеринга Escher;
- Vulkan-драйвер Magma;
- композитный менеджер Scenic;
- файловые системы MinFS, MemFS, ThinFS (FAT на языке Go) и Blobfs
- менеджер разделов FVM.
Для разработки приложений предоставляется поддержка языков C/C++, Dart, в системных компонентах также допускается использование Rust, в сетевом стеке — Go, а в системе сборки языка — Python.
Для загрузки используется системный менеджер, который работает с appmgr для создания начального программного окружения. Для формирования загрузочного окружения и пользовательского окружения используются sysmgr и basemgr соответственно.
Для защиты системы применяется «песочница», которая не дает доступ новым процессам к объектам ядра, кроме того, под них не выделяется память и не запускается код. Обеспечением доступа к ресурсам занимается система пространств имен, определяющая доступные полномочия. В «песочнице» используется фреймворк, обеспечивающий создание специализированных компонентов, способных взаимодействовать с другими компонентами через IPC.
Alexey2005
Разрабочики Fuchsia учли этот фундаментальный архитектурный изъян, или сейчас у разработчиков мобильных ОС невозможность обновиться проблемой уже не считается и никто даже не задумывается над её исправлением?
vmkazakoff
Уже очень давно патчи безопасности выходят отдельно. Некоторые производители из-за модификаций андроида не смогли такое сделать, но вроде все больше и больше таких кто смог, и то это именно кривизна отдельных производителей. Моему телефону 2+ года с момента выпуска и недавно я получил обновление по воздуху без проблем. Я молчу уж про секьюрити патчи которые мне вообще маркет устанавливает.
Ну и про "замену устройства" вы верно пошутили? У сына для игрушек телефон вообще 12 года выпуска и на нем кастомная прошивка с последними патчами безопасности. Хотя это требует некоторых умений — инглиш (ну или вытерпеть гуглтранслейт) и способность выполнить инструкцию длинной в 5-7 строк.
vmkazakoff
Upd: про систему обновлений вот тут есть — https://habr.com/post/533468/
//Что-то с комментами, добавить не смог (
DMGarikk
тут еще одно условие нужно (даже два)
1) чтобы загрузчик был разблокирован
2) чтобы ктото сделал для него свежую прошивку
у меня валяется копеечный планшет irbis tx22, посоветуйте мне как на него свежую прошивку с патчами поставить? да хоть даже последнюю версию андройда 4.4 обновить до последней, который для него родной
vmkazakoff
Если пройдете по ссылке, узнаете почему на него вы ничего не поставите. А заодно узнаете с какой версии это вылечено. Но если бы девайс был нормальный (про этот я даже год выпуска не нагуглил, только отзывы "не брать даже при угрозе жизни") то был бы весьма ненулевой шанс до сих пор имеет нормальные обновления. На мой Самсунг ноут 2 (2012 год выпуска!) полно.
gecube
Звучит смешно и некорректно. Кладут болт производители на андроиды. Проходили неоднократно. Разве что оригинальные устройства от гугла брать ) но они по спецификациям и по х-кам далеко не самый топ. Так и живем
vmkazakoff
Не обязательно от Гугла. Достаточно от нормальных производителей и со средними характеристиками, которые могут быть интересны сообществу. Тогда и прошивки на такие аппараты будут.
Ещё раз, на Самсунг Note 2 (2012 год выпуска!) на днях прилетело обновление по воздуху (!!!). Конечно это не официальная прошивка, но мне вообще никогда переделки андроида не нравились.
gecube
В этом и проблема. Зачем Вы вообще неофициальную прошивку упоминаете? Чтобы разговор был корректным надо говорить о поддержке от производителя, т.е. самсунга. А то, знаете, я и сам в теории могу прошивку перебрать, но не буду этим заниматься по вполне понятным причинам.
vmkazakoff
Наверное потому что отвечал изначально на фразу "Главная проблема с безопасностью Android заключается в том, что обновить ОС можно только путём замены устройства". И дальше ещё комментарий про отсутствие прошивок к определенному девайсу (в простонародье такие называют ашанфонами). Но вам же не обязательно было читать ветку, чтобы добавить комментарий ))
DMGarikk
а, ну тоесть мне надо гуглить каждую железку чтобы «ага, на эту я смогу через 10 лет обновления ставить, БЕРУ!»
Этот планшет меня полностью устраивал как книгочиталка (он дешевле эл-книг на чернилах и гораздо круче по функционалу), я бы его дальше бы юзал если бы у него порт зарядки не сломался
==
вобщем мы возвращаемся к факту что не на ВСЕ андройд девайсы есть прошивки, а только на многие топовые и некоторые дешевые, а на совсем дешевых китайцев нет вообще ничего
вон та-же нокиа-6 долгое время имела залоченный загрузчик и «в какой версии это починено» было неприменимо
vmkazakoff
Ну да. Выбор при покупке это дело такое — и сложное и не надёжное. Завтра разработчик разорится со скандалом и никто не будет ничего для этих аппаратов делать…
Просто ваша фраза "Главная проблема с безопасностью Android" на самом деле звучит как "главная проблема что некоторые модели некоторых производителей..." и.к. в самом андроид уже несколько лет как нормальные апдейты независимые. Но если производитель вшил что-то на базе андроида, но кривое… Тут уж медицина бессильна )
gecube
ну, правильно — проще покупать apple и не ломать голову 8-) у них обновления всегда были для всех моделей. Вопрос только в том — не переставал ли быть старый телефон с новой операционной системой юзабельным… Прям принцип take it or leave.
вроде как да, должны были научиться, но можно привести такой довод, что я до сих пор сидел бы на OnePlus X (кажется, модель 15-го года?) — в целом как звонилка он полностью адекватен, но свежих прошивок под него и security update тоже. Не надо думать, что пользователи все поголовно сидят на самых свежих моделях телефонов — это раз. Два — Вы же сами понимаете, что кастомные прошивки СНИЖАЮТ безопасность и не всегда приемлемы (т.к. это взлом загрузчика + наверняка рут, а после этого всякие СберБанк Онлайны перестают работать, и поделом).
vmkazakoff
У меня у родителей лежит стопка старых айпадов, на которых нет обновлений уже много лет, так мало того что обновлений безопасности нет, так они так сделали аппстор, что все приложения (даже элементарные калькуляторы) требуют новую версию системы и не устанавливаются. Так что нет, пасиб, но айось это та ещё альтернатива.
На ваш девайс (OnePlus X) точно должна быть Linage OS у которой все хорошо с сообществом, безопасностью и апдейтами. Root, разумеется, совершенно не обязательное дополнение к кастомным прошивкам, как и держать загрузчик разблокированным. Так что можно без root жить с отличной прошивкой (часто лучше оригинальной, хотя onePlus в этом плане и сами молодцы), а наши руки прямые и знаешь что делаешь, то можно рут скрыть от Гугл Пэй и сбербанка (я так год жил, коллега нужен был рут для рабочих задач).
gecube
Lineage неплох. Это же развитие цианогена, вроде как?
Но тем не менее — это не панацея, по описанным выше причинам. Ну, и конкретно по Onyx:
WARNING видно? Все как обычно — спасение утопающих — дело рук самих утопающих
Ну, и все как обычно — разблокировка загрузчика с соответствующими последствиями.
vmkazakoff
Цианогена вроде, да. Хотя у ванплюсов свой оксиджен хорош.
Ещё раз — я комментировал изначально посыл что есть проблема у андроидов. Мой посыл: (а) была давно и (б) сейчас если и есть то не у вообще андроидов, а у некоторых моделей некоторых производителей.
Производители точно не готовы были поддерживать телефоны по 5 лет. Сейчас, когда патч безопасности в систему можно добавить почти на автомате (он отделен от ядра начиная с 8 андроида) все больше телефонов будут получать длительную поддержку.
По сути линэйдж как раз показателен — одна система, одно ядро, но при сборке почти на автомате добавляется "вендор специфик" слой. Т.е. пока развивается сам линейдж будут апдейты у почти всех моделей где его можно поставить.
VEG
Видимо, зависит от производителя и модели. У меня Samsung Galaxy S9+. Апдейты прилетают каждый месяц. Телефону в марте 3 года будет.
F0iL
Но там все равно все упирается в вендора.
proninyaroslav
Так в гугле уже давно анонсировали Project Mainline, который разделяет андроид на несколько независимых пакетов, которые можно доставлять и обновлять независимо от желания вендора.
DMGarikk
только вендор должен это поддерживать
(взглянул на свой Xiaomi mi9t-pro с ru прошивкой)
последнее обновление безопасности 2020-09-01
современный телефон, 10 андройд, и где ваше «независимо от желания вендора»?
я вот не хочу менять прошивки на eu, ставить китайские, самостоятельно их туда заливать… это конечно всё можно и доступно на xiaomi в любом количестве,
я хочу иметь телефон который штатно через OTA будет сам себя поддерживать в актуальном состоянии, а не раз в полгода-год, вместе с крупным релизом ОС (уже год обещают 11 андройд завезти)
==
упоминал выше нокиа-6… там несмотря на залоченный загрузчик, апдейты безопасности каждый месяц-два выходили, им плюс за это
gecube
да я думаю, что помимо обновлений самой ОС, должны доставляться обновления радио, каких-нибудь бинарных блобов, что точно не будет на стороне гугла ((((
proninyaroslav
А фуксия, по всей видимости, будет появляться на старых устройства по взмаху волшебной палочки)? Само собой, для того чтобы Project Mainline работал, нужные какие-либо начальные действия со стороны вендора, но в дальнейшем, даже если вендор забросит устройство, останется возможность для обновлений со стороны гугла напрямую.
DMGarikk
а кто сказал что она там вообще будет появляться? даже если гугл (что врятли) сделает возможность ставить фуксию на старые (выпущенные до её выхода) устройства, то ниодин вендор в здравом уме не согласится так делать из-за проблем с поддержкой
p.s. вангую что фуксия выйдет лет через 5… но чую с еще большей вероятностью она будет называться Android 20 и потеряет часть своей самобытности
bm13kk
Вангую, что гугл поймет что фукция все пилится и пилится но не догоняет андроид по фичам. Гугл как всегда со своим нетерпением прикроет проект как отдельный. И фуксию по кусочкам будут переносить в сам андроид и хром.
Так же, как ФФ поступил с серво и винда с виндой зеро и Х.
beskaravaev
Не знаю как с сяоми и прочими китайцами, но на samsung galaxy A8 (телефон начала 18 года) до сих пор регулярно прилетают обновления безопасности, но сам андроид остановился вроде на 9 версии.