Palm's new webOS and its accompanying toolchain provide a strong testimony to the role Linux can play in the mobile arena.
Making an Impact
From my view in the cheap seats, Palm has come out swinging with its new mobile operating system, webOS. The platform is “connected” and targets the sweet spot of a mobile consumer or professional who loves powerful simplicity, though one could make a strong argument that webOS comes up a bit short as a gaming device — for now. In many ways the webOS is simply “Palm-like” — hearkening back to the days when our expectations for a mobile device were formed by the popular Palm Pilot. Strong on usability, the webOS integrates multiple accounts, calendars and social media such as Exchange, Google, GMail, and FaceBook to work the way you do. Do you have multiple monitors on your desk at work (or home?) — if you’re like me you very well do. In fact, I have two monitors at home and at the office I’ve got two external monitors — one for my Dell laptop and one for my MacBook.
We live in an age where multiple inputs are common place, content is king and notification-driven messaging is the norm. Why do we think that our mobile experience should be different? I’m thinking it really isn’t though we’ve been constrained to what our mobile devices can deliver. webOS supports a paradigm very similar to the multi-monitor world with its easy to navigate “deck of cards” approach. It delivers on this multi-tasking need but without the noise and obstacles of a traditional Windows mobile device where it seems as though you click and click forever to accomplish even something simple. With webOS, Palm has brought the “good” of how we work on the desktop but left the headaches behind. Have a look at this image of webOS running three applications: Google Maps, Messaging client, and the mobile PIM staple the “honey-do list”.
That’s the way we work — multiple, collaborative inputs. When we speak of collaboration, we often think of working with others, you know: GotoMeeting, Livemeeting, LiveOffice, Google Docs, etc. — and to be sure, that is the most telling meaning of the word when we constrain our focus to just techie things. However we often live and work “collaboratively” all on our own with the various inputs and interests that dominate our time, keep us informed and enable us to keep on track. My calender tells me this column is due a few days ago…, and I have a presentation this morning and a flight tomorrow. My RSS reader keeps me updated on a handful items of interest and people are connecting to me on FaceBook for professional areas of interest because they didn’t have my email address.
Of course there is always email and the audio book I just listened to during my road trip to Silicon Valley — much more profitable way to spend time than watching television by the way. There is a mix of multi-person and individual “collaboration” in there. webOS moves the mobile experience closer to the way we really work. OK, perhaps only the way I work, but perhaps you can relate to some of it.
But what about other platforms, don’t they offer this stuff too? Sure, all of the major mobile platforms have many of the features of the webOS. The iPhone is popular because it is cool (and let’s admit it, peer pressure doesn’t end in grade school), it is simple-stupid easy to use, and it has lots of applications, satisfying the tastes of many. I knew it was a hit when my wife sent me a picture of the kids from a restaurant — and accomplished this feat without help from my kids, or so the story goes. My uncle has one — and my aunt even has an iPhone. And they don’t ask me for tech support any longer. Yes, finally!
The webOS user interface offers that same kind of simplicity, but also brings the power of multiple applications, notifications and asynchronous connectivity — something the iPhone cannot (or won’t?) deliver. Android’s user interface is also easy to use, and while arguably in flux as the platform matures, at times I feel as though Android leans more towards the “click and clack” — perhaps because there is simply so much in Android to contain it to a few swipes — but rather I think the “deck of cards” approach taken by webOS is superior. However you feel about iPhone or Android, the webOS gets it and at the end of the day webOS presents itself well and certainly holds its own with these other platforms. For sure it is not the right device for everyone, but I think they’ve hit the sweet spot between ease of use and fitting the way we work and play. OK, so now that I’ve gone on and on about how cool the webOS platform is, where does Linux come to play?
Palm webOS, It’s Not Just Android Any Longer
While Android has enjoyed the lime-light of being the “open source, linux based” mobile platform — and it is all of that and more, the Palm webOS is heavily invested in Linux technology and deserves some attention not only on its merits as a viable mobile platform, but also as a demonstration of a for-profit company making use of open source technologies. I am no wizard when it comes to deciphering the differences between the various open source licensing options so I’ll refrain from commenting on which license they are using, why they are using it, or how well they’re doing as an open source net-izen. I simply haven’t taken the time to research those things and candidly my focus is elsewhere. What I can see is that webOS is built upon Linux, webkit and many other open source technologies that are of interest to many. The features that make webOS a solid platform are enabled by a strong foundation and innovative, open source technology.
The development environment for webOS centers around Virtual Box from Sun, an open source Virtual Machine technology which hosts the webOS. When the emulator is running you can ssh into it and navigate the file system. You can even edit files with vi! I did it just because I could. Here is a quick view into the belly of the emulator. Note that I believe the same thing can be done with a real Palm Pre which has been put into development mode:
login as: root
diskcache html5-databases webimagecache
root@qemux86:/var/home/root# cd /
root@qemux86:/# ls -l
drwxr-xr-x 2 root root 1024 Jul 7 16:36 bin
drwxr-xr-x 2 root root 1024 Jul 7 16:36 boot
drwxr-xr-x 11 root root 3000 Jul 27 01:36 dev
drwxr-xr-x 45 root root 2048 Jul 7 18:25 etc
drwxr-xr-x 2 root root 1024 Jul 7 16:34 home
drwxr-xr-x 4 root root 2048 Jul 7 16:24 lib
drwx------ 2 root root 20971520 Jul 7 16:36 lost+found
-rw-r--r-- 1 root root 1319876 Jul 7 16:36 md5sums
drwxr-xr-x 11 root root 1024 Jul 7 16:34 media
drwxr-xr-x 2 root root 1024 Jul 7 16:34 mnt
dr-xr-xr-x 64 root root 0 Jul 27 01:35 proc
drwxr-xr-x 3 root root 3072 Jul 7 18:25 sbin
drwxr-xr-x 11 root root 0 Jul 27 01:35 sys
drwxrwxrwt 8 root root 1024 Jul 27 06:57 tmp
drwxr-xr-x 11 root root 1024 Jul 7 15:21 usr
drwxrwxr-x 21 root root 1024 Jul 26 14:55 var
We can even look at a list of running processes:
root@qemux86:/# ps -aef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 05:35 ? 00:00:02 /sbin/upstart
root 2 0 0 05:35 ? 00:00:00 [kthreadd]
root 3 2 0 05:35 ? 00:00:00 [migration/0]
root 4 2 0 05:35 ? 00:00:01 [ksoftirqd/0]
root 5 2 0 05:35 ? 00:00:04 [events/0]
root 6 2 0 05:35 ? 00:00:00 [khelper]
root 64 2 0 05:35 ? 00:00:00 [kblockd/0]
root 66 2 0 05:35 ? 00:00:00 [kacpid]
root 67 2 0 05:35 ? 00:00:00 [kacpi_notify]
root 104 2 0 05:35 ? 00:00:00 [cqueue]
root 108 2 0 05:35 ? 00:00:00 [ksuspend_usbd]
root 114 2 0 05:35 ? 00:00:00 [khubd]
root 117 2 0 05:35 ? 00:00:00 [kseriod]
root 149 2 0 05:35 ? 00:00:00 [pdflush]
root 150 2 0 05:35 ? 00:00:00 [pdflush]
root 151 2 0 05:35 ? 00:00:00 [kswapd0]
root 152 2 0 05:35 ? 00:00:00 [aio/0]
root 153 2 0 05:35 ? 00:00:00 [nfsiod]
root 373 2 0 05:35 ? 00:00:00 [rpciod/0]
root 377 2 0 05:35 ? 00:00:02 [kjournald]
root 407 1 0 05:35 ? 00:00:00 udevd --daemon
root 755 2 0 05:35 ? 00:00:00 [kpsmoused]
root 815 1 0 05:35 ? 00:00:00 dhclient
root 927 1 0 05:35 ? 00:00:00 /usr/bin/pmsyslogd -z -f 6 -m
root 973 1 0 05:36 ? 00:00:04 /usr/bin/dbus-daemon --fork --system
root 979 1 0 05:36 ? 00:00:00 /usr/bin/dbus-daemon --fork --session
root 981 1 0 05:36 ? 00:00:00 /usr/bin/PmNetConfigManager
root 982 1 0 05:36 ? 00:00:00 /usr/bin/luna-prefs-service
root 983 1 0 05:36 ? 00:00:00 /bin/sh -e -c ? # Current plan is that the d
root 985 1 3 05:36 ? 00:03:30 /sbin/novacomd --connect-ip 10.0.2.2
root 987 983 0 05:36 ? 00:00:00 /usr/sbin/dropbear -F
root 992 1 0 05:36 ? 00:00:03 /usr/bin/hidd -v -f /etc/hidd/HidPluginsVbox.xm
root 997 1 0 05:36 ? 00:00:00 /usr/bin/PDFService
root 998 1 0 05:36 ? 00:00:00 /usr/bin/OfficeService
root 999 1 0 05:36 ? 00:00:41 /usr/bin/BrowserServer
root 1004 1 0 05:36 ? 00:00:02 /usr/bin/vboxadd-timesync
root 1010 1 0 05:36 ? 00:00:00 /usr/bin/PmConnectionManager
root 1011 1 0 05:36 ? 00:00:12 /usr/lib/jvm/java-1.5-palm/bin/java -Xexact -m
root 1013 1 0 05:36 ? 00:00:00 /usr/bin/LunaSysService
root 1016 1 0 05:36 ? 00:00:00 /usr/bin/extractfs -f /var/luna/data/extractfs
root 1017 1 0 05:36 ? 00:00:00 /usr/bin/fileindexer
root 1026 1 0 05:36 ? 00:00:43 /usr/bin/LunaSysMgr
root 1028 1 0 05:36 ? 00:00:00 /usr/bin/pubsubservice
root 1072 1 0 05:36 ? 00:00:02 /usr/sbin/powerd
root 1081 1 0 05:36 ? 00:00:00 /usr/bin/dnsmasq -d -C /etc/dnsmasq.palm.conf
root 1178 1 0 05:36 ? 00:00:00 /usr/bin/PmWsfDaemon -c /etc/til.d/tilwsfcdma.c
root 1181 1 0 05:36 ? 00:00:00 /usr/bin/pmradiosimulator 6260
root 1246 987 0 05:49 ? 00:00:01 /usr/sbin/dropbear -F
root 1247 1246 0 05:49 pts/0 00:00:00 -sh
root 1271 1 0 06:02 ? 00:00:00 /usr/bin/contextupload
root 1417 1247 0 07:04 pts/0 00:00:00 ps -aef
I have even rebooted the device by running /usr/bin/reboot! If you have the opportunity take some time to whirl around the file system — its really quite interesting to see how things are wired together.
WebKit is the OS?
We have recently heard that Google wants to launch an operating system which is essentially Chrome, or “just a browser”. Well, webOS has already taken an interesting approach to incorporating the browser into the lifeblood of the operating system — but don’t run off the EU and file an anti-trust lawsuit just yet. The growing trend in software development has been moving applications off of the desktop and into the browser. Call it cloud based if you want — it doesn’t matter.
The webOS platform is young and only offers a few free software apps at present, howver a quick run-down of the available applications demonstrates how well the webOS can keep a user informed and connected with the world around you. Will it be enough to make an impact with the masses, draw developers and thousands of applications and ultimately sell millions of handsets? Time will tell, as it always does. But I can say this — the platform is impressive, the approach innovative and the technology is — well, its built on Linux and other open source technologies.