Что не так с Sailfish?

Аватар пользователя Иван Помидор

В последнее время на афтершоке было множество восторженных статей про Sailfish OS, инфоповодом для которых выступила Почта России. Не разделяя восторженность этих статей сначала хотел ворваться с шашкой в комментарии, но потом понял, что написать придётся много и обстоятельно, поэтому решил в отдельную заметку оформить.

Немного обо мне. По образованию инженер, последние 17 лет занимаюсь разработкой коммерческих продуктов. Последние пять лет в связи с производственной необходимостью активно и глубоко копаюсь в внутренностях различных мобильных операционных систем. Много удалось покопаться в Android и iOs, но и во все остальные залазить приходилось.

Итак, оформлю статью как набор тезисов, которые буду раскрывать. А в конце напишу, что за на самом деле надо делать, а не то, что все пытаются делать.

Sailfish не Российская ОС

Очень странно видеть щенячий восторг по поводу того как круто у нас всё сделали. Про круто я напишу ниже, а вот про то, что "у нас" это совсем не правда. Проект был куплен (да и был ли куплен до конца не ясно, там всё мутно) с потрохами, а в России делают локализацию, адаптацию и много маркетинга. Привносят ли что-либо в развитие ОС кардинального – не уверен, но думаю, что нет. Ибо делать это очень дорого, специалистов мало и они все уже разобраны по более вкусным проектам.

Sailfish не полноценная ОС

У термина "полноценная ОС" может быть множество толкований (для кого-то и сто строчек на asm это уже ОС), поэтому я опишу своё видение почему Sailfish не ОС. Есть ключевые компоненты любой современной ОС. Условно можно их разделить: ядро, слой доступа к оборудованию (HAL – hardware abstraction layer), инфраструктура выполнения, пользовательские приложения. Так вот у всех операционных систем самое важное и самое сложное это именно ядро и HAL.  Всё остальное либо уже давно написано и есть в open source (см. проект www.gnu.org), либо очевидно и не сложно для воспроизведения.

Так вот у Sailfish OS нет своего полноценного ядра и своего HAL. Про HAL я напишу ниже, а про ядро раскрою. Тут есть нюанс у Sailfish ядро есть, но оно загружается после того как было загружено ядро Android. Да, да, вы не ослышались для того, чтобы заработал Sailfish на устройстве, ему нужно оригинальное ядро Android для этого устройства.

У Sailfish нет своего HAL

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

Так вот, в Sailfish OS слой HAL используется опять же от оригинального Android. То есть у Sailfish нет своего слоя HAL. А это, между прочим, с точки зрения обеспечения безопасности ОС один из самых важных компонент системы. И если, потенциально, где-то в Android устройствах есть закладки, то они будут располагаться именно в ядре и слое HAL.

Sailfish не open source система

Как я писал выше, в Sailfish используются два компонента (ядро и HAL), исходных кодов которых у самой Sailfish нет. Кроме этого, движок, обеспечивающий выполнение Android приложений, написан компанией Myriad и называется Alien Dalvik. Исходные коды, естественно, закрыты полностью. Множество других компонент тоже имеют закрытые исходники. Да на самом деле если сравнивать с Android, то в Sailfish гораздо больше объём закрытых исходником чем в том же aosp.

Вот хорошая картинка с официального сайта Sailfish, показывающая компоненты с закрытым исходным кодом:

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

Слабое железо

Первый шок при знакомстве с Sailfish получаешь когда видишь характеристики телефонов, на которых она работает. Это аппараты с 3-4 летней давности, не ясно откуда они такие устаревшие компоненты в 2017 году умудряются покупать. Но вот когда осознаешь то, что я написал выше, то становится ясно почему оно так.

На самом деле нет ни одного телефона, который был бы сделан специально для Sailfish. Все телефоны, на которых работает Sailfish это были изначально модели, которые проектировались, и производитились для Android. Но потом в них ещё и Sailfish поставили, сохранив весь слой взаимодействия с оборудованием от оригинального Android.

Сертификат у Sailfish ничего не значит

Из предыдущих пунктов можно сделать очевидный вывод, что никакую серьёзную сертификацию Sailfish пройти не мог. Так как для любого более-менее серьёзного допуска нужно предоставлять в сертификационную лабораторию исходных коды абсолютно всех компонент. Без этого сертификат не получить.

