I don’t know if you’ve heard of Snappy Ubuntu Core. Anyway, when I first heard Snappy, I didn’t quite understand it. If we look it up in the dictionary, it means brisk, nimble, energetic. That sounds great! By the way, Snappy is where Canonical is headed in the future. All future Ubuntu systems will use Snappy. This is what we call Convergence. We develop applications that run on multiple platform-size devices and in the cloud. We don’t have to develop for a single device. More information can be found in developer.ubuntu.com/en/snappy/. In the future, Snappy Ubuntu will play an important role in IoT(Internet of Things), such as drones below.

\

    \

\

What exactly is Snappy Ubuntu?

\

In short, Snappy Ubuntu is a new, transactional update built for the cloud and devices. It is divided into:

-Snappy Ubuntu Core: For cloud and IoT (Internet of Things)

-Snappy Ubuntu Personal: mobile phones, tablets, and PCS

Let’s take a look at Snappy Ubuntu’s features:

\

  \

\

– Minimum Ubuntu server image: Due to the smaller kernel, it can be applied to more application scenarios. The application is provided through a simple.snap package. The Snap package differs from the previous Debian and click packages on mobile phones. Future apps and Framwork will be released as a.snap package. See the article “Packaging our Snappy Ubuntu Application with Snapcraft” to learn more.

Transactional updates: Updates automatically through the mall’s channels. Transactional updates provide a more reliable system. Snappy Ubuntu has two root Filesystem partitions: A and B, each containing A system image. When zone A is started, it can be used to update zone B. Only after the update of zone B is complete and no errors can you switch over to zone B, otherwise you will stay in zone A forever. Conversely, we can update area A in the same way. Of course, at any time, we can rollback, that is, go back to the previous boot zone. This ensures that our system is complete with Ubuntu Core and application updates at all times. This is very important for many systems that require a stable working environment, such as updating a Webcam that is located in a corner of the road. In addition, when updating an application or system, only the changed part (Delta) needs to be updated, so less data is transferred.

– Enhanced application security: Snappy Ubuntu has industry-leading security. The Ubuntu image is only readable. No application can change it. In this way, the system image will not be modified due to the installation or upgrade of an application, and some installed applications will not run properly. Each application has its own read-write space, and they are not mutually accessible. Every application operates in a limited sandbox. Access to the API is enforced by Apparmor and Seccomp. It provides strict ISOLATION based on MAC (Mandatory-access-Control). Traditional Linux applications can access any directory and read or write files in them. This is different from Snappy. If an application needs a special library, you can use Snapcraft to install the corresponding library into your application’s private directory.

\

Snappy Ubuntu architecture

\

    \

\

In Snappy Ubuntu, there are four layers:

\

– Application layer: This layer is provided by the Application developer. All applications are isolated and subject to the system’s security mechanisms

– Framework layer: This layer is provided by Cannonical and the developer. It extends the most basic system of Ubuntu Core. This is an optional layer. It cannot be attached to another framework

– Ubuntu Core Layer: This layer is provided by Canonical. Minimal rootFs to customize for specific requirements

– Enablement layer: This hardware layer is provided by the device provider or Canonical. Canonical offers four types of support

  • 32/64 a
  • ARM/Intel

A typical remote desktop protocol application architecture:

\

\

\

Typical IOT application stack:

\

\

\

As can be seen from the above, we can often use the MQTT protocol or REST API interface to remotely control our system or obtain information about the system. This will be explained separately in future articles on how to use them to achieve the desired functionality.

\

\

Target supported by Snappy

\

\

As of now, Snappy supports the following targets:

\

\

\

As you can see from the above, Snappy is already available for deployment on some ARM development boards and in the cloud. For some developers, a cheap pad (Raspberry PI and Beaglebone) with a few add-ons is enough to hack Snappy. See the links for more information.

\

\

Languages and architectures supported by Snappy development

\

\

Current development on Snappy can be said to cover almost all of the most popular languages and architectures currently available. Unlimited room for innovation for developers:

\

\

         

        

 

\

\

\

Snappy example

\

Currently, Snappy is increasingly being used in different fields. Here are some examples of products that have been made with Snappy Ubuntu. We can click the picture below to enter the website of the product.

\

     \

\

\

    \

\

If you are interested in my Snappy development example, please refer to the article “Snappy Ubuntu Core Demo”.

\

Snappy Store

\

\

Just like any other platform, Snappy can have its own Store. To see all the Snaps on the system, open our Browser(Chromium, Firefox, etc.). We can see that webDM (Web Device Manager) is launched at localhost:4200, and we can see the installed apps and stores on the Device. If you have an Ubuntu phone, we can also deploy my WebDM application on it to install and remove applications.

\

\

\

\

\

\

Canonical can also offer proprietary branded stores, including oems.

\

For more snappy update, you can order our mailinglist: lists.ubuntu.com/mailman/lis… . If you use IRC, join the discussion on our # snappy Channel on Freenode. If you find any of the above bugs in our Snappy, please click the link to report.

\

\

\

Ubuntu founder Mark also had a great talk about Snappy, For developers with good English, watch the video “Ubuntu Online Summit Intro and Mark Shuttleworth’s Opening Keynote” and “Community Team Q&A”. If you want to learn more about the Ubuntu Core update, you can watch this YouTube video.

\

In the following articles, we will go through the technical details of the Snappy Ubuntu system one by one. Check out my Snappy Ubuntu tutorial and the Snappy Ubuntu Core Clinic video.

\

\