Chapter 10. Ubuntu, Convergence, and Devices of the Future

Ubuntu is a quickly evolving platform. It all started with the Desktop. As we learned in Chapter 8, beginning with Ubuntu’s second release, a minimal Ubuntu version was released that could be used as a server. Later years brought a Netbook Remix, which gave users their first taste of an early version of the software now widely distributed as Unity. Today, one of the most exciting developments in the Ubuntu ecosystem is the move to devices. Phones, tablets, and various Internet of Things (IoT) devices, ranging from refrigerators to drones, have started cropping up in the Ubuntu ecosystem.

These devices are driven by innovations within the Ubuntu software community in the form of more advanced package managers that lend themselves to smaller devices and power-saving formats. Users in this market also have expectations that move beyond the installation of software through a Linux Software Center and have inspired the development of app stores within the Ubuntu community. The vision and software that are leading the Ubuntu community down this path are changing rapidly and carving out an exciting new Ubuntu-powered future.

The Convergence Vision

Imagine a world where your centralized device is a single smartphone. Not only that, but the exact same applications that you can run on your smartphone also work on the screen of your refrigerator and can be loaded up in your drone. There are no special versions for different devices that lag behind because developers haven’t updated them yet; instead, the same application is used on all of your devices. Now imagine that this system is all open source and running Ubuntu at its core.

Nowadays, our mobile devices are very powerful on the inside. As an example, consider the Nexus 5x, a device that came out at the end of 2015. This 5-inch handheld smartphone has 2GB of RAM and a quad-core processor. Many laptop computers have similar—or even lower—specifications. Additionally, it’s becoming increasingly common for people to rely on a smartphone as their sole computing device, using the phone’s relatively small interface to respond to e-mail, stay in contact with friends on social media, and read the latest news. Our phones are becoming replacements for our computers, and the Ubuntu community believes we should work to use them to their full potential.

With that point in mind, the final concept for both phone and tablet seeks to provide a device that truly harnesses the power of the phone but also gives us the screens and input devices of a desktop compute. This idea of melding the two forms is known as convergence. With convergence, you could connect your device to a monitor, keyboard, and mouse, and have a full Ubuntu Desktop experience powered by your phone. Late for a meeting? Free yourself from all those cables and continue editing your document while on the move. Taking matters a step further, you might envision putting the same applications on devices in the Internet of Things so that you could move your applications beyond the traditional computing environment.

Unity

Unity is both a graphical shell and an enticing idea. As with the prospect of Ubuntu on phones and tablets, you might begin to wonder whether this thing we call Ubuntu could really be used on everything from desktops and servers to phones, tablets, appliances, drones, and more. The devices themselves are just an evolution of what we have already enjoyed on the desktop, yet their code bases have evolved to be very different in many ways. Smartphones and tablets use a new display manager developed by Canonical called Mir, whereas the 16.04 Ubuntu release on the desktop continues to use Xorg. The versions of Unity differ as well, with 16.04 running what has been called Unity 7 and the phones and tablets using Unity 8, which requires the Mir display manager.

The operating system itself and applications on these devices are also handled differently. The early releases of Ubuntu phones and tablets have been built with Click packages, which are a simplified version of Debian packages specifically used on the phones and available through an app store. As described later in this chapter, these packages will soon be replaced by the innovations made with Snaps.

Bringing unity to these versions of Unity, as well as a consolidated platform for all computers and devices, is an ongoing effort. There is a push to make Ubuntu desktops ship with a default of Mir and Unity 8. For now, 16.04 is the first Ubuntu release where we can see how Snaps work on an Ubuntu desktop.

Ubuntu Devices

Personal computers and servers are not the only devices running Ubuntu. In 2013, the first Ubuntu Phone was announced; since then, all kinds of devices have been introduced that are running Ubuntu. These Ubuntu-based devices range from a smart refrigerator that was recently showcased at an Internet of Things conference to an artificial intelligence device that helps turn your house into a “smart home.”

The First Ubuntu Phones and Tablets

In early 2013, it was announced that Ubuntu would have an operating system available for smartphones. Initially, three devices were supported: the Galaxy Nexus, the Nexus 4, and the Nexus 7 (2012). All of these devices had the Android operating system preinstalled from the factory, so software then known as Ubuntu Touch was made available for download and flashing into the devices.

