This article is about the Linux operating system (OS) by the Jolla 
company.  For the alliance gathering Sailfish OS partners, see 
Sailfish Alliance.  For the Jolla company, see 
Jolla.
Sailfish is a 
Linux-based 
mobile operating system developed by 
Jolla in cooperation with the 
Mer project and supported by the 
Sailfish Alliance. It is to be used in upcoming 
smartphones by Jolla and other licencees
[citation needed]. Although it is primarily targeted at mobile phones, it is also intended to support other categories of devices.
Software architecture
The Sailfish OS and the Sailfish 
Software development kit are based on the 
Linux kernel and 
Mer.
[1] Additionally Sailfish OS includes a partially or completely 
proprietary multi-tasking 
user interface
 programmed by Jolla. This user interface differentiate Jolla 
smartphones from others. Sailfish OS is intended to offer a competitive 
advantage against devices that run Google's 
Android or Apple's 
iOS.
[2]
Jolla has unveiled the Sailfish architecture
[3] which contains:
- 
- Any hardware platform on which Linux kernel can be launched.
 
 
- 
- plus all necessary hardware specific Kernel patches, or Android drivers through libhybris
 - Mer contains as few hardware adaptation bits in the main repository as possible
 
 
- (2) Mer: System essentials, Multimedia, Graphics (Wayland),
 Communications, Personal Information Management, Software Management, 
Security, Build and Development (Qt, Qt Webkit and others)
 
- (3) UI and middleware
 
- Home screen & switcher, Real live multitasking, Input methods, 
Ambiance theming, Localizations, multimedia codecs, Power management 
optimizations, Integrated UX for key web services, Application and UI 
performance optimizations
- Jolla & Partner Sailfish OS adaptations: these adaptations can have influences/implications on both: 4th and 3rd[clarification needed] levels.
 
 
- 
- Jolla's Applications: Phone, Messaging, Contacts, Camera, Gallery, Settings, etc.
 - 3rd party applications: Browser, Android applications runtime, Maps
 - Jolla & Partner Sailfish OS adaptations: these adaptations can have influences/implications on both: 4th and 3rd[clarification needed] levels.
 
 
- (5) Application store
 
- (6) Repositories and other sources by 3rd parties including wide range of communities, operators or companies of many kinds.
 
"(...)Sailfish is built on the heritage of the proven MeeGo™ 
technology. This ensures that core cellular functionalities like power 
management and connectivity are inbuilt and optimized in restrained 
embedded environments. The core of the OS comes from the Mer Project. 
The UI is built with QML and Qt Quick. This enables fast and easy 
customization of the UI and further development of partner specific 
screens with fast and easy to use development tools.(...)".
[3]
Wayland (display server protocol) in Sailfish OS
Carsten Munk, Jolla's Chief Research Engineer and one of key persons in 
Mer project, has made it possible to run 
Wayland (display server protocol)
 atop Android GPU drivers. It's being done with glibc rather than 
Android's Bionic libc derivative. The solution is to enable the use of 
Wayland on top of Android hardware, particularly with its GPU drivers. 
However, as part of it, for the operating system to not depend upon 
Google's Bionic libc library. In April 2013 the code is at a stage of 
being able to handle a QML compositor on top of Wayland while rendering 
to Qualcomm's GPU Android drivers. The motive for engaging this work is 
that most device manufacturers are only willing to work with Google's 
Android and not supply drivers for X11 or Wayland or other platforms. 
Carsten Munk is planning on putting patches out under LGPLv2.1 and sees 
this work as potentially benefiting not only the Sailfish OS but also 
Qt, Mer, 
Nemo mobile, OpenWebOS, EFL, KDE, GNOME, Hawaii, and others.
[4]
Sailfish OS SDK
The Sailfish OS 
SDK
 has been announced in Helsinki at Slush in 2012, and published in the 
alpha stage in February 2013. As open source software it is available 
for free download from the Wiki of the Sailfish OS together with 
installing and coding tutorials, which are developed further. Most users
 have described positive impressions from using alpha SDK, however some 
critical remarks has been reported also. Several developers announced 
porting their existing software from various platforms to Sailfish OS at
 JollaHQ twitter channel.
The Sailfish OS 
SDK use Qt with virtual box for development, compiling and 
emulation
 purposes. This technique allows to compile on the Sailfish OS and to 
test developed software on the Sailfish OS 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 then there are no differences between developed 
software appearance and behaviour in SDK and on end-user machine with 
Sailfish OS. Note: the SDK contains the whole Sailfish OS, 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 to shape and rebuild it for 
particular and specific needs of any company or any organisation or any 
group of developers or an advanced developer, what allows to create 
context specific environment. This supports creating the specific 
personalised coding environment with specific tools for specific needs 
which is set once and then always ready to work as set, and does not 
need initial preparations for specific needs every time it is turned on 
(booted).
SDK supports many systems like Android, Linux (32 & 64 bit version), iOS (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.(...)".
[5]
Declared: without PRISM and no disclosure of information
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
[dubious – discuss].
 "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 that 
allegedly grant secret services wide access to user data.
Components
Connection between some mobile platforms. Sailfish OS uses Mer
 
 
 
Jolla has revealed its plans to use the following technologies in Sailfish OS:
- The Mer software distribution core
 
- A custom built user interface
 
- HTML5
 
- QML and Qt
 
Jolla continues building the 
MeeGo ecosystem.
The Mer project does not include a 
kernel, so it can't be considered a complete 
operating system
 on its own. It is a set of libraries complying with the MeeGo API 
specification, which can be used to build a bootable Linux distribution 
(i.e. Sailfish OS). This means that Sailfish OS will work on any 
hardware platform on which the Mer core can be installed.
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.
[6]
Software overview
Compatibility
Jolla declared Sailfish OS compatible with 
Android phone and tablets hardware, using existing Android device drivers.
[7]
 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
[neutrality is disputed]
 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.
Jolla has previously stated that Sailfish is compatible with Android applications.
[8] This was done in collaboration with the creators of Alien Dalvik, the 
Myriad Group,
[9] 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 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
[dubious – discuss], 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[dubious – discuss]. They are compatible as they are in third-party Android stores, with no needed modification (in most of the 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 (because it is ready for this kind of software then use oncoming FirefoxOS software can also be possible)
 
Then a number of unique software possible to use can be estimated by 
adding number of software from the list above. In general it can be 
expected to be not less than 500K unique software pieces at the 
beginning.
Hardware overview
Advantages due to the Mer
The 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 whole Sailfish OS isolated from local resources to enable 
comfortable work at any particular PC. This allow to evaluate 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.
[10]
Devices running Sailfish OS
Sailfish has been presented on devices like:
- Acer Iconia tab W500[11]
 
- O2 Joggler[12]
 
- Exopc[13]
 
- HP Mini[14]
 
- PackardBell Butterfly Touch [14]
 
- Nokia N950 and Nokia N9 - during several presentations given by Jolla
 
- Google Nexus 7[15]
 
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.
[16]
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. (...)"
[17]
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 September 16, 2013, Jolla has announced that its Sailfish OS is now compatible with 
Android applications and hardware.
[7]
Jolla announced that the first phone to come with Sailfish OS will be
 launched on November 27 at a pop-up DNA Kauppa shop in Narinkkatori, 
central Helsinki, Finland. The first 450 phones will be sold on this 
event, while the rest of the preordered devices will ship shortly after.
[18]
Source : Wikipedia