With the advent of $50-100 mini-PCs it has become painfully obvious that the low-cost computing market is shifting to Android. The mini-PC category is comprised of TV-sticks (MK802), set-top-boxes (MELE A1000G) and gaming consoles (Ouya).
All of these devices ship with Android mainly due to the huge application selection and SOC manufacturers support. According to the latest estimates, devices in this category already sell in the tens of millions range (per year) which is not only impressive but clearly shows a trend. Due to the fact that the hardware strength of these mini-PCs have quadrupled in a very short time-period, we can safely say that they will very soon compete with desktops for a set of roles (improvement from 1Ghz Cortes-A8 with 512MB RAM to quad-core Cortex-A9 with 2GB of RAM in one single year).
Where does this leave desktop-Linux?
Well, without serious adaptation, desktop Linuxes would not be able to compete in this segment mainly because SOC vendors don’t support desktop-Linux technologies (like Xorg). Canonical has already realized this and started moving to the right direction. Ubuntu has one of the best ARM support (I would say it IS the best) and its new ARM versions will be able to run on commodity Android hardware, mostly thanks to the design decision of Mir running on top of stock Android GPU drivers. Others also plan with this in mind (see the recent Wayland-port to stock Android drivers).
While Canonical has done the most necessary steps, they still refuse to support running Android applications which I think is a really bad decision. I don’t think that Canonical/Ubuntu can create a sufficiently strong developer ecosystem which is at least remotely comparable to that of Google/Android. Without this, most of the consumers will never consider replacing Android with Ubuntu on their mini-PCs (or buy a mini-PC with Ubuntu).
I strongly believe that desktop-Linux needs to build on the success of Android. Apart from re-using Android’s hardware support it needs to provide a perfect execution environment for Android applications. This is much-much easier to do than providing Windows compatibility since the two systems are both based on the same Linux kernel and Android sources can be used any time without much constraint.
Due to the extraordinary rate of ARM hardware development, I expect that Android will introduce a desktop-environment soon (this has been rumored for ages) since simply there will be no reason for not entering the desktop space. That will result in a lot of traditional desktop-oriented ISVs to come out with Android versions of their wares. With Intel porting every Android version to x86 right after their release, the new, desktop-capable Android version will gain ground on x86 quickly. I wouldn’t be surprised if, at this point, Adobe’s Photoshop Express for Android gains a lot of desktop-features or a light, Android-desktop-version of Photoshop gets released.
In an environment like this, desktop-Linux can only flourish if it can show extra value and compatibility with Android. Without leveraging the Android app ecosystem (running Android applications) the value proposition seems way too weak to me for the average consumer.
On the other hand, if desktop-Linuxes can run both Android apps and traditional Linux applications as equal citizens, then only the matter of distribution remains. With the added value, these OSes may be more appealing for OEMs, but only if their installation/customization on stock Android hardware is as easy as Android’s itself. With sufficiently strong hardware support and easy installation options a lot of people may decide to upgrade their mini-PCs to desktop-Linux since they would loose nothing but gain access to a set of high-power desktop applications (like Thunderbird and LibreOffice).
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.
Ubuntu for Android (UfA) is a special form of the popular Ubuntu operating system which runs on top of Android so the user can run Anrdoid apps and desktop Linux applications at the same time. It blends desktop Linux with Android in the perfect manner so both touch-oriented and mouse-and-keyboard applications can be used perfectly and in their natural environment.
I strongly believe Ubuntu for Android is a game changer and that Ubuntu and Android badly need each other. See my earlier blog entry about this.
UfA is still nowhere to be seen, even though it was introduced in February, 2012. Canonical (the developer of Ubuntu) wants to distribute UfA exclusively through phone-OEM partnerships. This is understandable but doesn’t seem to be working out since we haven’t heard of any product announcements by now. Considering the usual product development timeframes, this means that we will not see any UfA capable product this year. In general, the rate of product announcements may mean that OEMs don’t buy into the idea of “Android extended by desktop Linux”.
The situation is aggravated by the possible onslaught of WindowsRT devices. If Surface and other WindowsRT devices manage to firmly establish themselves on the market, it will be a much harder fight for Android. Currently, Android is on the top in mobile, so Microsoft needs to fight the uphill battle with WindowsRT. A well timed, well marketed, spectacular innovation like Ubuntu for Android could give Android the fuel to fight WindowsRT. Seeing the recent announcements of WindowsRT devices, it very much looks like that brand-name OEMs have committed themselves to ship both Windows8 and RT devices in number, which hardly means any good for Android or Ubuntu.
Improving on the situation
The biggest problem is that UfA is practically invisible for the average Android user. UfA needs to get into the hands of users in order to generate a widespread need for it (which in turn can make it a requirement for OEMs).
Several Canonical employees have publicly stated that the company will eventually release this integration work as GPL’d open-source projects. Even if they wanted a business advantage by keeping it closed for a while, that advantage is worthless if the business environment becomes much worse due to the delays (OEMs committing to WindowsRT). UfA should be open-sourced immediately in order to form a basis for its distribution.
Partnering with CyanogenMod
CyanogenMod has always been about features. If UfA needs to be distributed by custom-ROMs (until OEMs catch up) the best place for this would be with CyanogenMod. CYM already supports a wide set of phones and tablets and a lot of people venture to use their ROM on a device which doesn’t get proper OEM updates. For example, my HP Touchpad now runs CyanogenMod 10 and I am impressed with the quality of this distribution. Due to the inability of HP, the Touchpad was a very limited device running WebOS (e.g. no hw accelerated video playback unless via a paid app, fairly slow browser…etc). Now, it happily serves the family both as a nimble browsing device and as a video player (YouTube and videos from the home NAS). The power of the Linux community helped to make the TouchPad a worthwhile purchase.
Canonical could easily set up a project which integrates Ubuntu for Android into CyanogenMod for a lot of devices. In order to avoid bloat, the UfA capable device ROMs could ship with an installer application which download and install the necessary extra components and Ubuntu for Android itself. This way, the base Cyanogen ROM could remain small but any user could transform its device into a full Ubuntu desktop when the need arises.
Selling Canonical branded devices with Ubuntu for Android
Since Canonical has practically no OEM partners, it cannot effectively alienate them (as opposed to Microsoft with the Surface) by selling branded hardware. Seeing the headway with OEMs, nobody could blame Canonical if it turned to hardware sales as a means to more effectively distribute Ubuntu to end-users. Canonical doesn’t have to make money on the hardware, the goal is to put out as many running Ubuntu instances as possible which may generate support contracts.
Naturally, I wouldn’t recommend actually building hardware, only customizing already-available, generic products from ODMs.
How about a Android/Ubuntu stick-PC?
Although Canonical seems to be focusing on phones with UfA, the emerging stick-PC category is also very interesting for a set of reasons. First of all, they cost almost nothing, so the volume may be very high (just what Canonical needs). Secondly, these sticks mostly come with only Android support, but fairly common hardware (like Mali400 GPU, Cortex-A9 cores…etc) so customizing their Android distribution with Ubuntu for Android should not be a significant undertaking. Thirdly, they come with fairly strong memory bandwidth so Ubuntu will work much better than on limited phone hardware. I was fairly surprised how fast an Allwinner-A10 based laptop can run Ubuntu so you can imagine the speed we get with a new, RK3066 based stick. Hardware-wise, all Canonical needs to do is having an RK3066 stick customized with the ODM for the targeted use case (2GB of RAM and 8GB of flash should be the baseline).
With sufficient volume, a $100 Ubuntu stick looks doable. That device would run all of the typical Android apps/games (like Angry Birds, ShadowGun…etc), serve as a media-center with XBMC for Android and turn into a full-blown Ubuntu desktop if the user wants to do some serious work (or just needs the known-and-trusted Linux desktop). Such a stick could be used as a “TV smartener” with an RF keyboard/touchpad (including a decent torrent client like Transmission) or a normal desktop PC when combined with a monitor + keyboard and mouse.
Whatever Canonical chooses to do, it needs to be done quickly, since the current, favourable market conditions (e.g. the relative weak position of Microsoft in the mobile segment) may not remain with us indefinitely.
Disclaimer: The following is only speculation but it pretty much resonates with current events.
Based on the events of recent weeks, it very much looks like Microsoft is heading to make Windows a closed ecosystem (a la Apple). They want to make both the hardware and the OS and third-party applications can only be sold with their approval and only through their App Store (with a 30% commission to Microsoft).
What points to this?
1) It is now widely known that Metro applications will only be allowed to get installed through the Microsoft App store. Windows8 RT – the new Windows variant for ARM-based devices – will only run Metro applications. Even on Windows8 x86 – which is supposed to be the more open variant, costing more – you will not be allowed to side-load a Metro app. Windows8 x86 will be able to run traditional desktop apps, which Microsoft now calls “legacy”.
2) Microsoft made an attempt to completely remove support for creating “legacy” desktop applications with their free development tools (Visual Studio). Seeing the outrage, they quickly retreated and promised to leave desktop development tools in VS but the intention was pretty clear: they want to force developers to stop developing desktop apps and only write Metro apps which can be distributed exclusively through Microsoft.
3) The desktop user interface has been made very unappealing (ugly), all of the eye-candy brought to you by Aero has been killed. Microsoft says that this is for a uniform desktop interface between Windows8 x86 and Windows8 RT but it can be easily seen as on other attempt to make the desktop a second-rate citizen which should be phased out. I, for one, doesn’t see any problem with a configurable Aero which runs all features when the hw is strong enough and runs less features when the hw is weak (or battery life is important).
4) Microsoft has come out with the Surface tablet/notebook hybrids and it intends to sell it under their own brand name. This was a cold shower for their current hardware partners (ASUS, Acer,Dell…etc) which have a wide variety of Windows-based products (desktops, laptops, tablets).
5) Game developers/distributors Valve and Blizzard have criticized Windows8 and its newfangled, closed approach. They also fear loosing their distribution market and getting slapped a 30% Microsoft-tax (the rate of Microsoft’s commission when you sell your application through their store).
If this transition is in fact under way, Microsoft obviously needs their hw partners only until the transition is finished and they are ready to ship their devices in volume. (Without this, Windows shipments could collapse prematurely, since partners would start fleeing platform) After this, they will only need “dumb” ODMs since they want to get the majority of the profit on hardware sales as well. When Microsoft is ready, it simply stops selling Windows OEM licences (just like Apple did anno) and all current partners must stop shipping their wares with Windows.
Hw partners will of course suffer deeply since the majority of their profit comes from selling Windows-based devices. They probably see what is going on since, for example, Acer stood up and used very strong words to discourage Microsoft from their course of actions (“This is not something you are good at”, “think twice”…etc) which is pretty unusual between partners. Other hw partners (ASUS, Dell…etc) remain silent but I am fairly sure that their think-tanks are now on afterburner, trying to analyse the situation and possible escape routes.
Now, the situation of Microsoft hw partners is pretty bleak. The second most popular OS, Mac OS X, is not available for them. If Windows OEM editions become unavailable as well, they will only be able to switch to Linux or Android on their laptop/desktop product lines.
How could the big hw producers counter this threat?
1) Using Android (Linux)
Most of the big-name producers already have Android tablets and hybrids in production so hardware wise they could easily step-up the game. However, Android completely lacks a desktop environment which is essential for productive work done with keyboard and mouse so it is currently good for content consumption but not for productive work. It completely lacks high-quality productivity applications and it will take a lot of time by these are created or ported (a proper office suite, Photoshop…etc). It is rumored that Google is preparing a kind of desktop solution with Android 5 but since it is not expected to support standard desktop Linux applications that will not help the productivity-application shortage at all.
2) Using Desktop Linux(es)
The more clever hw producers (like ASUS & Dell) established a Linux-program long ago (ASUS netbooks, Dells older offerings and its new ultrabook…etc) even if the main purpose was only to squeeze Microsoft for lower OEM Windows licence fees. These producers are not completely unprepared but their sales will still suffer greatly if Microsoft decides to move quickly.
The Linux desktop(s) are absolutely ready feature and usability wise. Unity, Gnome3, KDE, MATE and others are all ready for wide-scale deployment. In fact they may prove more familiar to users than the Metro/desktop frankenstein of Windows8. These desktops have been perfected in the recent years and can actually beat the dumbed-down Windows8 desktop in eye-candy and usability.
Hw-related engineering is also not a problem since there are a huge amount of people and companies which have intimate knowledge of the Linux kernel and available for subcontracting. For example, Ubuntu has a fairly strong backing company (Canonical) which has already proven itself for the hw producers (by providing engineering-services for devices coming with Ubuntu). So customizing desktop Linuxes for their hardware and selling them would be no problem at all.
The Linux-desktop is also much stronger in productivity applications than Android. It has LibreOffice, Thunderbird, Evolution and other fairly usable desktop software. In addition, it can run a wide array of Windows desktop applications in Wine.
However, the commercial application ecosystem on the Linux-desktop land is way underdeveloped compared to Windows and that would make Linux-shipping desktops unviable for a lot of people. LibreOffice may do for a lot of people instead of MS Office but the lack of AutoCAD, Photoshop and other productivity applications may be a deal breaker (some of these don’t run in Wine at all or only very old versions).
General hw support has come a long way in recent years but exotic hw is still badly supported. Nothing makes a customer more annoyed than buying a peripheral (say a webcam) which doesn’t work with their Linux desktop. This also needs a lot of work but the most important hw is supported adequetly now (like wifi, , bluetooth sticks, 3G modems…etc).
3) Android and Linux desktop together
A lot of new devices can benefit from a hybrid like Ubuntu for Android. A Transformer Prime with a docking station could use the Android interface when detached and use the desktop interface for productive work when docked. Due to the recent merging of Android and mainline Linux kernels, this route is becoming viable. Even traditional, non-touch desktops could benefit from this arrangements since Android has a lot of small but useful consumer applications. These can run on the desktop in windowed-mode and used with mouse and keyboard just like normal desktop programs.
So, which alternative?
All alternatives are fairly problematic for the producers’ point of view (from the current. Windows-based, status quo) but I believe the best solution is the hybrid model, since it brings together the ecosystems of Android and desktop Linux. But even in this scenario, the relatively underdeveloped state of the commercial application segment may be a show-stopper so I think they need to work in this direction. Some ideas:
First of all, the producers need to orchestrate their Linux efforts in order to solve the problems within acceptable budgets. Since they need solutions very quickly, it may cost them a lot and spreading these costs may make the task more palatable. The efforts also need to be centered on one Linux distribution because the current variation between Linux distros is simply too wide for the hw producers to stomach (also for cost reason). Ubuntu is the obvious choice here since it is specifically developed for consumers in mind and it is the most ahead of partnerships and market recognition. After the commercial Linux ecosystem becomes big enough, other distros will come ahead in any case.
Hardware producers should very quickly set up an organization which has the sole purpose of making the commercial application ecosystem of Linux viable. Normally, this is not their responsibility but now they MUST make this happen or face the consequences of loosing their market completely. The new organization should directly approach major software providers and provide funds for porting efforts where necessary. Some game developers like Valve are already in the process of creating support for Linux but most commercial app developers would not port anything until demand is high enough (chicken-and-egg) so they need some persuasion to port their applications.
If the hw producers can strengthen the commercial Linux application sector sufficiently quick, they can create an escape window for themselves in case Microsoft really wants to follow the Apple-model and lock-down Windows. If this scenario comes about and only Microsoft and Apple remain standing that would be a complete disaster for the current crop of PC harware manufacturers and consumers alike. If Linux/Android can become a viable contender in the desktop/laptop segment that will give way to a huge transformation on the market with Linux market share reaching 20-30% in only a couple of years.
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.
With the recent announcement of Ubuntu for Android we may hope again that full-blown desktop Java applications may become usable on Android devices.
As you may know, Ubuntu for Android will provide a complete desktop environment for Android phones, tablets and smartbooks. The nice thing is that this environment will be pretty much integrated with Android (like network management for the 3G connection and wifi).
The Ubuntu desktop will be able to run not only traditional Linux desktop applications like Open/LibreOffice and GIMP but it will also be able to execute desktop Java applications like TimeSlotTracker, MindCraft, TED and even developer IDEs like Netbeans (at least I don’t see any reason why not).
I have already tested Oracle’s Java SE Embedded on my HP Touchpad (under the WebOS / Ubuntu combo available for it) and I am fairly satisfied with its speed and stability.
I imagine Java SE Embedded from Oracle will be possible to install on Ubuntu for Android aside from the Java implementations available from the repositories (IcedTea and OpenJDK). The Java SE Embedded is downloadable as a standalone installer from Oracle’s Java SE Embedded pages.
It would be nice if Canonical could include an easy way to install the Oracle’s version of Java SE into Ubuntu for Android in order to make it simple for everyone to install Java applications. However, even if this doesn’t happen you will have the option of easily install OpenJDK/IcedTea from the package manager (which should suit most desktop apps) and install the Oracle JRE if the former don’t work well with your apps.
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.
MeeGo is a flavor of Linux, with a similar purpose as Android in the mobile computing space (being a versatile, open-source OS for phones, tablets and other mobile devices).
I root for MeeGo because it has a lot of advantages over Android and iOS:
- More open than Android, the source code repositories can be read by anyone, and anyone can contribute at least patches. Any device manufacturer can take the source code any time and try to slap MeeGo onto its device.
- Has a lot of optimizations for both ARM and x86 (Intel & Nokia cooperation), so it is relatively easy to deploy it on both hardware architecture. (Important for manufacturers.)
- It uses a more standard Linux kernel than Android so it can follow the progress of the Linux kernel much more closely than Android (continuously better device support…etc).
- It is a real, full-blown Linux system. The user interface – while nicely optimized for touch - is based on standard X-Windows technology, so EVERY current Linux software can run on it without major porting work (e.g. Firefox, Open/LibreOffice, Thunderbird). Tablet optimized and non-tablet-optimized software can run next to each other. Of course you need a keyboard and mouse for the non-tablet apps.
- Imagine the Motorola Atrix: Due to the previous point, you wouldn’t need a separate Webtop environment for desktop applications, one, sophisticated shell can handle all applications concurrently. (in the case of the Atrix, the currently shipping Webtop environment is dumbed-down, static, non-extendable Linux desktop which integrates poorly with the concurrently running Android apps)
- Among other technologies, it can run full-blown Java apps as well, not only Flash, like Android. This could be a strong differentiation in an enterprise environment.
- It is absolutely imaginable to run Android apps in the MeeGo environment if the developers decide to support it (Dalvik is just another VM like the Java VM and dual/quad-core ARM Cortex-A9 with 1GB RAM can run as many VMs as you want). This is going to happen on the BlackBerry Playbook, there is no reason for not implementing it in MeeGo.
I believe Nokia has made a HUGE mistake by choosing Microsoft WP7 for its primary platform. MeeGo has a much better chance of becoming a real, multi-vendor OS solution that seamlessly replaces Symbian. It would give as much differentiation for Nokia as WP7 does and it would fit better with the current customer base of Nokia (a lot of which will never buy a WP7 phone).