У Sailfish два сертификата АК1 и КС1. Очень сложно найти информацию, что же значат эти сертификаты, но на сколько я понимаю первый это про защиту от несанкционированного доступа (условно пароль можно поставить на устройство), а второй это про поддержку всяких крипто-протоколов. Причём оба сертификата базового уровня, при сертификации на который проверяется теоретическое соответствие. То есть, эти сертификаты не гарантируют отсутствие каких-либо закладок или уязвимостей ОС, за это отвечают сертификаты класса НДВ1-4

 

Хорошо, скажет пытливый читатель, закрытые компоненты откроют, сертификаты получат, недостающее напишут. Зато у sailfish отличная архитектура!  Спешу расстроить, с архитектурой у них всё ещё хуже.

Нет изоляции приложений

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

Так вот в Sailfish никакой изоляции для пользовательских программ не предусмотрено от слова совсем. Все программы равнозначны и имеют практически полный и мало чем ограниченный доступ ко всему.

Нет разграничения прав

Тут всё просто, мы все уже привыкли в мобильных устройствах, что каждое пользовательское приложение запрашивает определённые разрешения на доступ к оборудованию и ресурсам. В каких-то системах это происходит при установке, в каких-то при первом доступе, во всяком случае у нас есть выбор дать или не дать доступ, и есть гарантия со стороны системы, что приложение не будет иметь доступ туда, куда я не разрешал.

В Sailfish OS всем пользовательским приложениям доступно всё, никаких ограничений. Есть небольшая разница между системными приложениями и пользовательскими, но она косметическая. И нет никакой возможности ограничить в чём-либо приложения.

Ребята из Sailfish проблему то эту понимают и даже планируют внедрить мандатную систему прав SELinux, но вот только планируют они это уже минимум два года, а реализации как-то не видно. Да и не поможет особо SELinux в разграничении прав.

Нет единого API

Если вы дочитали до этого абзаца, то должны удивляться как же так получилось, что ключевых систем обеспечения безопасности нет. Причина простая – отсутствие единого API (программный интерфейс приложения) для доступа к функциям системы и к оборудованию. Фактически приложения представляют собой обычные Linux исполняемые файлы, написанные на C++ (можно ещё и на python писать, но это не основной способ), которые через множество различных (но при этом стандартных для мира *nix) интерфейсов получают доступ ко всему.

 

Можно ещё долго топтать Sailfish за всякие более мелкие недостатки, но даже этих, как мне кажется, вполне достаточно для того, чтобы не воспринимать эту систему в сегодня серьёз. Потом - может быть, но не сейчас. Фактически, на текущем этапе развития, Sailfish представляет собой графическую надстройку над андроидом.

Да, большинство проблем в системе решаемо, но на решение этих проблем надо потратить годы упорной работы большой команды профессионалов. А текущее положение Sailfish эквивалентно версии 1.0 Android.

 

Всё плохо, что же делать?

Если рассматривать проблематику истинно российских мобильных устройств, то большинство людей рассуждает следующим образом: «Google и Apple плохие, они встраивают в свои системы следилки, закладки и т.д.». Но на самом деле всё не так. То есть, утверждение про Google и Apple, я не оспариваю, но вот тот же Google, в плоскости мобильных операционных систем, абсолютно белый и пушистый и принёс кучу пользы миру в целом. Исходные тексты Андроида доступны полностью (см. проект aosp), и для серии устройств Nexus можно собрать из исходников эталонные образы операционной системы, которые будут отлично работать на устройстве. При этом у вас будут исходники почти все, кроме HAL уровня. Можно как угодно модифицировать андроид и не платить ни копейку Гуглу. Заплатить придётся в тот момент, когда вы заходите использовать в своём андроиде магазин приложений Google.Play, но вы его можете и не использовать.

А на самом деле, вот кто главные злодеи мобильного мира, так это производители чипов. Сейчас их три основных: Qualcomm (США), MediaTek (Китай) и Samsung (Корея). Есть ряд ещё более мелких, но их объёмы на уровне шума.

Почему же они злодеи?

Проблема в том, что для того, чтобы на любом мобильном чипе запустить какую-либо операционную систему, не важно какую, необходимо уметь программно взаимодействовать с самим чипом и с тем оборудованием, что он предоставляет и которое у нему присоединено. Для этого взаимодействия производитель чипа (обращаю внимание, именно производитель чипа, а не производитель ОС) разрабатывает тот самый уровень HAL, который я упоминал выше. И тут начинается самое весёлое – производитель чипов почти никому не предоставляет исходные коды этого HAL. Допущены до кода только избранные вендоры, которые производят по нескольку миллионов устройств в год. Всем остальным вендорам HAL поставляется в бинарном виде. И вот что за закладки вендор добавил в эти бинарные файлы никому неизвестно. А эти бинарные модули, между прочим, работают на самом низком уровне операционной системы и имеют доступ ко всему.

