Sailfish OS — платная операционная система на базе Linux , основанная на свободном программном обеспечении и проектах с открытым исходным кодом , таких как Mer , а также включающая закрытый исходный код пользовательского интерфейса . Проект разрабатывается финской компанией Jolla .
Впервые ОС поставлялась с оригинальным телефоном Jolla Phone в 2013 году; хотя ее продажа прекратилась в 2016 году, она поставлялась с обновлениями программного обеспечения до конца 2020 года. Она также поставлялась с планшетом Jolla Tablet в 2015 году [5] и от других поставщиков, лицензирующих ОС. [6] ОС портируется энтузиастами сообщества на сторонние мобильные устройства, включая смартфоны [7] и планшетные компьютеры . [8] Sailfish OS можно использовать для многих типов устройств.
ОС является развитым продолжением ОС Linux MeeGo , ранее разработанной альянсом Nokia и Intel , которая сама опирается на объединенные Maemo и Moblin . Наследие MeeGo содержится в ядре Mer примерно в 80% его кода; таким образом, название Mer расширяется до ME ego R econstructed. Эта база расширена Jolla с помощью настраиваемого пользовательского интерфейса и приложений по умолчанию. Jolla и MERproject.org следуют меритократической системе , чтобы избежать ошибок, которые привели к неожиданному прекращению проекта MeeGo. [9]
Основные элементы Sailfish OS 2.0 включают в себя:
Sailfish OS и комплект разработки программного обеспечения Sailfish (SDK) основаны на ядре Linux и Mer . [10] [11] [12] Sailfish OS включает многозадачную графическую оболочку под названием «Lipstick», созданную с помощью Qt компанией Jolla поверх протокола сервера отображения Wayland . [13] Jolla использует бесплатные и открытые драйверы графических устройств , но библиотека Hybris позволяет использовать проприетарные драйверы для Android . [14] [15] Jolla неопределенно заявила в 2015 году, что их цель для Sailfish — в конечном итоге стать открытым исходным кодом, [2] [ нужно обновление? ] но некоторые ключевые компоненты Sailfish OS были лицензированы Jolla как проприетарные с самого начала и с тех пор (начиная с Sailfish OS 4.5.0.24 в сентябре 2023 года). [16]
Sailfish OS может запускать некоторые приложения Android через фирменный уровень совместимости. [17]
Sailfish ориентирован на мобильные устройства. [ требуется ссылка ] Поскольку Sailfish унаследовал около 80% кода MeeGo, его можно использовать как полноценную ОС Linux общего назначения на таких устройствах, как информационно-развлекательные системы для транспортных средств (IVI), навигация, смарт-телевизоры, настольные компьютеры и ноутбуки, яхты, автомобили, электронная коммерция, бытовая техника, контрольно-измерительное оборудование, интеллектуальное строительное оборудование и т. д. Для сравнения см. примеры использования оригинальной MeeGo, [ требуется ссылка ] и раздел «Устройства» для устройств, работающих под управлением ОС Sailfish .
Sailfish OS SDK был анонсирован на конференции Slush в Хельсинки в 2012 году, а альфа-версия была опубликована в феврале 2013 года. [18] SDK, инструкции по установке и кодированию доступны для бесплатной загрузки с веб-сайта Sailfish OS , несмотря на то, что общая лицензия не является открытой. [1]
Sailfish SDK использует Qt с VirtualBox для разработки, компиляции и эмуляции , в отличие от метода моделирования . [ требуется ссылка ] Этот метод позволяет компилировать на Sailfish OS и полностью тестировать разработанное программное обеспечение на виртуальной машине , эмулируя — а не имитируя — всю Sailfish OS . [ требуется ссылка ] Это также отделяет действия по разработке и побочные эффекты от всего остального, работающего на хост-компьютере, оставляя его нетронутым разработками и тестами. [19] По словам Джоллы, разработка с Sailfish SDK — это разработка на самой Sailfish OS ; нет никаких различий между внешним видом и поведением разработанного программного обеспечения в SDK и на устройстве, работающем под управлением Sailfish OS . [ требуется ссылка ]
Доступность исходного кода для SDK позволяет формировать и перестраивать под конкретные потребности компаний или разработчиков, [ требуется ссылка ] создавая контекстно-зависимую среду, которая устанавливается один раз и не требует подготовки при загрузке устройства. SDK работает на операционных системах Android , 32- и 64-разрядных версиях Linux , 64-разрядных версиях OS X и Microsoft Windows . [20] Его можно использовать для компиляции программного обеспечения для устройств Sailfish OS из исходников Linux. Его общий консольный/терминальный режим следует общепринятому стандарту. Также можно использовать совместимые двоичные файлы или библиотеки. [ требуется ссылка ]
Sailfish OS использует API Qt с открытым исходным кодом (Qt 5, QtQuick 2 и т. д.) и фирменную Sailfish Silica для пользовательского интерфейса. Стандартные API Linux предоставляются Mer Core. [21]
Sailfish, Ubuntu и Plasma Active сотрудничают для совместного использования общих API. В случае успеха это сделает платформы совместимыми на уровне API. [22]
Sailfish Browser — это веб-браузер по умолчанию, основанный на Gecko и использующий embedlite (также известный как IPCLiteAPI), облегченный API для встраивания от Mozilla. Использует собственные компоненты. [23]
Jolla официально заявляет о поддержке следующих 14 языков для пользовательского интерфейса: датский , немецкий , английский (Великобритания) , испанский , французский , итальянский , норвежский , польский , португальский , финский , шведский , русский , китайский (материковый) и китайский (Гонконг) . Для каждого из них ОС имеет специальную клавиатуру. Есть еще несколько языков, которые неофициально поддерживаются фрилансерами сообщества, не находящимися под контролем Jolla, поэтому в общей сложности поддерживается более 20 языков. Дополнительные языки могут быть установлены опытными пользователями из-за архитектуры Linux. [24]
После положительного опыта с отправкой ранних обновлений небольшой группе пользователей, согласившихся на обновление Sailfish Update 9 и исправление проблем с подключением, Jolla разрешила всем заинтересованным сторонам попробовать новую версию Sailfish OS примерно за 1–2 недели до официального релиза в рамках программы под названием «Ранний доступ». Ожидается, что она будет полезна разработчикам и технически подкованным пользователям, а также станет шагом к большей интеграции сообщества в процесс выпуска Sailfish, включая улучшение качества путем выявления критических проблем, которые проявляются только в определенных средах или настройках устройств, перед выпуском обновления для более широкой аудитории пользователей. В качестве дополнительного бонуса она предоставляет разработчикам окно для тестирования своих приложений в новых выпусках Sailfish OS .
В долгосрочной перспективе это поможет Jolla создать программу разработчиков с ранним доступом к кандидатам на релиз для зарегистрированных разработчиков и увеличить участие сообщества в разработке платформы. Первая деталь, которую Jolla надеется узнать из этого, заключается в том, как она может собирать отзывы от большой аудитории разумным способом.
Основные сведения об обновлении раннего доступа:
В ОС Sailfish используются три варианта именования: номер версии, номер обновления и имя версии.
При обновлении установленной ОС Sailfish с более ранней версии, например, после сброса устройства к заводским настройкам, есть несколько стоп-релизов [37] , которые нельзя пропускать и которые необходимо установить перед продолжением пути к последующим релизам. Эти релизы предоставляют новую функциональность, которая несовместима с предыдущими релизами, и их необходимо пройти, чтобы не перевести установку ОС Sailfish в нестабильное состояние.
На сайте Sailfish опубликован [41] онлайн-сборник знаний, ссылок и инструкций по вопросам портирования.
В дополнение к своим собственным приложениям Sailfish может запускать некоторые приложения Android, устанавливая их из магазина приложений или напрямую через файл APK . Поддерживаемые версии Android: 4.1.2 "Jelly Bean" на оригинальном телефоне Jolla ; 4.4.4 "Kit-Kat" на планшетах Jolla C, Jolla и Xperia X ; 8.1.0 "Oreo", 9 "Pie" и 10 (в зависимости от версии ОС Sailfish) на Xperia XA2 , Xperia 10 и Xperia 10 II . [42] Проблемы могут возникнуть, если эти приложения были созданы без соблюдения стандартов Android в отношении элементов управления, которые могут отображаться неправильно и, таким образом, стать непригодными для использования.
Sailfish OS использует Alien Dalvik , фирменный слой совместимости Android. Он не эмулирует Android, а вместо этого реализует свои API, адаптируя код Android Open Source Project (AOSP) для запуска в качестве приложения. Таким образом, приложения Android могут работать на собственной скорости без какого-либо ощутимого замедления . Sailfish может одновременно запускать как собственное программное обеспечение Sailfish, так и Android, причем пользователь может переключаться между ними на лету. [43]
Начиная с Alien Dalvik 8.1 (также называемого с тех пор «Поддержка приложений Android»), он использует LXC [44] для повышения безопасности за счет лучшей изоляции, аналогично тому, как это делает слой совместимости Android с открытым исходным кодом Anbox .
Sailfish OS может использоваться на любом оборудовании с поддержкой ядра Linux и совместимом с промежуточным программным обеспечением, использующим ядро Mer . Энтузиасты сообщества портировали Sailfish OS на ряд устройств таким образом. [45] Вместо обозначения конкретной эталонной аппаратной платформы, реализация VirtualBox с Sailfish SDK доступна для разработки на операционных системах Linux, OS X и Windows. Эта реализация виртуальной машины содержит всю Sailfish OS, изолированную от локальных ресурсов и локальной ОС, что позволяет удобно оценивать поведение и производительность закодированного или портированного программного обеспечения перед развертыванием на реальных устройствах. [46] [47]
Производители могут поставлять мобильное оборудование с лицензированной ОС Sailfish , или с открытым исходным кодом, или комбинировать оба варианта, включая собственные или операторские модификации и брендинг для определенных рынков или целей.
Из-за относительной простоты портирования и лицензии с открытым исходным кодом Sailfish OS также была неофициально портирована [50] на другие сторонние устройства. Комплект разработки Hardware Adaptation Development Kit для портировщиков был опубликован и является бесплатным. [51] Эти порты в основном публикуются на форумах Maemo и XDA Developers , а в Mer wiki составлен список портов. [52] Из-за лицензионных ограничений фирменные части или расширения, такие как уровень совместимости Alien Dalvik для приложений Android, не включены. Однако их можно добавить, например, когда производитель или дистрибьютор превращает ее из версии сообщества в официально поддерживаемую версию для конкретного устройства. Из изначально более чем 80 портов есть около 19 портов, которые все еще находятся в активной разработке — по состоянию на март 2019 года — то есть они были обновлены до Sailfish 3:
Чтобы продемонстрировать простоту переноса Sailfish OS на другие устройства, Jolla демонстрировала созданные порты и порты сообщества на таких мероприятиях, как Mobile World Congress , Slush и FOSDEM :
Sailfish OS продвигается Jolla и поддерживается открытым альянсом Sailfish Alliance , созданным в 2011 году, группой, созданной для объединения производителей OEM и ODM, поставщиков чипсетов, операторов, разработчиков приложений и розничных продавцов. [79] 16 августа 2012 года было сообщено, что пользовательский интерфейс готов к выпуску. Генеральный директор Jolla Юсси Хурмола заявил в интервью ZDNet: «... Наш пользовательский интерфейс уже готов, мы его еще не выпустили, мы сохраним его для запуска продукта, а платформа уже поднимается, так что проект выглядит довольно неплохо». [80]
На следующий день генеральный директор Jolla Марк Диллон сообщил в социальной сети Twitter , что компания достигла первой цели разработки. Sailfish был представлен командой Jolla, включая всемирную интернет-трансляцию, в качестве демо ОС, а также пользовательского интерфейса и SDK во время мероприятия Slush в Хельсинки , Финляндия, 21–22 ноября 2012 года. Альфа-стадия Sailfish OS SDK была опубликована в конце февраля 2013 года и стала доступна для бесплатной загрузки.
16 сентября 2013 года Jolla объявила, что ее ОС стала совместимой с приложениями и оборудованием Android. [81] Первый телефон, использующий ее, был выпущен 27 ноября 2013 года в магазине DNA Kauppa в Хельсинки. Первые 450 телефонов были проданы на этом мероприятии, а остальные предварительно заказанные устройства были отправлены вскоре после этого. [82]
В августе 2015 года вышла версия 1.1.9 «Eineheminlampi», в которую были добавлены основные элементы обновленного пользовательского интерфейса Sailfish OS 2.0 .
Sailfish OS 2.0.0 была выпущена вместе с планшетом Jolla, а существующие устройства, как смартфоны, так и планшеты, из официальных каналов дистрибуции Jolla поддерживаются с обновлением до Sailfish OS 2.0.0 и последующими обновлениями.
В мае 2016 года Jolla анонсировала программу Sailfish Community Device Program, поддерживающую разработчиков и членов сообщества Sailfish OS . [83]
Сотрудники Jolla встретились с представителями российского технологического сообщества, чтобы начать работу над новым программным обеспечением и продвигать Sailfish OS в рамках стратегии Jolla BRICS . В результате этих усилий 18 мая 2015 года министр связи России Николай Никифоров объявил о планах заменить платформы iOS от Apple и Android от Google новым программным обеспечением на базе Sailfish. Он намерен покрыть 50% потребностей России в этой области в течение следующих десяти лет по сравнению с 95%, которые в настоящее время покрываются западными технологиями. [84] [85] В настоящее время русская версия разрабатывается под торговой маркой Mobile OS «Aurora» (мобильная ОС «Аврора») , [86] до 2019 года как «Sailfish Mobile OS RUS». [87] [88] Китайская многонациональная технологическая компания Huawei вела переговоры с Министерством связи России об установке ОС Aurora на планшеты для переписи населения России к августу 2020 года. [89] Jolla разорвала деловые связи с Россией в 2021 году. [90]
Sailfish Alliance — открытый альянс, созданный в 2011 году компанией Jolla для поддержки экосистемы MeeGo с помощью новых продуктов, услуг и бизнес-возможностей на основе или с использованием Sailfish OS, операционной системы Linux , объединяющей Mer с фирменными компонентами Jolla и других сторон, для различных целей и мобильных устройств.
Альянс рассматривается как конкурент другим группам, таким как Open Handset Alliance от Android . [91]
В 2011 году часть команды MeeGo , работавшей в Nokia , ушла и получила финансирование от Nokia через программу «Bridge» для финансирования дополнительных проектов бывших сотрудников. [92] [93] [94] Sailfish Alliance стремится к сотрудничеству между финскими разработчиками программного обеспечения и зарубежными производителями мобильных телефонов, некоторые из которых находятся в Китае. [95] [96] Новостные СМИ сообщают, что ряд производителей в Китае и Индии хотят альтернативу Android . [91] [97] [98]
Целью Альянса является «объединение производителей OEM и ODM , поставщиков чипсетов, операторов, разработчиков приложений и розничных продавцов». [99]
Целью Альянса является предоставление уникальных возможностей для дифференциации и устойчивого конкурентного преимущества производителям OEM и ODM , поставщикам чипсетов, операторам, разработчикам приложений, розничным продавцам и другим заинтересованным сторонам. [100]
Sailfish Secure — это открытая и безопасная платформа для мобильных телефонов на базе Sailfish OS. Она была представлена публично в Барселоне, Испания, на Mobile World Congress 2 марта 2015 года, где были представлены планы Sailfish Secure.
Он основан на версии Sailfish OS с усиленной безопасностью и платформе шифрования и управления ключами SSH. Он разработан Jolla (дизайнером и разработчиком Sailfish OS) совместно с SSH Communications Security (разработчиком протокола Secure Shell SSH) в сотрудничестве с Sailfish Alliance .
Sailfish Secure позиционируется как продукт, независимый от аппаратной платформы, что позволяет адаптировать концепцию к местным потребностям и сотрудничать с другими партнерами по безопасности. Конечные клиенты, такие как правительства или крупные корпорации, могут адаптировать продукт к своей предпочтительной или используемой аппаратной платформе, поскольку он не привязан к определенному оборудованию или конфигурации. [101] [102]