Symbian OS Architecture Sourcebook/02. The History and Prehistory of Symbian OS

From akaWolf-Wiki
Jump to: navigation, search

2.1 The State of the Art

Symbian OS reached market for the first time towards the end of 2000, with the release of the Ericsson R380 mobile phone in November and the announcement almost immediately afterwards of the Nokia 9210 Communicator, which came to market in June 2001. Both phones were based on versions of what had previously been known as Psion’s EPOC operating system. The final EPOC release was EPOC32 Release 5 (strictly speaking, the final version was the full Unicode build, designated ER5u). The first release of Symbian OS was therefore designated v6.0.

Since then, well over a hundred phone models later (the 100th model[1] shipped in early Q2, 2006) and with more than 100 million (and rising) cumulative unit sales, Symbian OS has undergone continuous evolution to keep pace with the rapidly changing technology in the market it targets: communications-enabled mobile terminals including, of course, mobile phones.

The latest release of Symbian OS is v9. In v9, and its precursor v8, dozens of new APIs offer access to services and technologies which in many cases simply did not exist when Symbian OS first launched.[2] Bluetooth support was one of the earliest additions (v6); Wi-Fi is one of the most recent (v9). Telephony support, meanwhile, has evolved from basic GSM and GPRS (in v6) to include EDGE (v7), CDMA (v8) and 3G (v8). Networking support including IPSec has been integral from the beginning, evolving to a dual IPv4/v6 stack in v7 and enabling full Internet browsing on Symbian phones, with recent additions including support for VPN clients. New multimedia APIs (v8) support the high data rates required for two-way streaming and high definition interactive TV (DVB-H). The graphics system supports vector graphics (OpenGLES in v8), with direct screen access and double resolution displays. The new platform security model (v9) enables the platform to remain open, but safe, with a signing service to support trusted application download. The list goes on.

The foundation for these latest services is the new real-time kernel (available in v8.1b and from v9), supporting the multiple fast interrupts needed for high data throughput, the latest generation of ARM processor architectures (ARMv6 is supported in v9) and single core phone designs.

The latest Symbian OS phones are full multimedia devices, including multimegapixel cameras with integrated flash and optical zoom, support for hot-swappable media cards up to 2 GB, MP4 (video) and MP3 (audio) players (supporting WMA and AAC too), 24-bit color (16.7 million colors), not to mention Wi-Fi, and Universal Plug and Play (UPnP, which enables remote control of compatible PCs, audio systems and TVs from a Symbian phone).

Having achieved its first ‘1 million phones shipped’ year in 2002 (2.1 million Symbian OS phones were shipped that year, compared with 0.5 million the year before), Symbian OS achieved 1 million phones shipped in one quarter in Q1 2003, and 1 million phones shipped in one month in December 2003. Volumes have continued to rise steadily since then, and Symbian OS passed the 100 million phones shipped milestone in Q4 2006. Those numbers translate into close to 70% of the high-end, or smartphone, market according to independent sources.[3]

At the same time, competition has probably never been greater. In 2006, Linux phones are shipping in substantial numbers in Japan and China. Microsoft launched the latest version of its mobile phone platform, Windows Mobile 5, in late 2005 and phones based on it are now shipping.[4] Qualcomm has signed up European networks for the first time to support its (previously CDMA-only) Brew platform. And while the future of the Java-based SavaJe platform is uncertain, ‘all-Java’ phones remain a possibility.[5]

But, at the time of writing, the biggest volume of phones (i.e. across the whole market) are based on none of these platforms at all and remain the mid- to low-end phones based on vendors’ own proprietary operating systems. In 2006, Symbian set its sights on addressing this market and its v9 releases will increasingly be aimed at scaling not just for the high end,where it is a proven platform for the latest feature-laden phones, but for the mid-range, mass-volume consumer market.

2.2 In the Beginning

In the summer of 1994, Psion was a company of perhaps 40 software engineers and as many hardware engineers, with a product line of handheld organizers that was highly profitable. The most recent was the Psion Series 3a, the second in the Series 3 family, a pocket-sized phone with a clamshell design sporting a letterbox format grayscale display hinged over a QWERTY keyboard, with an x86-family processor inside, up to 2 MB of RAM, removable flash memory cards and a ROM-based 16-bit operating system (named SIBO) for an all solid-state design. Its hardware design was not revolutionary but it was striking. Even more so was its built-in set of easy-to-use productivity applications. Supported by a dedicated, BASIC-like programming language called OPL, a thriving hobbyist community had established itself, self-organized (in pre-World Wide Web style; the first release of the Netscape browser appeared that same year) around bulletin boards and news groups and writing add-on software.

OPL was in fact a carry-over from Psion’s original Organiser product line, which was also doing nicely, having been enthusiastically adopted as a stock control tool by UK high-street retailers such as Marks & Spencer.

