With the recent introduction of Ubuntu Touch a very interesting change of strategy is emerging for Canonical.
As Phoronix and others have discovered, Ubuntu Phone and Touch are using SurfaceFlinger as their compositor. SurfaceFlinger uses OpenGL ES to render applications screens/windows in a hardware accelerated way using the OpenGL driver of the GPU directly.
Now, Canonical is promising a completely integrated experience for Ubuntu 14.04 which will run Phone, Touch, TV and Desktop applications in one common GUI environment. How will they be able to fulfill their promise for Linux desktop applications currently running on Xorg?
So far, everyone has believed that the Ubuntu desktop is migrating from Xorg to Wayland. This migration has been going so slow that there is actually no visible sign of happening any time soon. It seems that Canonical has slightly changed the “to” part of their migration plans. They are not moving to Wayland, they are moving to SurfaceFlinger.
I, for one, think that this is a brilliant idea.
Compared to Android’s SurfaceFlinger, Wayland has not much appeal from the “possible benefits” point of view. SurfaceFlinger is developed by Google and is already deployed on countless Android devices. It has a sizable amount of developers working on it and its future is certain as long as Android is with us (which is pretty likely given its current market share and trends). Migration to Wayland hasn’t started in earnest so there would not be much effort thrown out of the window.
With the recent merging of the Android and the mainline Linux kernels, porting Linux desktops to Android hardware has already become somewhat easier. Wifi, Bluetooth and other hardware components can be accessed through the Android kernel released by the producer of the SOC/board. The biggest remaining problems are making Xorg and audio working. Xorg is used by all desktop applications while audio is used by only some (media players, screen-capture apps…etc). Xorg seems to be a fairly big problem because Android hw producers usually don’t provide X drivers at all and that makes the porting effort a show-stopper for hardware which otherwise run Android very well.
An Ubuntu desktop running on SurfaceFlinger would be a much easier subject for porting to common Android hardware compared to the current situation (as the quickly growing number of devices supporting Ubuntu Touch demonstrates this spectacularly). OpenGL ES driver comes with the Android kernel, released by the hw manufacturer, so SurfaceFlinger works right-away.
The most important part of the migration to Wayland has been the GTK and Qt backend implementations. These can also be created relatively quickly for SurfaceFlinger so 90% of the standard Linux apps would display on it right away (Qt may already has Android/SurfaceFlinger support based on their Git repository)
OK, but SurfaceFlinger is only one part of the problem, what about the rest?
It is very much possible that Canonical/Ubuntu is planning to migrate heavily to Android backend services (not only SurfaceFlinger) in order to take advantage of the huge popularity of Android among the hardware manufacturers.
Possibly, a wrapper may be created for the PulseAudio API to execute sound services with AudioFlinger. The opposite was deemed possible by one of the developers of PulseAudio, so it is certainly an option. This would make the typical audio-using Linux desktop application work on top of Android’s AudioFlinger on a stock Android kernel released by the SOC/board manufacturer.
Other Android services may also be targeted in a similar way. Hardware accelerated video playing would be a notable example but acceleration sensor, camera and GPS services would also become easy accessible for traditional Linux applications.
With such a services-migration completed, one could do a mostly complete Ubuntu port in a matter of days to Android hardware and the required skills would be way-fewer than they are now. As a result, Ubuntu would be available for almost every hardware which supports Android. Some of the ports would be done by Canonical (Nexus devices) and most of them by the community (with the Cyanogen community doing the heavy lifting in many cases).
I think this is a good strategy since it brings Linux desktop applications to commodity Android hardware. Personally, I don’t care what backend services allow my applications to run as long as they do it efficiently and without (many) bugs.
Closing the gap between Android technologies and the Linux desktop would allow the latter to stay competitive and make an integrated experience possible. Linux desktops would eventually become capable of running Android applications (Dalvik would be just another Java-like VM, next to OpenJDK and Snoracle Java) Also, Linux desktop applications may become able to run on Android as first-class citizens (by packaging the necessary wrapper libraries to SurfaceFlinger and others).
Why do I think this is a necessity?
It is widely rumored that the next major version of Android will introduce some kind of desktop environment for keyboard/mouse work. This would allow Android to start shipping on desktop PCs. Given the weight of Google, I imagine that PC vendors would immediately start selling x86/PC hardware with Android. They already do it with ChromeOS which is much more limited than Android, so a desktop-toting Android version would easily beat that in functionality (huge number of apps and an ecosystem rapidly growing up to the weight that of Windows).
In an environment like that, desktop Linux would rapidly loose its remaining competitive advantage and very soon the desktop would be dominated by Android alone (only in the Linux camp, not meaning Windows, although I think that it would eventually become a strong Windows-competitor). If desktop Linux is as easy to port to any hardware as Android and runs Android apps next to traditional Linux apps, the competitive advantage remains.
It is way too early to tell if the above is the plan of Canonical but using SurfaceFlinger points to this direction. I would definitely like to see Ubuntu and other desktop Linuxes on every possible Android devices.
Soon after the article had been published, Canonical announced the development of their own compositor (Mir) and declared SurfaceFlinger as a component to be removed from the Ubuntu phablet stack. This mostly invalidates the assumption on their strategy. If Mir will be able to work with binary OpenGL ES drivers of GPU producers, that will probably make Ubuntu easier to port but definitely not as easy as an OS heavily based on Android technologies.
I believe that the current market trends make Canonical’s Ubuntu for Android project the most important development in the recent history of Linux.
Desktop Linux is slowly gaining market share but its advancement is excruciatingly slow. The desktop itself is loosing market share to mobile operating systems like Android and iOS primarily because Internet usage is shifting towards mobile devices. A lot of people use their mobile phone as their primary computing device and mobile phone hw is developing leaps and bounds to serve these use-cases (bigger screens, quad-core processors…etc).
Due to its touch-oriented, mobile-centric features + Google’s strong push, Android is rapidly expanding its market share among the mobile operating systems and is the most successful Linux distribution ever.
Ubuntu for Android (UfA)
Ubuntu for Android blends Android and Ubuntu in the perfect manner. Ubuntu and Android share the same Linux kernel instance so there is no dual-booting, they run in parallel. When the need arises, the user can switch to the desktop interface of Ubuntu for productive work, typically when a mouse and keyboard gets attached to the device (via a docking station, a lapdock or simply a bluetooth keyboard/mouse)
The two operating systems are completely synergistic. Some examples:
- Ubuntu is capable of using the databases of Android (e.g. uses Android’s contact database in the email software)
- Ubuntu uses Android’s network management
- You keep all of your touch applications and use them on the Android interface but you also have the full desktop arsenal when you switch to Desktop Mode
- Android’s touch applications can also be displayed on Ubuntu’s desktop interface (in windows) and you can use them with keyboard and mouse
Why Android needs Ubuntu and the Linux desktop:
Android is heavily touch oriented and cannot very well serve desktop-oriented productive use-cases (like editing a spreadsheet) even though ARM hardware is now absolutely capable to make a phone or a smartbook a primary computer.
Desktop Mode is important in order to make a mobile device a no-compromise, primary computing solution. Today’s touch-interfaces alone can only serve content consumption.
Current Android office suites are no match for LibreOffice and the touch interface in general is no match for the Desktop when productive work is to be done. Ubuntu includes a lot of other powerful desktop productivity software in their repositories. It provides the full spectrum of sophisticated software like GIMP, Open/LibreOffice, Dia, full-blown Java applications like MindCraft, SweetHome3D, TimeslotTracker, JED, Azureus…etc. Full-featured browsing with Firefox (including plugins like AdBlock), proper, full-blown email client like Thunderbird…etc.
Desktop Mode is a weapon in the mobile OS wars and it would be a key feature against WinRT and iOS. WinRT will have no meaningful Desktop Mode but Apple may decide to migrate desktop features to iOS (from OS X). Since Apple’s new strategy of keeping older iOS devices on the market is very successful, Android needs further innovation and distinguishing features. This is a very good article which has similar arguments as my own.
Why Linux/Ubuntu/Canonical need Android?
Android is still spreading at an impressive rate. Apart from mobile phones, tablets and tablet/smartbook hybrids like the Transformer Prime, it gets into smart-TVs, set-top-boxes (Mele A1000) and other devices.
Android is a well-known consumer brand now, much-much stronger than Ubuntu or Linux in general. A lot of hardware manufacturers are now releasing their devices with Android because that immediately gives market recognition and a huge selection of readily available apps.
UfA has the potential for bringing a lot of users to Ubuntu/Linux and this may be the best way to achieve a much higher market penetration. Canonical may as well stop developing the standalone desktop and still have a growing penetration if UfA becomes successful.
There is a set of problems ahead for UfA and Canonical.
Canonical is currently focusing to dockable mobile phones as the sole target for UfA. Although it is true that mobile phones are the highest-volume Android devices at the moment, they are not necessarily the best devices for expressing the synergy between the two operating systems. Tablet/smartbook hybrids like the Transformer Prime are a more natural target since they already have a sufficiently big screen attached and keyboard/mouse built-in the docking station part of the device. For using UfA with a mobile phone (with acceptable performance) you would need a state-of-the art mobile phone and extra accessories (like a docking station). Docking stations are not widespread at all, you practically cannot buy them with the exception of some phone models like the Atrix. With the Transformer Prime+its dock, you immediately have everything you need to use UfA, no extra expenses.
Ubuntu for Android is practically a closed-source product at the moment and it is not available for the general public. The reasoning behind this is somewhat understandable since installing UfA into an Android instance is a technically complex task and requires rooting the device + a lot of hw-specific settings and configurations (e.g. the X Server). It is really not like selecting an app from Google Play and pushing the Install button. For this reason, Canonical decided that it will try to market UfA exclusively through OEM partnerships so UfA will arrive pre-installed with your device or not at all.
The biggest problem with the above is that it limits UfA adoption severely. Since UfA was announced and presented at the beginning of this year, we should have already heard about a lot of announcements by Canonical and device manufacturers. With the obvious lack of those announcements, we have to assume that there are not enough OEMs which recognize the importance and distinguishing features of UfA. I believe this may be the problem of chicken & egg. First, users must see UfA in action in order to recognize that they need this feature in their next phone/tablet/smartbook/set-top-box and demand it from the manufacturers. The closed-source nature of UfA also makes it impossible for the Linux community to contribute.
I strongly suggest that Canonical select some successful, high-volume mobile devices which are already on the market and release UfA for them as after-market mods. My first target would be the Transformer Prime but the HTC One X and the Samsung Galaxy S3 may also be good targets.
Partnering with the Cyanogen Mod team may be a good way to do this since they already support a wide range of devices (they are especially strong with HTC models) and established themselves as the prime producers of after-market ROMs. The cooperation may give birth to a special Cyanogen edition (let’s call it Cyanobuntu) in order to distinguish the base Cyanogen ROMs from the Ubuntu-extended editions.
Once Cyanobuntu gets sufficiently well known on a set of devices, OEMs may be much more easier to persuade about the advantages of Ubuntu for Android.
Time is of the essence
Ubuntu for Android started off at a very good time but the competition is not standing in one place either. WinRT and Windows8 (for x86) tablets are coming this fall and may prove strong contenders in the mobile computing segment. Windows8 will have both an unlimited Desktop Mode and the Metro touch interface. WinRT will have no meaningful Desktop Mode but it will ship with MS Office so it will have appeal for a set of users.
There is no time to loose, Android and Ubuntu must be ready when Windows 8 makes it début.
Many have predicted, that tablets will replace netbooks completely. While I cannot agree with this absolute statement, I admit that tablets serve a set of use-cases better than netbooks. The touch-interface and low power-consumption of tablets make content consumption more comfortable (e.g. no heating, no fan-noise, longer battery runtime, less weight to lug around…etc).
That said, there are areas where tablets just cannot give enough. For example, any kind of work which requires more serious input while being mobile. The problem of efficient input can be solved with accessories like a bluetooth mouse and keyboard. Usually, when you prepare your tablet for extra-home journeys, you buy a case which also hosts the keyboard.
If we stop here for a moment, we may realize that a tablet in a foldable bluetooth keyboard case is actually a modular netbook (or a smartbook if you like) which is capable of loosing its keyboard for added mobility. This realization, however, is imprecise because the typical netbook software stack is mostly missing: a full-featured office suite, a browser with your favourite extensions and all of the desktop bells-and-whistles you are used to.
How could we improve on this situation?
In the case of Linux based mobile operating systems like Android, WebOS and MeeGo, the answer is fairly simple: bring back the Desktop Mode as the second work environment besides the touch interface. Desktop Mode may automatically activate when you attach a keyboard or a mouse and runs all of your traditional Linux desktop applications. The user is of course should be allowed to easily switch between touch-mode and desktop mode (preferably with a dedicated hw button)
If you think this as a lunacy, think again. Microsoft has already announced that Windows 8 will have this double nature (the metro UI for touch applications and the desktop for traditional applications).
Some people think that the typical ARM based tablet hardware would not be able to run desktop heavyweights like OpenOffice and Firefox. They are wrong and nothing proves this better than the Ubuntu ports already done for the Toshiba AC100 (a video about it is here). This video clearly demonstrates that Tegra2 level hardware with even 512Mb of RAM (and run from an external SD card) is capable of running these applications with acceptable speed (e.g.: cold startup time of 8 seconds for OpenOffice 3.2 Writer). We can safely say that a HP Touchpad’s dual-core SOC overclocked to 1.7Ghz will run these applications significantly faster from the internal SSD and with 1GB of RAM. An even more powerful, Kal-El (Tegra3) based tablet with 1-2GB of RAM will clearly pass Atom-based netbook performance.
Of course, there have already been attempts for providing the Desktop Mode for Android machines. The Webtop interface of the Motorola Atrix is fundamentally a desktop environment, albeit a very limited one.
As I have suggested recently for the HP Touchpad, I believe that every Linux based mobile OS should provide a lightweight desktop environment and a full complement of desktop applications by default (or at least an extremely easy way to install them). Only this way can they counter the very real advantage a dual-mode Window8 would have.
The Touchpad has been discontinued by HP when the company has changed its business strategy recently (getting rid of the whole PC business arm).
A lot of people think that this was an absolutely unnecessary and sorely mistaken step, especially in light of the possible revival of the Touchpad after the PC business has been separated. Not that the Touchpad is a very competitive device in its current form. It has many glaring design mistakes by HP like missing ports (HDMI out, USB host), no expandable storage …etc but it also has many good features like its high-quality IPS-screen, Beats audio system and over-clockable processor.
WebOS also has a huge disadvantage compared to iOS and Android: very few applications, and this seems to be quite a show-stopper in the current situation (a chicken-and-egg problem).
How could HP make this product more successful without resorting to souch brutal fire-sales like the one we have recently seen?
I believe, that HP should exploit one of the big strengths of the core of WebOS: Linux.
WebOS is built on the Linux kernel and it already uses a set of Linux desktop technologies on top of it (Gstreamer, PulseAudio…etc). In a particular sense, it is a heavily customized Linux distribution (distro), like Ubuntu, which is purposefully made incompatible with the grand armada of Linux desktop applications in order to allow applications which use strictly WebOS-only APIs.
The development strategy of allowing WebOS-only applications makes sense, since it ensures a consistent level of user experience (e.g.: all applications are properly touch-oriented) and makes it easy to enhance the foundations of WebOS without breaking applications. However, it locks HP into an uphill battle which seems impossible to win from the current situation.
Therefore, I suggest a change of development strategy, which concurrently allows significantly enhancing the number of applications available for WebOS and makes the system appealing for different use-cases.
The main component of the new strategy would be to allow running full-desktop Linux applications on the Touchpad in a so-called Desktop Mode. This Desktop Mode would automatically activate when WebOS senses a keyboard or mouse attached to the system (only Bluetooth in case of the Touchpad).
Desktop Mode would make it possible to use the TouchPad as a Linux netbook while keeping the touch oriented interface for the tablet-mode. Best of both worlds.
Desktop Mode would be a completely standard, lightweight Linux desktop (e.g: XFCE). and would run the traditional Linux desktop applications and also display the WebOS applications in separate windows. This work environment would not be very different from the Webtop interface of the Motorola Atrix but it would not be such a limited environment. It would be a full-blown, configurable Linux desktop with all of its advantages.
Ideally, you should be able to easily switch back and forth between the Desktop Mode and the Card Interface of WebOS (possibly with a dedicated hw button on new models).
Since Desktop Mode would run every imaginable Linux desktop applications (including Java, Python and even Mono ones), it would make the TouchPad an extremely versatile mobile device. It would be more welcome in the enterprise than its competitors.
The hardware of the TouchPad (dual-core processor clocked at 1.7 Ghz and 1GB RAM) should be absolutely able to handle both Desktop Mode and the Card Interface applications concurrently. Obviously, desktop heavyweights like OpenOffice would open and run slower, but I imagine they would be fast enough to be usable. HP could ship Desktop Mode with lightweight applications (Abiword, Gnumeric…etc) while allowing the easy installation of heavy programs (at your own peril).
The best option for the Desktop Mode would be a chrooted Ubuntu instance because that would mean a very powerful application environment with a lot of readily installable aplications in its repositories (appstore). The WebOS Internals team already ship the X-Server for WebOS, so a well-working Linux desktop is absolutely doable on top of WebOS.
HP could also sell a netbook-kit as an accessory to the Touchbook, which would include a case with a built-in stand and a built-in keyboard. When the TouchPad is in the case and oriented for netbook-mode, the Desktop Mode would automatically activate.
Of course, this solution would not fully compensate the inherent weaknesses of the Touchpad but it would make it more appealing for those people who consider netbooks as usable devices and expect their tablet to be as capable as their predecessors in mobility.
The AC100 is an early attempt from Toshiba to create an ARM based netbook (a smartbook) with Nvidia’s successful Tegra2 chipset.
Although, the AC100 looks like proper hardware design, it became only mildly successful. Some of the reasons may have to do with the primary operating system, Android (see my earlier article about this) but even more can be attributed to the design decisions Toshiba made.
Since these machines are now available in my home country (Hungary) at quite attractive price points (~$250 USD, some people seem to be trying to get rid of it soon after purchase) I can’t help bumping into it all the time. Since I am a gadget fan, I always have my hand trembling seeing those prices and I need to cool myself down before doing some impulse-buy, I regret later.
What could make me click on the “Buy” button?
First of all, 1-2GB of RAM instead of the measly 512MB the AC100 hosts. Why the heck tried Toshiba sell a netbook with 512MB of RAM when ALL of the Atom N450 netbooks seemed to come with 1-2 GB at that time? This amount of RAM would allow to slap Ubuntu onto the machine and not worry about running out of memory when loading up OpenOffice. Ubuntu has been demonstrated on the AC100 and even looks snappy. (see this site dedicated to Ubuntu on the AC100). Toshiba could easily put 2GB of RAM into the machine without major cost-increase.
Desktop OS and/or Android
Putting 1-2GB of RAM into the AC100 would open the gate for using a proper, netbook-oriented desktop OS which can take advantage of the form-factor. They should use Ubuntu, since that could be fixed up on this hardware in no time (especially if they purchase some consultancy from Canonical).
I don’t think that Android needs to stay on the machine but if Toshiba still thinks it is such a good idea for any user-group, they could make the AC100 dual-boot, or even better, run both OSes in parallel (2GB of RAM would make this absolutely possible). Android would be the light-and-easy OS on the device but the user could any time switch to a full Ubuntu desktop with an Android launcher icon and start using OpenOffice or other decent desktop software. The paravirtualization developed by B-labs would be an instant solution for this problem and would future proof the machine for a possible Windows8 scenario later.
The 8 hour runtime of the AC100 is decent enough but more battery-time is always welcome. The enclosure has a LOT of free/empty space under the keyboard due to the ultra-compact nature of Tegra2 and its supporting circuitry. Toshiba should again take advantage of the form-factor and add one or more extra battery docking bays under the keyboard which could extend the runtime to 16-24 hours. (Admittedly, they would make the unit weight much more but since these batteries would be optional, this decision would be up to the user. A 24-hour runtime with a 3-battery arrangement would make the AC100 extremely appealing for a large-set of users. It would be acceptable that the batteries are charged in series (so the recharge process is lengthier) so that Toshiba doesn’t have to switch to a more expensive power supply. (Although the power supply issue is probably not a serious cost factor).
Of course, there would be a lot of things to be improved (more USB ports, higher-resolution display…etc) but I tried to draw up things which require smaller redesign so that an improved version could be implemented faster.
I believe the AC100 line could be made really successful and Toshiba should take steps to make this happen.
According to this article, Microsoft is pestering Intel to produce low-power Atom-based, x86 processors for server machines.
I am wondering why they would force this direction. Do they know server requirements better than Intel? Why do they think that low-power x86 server chips are so important?
I believe the answer comes from the following factors:
- Power efficiency is becoming more and more important in the server room. Intel processors (Microsoft’s home turf) have less than stellar watt/performance efficiency but they are the best in raw performance / cores.
- ARM provides the best watt/performance in general computing (far far better than Intel x86) and ARM is seemingly scalable to the server performance range (with multiple cores and coming to 28nm high-performance production processes)
- Microsoft doesn’t have a server operating system presence on the ARM architecture. Linux on the other hand runs on ARM, has optimized distributions for ARM SOCs.
- ARM licensees are actively pursuing server chips (Nvidia, Nufront…etc)
If 4-16 core ARM server processors appear in the near future, servers built with them would have superior watt/performance ratios so they may quickly gain acceptance.
These systems would be perfectly served by Linux distributions (Red Hat, Ubuntu, Suse) and Microsoft could not offer anything for them. Linux is already the strongest player in the datacenter and this would grow its market share considerably while reducing the market-share of Windows simultaniously.
Even if Microsoft manages to create a stable Win8 server OS solution with all the required additional Windows sw (database systems, application servers…etc) on ARM in 2-3 years, it will be pretty much too late. They will need to play catch-up with Linux. The Microsoft Win8 solution will have to sell for peanuts to be in the game which would make it very much unprofitable in the short-medium run. Moreover, as x86 server market share goes down, their x86 Windows Server OS profits also go down.
All in all: If ARM processors appear in the market in the near future, Microsoft may face a steep uphill battle in the datacenter. If x86 based Atom server can slow down the onslaught of ARM servers, Microsoft may gain enough time to come up with a Win8/ARM server solution and avoid serious loss of server market-share.
Reading about the likely launch of Tegra3 at Mobile World Congress 2011 and seeing this video, one cannot help wondering how big a mistake Intel made when denied Atom hardware interfaces from Nvidia some time ago. Doing that, it practically forced Nvidia to abandon mobile-x86 solutions and pour all of its resources into Tegra/ARM development.
Nvidia has recently announced its Project Denver effort which also shows how seriously the graphics company wants to transform into an all-out computer technology company shipping mobile, desktop and server processors as well not only graphics solutions.
As a result, Intel will have to face not only AMD in the desktop/server segment but a big-name ARM technologist as well. (And several smaller ones like Nufront)
Tegra3 is not well known yet, but some guesses can be made:
- Quad-core Cortex-A9 symmetric multi processing for generic application code execution
- Likely at least 1Ghz top, possible up to 1.5 Ghz, dynamic frequency scaling and individual core-power-off
- Geforce 8 or 9 level graphics core, likely with high-profile 1080p playback and encoding
- Support for Linux and Android
- Possibly produced on a <40nm process (GlobalFoundries 28nm anyone?)
If Nvidia can produce this on the GlobalFoundries 28nm process (or similar), we can be quite certain that the new SOC will still be viable for smartphones and will be an extremely appealing solution for tablets and Motorola Atrix-like phone/netbook/tablet modular solutions.
It will make Moorestown Atoms a very-very hard sell for Intel in the mobile phone and tablet space since the computing-power advantage of Moorestown is gone and Tegra3 will be much more efficient (being an all-out ARM solution). Android-centered OEMs will most likely go with ARM anyway and if there is a big-name producer like Nvidia with a powerful solution for their premium products, they will certainly pick that up instead of the Intel gear.
And this is only the mobile space. When Project Denver from Nvidia and Nufront start selling ARM based server SOCs, Intel will have to fight a battle in the datacenter which was absolutely home-turf so far.
All of this may not have happened at all (or would have happened years later, giving Moorestown a chance) if Intel had not chosen to deny Nvidia the hardware interfaces for building Ion2. They switched a huge threat and possible cut-throat competition in every computing segment for a very short-term gain in one segment.
Was it worth it Intel?