The major innovation offered by this software was its ability to solve the problem of updating thousands of mobile devices with the standard Ubuntu tooling, which otherwise would have required updating devices on a piecemeal basis with apt. The Ubuntu developers created a framework for Ubuntu that used read-only system snapshot images, which were tested as they were so they could be validated before shipping. The images could then be atomically updated using the Click packaging format, which provided sandboxing for applications and worked with the read-only base system. This process led to unbreakable updates on tested hardware, smaller updates, better security, and more freedom for individual apps, owing to their isolation. The evolution of this packaging from Clicks to Snappy is discussed in greater detail later in this chapter.

Since these first images were made available, the Ubuntu community has actively worked to make images available for other devices, such as the Nexus 5 and the OnePlus One. Naturally, the list of “officially supported” devices for which Canonical maintains, builds, and hosts images has changed over time. A growing number of images have also been made available by third parties; these “community images” are typically hosted and developed by parties that are interested in seeing support for even more devices on the market. The community images can be made by anyone—from a manufacturer to a community member. Be aware, however, that these community images may not make all Ubuntu features available in the devices. Porting takes time and effort, so developers may be working on only small sets of features at a time.

The Ubuntu Edge

Crowdfunding is a phenomenon in which people all around the world support a project by donating a certain amount of money to it. Web sites such as Kickstarter and Indiegogo serve as forums for crowdfunding, allowing applicants to set a fund-raising goal and then reward donors for their generosity, depending on the amount donated.

Shortly after the Ubuntu mobile operating system was announced, Canonical launched a crowdsourced project to build a device that would surpass all the industry standards at the time: the Ubuntu Edge. This phone was expected to have the fastest multicore processor, 4GB of RAM, 128GB of storage, a Sapphire crystal display, and an ability to boot Ubuntu and Android. When people opened the Indiegogo page to check on and donate to the project, they were struck by an interesting fact: For the campaign to be successful and for the devices to be produced, enthusiasts would have to raise $32 million in a month. Priced at $695 per device, the Ubuntu Edge promised to be the phone that would revolutionize the mobile industry.

Ultimately, the Ubuntu Edge project did not meet its fund-raising goal, collecting pledges of only $12.8 million. That sum, while impressive (and a record for crowdfunding), was not enough to launch the project. In the end, all donations were returned to contributors. Despite its failure, this exciting campaign set a very high bar for upcoming handheld devices and brought a tangible level of excitement to the Ubuntu community. It was clear that a strong demand existed for a device like the Ubuntu Edge.

Commercial Phone and Tablet

Although Ubuntu Edge campaign did not succeed in getting adequate funding, the buzz generated by the attempt and the progressive specifications outlined attracted vendors’ interest. With the race for mobile devices going strong, Ubuntu was clearly poised to become a key player in this market. People continued asking when would they be able to buy a device that had Ubuntu preinstalled. Behind the scenes, Canonical was working with device manufacturers to bring a product to market. Soon, rumors started spreading that two companies would be producing these phones: BQ (headquartered in Spain) and Meizu (located in China).

The next step in the journey to the Ubuntu phone occurred when a small group of people from the Ubuntu community were invited to join a closed community called Ubuntu Insiders, whose members would be the first to know what was happening with Ubuntu on the phone. In February 2015, at an Insiders-only event in London, the first Ubuntu device was released: the Aquaris E4.5 Ubuntu Edition. Soon thereafter, the Meizu MX4 Ubuntu Edition was released. Both of these devices came with Ubuntu preinstalled, and the hardware worked right out of the box. Later in 2015, the Aquarius E5 Ubuntu Edition (Figure 10-1) was released. All of these early commercial devices had some restrictions in terms of which networks they worked on, since the phones were originally designed to work only in certain regions.

Image

Figure 10-1 Aquaris E5 Ubuntu Edition

In 2016, the release announcements continued. The Meizu Pro 5, released in early 2016, offered the largest screen and most memory of an Ubuntu phone yet, along with global coverage.

Finally, the first Ubuntu tablet was announced: the Aquaris M10 Ubuntu Edition (Figure 10-2). In addition to being a tablet, this 10.1-inch BQ device achieved an important milestone: It was the first commercial Ubuntu device to feature full convergence out of the box. You can connect the Aquaris M10 to a Bluetooth mouse and keyboard, as well as a monitor, to achieve the full desktop experience. In contrast to some of the convergence previews on other devices made available prior to 2016, the Aquaris M10 offered convergence capabilities as soon as you turn it on for the first time—a feat not hitherto achieved by any commercial devices.

Image