Есть и другие проблемы с чипами, но всех их описывать – очень большая статья получится.

Куда надо двигаться?

Вот чего по-настоящему не хватает для разработки своего мобильного устройства так это независимого производителя чипов, который бы открыл в публичный доступ всю техническую и программную документацию.

То есть, России надо не российскую мобильную операционную систему разрабатывать, а свой мобильный чип, открыв при этом в свободный и ничем не ограниченный доступ информацию по нему. И я вас уверяю, что очень быстро, и даже без какой-либо поддержки государства, в течении полугода появятся полностью свои операционные системы. Да, они будут собраны на базе AOSP, Tizen или того же Sailfish, но зато все слои операционной системы будут подконтрольны и их можно будет по-настоящему сертифицировать. И их можно будет по настоящему развивать в нужную России сторону.

Авторство: 
Авторская работа / переводика

Комментарии

Аватар пользователя гордей
гордей(9 лет 3 недели)

Спасибо за разбор ,а то я уже хотел заказать. Теперь не стану.

Аватар пользователя cr4zyr0m
cr4zyr0m(8 лет 4 месяца)

Реально качественно объяснил, если даже 30% правда, то фтопку sailfish.

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Толково. 

Была у меня как-то Jolla. С точки зрения пользователя смысла в ней, как в альтернативе андроида не оказалось, ибо родного софта нет (а что есть, ужасный), оставалось гонять андроидовский.

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя Системник

Небыло у тебя Jolla. Ты врёшь.

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Была. Врёшь ты.

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя Системник

Нет, небыло.

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Была, точно говорю.

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя Системник
Системник(6 лет 1 месяц)

ему нуж­но ори­гиналь­ное яд­ро Android

Нет такого ядра в природе. Статья - передёрг дилетанта для домохозяек. Обычный эмоциональный околотехнический бред.

Видимо, наши нормально ввалили в проект и гуглообезъяны кинулись защищать свой "рынок".

Аватар пользователя kue
kue(6 лет 10 месяцев)

Может имелось ввиду надстройка над надстройкой? Сейчас это модно - дериватив на деривативе )

Аватар пользователя Системник

Нет. Они используют ядро с драйверами для мобильной платформы. Ядро Linux.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Здесь. Лень погуглить?

Аватар пользователя Системник

За название "андроид-ядро" их Линусу ещё предстоит отыметь.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Это уже другой вопрос. А терминология уже сложилась.

Аватар пользователя Системник

Ты терминоложь как угодно. Твоё право вилку самолётом называть, никто не спорит.

Только состав кода от этого не меняется. Sailfish использует ядро Linux.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Ветка Андроида своя. Так что код отличается.

Аватар пользователя Системник

laugh

Это не твоё, не надо спорить.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Не, не буду спорить ))

Аватар пользователя Gilad Pellaeon
Gilad Pellaeon(5 лет 8 месяцев)

В этом вопросе я дуб дубом, но тоже удивился. Андроид вроде на ядре Линукса. Автор имеет в виду, что Sailfish это просто перепиленный Андроид или что?

Аватар пользователя saenara
saenara(4 года 5 месяцев)

Автор имеет логику и факты. Причём имеет их нагло, в виду у всех.

Комментарий администрации:  
*** Уличен в розжиге по нацпризнаку ***
Аватар пользователя Gilad Pellaeon
Gilad Pellaeon(5 лет 8 месяцев)

laugh

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Если андроид работает на модифицированном ядре линукса, можно ли это считать ядром андроида?

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя Системник

Нет. Читай GPL.

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Значит, автору можно просто исправить термин, но суть не изменится? Увидел. В английской Вики по другому написано.

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя Системник

Суть чего, бот? Эмоциональной статьи, обсирающей проект? Меняется. А вот твоё задание по обсиру - срывается.

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Не кидайся на людей, а то сам говном прослывёшь.

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя Системник

Слив защитан.

Так ты сюда пришёл подпукнуть новому вбросу? Так и скажи, нечего на личности переходить.

Аватар пользователя Нехороший
Нехороший(4 года 11 месяцев)

Лучше сам статью напиши, растолкуй всё как надо. Говном в комментах кидаться много ума не надо. А сливы у себя в сортире считай.

Комментарий администрации:  
*** Отключен (розжиг, провокатор, горы инфомусора) ***
Аватар пользователя 13302
13302(5 лет 16 часов)

