I wrote my first book about what is now iOS in 1997. Apple purchased NeXT, which Steve Jobs founded after he left Apple at the end of 1996. The main purpose of the acquisition was to obtain the operating system that was to become OS X and iOS.
In the 1990s, both Apple and Microsoft were coming to grips with a fundamental problem that affected both of their personal computer operating systems: the operating systems were terribly outdated.
At the dawn of the personal computer era – the late 1970s and early 1980s – we had a lot of experience building operating systems (OSs) for mainframe computers.
Many of these operating systems were remarkably sophisticated, even by today’s standards. They supported concepts such as multi-tasking; protected memory, which means that one process cannot interfere with another process's data; high-level languages; and virtual memory.
With the very limited resources of the first personal computers, however, many of these features just could not be implemented. By the 1990s, as personal computers became more powerful, both Apple and Microsoft attempted to retrofit their early operating systems with modern OS technologies, but the task was daunting.
Modernising the operating system
Microsoft finally managed to jettison its legacy DOS-based code and produced Windows XP which became the standard workhorse on the Windows platform.
At Apple, various attempts to move to a more modern operating system did not work out – and that’s why the NeXTstep acquisition became the route to what we now know as OS X and iOS.
Download iOS 6 Foundations book extract
Download this extract from Jessie Feiler’s book, iOS 6 Foundations. Includes a 30% discount for Computer Weekly readers.
You can compare the timelines of OS X and Windows on Wikipedia to see how parallel these developments were.
iOS is a branch of OS X. The overall architecture is the same – it is a layered architecture with hardware at the base and other layers building on top of the hardware. Each layer can access the features of layers below it, but no layer can access layers above it. The basic layers above the hardware are a microkernel that very quickly and efficiently runs the computer, core functions such as graphics and file operations, then the basic functionality for apps, and, finally, the interface layer.
Note that this is the basic structure of Rhapsody, the first Apple version of what previously had been NeXTstep and then Openstep. This layered structure, including the rule that no layer can access layers above it, is the key to Apple’s progress in recent years.
Consider the hardware layer. At NeXT, NeXTstep originally ran on the NeXT computers manufactured by the company. The hardware side of the business did not succeed, but with the layered architecture, it was possible to swap out the NeXT hardware layer for Intel chips.
After Apple’s purchase, Rhapsody swapped out the PC hardware layer and added a new hardware layer – PowerPC chips from Motorola. When Apple brought Intel chips in to replace the PowerPC chips, that was just another hardware layer.
When iPhone and iPad came along, another hardware layer was used. The higher-level layers did not stay the same because, along with changes to hardware, the higher-level features of app support and user interface were also evolving, but, as we have seen, this architecture is remarkably stable and modifiable.
In fact, at an Apple Worldwide Developers Conference in the early 2000s, Steve Jobs remarked that OS X would provide tremendous benefits to users, but it was Apple and, to a slightly lesser extent, developers that would benefit most from the new OS architecture. That statement is as true as ever – you need only look at the rapid advances of the past few years in iOS.
It is now just three years since the first iPad shipped on 3 April 2010. It was powered by an iPad-only version of iPhone OS 3.2. In June of 2010, iPhone OS was renamed iOS, and iOS 4 was released for iPhone and iPod touch. The following November, iOS 4.2.1 was released; it was the first version of iOS to provide common code for iPad and iPhone.
About Jesse Feiler
Jesse Feiler is a developer, web designer, trainer and author. He has worked with mobile devices starting with Apple’s Newton and continuing with the iOS products (iPhone, iPod touch, and iPad).
Treehouse is a consortium of web and software designers and developers whose mission is to bring affordable technology education to people everywhere to help them achieve their dreams and change the world. In keeping with that mission, the Treehouse series of books are authored by experts and loaded with innovative design ideas and practical skill-building instruction.
With revisions in iOS 5 and iOS 6, along with the Xcode integrated developement environment (IDE), the operating system has evolved rapidly to provide a development platform for devices that a decade ago were barely dreamed of and that today are pervasive in our lives.
Understanding the OS architecture
The evolution of the operating systems is important to understanding them today, but in writing iOS 6 Foundations, I tried to approach the high-level layers of the OS (including the interface) anew.
We do have sections of code that go back to the 1990s and that are still used today (I’m thinking of concepts such as dictionaries which are very efficient ways of managing data structures), but we have new features such as blocks, Auto Layout, and storyboards.
Some people find iOS daunting because there seems to be so much to learn. Actually, as I try to point out in the book, there’s not that much to learn. With the overall architecture in mind, you can see where each feature fits in the whole iOS structure.
This is a great time to start out with iOS.
This was first published in October 2013