Figure 10-2 Aquaris M10 Ubuntu Edition, converging with a Bluetooth keyboard and mouse

The near future will certainly bring more innovations centered on phones, tablets, and their move toward convergence. To find the latest news and learn about the current devices, visit www.ubuntu.com/phone and www.ubuntu.com/tablet.

The Internet of Things and Beyond

The technologies that are now a pervasive presence in our lives have evolved quickly. Our lives are enriched by smartwatches that track our steps and heartbeats and share them with our friends, light bulbs that turn on and off or dim with control from a smartphone, and intelligent thermostats that learn from residents’ typical behaviors, among many other innovations. We are constantly surrounded by technology, and there is a growing desire for this technology to be connected to how we live. We expect our light bulbs to turn on as we enter the house, and our thermostat to save energy when no one is home. We envision a world in which appliances share information to learn how their users interact with them.

The first step toward achieving this vision with Ubuntu was the development of a very lightweight version, that, despite its small size, would still offer the same power as a regular image. Ubuntu Core, a minimal version that installed only those components required for the system to work, was the first foray into this space. The technology that allows for this slim image is driven today by Snaps. Snaps can be seen as the next evolution of the Click packages used on the Ubuntu version running on phones and tablets today.

Snaps behave differently than the traditional Debian packages that have been used to built Ubuntu since the beginning of the project. Instead of being a packaged set of files that is unpackaged to install, the Snap package is essentially mounted onto the file system. Snaps then have a writable space for user data, which is confined by applying security profiles. Snaps also ship with everything they need to run, instead of calling out to external libraries to obtain resource. Individual Snaps for apps do not manipulate the Snappy Ubuntu Core operating system—which, it should be mentioned, is also a Snap itself! Between this isolation and the combination of logical separation, AppArmor profiles, seccomp, and kernel namespaces, this arrangement creates a secure barrier between the operating system and apps. Nevertheless, Snaps are not completely isolated; a series of interfaces allow them to communicate, share specifically defined resources, and access particular hardware. In the resulting ecosystem, making packages for Snappy Ubuntu Core is considerably easier than creating traditional Debian packages. In fact, using the tool called Snapcraft, a package can be made from existing software in a matter of minutes. In turn, it is now considerably easier to create appliances and devices with Ubuntu at the core.

Major Devices

While Snappy Ubuntu Core remains under aggressive development, many members of the Ubuntu community have begun to get very creative with even the most basic implementations of slim Ubuntu installs. To date, devices relying on these lightweight versions have included drones, robots, toys, and home appliances.

Drones Drones have become very popular in recent years. Whether the user is a law enforcement agency in the United States that is putting a camera on a drone to know when to step in with crowd control or a postal service in southeast Asia that is experimenting with delivering packages to a nearby island, a wide variety of uses for drones are popping up worldwide. Hobbyist use has grown as well, with consumers taking advantage of this technology in myriad ways, from recording video from an angle that they were not able to reach before, to delivering messages to their neighbors. As interest in drones continues to grow, the creative uses for them have likewise exploded.

Ubuntu drones are keeping pace with this evolution. Erle Robotics in Spain was the first to publicly announce the commercial availability of a drone (user assembly required) that is based on Ubuntu Core. The Chinese company DJI has launched Manifold, an Ubuntu-based platform on which the user can build their own application with DJI’s developer drone platform, Matrice 100. UAVIA, a French company, has unveiled remote-controlled Ubuntu drones, which are used for inspection and surveillance.

Refrigerators and Beyond On the domestic front, appliances have quickly embraced Ubuntu. GE Appliances, a division of General Electric, has developed ChillHub, a smart refrigerator running on Ubuntu. Development has been considerably open for such a product from a large company, so there is even the ability to make modifications to and extend this device’s capabilities via USB. For example, you might want to build an extension that is a milk jug weight sensor. When this sensor is active, your refrigerator can alert you when you are running low on milk.

The commercial availability of a refrigerator equipped with Ubuntu opens up a wealth of opportunities to extend the functionality of such appliances. This is only the beginning—just imagine what might emerge next!

Robots When you hear the word “robot,” you might imagine a small person-shaped machine or perhaps a mechanized assembly line. More prosaically, robots can be found in an enormous number of venues today. From surgery to mining to military operations, robots are increasingly doing jobs that are either unsatisfying or unsafe for humans to perform.