Да, большая просьба, напишите, пожалуйста, отдельный пост, я добавлю его в раздел "Разоблачение набросов" и добавлю на него ссылку в этом посте

Аватар пользователя sendel
sendel(3 года 7 месяцев)

абсолютно согласен, даже зарегистрировался чтобы "разоблачить":)

Аватар пользователя msin
msin(5 лет 7 месяцев)

Знатно потоптались smiley

Спасибо, а то у меня тоже был какой-то энтузиазм насчет этой ОС...

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Дельно. Даже более, чем.

Спасибо! 

Аватар пользователя muxa
muxa(8 лет 8 месяцев)

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

а эта штука почище фауста гёте (с) будет.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

UEFI сложно назвать новостью. Или я чего-то пропустил?

Аватар пользователя Брянский
Брянский(7 лет 5 месяцев)

Муха - во первых ваше недавно тянется еще с 2007 года, еще с платформ на Socket 771...

И UEFI не базе Linux сделан, а на базе FreeBSD, и BIOS это вообще теперь приложение UEFI, эмуляция так сказать.

А насчет того что якобы Windows работает в виртуальной машине UEFI вы соврали - при типовой загрузке ОС гипервизор UEFI передает управление загрузчику ОС. И дальше Windows уже напрямую работает с железом (за исключение легаси-функций типа последовательных и параллельных портов и прочей архаики, которые в UEFI эмулируются для совместимости с MS DOS 6.1)

Хотя да, есть вариант установки ОС c использованием загрузчика UEFI, но так ставить ОС не надо - хрен ее потом крякнешь по человечески 

А если копнуть глубже, то ноги UEFI растут из мэйнфреймов IBM, на которых еще в 80-х были аппаратные разделы (partition) куда можно было ткнуть разные ОС

Комментарий администрации:  
*** отключен (неонацисткая пропаганда) ***
Аватар пользователя 13302
13302(5 лет 16 часов)

автор зарегался для этого наброса.

в бан, в общем

Аватар пользователя Ярик FantomI
Ярик FantomI(5 лет 8 месяцев)

Все такие умные! Вот поясните мне неучу, как Сбербанк получает доступ ко всем моим контактам при регистрации на мобил.банк?

Аватар пользователя Ярик FantomI
Ярик FantomI(5 лет 8 месяцев)


 

Аватар пользователя Системник

И ваш уровень понятен, если эта хрень - дельная.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Для общего развития - вполне. Может, хоть покупать не побегут.

Аватар пользователя Системник

Плохо, что не побегут. Т.к. статья - фэйк.

Аватар пользователя SergePerm
SergePerm(8 лет 7 месяцев)

Напишите опровержение, почитаем. Что в комментах-то сидеть.

Аватар пользователя Системник

Реальное положение дел доказательств не требует.

Аватар пользователя Jenioshi
Jenioshi(3 года 11 месяцев)

Если в статье есть ложные утверждения, то это требует опровержения. Ибо не специалисты верят написанному.

 

Аватар пользователя Системник

Неспециалистам при принятии решения надо спрашивать у специалистов, а не руководствоваться такими статейками.

Когда надо вырезать аппендицит, то, почему-то, никто к бабе-знахарке не бежит. Все идут к специалистам. А здесь почему не так?

Аватар пользователя Комрад Помидоров

Хоть ник у вас может и предполагает знания, но ни одного довода вы не привили, просто обосрать статью. Автор все расписал по полочкам и выложил как надо. И более того обозначил куда и как надо идти что бы добиться успеха.

Напишите свои доводы и это будет уже дискуссия, предметная.

 

Аватар пользователя Системник

Клон? smiley

Ну да ладно. Если про "полочки", то почитай выше.

Аватар пользователя Jenioshi
Jenioshi(3 года 11 месяцев)

Вы пока что, не высказали даже собственной точки зрения, не говоря уже об аргументах в её поддержку.

Даже пример с аппендицитом у Вас неудачный. Есть немалое количество людей, которые врачей боятся больше, чем бабок-знахарок и обращаются именно к последним.

 

Аватар пользователя Системник

laugh И после этого остаются неживыми.

Аватар пользователя Jenioshi
Jenioshi(3 года 11 месяцев)

Скорее, становятся неживыми. Да.

Но веруют до последнего...

Аватар пользователя Системник
Системник(6 лет 1 месяц)

Скорее, становятся неживыми.

Это огрубление стёба. smiley

Но веруют до последнего...

Собственно, против этого я тут и воюю.

Страницы