That particular summer, the big project was a true Visual Basic clone (called OVAL) for the Series 3a, intended not just to increase the capabilities of the machine, but to open a bridge to the programming mainstream and tap the rich potential of the hobbyist programming market in BASIC for DOS and the Macintosh.

At the same time a much smaller project was also kicked off to create a next-generation operating system for the 32-bit devices which the company was already planning as replacements for the 16-bit Series 3 range as part of its strategy for retaining its lead in the handheld market. (In 1994, Palm had yet to release the Pilot; indeed it was still a software house, writing connectivity software for Psion’s Series 3, among other things. Apple’s Newton was a year old and genuinely innovative but had failed to find much of a market. Microsoft had not yet released Windows CE and the Hewlett Packard machines which were the nearest competitors to the Series 3 were based on MS-DOS and primitive in comparison.[6])

The follow-on to the Series 3 was codenamed Protea[7] and over the next year the project continued to grow. By the end of 1995 it was driving a rapid expansion of the company and in particular the project to create the new operating system (which was eventually named EPOC) was consuming the lion’s share of the company’s software development budget, although the Series 3 software remained in active development. For example, email and Internet extensions, in particular, were being prepared as it became increasingly clear that accessing Internet services from handheld devices was likely to become a significant market driver.

The Protea story has been told before [Tasker 2000, p. 14]. The brief was simple enough – create the next-generation successor to the Series 3, a more sophisticated 32-bit handheld to be called the Psion Series 5.[8] In this sense, then, the project was quite narrowly focused on creating the next successful product. But from the software perspective, the longer term vision for EPOC was explicit. The design brief called for it to support not just the explicit requirements for Protea applications, but the as-yet unidentified requirements for other future products. While there was as yet no talk of licensing the operating system, there was a long-term vision. The next generation, like the current generation, would be a family of products and there was an explicit intention that the software should aim for a design life of perhaps ten to fifteen years.

The Protea project delivered in the early summer of 1997. Like many complex software projects, it was late but not excessively so. However, somewhere along the way an interesting shift had occurred. By the time the all-new Psion Series 5 shipped in June 1997, the software side of the company had been spun out (as Psion Software, in late 1996) and the first licensee software projects had started.

The Series 5 was an outstanding industrial design, with a true tactile keyboard (on which you really could touch type) and a backlit touchscreen with an ingenious hinge that ensured the device remained stable when used with a pen in touchscreen mode.9 (Competing, non-Psion products tended to fall over backwards when the screen was pressed.) A CF card slot was provided for expandability and, best of all, the Series 5 seemed to run forever on two AA batteries. As for the software, it rapidly acquired a reputation for extreme usability and legendary robustness (after some natural early teething troubles).

