Sailfish is a mobile operating system combining the Linux kernel with mer and proprietary software written by Jolla. Sailfish is being developed by the Sailfish Alliance. It is to be used in upcoming smartphones by Jolla and other licensees. Although it is primarily targeted at mobile phones, it is also intended to support other categories of devices.

Hackday with Jolla, Mer and Nemo Mobile in September 2012

Software architecture

The Sailfish OS and the Sailfish SDK is based on the Linux kernel and Mer. Sailfish OS also includes a proprietary multi-tasking Lipstick graphical shell built by Jolla on top of Wayland display server. While Jolla uses free and open-source graphics device drivers, Hybris library allows using proprietary graphics device drivers for Android.

Sailfish OS is intended to offer a competitive advantage against devices that run Google's Android or Apple's iOS. Due to direct ancestry, applications for MeeGo platform also run on Jolla devices.

Sailfish OS SDK

The Sailfish OS SDK was announced in Helsinki at Slush in 2012, and the alpha was published in February 2013. As open source software, it is available for free download from the Sailfish OS Wiki together with installation and coding tutorials. Most users have described positive impressions from using the alpha SDK, however some critical remarks have been reported. Several developers announced porting their existing software from various platforms to Sailfish OS at JollaHQ Twitter channel.

Rupesh SDK uses Qt with a virtual box for development, compiling and emulation purposes. This technique allows compilation on the Sailfish OS and to test developed software in the virtual machine. This also separate development activities and (side) effects from everything else going on this particular computer.

Jolla says that as development with Sailfish SDK is development on Sailfish OS itself, there are no differences between developed software appearance and behaviour in SDK and on end-user machine with Sailfish OS.

The SDK contains Sailfish OS in its entirety, and emulates (see: emulation, in contrary to simulation) the entire Sailfish OS at the host computer running SDK what in fact means that the entire Sailfish OS, including the kernel, is running in the SDK's virtual machine. That is why porting and developing of any software with Sailfish SDK is possible, even before Jolla mobile is available.

The open source nature of SDK allows shaping and rebuilding it for particular and specific needs of any company or any organisation or any group of developers or an advanced developer, which allows creating a context-specific environment. This supports creating a specific personalised coding environment with specific tools for specific needs that is set once and then always ready to work as set, and does not need initial preparation for specific needs every time it is turned on (booted).

The SDK supports many systems like Android, Linux (32- and 64-bit version), OS X (64-bit version only as of March 2013) or Windows.

Marc Dillon said about the SDK: "(...)Yes, there's an emulator so you can see how the applications work, and all of our UI features are available as UI components. Actually you can develop applications that have all these different UI components and different elements and use the power of the OS.(...)".

Application programming interfaces

Qt APIs (QtQuick, QtWebkit and more) should be used by typical Sailfish OS applications. Also standard Linux APIs within reason for mobile usage will be available.

Privacy

Responding to privacy concerns in light of the PRISM spying program that came to light in summer 2013, a company representative said the US National Security Agency (NSA) would have no access to Jolla's servers. "Jolla servers are not in US, so we are not subject to any US rules or regulations regarding disclosing information." Many see in this the Sailfish OS and Jolla's smartphone advantage over other operating systems like Windows, Android or iOS, which are from companies (Microsoft, Google, and Apple respectively) that allegedly grant secret services wide access to user data.

Software overview

Software version

List of software version and update names for Sailfish OS. Each Sailfish OS version will be named after a Finnish lake.

Software version

Name

Initial
release

Kaajanlampi

v1.0.1.10

Laadunjärvi

v1.0.2.5

Maadajärvi

v1.0.3.8

Naamankajärvi

v1.0.4.20

Ohijärvi

v1.0.5.16

Paarlampi

v1.0.5.19

v1.0.7.16

Saapunki

v1.0.8.19

Tahkalampi

v1.0.8.21

v1.1.0.38

Uitukka

v1.1.0.39

Migration to Sailfish OS and porting software

A number of projects successful at other platforms are migrating to become native at Sailfish OS. This enable developers to earn additional incomes, also for abandoned Harmattan or Symbian developers. In case of Qt written projects often it's a question of a few hours to port a whole project. This process is supported and for this purpose sailfish.org collects and publishes an online compendium of knowledge, links and instructions on:

software porting and migration to Sailfish OS

similarities and differences between Harmattan and Sailfish

guides how to port MeeGo 1.2 Harmattan applications for the Nokia N9 is the Sailfish OS devices

It gathers and links development resources of different kinds and origins.

Jolla Harbour for submitting software to the Jolla Store

The important element of the Sailfish MeeGo ecosystem is the Jolla Harbour (harbour.jolla.com) devoted for submitting applications to the Jolla Store, where one can submit and manage one's applications. Consumers are able to install available software directly from their Sailfish devices. As Sailfish is mobile OS of general purpose it is intended to make Sailfish software available for sale and as a free applications.

There are binary package naming guidelines for uploading files. Developers are to provide metadata:

After submission an application to Jolla Harbour, so the metadata and the binary and required images, Jolla performs Quality Assurance testing on real Sailfish devices, then gets back with feedback of QA results within undefined "a few days" via the email address registered to Jolla account.

At the beginning of November 2013 it was launched but not fully operational as still under construction, so it is in advanced public beta testing, but not the full performance. It allows developers and users to test portal performance with free applications and Jolla to correct issues reported by users to avoid the shame of non-working properly store known generally from former mobiles vendor. That is also fulfilling of the one of the main demands from both customers and developers:

During the first days after launch at 6 November 2013 number of interested in exceeded expectations and hardware abilities. There were so many demands that the server was overloaded and access to the Harbour portal website was impossible.

Compatibility

