Imagen | opensource.com
In the 60’s, the space race excited our imagination and we were dreaming of a future of space journeys and technological wonders. Martin Cooper was then manager of the communication systems department at Motorola. He admitted being inspired by the personal communicator of Star Trek to develop a wireless mobile phone. In 1973 he made the first call through a prototype of mobile phone to a manager at AT&T, Motorola’s competitors, to announce he made it. ‘They weren’t really amused’, explained Cooper.
Today Apple and Google dominate the market of mobile operating systems. In a few years, these companies have gained privileged positions in the telecommunications market, overshadowing the terminal manufacturers. Motorola Mobility is now in the hands of Google. But, ironically, the computer industry owes much to the phone industry. Unintentionally, AT&T created the operating system that is today ruling the world, from mobile phones to supercomputers. Or, if you will, the key programming language of the last 40 years. While doing so, they also planted the seed of the free software.
In the late 60s, the MIT, AT&T and General Electric were engaged in the development of Multics, a multi-user, multitasking operating system very innovative at the time.
AT&T devoted many resources to Multics. The project was assigned to the best researchers of its Bell Labs, including Ken Thompson and Dennis Ritchie. As it is usual in such projects, delays accumulated dangerously and the direction at AT&T eventually decided to abandon the project. This decision frustrated Bells Labs researchers, who believed in the benefits of time-sharing systems like Multics. So, despite the decision, they devised a new system on paper similar to Multics.
With idle hands after the project dismissal, and with Armstrong, Aldrin, and Collins about to land on the moon, Ken Thompson created a simulation game called ‘Space Travel’, where players were driving rockets traveling from planet to planet. Thompson originally programmed the game in a GE635 computer, but its use was expensive: around $75 per game. Fortunately for Thompson, Bell Labs had a PDP7 that was hardly used. This device was a mini computer (i.e. for the standards of the era, because it was as big as a library!) with a big screen. Thompson learned programming the PDP7 and adapted the code of ‘Space Travel’. With the knowledge acquired, he created a primitive OS during the summer of 1969 within the PDP7 with the concepts developed with his team. Jokingly, the system was called Unics for it supported initially just one user (Thompson himself).
During 1970, Unix grew up fast and the PDP7 soon became too small. Thompson and his team decided to look for fundings for the project, even if they were aware AT&T would oppose a development of a new OS after the failure of Multics. Necessity is the mother of invention. The team made a request to create a word processor, for which they needed to acquire a PDP-11 — and, incidentally, develop a new OS. Surprisingly, the proposal was accepted and received official funding. Bell Labs bought a PDP11 and, during 1970, Unix and the new word processor were enthusiastically adopted by the patent department at Bell Labs.
Both ‘Space Travel’ and Unix were originally programmed with an ‘assembled’ language. This language required the knowledge of specific details of the equipment, and in turn this required costly modifications when transferring programming from one equipment into another; in this case, from GE-635 into PDP7, and from PDP7 into PDP11. In 1971, Dennis Ritchie created a new language called ‘C’ that was used to rewrite Unix. This creation changed the course of the industry. Unix became a modular, comprehensible, multi-user, multitasking system easily adaptable to other computers through the use of ‘C’. In 1974, with the system all ready, Ken Thompson and his team published a paper describing it. Soon they received a flood of requests of copies of Unix.
At this point, AT&T could have become the predecessor of Microsoft, a prosperous company licensing operating systems for universities and computer manufacturers. However, given its virtual position of monopoly, in 1956 AT&T subscribed an agreement with the U.S. government preventing it to sell products directly related to telephony. At first, since it could not sell copies of Unix, AT&T distributed the source code to anyone asking for it provided they covered the shipment costs. Around Unix a community of developers and users was quickly formed both from university and industry. In the late 70s, Unix was already a very popular system and AT&T was offering Unix licenses to both colleges and companies.
The history of Unix becomes troubled during the 80s. In 1983, a second anti-trust trial divides AT&T into multiple companies (‘Baby Bells’). Freed from the 1956 agreement, AT&T began to market Unix, a decision that will jeopardize the survival of this system. The company sought to end the ‘unauthorized’ distribution of the source code under the threat of legal actions. However, the academic interest in Unix started to fade. In addition, companies marketing versions of Unix started to compete with each other and added new features to their versions that made them incompatible. It is no accident that the same year, a researcher of the MIT named Richard Stallman set in motion the project GNU (‘GNU’s Not Unix’) with the GPL to create a Unix-like system that allowed users freely access the source code.
With AT&T and Sun Microsystems trying to ‘decode’ the Unix ecosystem, in 1991 a Finnish student replayed the story of Ken Thompson. Linus Torvalds posted on the Internet the code of a nascent Unix-like operating system he was writing in his spare time on a small PC. He was using the GNU tools and the GPL. Linux was born. The rest is history.
Forty years after the creation of Unix, this system heritage is more alive than ever. When using our mobile, we are almost certainly enjoying the ideas cooked at Bell Labs. Both Android and iOS have Unix-like operating systems. Other incarnations live also in tablets, servers, routers and embedded devices. Beyond Unix, virtually all programming languages used today are either written in ‘C’, compatible with ‘C’ or directly inspired by ‘C’, as well as other popular OS. Such is the influence of a project that began casually at Bell Labs.
But some of the important lessons Ken Thompson and his teammates learned from Unix are today easily forgotten, at great expense. In 1997, Eric S. Raymond published a crucial essay about the differences between an open model of development and a closed one. Titled The Cathedral & the Bazaar, it confronted two paradigms. The ‘cathedral’ is the metaphor of a closed and hierarchical organization. In cathedrals, the objectives are planned and the development is monitorized. In return, the ‘bazaar’ (or the market) is a metaphor of open, horizontal organizations with no clearly defined objectives and developments prone to chaos. Raymond argued that bazaar-style developments offered better results.
This is exactly what happened with Multics. The MIT, AT&T and General Electric had set out a very ambitious operating system, but when AT&T found the project had delays and the results didn’t came soon enough, decided to leave it. The approach to the development of Unix was very different. It started as a personal challenge for Thompson, who was using a small computer into abeyance. The architecture was simple, easy and scalable. While sharing the code, many other people could use this language, understand it and adapt it to their partiuclar needs, hence contributing to its expansion. Multics development was cathedral-like, while Unix originally was bazaar-like. In the 90s, AT&T committed a huge strategical mistake when it tried to market Unix directly. The bazaar-like model was abandoned so as to adopt a cathedral-like system of development. This killed the academic contributions and fragmented the ecosystem, hence dissipating its interest both for universities and developers.
Telecom companies, which until recently have enjoyed monopolies, have traditionally operated as cathedrals. In the early 2000s, it was upon telecom companies and handset manufacturers to decide what features should be supported by phones, based exclusively on their business goals. Despite the growing power of the telephones, these were closed, complex sets for developers’ eyes only. Development of programs was a costly bureaucratic process involving a ‘marriage for life’ with both the terminal manufacturer in order to obtain programming tools and the telephone operator for distribution.
Then came the iPhone. Although the iPhone has a Unix-like kernel, the development of this system was cathedral-like. However, Apple released a toolkit for developing applications and an online shop for apps, the App Store. This resulted in the actual landing of the software industry in mobile telephony. The mobile phone is no longer only a telephone device, but an all-purpose personal computer. The App Store was soon filled with applications created by big companies, but also by people with innovative ideas.
Anticipating the moves of eventual competitors was crucial and, in 2007, a few months after the introduction of the iPhone, Google announced the availability of Android, its mobile operating system. In 2008, Nokia announced the release of Symbian as free software, and rescued from marginality its projects with Linux. For Symbian, it was too late. But for Google, Android’s move came out very well. Google currently owns 75% of the market share thanks to the terminals manufactured by Samsung, HTC, Sony, LG and others. And Android’s Play Store offers almost one million apps.
Although Android is free software in theory, its development model is not bazaar-style. Google is dealing with a number of dilemmas similar to those experienced by Unix in its troubled history. On the one hand, Google is trying to tackle the fragmentations of the ecosystem, which increases development costs. On the other, the acquisition of Motorola by Google has raised the suspicions of the manufacturers: they are now direct competitors, like when AT&T began marketing Unix.
Today, phone operators are wary of the concentration of power by Apple and Google, and they would like to see other opponents in the running. In recent times there have been initiatives based on free software trying to gain a foothold in the market. The heirs of the MeeGo system by Nokia and Intel are Sailfish OS and Tizen. MeeGo was a smartphones system by Nokia supported boldly by the Finnish company until Stephen Elop tied Nokia’s future to the Windows Phone system. Jolla is a company started by former Nokia engineers; they are developing SailfishOS, a system based in Maemo, Nokia’s Linux. Tizen is also a descendant of MeeGo, and has the support of Intel and Samsung. Some telephone operators such as Telefónica are supporting the development of Firefox OS, a Linux-based mobile OS, and are committed to HTML technologies. And finally, at Canonical we are heavily investing in the development of Ubuntu Touch.
All these initiatives are based on Linux and open source software. Now it seems obvious that any platform seeking to gain a foothold in the market needs a rich ecosystem. In Ubuntu Touch we are engaging the broad community of Ubuntu users in this challenge.
The smartphone is one of the most prodigious devices ever created. It is conveniently losing its original long name ‘mobile telephone’ to become just ‘mobile’. Mobiles are small but powerful computers equipped with multiple sensors. Thanks to their connection to the lnternet, they are able to extend their memory to infinity. Mobiles are personal computers literally, and are fulfilling the old challenge to bring computing to the majority of population. In exchange, as users we are facing the gradual disappearance of our privacy, an issue that society has not fully addressed yet.
Still, compared to PCs, mobiles are limited devices. The apps of one platform do not run on other platforms, it is difficult to install other operating systems, modify them, and some key programs are closed. But, as we have seen, individual initiatives are sometimes able to outshine the most ambitious plans and revolutionize one or several industries.
Víctor R Ruiz (@vrruiz) is a QA Engineer at Canonical Ltd, specializing in HTML5 technologies for Ubuntu Touch. Previously he developed iOS apps for, among others, the European Southern Observatory. Since 2000 he’s the editor of Barrapunto, a leading site in Spanish for those interested in open source software.