Naturally, a robot has to run software—and this is precisely where Ubuntu comes in. Released in 2015, the first publicly showcased Ubuntu-based robot was the Erle Spider. This walking toy runs with an ARM-based hardware board with Snappy Ubuntu Core and is controlled by a joystick. The toy is open source, so you can build your own applications for it. In the future, perhaps we’ll see some interesting work coming out of it.

Another early device is Mycroft (Figure 10-3), an artificial intelligence device that is intended to connect to all your other appliances and make your life easier. It begins with simple reporting tasks such as giving the weather, reminders, or alarms, but can also set your thermostat to a specific temperature or dim your lights. The Mycroft project was crowdfunded (just like the Ubuntu Edge), but reached its goal (unlike the ill-fated Ubuntu Edge). Based on Snappy Ubuntu Core, Mycroft demonstrates how we want to see the Internet of Things work—that is, one device, linked to others over the Internet, helping you with your daily duties.

Image

Figure 10-3 Mycroft device, based on Snappy Ubuntu Core

As these types of Ubuntu-based devices continue to reach the market and developers considering using Snappy Ubuntu Core for a base, it bears noting that one of the major advantages of devices using Snappy Ubuntu Core is the use of the same operating system image across all devices. Every time Canonical puts out a new version of the operating system, any of those devices could be updated to use it. Given recent headlines about security vulnerabilities and the number of out-of-date and insecure IoT devices proliferating in the wild, this consistency is a valuable asset to anyone seeking to develop and run a device securely.

The Cloud

Snappy Ubuntu Core is also available for servers running in the cloud. With a focus on containers, its slim initial image and transactional updates allow for a complementary solution for these non-local resources. Cloud servers tend to be ephemeral, easily replaced by identical servers, and readily scaled up and down as demand dictates. The small size of Snappy Ubuntu Core lends itself well to this environment and has the potential to make automation based on these cloud images even easier. The diff-style approach, which relies on incremental updates of packages rather than full downloads of packages, also helps with the speed of updates to deployments.

Security also plays an important role in the cloud. Given how easy it is to create Snaps, third parties can readily make packages themselves and update those packages in a timely manner. As a consequence, they need not rely upon a skilled Debian packager they’ve hired or found in the community to do the work for them; rather, the third parties can handle these tasks themselves. Since the main archive is the only one officially supported by the Ubuntu Security Team, we envision a future where users may be less likely to use an older version of software included in the Universe repository and beyond that may not have security fixes because it was too difficult to make that package available. If the implementation of Snaps continues on its present path, then it should be possible to ensure significant isolation of applications from one another and thereby avoid problems with the operating system as well. This protection comes at the expense of larger package sizes, however: Libraries are not shared, but rather bundled in. In addition, it means that applications are no longer required to use the version of a library that is in a repository. Finally, Snaps embody the concept of a known state, since they are largely read-only. In turn, it is easy to determine whether your system has been tampered with. Undoubtedly, audit tools will begin to pop up in the near future to assist with making this determination.

The Future of the Ubuntu Desktop

Given the proliferation of devices that use Snaps rather than Debian packages, you might be wondering when and if Snaps are coming to your desktop. As mentioned earlier in the chapter, the 16.04 release was the first to offer a preview of how this convergence would work. The 16.04 Ubuntu release continues to support the presence of Ubuntu on desktops and servers built with Debian-based packages, but also reserves a segment (“dimension”) of the system specifically for Snaps. Thus, the same security seen in the devices discussed in this chapter is available on the desktop in the form of read-only system images and apps as sandboxed Snaps. These Snaps are available for installation through the GNOME Software Center, which has been equipped for this release to support them. Snaps are not yet central to the operation of an Ubuntu Desktop, but may be a good solution for applications that are subject to frequent updates and take large amounts of time to package for the archives, or apps that developers wish to offer on an alternative channel. Time will tell which kinds of applications end up as Snaps and which remain in the traditional Debian-based repositories. Looking further into the future, the vision is to have something like a Snappy Ubuntu Personal version that is built with a focus on using Snaps throughout the system.

Summary

Ubuntu is no longer restricted to the confines of desktops, laptops, and servers: Ubuntu-driven devices are starting to make their way into every nook and cranny of our lives. Smartphones are central to many things we do every day, and Ubuntu-based phones are making great strides as evidenced by the multiple well-received commercial launches of Ubuntu devices. Whether it be an Ubuntu-powered smartphone, a smart refrigerator, or a robot that can carry your glass back into the kitchen, the technology used in all of these products promises to pave the way to a better Ubuntu.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.135.206.254