Jolla has previously stated that Sailfish is compatible with Android applications. This was done in collaboration with the creators of Alien Dalvik, the Myriad Group, known for running Android apps with the Nokia N9 (but the Android layer was never released as built-in on N9). Many Android applications run on Jolla devices unchanged. To take advantage of all UI and other features of Sailfish OS and make applications fast they may need porting to native Qt/QML, there are extensive guides available on porting to Qt/QML.Jolla declared Sailfish OS compatible with Android phone and tablets hardware, using existing Android device drivers. This was announced on September 2013 and it is a major milestone. This has been achieved with use of Alien Dalvik by Myriad Group. This is a big step forward for phone and tablet manufacturers which can immediately and effortlessly integrate their existing devices with the Sailfish OS and still have ability to use Android software. Unveiled in 2013 Jolla prototypes and Sailfish running on other non-Jolla devices have shown proves of compatibility and Android applications running without problems, with native speed, without lags or jams.

In all Sailfish OS devices released for sale (via mobile operators and internet Jolla's shop) in 2013 year the Android compatibility has been fully working as expected for almost all software. However, in a few cases, when original software was not following the Android standards, it was not launch-able or steering was a problem, as Jolla informed before.

Jolla has reported that Ubuntu, Sailfish and Plasma Active cooperation for sharing common APIs is in progress and - upon success - will make the platforms compatible on the API level.

As Jolla Sailfish is based on the open-source Meego, it is compatible to some extent with MeeGo Harmattan released by Nokia with the N9 phone. The applications written in Qt for N9 might need a minor conversion process before they can run on Sailfish.

Software availability

Sailfish will be able to run most applications that were originally developed for MeeGo and Android, in addition to native Sailfish applications. This will give it a large catalogue of available apps on launch.

Considering upon Jolla's declarations that Sailfish OS is be able to use software from following platforms

Sailfish (natively created + ported like from Qt, Symbian, MeeGo - developers have reported that porting a Qt written software with Sailfish SDK takes a few hours only)

Android applications are directly running in Sailfish OS. They are compatible as they are in third-party Android stores, with no needed modification (in most cases).

MeeGo (because of backward compatibility thanks to MeeGo code legacy included in the Mer core)

Unix and Linux (as Sailfish is Linux then using such a software is possible, especially RPM packages, either in terminal/console mode or with limitations implying from using Sailfish UI, if not ported and adjusted)

HTML5

Hardware overview

Advantages due to Mer

Sailfish OS in general can be used on any hardware supported by the Mer core distribution.

Rather than designate a specific reference hardware platform, a VirtualBox implementation with the Sailfish OS SDK is available for development on most popular OSes like Linux, OS X, Windows, and this VM contains the whole Sailfish OS isolated from local resources to enable comfortable work at any particular PC. This allows evaluating coded or ported software behaviour and performance in future on any real device and safe experimenting de facto on Sailfish OS itself. This is also caused by fact that Sailfish OS is not limited only to Jolla products and devices, but open for other partners which can use any different hardware.

Types of devices

Although Sailfish has been presented first for mobile use with upcoming smartphones by Jolla, as a continuation of MeeGo and using Mer core and the open source philosophy behind them both, it is also an OS for general purposes including devices such as smart televisions, computers, laptops, netbooks, tablets, navigations, cameras, household devices of many kinds, for automotive in cars and IVI, for sailing purposes in yachts and boats, and others. The Sailfish Linux OS in the same way as the MeeGo and the Mer projects it is not limited to use in mobiles only, but can be used with other forms of consumer electronics.

Jolla's Sailfish OS works on a tablet too. Jolla managers said in November 2012 that there could be a Sailfish tablet, but Jolla itself will, in this first wave, concentrate on a smartphone, but it does not exclude devices of different types.

Devices running Sailfish OS

Sailfish runs on the Jolla phone.

Sailfish has also been ported to devices like:

Acer Iconia Tab W500

ExoPC

Google Nexus One

Google Nexus 4

Google Nexus 5

Google Nexus 7

Samsung Galaxy S3

Samsung Galaxy Nexus

HP Mini

HTC Desire HD

HTC Desire Z

O2 Joggler

PackardBell Butterfly Touch

Xiaomi Mi2

Nokia N950 and Nokia N9 - during several presentations given by Jolla

Sailfish OS licensing

Jolla said that any mobile phone manufacturer will be able to license and use Sailfish with their mobile phones and other mobile devices, as they can with Android. The details of licensing have not been presented yet, but it was mentioned that the whole of Sailfish OS is to be licensed as open source.

OS development status

Sailfish OS is promoted and supported in many ways with the open Sailfish Alliance established in 2011, a movement established to unite OEM and ODM manufacturers, chipset providers, operators, application developers and retailers.

On 16 August 2012, the user interface was reported as ready to go. Jolla's CEO Jussi Hurmola stated in a ZDNet interview: "(...) Our UI is ready now, we haven't released it yet, we will save it for the product launch and the platform is getting up now so the project looks pretty nice. (...)"

The next day, Jolla's CEO Marc Dillon tweeted that they had reached the first development target.

The Sailfish was presented for the first time by the Jolla team, including a worldwide internet stream, as a demo of the OS, as well as the UI and SDK during the Slush event in Helsinki, Finland, on 21–22 November 2012.

The Sailfish OS SDK in the alpha stage was published at the end of February 2013 and available for free download.

On 16 September 2013, Jolla has announced that its Sailfish OS is now compatible with Android applications and hardware.

The first phone with Sailfish OS was launched on 27 November 2013 at a pop-up DNA Kauppa shop in Narinkkatori, central Helsinki, Finland. The first 450 phones were sold on this event, while the rest of the preordered devices were shipped shortly after.