The Series 5 was a best-seller though, quite probably, it did not sell as well as its predecessor, the Series 3. (In its lifetime of five years of production, the Series 3 is thought to have sold more than 1.5 million units.[10] The Series 5 and its immediate successors including the Revo, had a lifetime of four years of production, during which it sold probably around a million units.

The EPOC team had started with a clean slate, but the operating system did not come out of nowhere.Many of the ideas had been tried, tuned and proven in one or more, sometimes all, of the previous systems. Clean and ‘from the ground up’ it may have been but it was nonetheless a from-the-ground-up rewrite of the 16-bit operating system for the Series 3, which in turn was a from-the-ground-up rewrite of the second-generation 8-bit operating system for the Organiser II. (The first-generation 8-bit system for the Organiser I had only rudimentary operating system features and was, in effect, written straight to the metal.)

While, by any measure, the new operating system was written remarkably quickly,[11] the fact remains that operating systems gestate slowly and cost years of effort to create.[12] Counting from the first Organiser systems, Psion had already invested a dozen years in operating system development when the Protea project began. Planning for a design life of at least as many years for the new operating system was a matter of basic commercial common sense.

It is likely that, had Psion had been a pure software company (or just a larger and more mature company), a from-the-ground-up rewrite, let alone one using a new and unfamiliar, object-oriented language, would not even have been considered, let alone allowed to complete. The business logic would almost certainly have favored extending the existing system and Psion very likely would have missed its moment. But Psion was not a software company, nor did it really think of itself as a computer hardware company; it was a product company, driven by a whole-product vision. And what’s more, it had enough cash in the bank to do what it liked in pursuit of that vision. Which is just what it did.

2.3 The Prehistory of Psion

Psion started life distributing computer hardware but moved quickly into software, capitalizing on the pre-PC microcomputer boom, writing games and then office applications for machines such as the Sinclair ZX81 and Spectrum. It was a small-scale operation in a mews behind Gloucester Place in Marylebone, London. Early hits included a flight simulator for the ZX81 and a spreadsheet application for the Spectrum. The flight simulator was written by Charles Davies, an early director of Psion, later the Chief Technical Officer of Psion and now of Symbian. The spreadsheet application was written by Colly Myers, another long time Psion director, later CEO of Psion Software and Symbian’s first CEO. The legend has it that Myers wrote the complete application from scratch in the course of a single flight from Johannesburg to London.

Few people still in Symbian can trace their roots back quite so far, but someone who can is Howard Price, now a senior system architect at Symbian, who joined Psion in 1983 with a math degree, having settled in London after traveling, largely to avoid returning to military service in (pre-democratic) South Africa.

Howard Price:
In 1983 we were only doing Spectrum work, mainly games. We all sat in a row along a workbench, about eight of us, with Charles Davies at a desk near the stairs and David Potter in a little office at the end. And everybody programming in assembler, pretty much, Z80 assembler for the Spectrum, which we wrote on some HP-type machine. Downstairs were all the boxes containing our programs on cassette that had come back from Ablex, the mastering company. Once a week, a truck would arrive and everybody would line up to throw the boxes onto the truck.

Charles Davies had joined the company at the invitation of its founder, David Potter, after completing a PhD in computational plasma physics. Potter had been his thesis supervisor.

Charles Davies:
I was programming 3D models in Fortran and then I left and joined him. There were Fortran programmers who didn’t know the length of a word on the CDC machines we were using, but I always had an interest in programming, so I learned assembler. And then I went to microprocessors and I programmed a lot, first Pascal and then C. I learned C on the job at Psion.

Psion bet heavily on the success of Sinclair’s follow-on to the Spectrum, the Sinclair QL, developing an office suite application. It was badly jolted when the machine flopped and the software didn’t sell. The surprise success which emerged at around this time was not software at all but hardware: the original Psion Organiser, the pet project of the company’s single hardware engineer.

The Organiser launched Psion as a product company and manifested what became its signature traits: carefully designed hardware products whose very modest means were maximized by great software. The games hadmade money but the devices rapidly became the soul of the company.

Charles Davies:
We had a product vision for the Organiser. It was an 8-bit device and the software was written straight above the bare metal, so there was no operating system. The first ROM was 4 KB, subsequently 16 KB and we had a programming language in there called Forth, even in the 4 KB, because Forth is that tight that you can do that.

The success of the Organiser put enough money in the bank to fund development of a second-generation device.

Charles Davies:
The Organiser II had the luxury of a 16 KB ROM. The first product didn’t have any serial port and people wanted to add barcode readers and things, so we added a serial port. But then you had to write add-on software to talk to the serial port and Forth wasn’t up to it. So OPL was invented at that time, a BASIC-like language. And because of that we ended up having to document certain library routines for extending the software in the ROM. That introduced us to the idea that when we go to the next generation we need an operating system proper. We need to separate the applications from the system, because we had library routines, but no operating system separation.

A few months after Howard Price joined, the original HP machine on which Z80 software was developed was replaced by a VAX, at the time a huge investment for what was still a very small company. When the VAX arrived, development moved from assembler to C. It was a big and exciting new language for the Psion programmers. Programs were written and cross-compiled on the VAX for the Z80 chip. But C had not been the first choice of programming language when the VAX arrived.

Charles Davies:
When we first got the VAX and decided to go from assembler to a high-level language we chose Pascal, which was the system language for the Apple Macintosh at that time. That choice lasted a few months. But then we read Kernighan and Ritchie and it was just obvious that this is a whole load better than Pascal for what we wanted to do. We recognized that C was the right language for us, because with C, you know, ‘how low can you go?’. We recognized that in C, we could do the sorts of things that using Pascal we had to do in assembler. But that switch wasted money. At that time, a VAX cost £100 000 and you work out what that is in real terms now, it was a big investment and the compilers cost thousands. So we bought Pascal compilers and wasted a whole load of money and had to re-buy C cross-compilers.

Despite its expense, the VAX turned out to be a fortuitous choice. The VAX ran DEC’s VMS operating system. That the early influence of VMS should eventually show up in an operating system which has become best known as a mobile phone operating system is startling at first sight. VAX, after all, was the dominant mini computer of the late 1970s and pre-PC 1980s and VMS is in many ways a dinosaur of the big-metal era. But Symbian OS traces a very specific legacy to VMS, which indeed goes all the way back to the first Psion operating systems for the Organiser products.

2.4 The Beginnings of Symbian OS

When Geert Bollen joined Psion in May 1995, the 32-bit operating system project (EPOC) was well under way. Bollen had been in the UK for just six months, after moving on from a Belgian startup which had folded. A Macintosh-only shop with strong university links and specializing in document management systems, Bollen found Psion instantly quite different, ‘a little bit homegrown’, as he puts it.

The EPOC project was dominated by a few key personalities and largely divided up between the teams they had gathered around them. Colly Myers was responsible for the kernel and base layers, Charles Davies for the middleware and David Wood for the user interface. All were directors of Psion, and later Psion Software and Symbian, as was Bill Batchelor who had taken over the running of the overall Protea project.