The Full Wiki

IPhone OS: Map


Wikipedia article:

Map showing all locations mentioned on Wikipedia article:

The iPhone OS, known as OS X iPhone in its early history, is the operating system developed by Apple Inc.marker for the iPhone and iPod touch. Like Mac OS X, from which it was derived, it uses the Darwin foundation. iPhone OS has four abstraction layers: the Core OS layer, the Core Services layer, the Media layer, and the Cocoa Touch layer. The operating system takes less than 240 Megabytes of the device's total memory storage.

This operating system did not have an official name until the release of the first beta version of the iPhone SDK on March 6, 2008. Before then, Apple marketing literature simply stated that the "iPhone uses OS X," a reference to Apple's desktop operating system, Mac OS X.

As of Nov. 4, 2009, there are over 100,000 applications officially available for the iPhone, and 2 billion downloads had been achieved.

On September 9, 2009, Apple announced version 3.1 of the iPhone OS, since then 3.1 has been updated to 3.1.2

User interface

iPhone OS' user interface is based on the concept of direct manipulation, using multi-touch gestures. Interface control elements consist of sliders, switches, and buttons. The response to user input is supposed to be immediate to provide a fluid interface. Interaction with the OS includes gestures such as swiping, tapping, pinching, and reverse pinching. Additionally, using internal accelerometers, holding the device sideways (so that the screen is in landscape orientation) alters the screen orientation in some applications.

A home screen (rendered by "SpringBoard") with application icons, and a dock at the bottom of the screen, showing icons for the applications the user accesses the most, is presented when the device is turned on or whenever the home button is pressed. The screen has a status bar across the top to display data, such as time, battery level, and signal strength. The rest of the screen is devoted to the current application. There is no concept of starting or quitting applications, only opening an application from the home screen, and leaving the application to return to the home screen. It is possible to force an application to quit by holding down the power button until the "slide to power off" slider appears, and then holding the home button down, however. While some multitasking is permitted it is not obtrusive or obvious. However, it is limited to Apple's own applications. Third-party apps are quit when left, but with the 3.0 software update, notifications will be able to be pushed from Apple's servers to the iPhone or iPod Touch. Many of the included applications were designed to work together; allowing for the sharing or cross-propagation of data from one application to another (e.g., a phone number can be selected from an email and saved as a contact or dialed for a phone call.)

Application support

The central processing unit used in the iPhone and iPod Touch is an ARM-based processor instead of the x86 (and previous PowerPC or MC680x0) processors used in Apple's Macintosh computers, and it uses OpenGL ES 1.1 rendering by the PowerVR 3D graphics hardware accelerator co-processor. Mac OS X applications cannot be copied to and run on an iPhone OS device. They need to be written and compiled specifically for the iPhone OS and the ARM architecture. However, the Safari web browser supports "web applications," as noted below. Authorized third-party native applications are available for devices with iPhone OS 2.0 and later through Apple's App Store.

Included applications

In version 3.0, the iPhone home screen contains these default applications: Messages (Text messaging, MMS), Calendar, Photos, Camera (Video recording and auto-focus enabled in iPhone 3GS), YouTube, Stocks, Maps (Google Maps, with Assisted GPS on iPhone 3G and 3GS), Weather, Clock, Calculator, Voice Memos, Notes, Settings, iTunes (with access to the iTunes Music Store and iTunes Podcast Directory), App Store, Compass (on the 3GS), and Contacts. Four other applications delineate the iPhone's main purposes: Phone, Mail, Safari, and iPod.

The iPod Touch retains many of the same applications that are present by default on the iPhone, with the exception of the Phone, Messages, and Camera apps. The "iPod" App present on the iPhone is split into two apps on the iPod Touch: Music, and Videos. The bottom row of applications is also used to delineate the iPod Touch's main purposes: Music, Videos, Safari, and App Store (Dock Layout was changed in 3.1 Update).

Web applications

At the 2007 Apple Worldwide Developers Conference Apple announced that the iPhone and iPod Touch will support third-party "applications" via the Safari web browser, referred to as web applications. The applications can be created using web technologies such as AJAX.

Apple Inc.marker did say that the Web Applications would be enough and that native applications, other than their own, were unnecessary. However, with the release of iPhone OS 2.0 came the App Store, a place to download native applications from. One reason that Web Applications were not successful, besides jail breaking becoming more and more common, was because the javascript was not powerful enough to run the applications at a sufficient speed.

Unsupported third-party native applications

Currently, the iPhone and iPod Touch can only officially install full programs through the App Store. However, from version 1.0 unauthorized third-party native applications are available. Such applications face the possibility of being broken by any iPhone OS update, though Apple has stated it will not design software updates specifically to break native applications (other than applications that perform SIM unlocking). The main distribution methods for these applications are the Cydia, Icy, Rock, and Installer utilities, which can be installed on the iPhone after major methods of jailbreaking.

iPhone SDK

iPhone SDK included in Xcode 3.1 final.
On October 17, 2007, in an open letter posted to Apple's "Hot News" weblog, Steve Jobs announced that a software development kit (SDK) would be made available to third-party developers in February 2008. The SDK was released on March 6, 2008, and allows developers to make applications for the iPhone and iPod Touch, as well as test them in an "iPhone simulator". However, loading an application onto the devices is only possible after paying an iPhone Developer Program fee.Since the release of Xcode 3.1, Xcode is the development environment for the iPhone SDK.

Developers are able to set any price above a set minimum for their applications to be distributed through the App Store, of which they will receive a 70% share. Alternately, they may opt to release the application for free and need not pay any costs to release or distribute the application except for the membership fee.

Since its release, there has been some controversy regarding the refund policy in the fine print of the Developer Agreement with Apple. According to the agreement that developers must agree to, if someone purchases an app from the app store, 30% of the price goes to Apple, and 70% to the developer. If a refund is granted to the customer (at Apple's discretion), the 30% is returned to the customer from Apple, and 70% from the developer; however, Apple can then take another 30% of the cost from the developer to make up for Apple's loss.

SDK history

The iPhone SDK was officially announced on March 6, 2008, at an Apple Town Hall meeting. The first Beta release of the SDK, with iPhone OS version 1.2b1 (build 5A147p), was made available immediately, while the launch of the App Store required a firmware update which was released on July 11, 2008. This update was free for iPhone users; however, the update costs $9.95 for iPod Touch owners.
Date released OS version SDK details
March 27, 2008 iPhone OS 2.0b2 Beta 2 Release for iPhone OS version 2.0b2 (build 5A225c), which added Interface Builder, an application for building graphical user interfaces for iPhone applications.
April 8, 2008 iPhone OS 2.0b3 Beta 3 Release for iPhone OS version 2.0b3 (build 5A240d).
April 23, 2008 iPhone OS 2.0b4 Beta 4 Release for iPhone OS version 2.0b4 (build 5A258f). This version of the SDK supports OpenGL 3D graphics, primarily used to make games, and indications that some applications will be allowed to run in the background (as the iPod, Phone, and Mail applications do), something that Apple had previously stated was not possible.
May 6, 2008 iPhone OS 2.0b5 Beta 5 Release for iPhone OS version 2.0b5 (build 5A274d).
May 29, 2008 iPhone OS 2.0b6 Beta 6 Release for iPhone OS version 2.0b6 (build 5A292g). The code in this update gave hints about updates to Apple's .Mac service and also gave a first reference to the upcoming version of Mac OS X, version 10.6 Snow Leopard.
June 9, 2008 iPhone OS 2.0b7 Beta 7 Release for iPhone OS version 2.0b7 (build 5A331), which unlocked Apple's .Mac replacement, MobileMe. This release was for WWDC, Apple's developer's conference, which is noted as part of the name of the iPhone OS beta download.
June 26, 2008 iPhone OS 2.0b8 Beta 8 Release for iPhone OS version 2.0b8 (build 5A345).
July 11, 2008 iPhone OS 2.0 Release for iPhone OS version 2.0.
July 24, 2008 iPhone OS 2.1 Beta 1 Release for iPhone OS version 2.1 (build 5F90). Apple notes that applications built using the 2.1 SDK will not run on the iPhone 2.0 software, and will not yet be accepted into the App Store.
July 30, 2008 iPhone OS 2.1 Beta 2 Release for iPhone OS version 2.1.
August 8, 2008 iPhone OS 2.1 Beta 3 Release for iPhone OS version 2.1.
September 25, 2008 iPhone OS 2.2 Beta 1 Release for iPhone OS version 2.2 (build 5G29).
November 20, 2008 iPhone OS 2.2 Release for iPhone OS version 2.2 (build 9M2621).
January 27, 2009 iPhone OS 2.2.1 Release for iPhone OS version 2.2.1 (build 9M2621a).
March 17, 2009 iPhone OS 3.0 Beta 1 Preview of iPhone OS version 3.0 and SDK 3.0 beta release.
March 31, 2009 iPhone OS 3.0 Beta 2 Release for iPhone OS version 3.0.
April 14, 2009 iPhone OS 3.0 Beta 3 Release for iPhone OS version 3.0.
April 28, 2009 iPhone OS 3.0 Beta 4 Release for iPhone OS version 3.0.
May 6, 2009 iPhone OS 3.0 Beta 5 Release for iPhone OS version 3.0.
June 8, 2009 iPhone OS 3.0 GM Seed Final Release for iPhone OS version 3.0 for developers and private testers only.
June 17, 2009 iPhone OS 3.0 Final Final release for iPhone OS version 3.0 for standard users was released on June 17.
June 30, 2009 iPhone OS 3.1 Beta First beta release for iPhone OS version 3.1 released to developers June 30.
July 15, 2009 iPhone OS 3.1 Beta 2 Second beta release for iPhone OS version 3.1 released to developers July 15.
July 27, 2009 iPhone OS 3.1 Beta 3 Third beta release for iPhone OS version 3.1 released to developers July 27.
September 9, 2009 iPhone OS 3.1 Final Final release for iPhone OS version 3.1 for standard users was released in the Apple "It's Only Rock and Roll, but we like it" special event on September 9, 2009.
October 8, 2009 iPhone OS 3.1.2 Final Final release for iPhone 3.1.2.

SDK contents

As the iPhone OS uses a variant of the same XNU kernel that is found in Mac OS X, the tool chain used for developing on the iPhone OS is also based on Xcode.

The SDK is broken down into the following sets:

Along with the Xcode toolchain, the SDK contains the iPhone Simulator, a program used to emulate the look and feel of the iPhone on the developer's desktop. Originally called the Aspen Simulator, it was renamed with the Beta 2 release of the SDK. Note that the iPhone Simulator is not an emulator and runs code generated for an x86 target.

The SDK requires an Intel Mac running Mac OS X Leopard or later. Other operating systems, including Microsoft Windows and older versions of Mac OS X, are not supported.


The SDK itself is a free download, but in order to release software, one must enroll in the iPhone Developer Program, a step requiring payment and Apple's approval. , cost of enrollment in the iPhone development program is $99 USD per year (this cost varies from country to country). Signed keys are given to upload the application to Apple's App Store. Applications can be distributed in three ways: through the App Store, through enterprise deployment to a company's employees only, and on an "Ad-hoc" basis to up to 100 iPhones. Once distributed through the App Store, a developer can request up to 50 promotional codes that can be used to freely distribute a commercial application he or she has developed.

This distribution model for iPhone software appears to make it impossible to release software based upon code licensed with GPLv3. Any code that modifies code licensed under GPLv3 must also be licensed as GPLv3. Also, a developer is not able to distribute an application licensed under the GPLv3 without also distributing the signing keys (which Apple owns) to allow upload of modified versions of that software to be run.

Core Location

Core Location is a software framework in iPhone OS. It is primarily used by applications on the iPhone OS 2.0 for detection of the device's location. On the iPod Touch, Core Location will use Skyhook Wireless's Wi-Fi-based positioning system. On the original iPhone, it will use cellular tower triangulation in addition to Wi-Fi positioning. On the iPhone 3G and 3GS, it also uses the available GPS hardware, and on the iPhone 3GS it will also use the compass. The actual selection of location method is abstracted from the user and developer.

It was announced as part of the iPhone Software Roadmap event on March 6, 2008, and was made available as part of the iPhone SDK.


Apple has not announced any plans to enable Java to run on the iPhone. Sun Microsystems announced plans to release a Java Virtual Machine (JVM) for iPhone OS, based on the Java Platform, Micro Edition version of Java. This would enable Java applications to run on iPhone and iPod Touch.

Soon after the announcement, developers familiar with the SDK's terms of agreement believed that by not allowing 3rd-party applications to run in the background (answer a phone call and still run the application, for example), allowing an application to download code from another source, or allowing an application to interact with a 3rd-party application (Safari with JVM, for example), could hinder development of the JVM without Apple's cooperation.

It is clear that Java running on the iPhone is outside the bounds of the iPhone SDK Agreement. The guideline in question is rule 3.3.2, which reads:

However, some iPhone users have shown that it was possible to install and use a J2ME stack on an iPhone, though it involved jailbreaking.

It has also been revealed that there were talks between Sun and Apple concerning the availability of Java on the iPhone, and that Sun was working in that intent with a company called Innaworks. Since it is required that all ARM9 or later processors include Jazelle support, the iPhone includes the hardware for accelerated Java execution..


It is possible to develop using the .NET Framework by way of Novell's commercial MonoTouch framework. MonoTouch uses a custom fork of the Mono Project to compile all CLI bytecode in .NET to native ARM machine-code ahead of time.

Since this framework is fully compatible with CLI compliant languages that do not emit runtime compiled code, it is possible to develop with wide range of languages supported by .NET, including C# and VisualBasic.NET.

MonoTouch does not suffer from the same constrains on the iPhone as Java does and is fully compatible with all the licensing terms of the iPhone SDK since there is no interpreter necessary to run an application developed .NET with MonoTouch.


The iPhone OS does not support Adobe Flash, and Flash movies on web pages cannot be viewed in Mobile Safari. Although Adobe has two versions of its software, Flash and Flash Lite, Apple views neither as suitable for the iPhone. Apple's argument to the public thus far has been that full Flash would be too cumbersome for the iPhone, while Flash Lite would not provide a worthy experience for users. This has been critiqued as the Goldilocks argument.

A problem with Flash for Apple is that it is a virtual machine with a just-in-time compiler. Apple's SDK prevents any software on the iPhone from downloading or running external code. What Adobe has done in their CS5 release for the iPhone is to create a static compiler that allows developers to compile their flash programs into apps that can run on the iPhone. This would allow many games to become apps, however prevents web interfaces such as Hulu from working on the iPhone.

Unofficially, some Flash video sites can be viewed by using a jailbroken iPhone with certain third-party applications. However, it results on extremely low frame rate due to the lack of memory bandwidth and CPU speed for Flash JIT execution. Another reason is the general lack of optimization of Flash for the iPhone OS, which can be seen in several benchmarks of Flash in OS X.

Recently, Adobe has posted a notice on the Flash download page when viewed from an iPhone, claiming that it's not possible to have Flash on the iPhone because: “Flash Player not available for your device. Apple restricts use of technologies required by products like Flash Player. Until Apple eliminates these restrictions, Adobe cannot provide Flash Player for the iPhone or iPod.”


Mobile Safari supports SVG starting with iPhone OS 2.1. The SVG support features scripting and most of the static parts of the SVG 1.1. specification. SMIL animation is not yet supported for SVG graphics. It will be delivered after the Webkit SMIL implementation is mature enough. In addition to SVG, the HTML Canvas is supported.

Hacking and jailbreaking

The iPhone OS has been subject to a variety of different hacks for a variety of reasons, centered around adding functionality not supported by Apple.

With the advent of iPhone OS 2.0, the focus of the jailbreaking community has shifted somewhat. Prior to iPhone 2.0's release, jailbreaking was the only way to allow third-party applications on the device. Now with iPhone 2.0, native applications are allowed under Apple's SDK terms, although certain functionality is disallowed on the device. These disallowed functions include background processes, and the ability to alter the applications written for the device by Apple. Some began attempts to disable Apple's kill switch, although these efforts were largely abandoned once the kill switch was proven to only disable Core Location.

There has been a notable shift away from jailbreaking with the new App Store's debut, in most part due to users' acceptance of Apple's compromise on opening up the platform , although there has still been substantial interest from the jailbreaking community, especially with the release of Pwnage Tool from the "iPhone Dev Team" which was released soon after firmware 2.0 for the iPod Touch and iPhone. Some jailbreakers also attempt to pirate paid App Store applications; this new focus has caused some strife within the jailbreaking community.

The other major focus of jailbreaking since 2.0 has been to reverse the SIM Lock that is forced onto most iPhones. The first generation iPhone can be fully unlocked with the iPhone Dev Team's BootNeuter application, and the iPhone 3G can be unlocked with a new beta effort dubbed "yellowsn0w" later to become ultrasn0w to work on newer baseband as Apple patched the baseband by release 2.2.1 and QuickPwn 2.2.1.

More recently, many efforts have been focused on broadening the Bluetooth capabilities of the iPhone. However, many of the efforts stopped due to the preview of the iPhone 3.0 OS on March 17, 2009, which included among other features, enhanced Bluetooth capabilities.

Within days of the official release of OS 3.0, updated instructions and applications to jailbreak and unlock 3G iPhones running the new OS were released by the iPhone Dev Team.

The iPhone Dev Team stated that the exploits that allowed a jailbreak of the iPod Touch 2G and an unlock of the iPhone 3G will respectively allow the same capabilities on the iPhone 3GS.

On July 3, 2009 geohot released purplera1n, an application to jailbreak an iPhone 3GS running OS 3.0. The iPhone Dev Team subsequently released updated versions of the redsn0w jailbreak and ultrasn0w unlock for the iPhone 3GS.

The iPhone Development Team released an update to their PwnageTool program on October 2, 2009, to enable the jailbreaking of OS 3.1 on the iPhone 3GS.

On October 11, 2009, GeoHot (George Hotz) released blackra1n which enabled users to jailbreak firmware versions of up to 3.1.2 (latest), among all other iDevices, the iPhone 3GS and iPod Touch 3rd Generation (untethered support). blackra1n supports iPhone 3GS which has 3.1.2 installed out-of-the-box.

See also


  1. iPhone - Features - OS X - Apple Inc., Archived version from 2007-10-06
  2. iPhone Dev Center
  4. Ziegler, Chris. Apple announces third-party software details for iPhone, Engadget, (2007-06-11)
  5. Baig, Edward C. Apple's iPhone isn't perfect, but it's worthy of the hype, USA Today, (2007-06-26)
  6. Apple's Joswiak: We Don't Hate iPhone Coders
  7. Apple Seeds New iPhone OS 2.0 Beta (5A240d), SDK Update (Beta 3) - MacRumors 2008-04-08.
  8. iPhone SDK Beta 4 Now Available, Comes with OpenGL ES 3D Graphics Support - Gizmodo.
  9. iPhone SDK Beta 5 Now Up: Bug Fixes, Updated OS Support - Gizmodo.
  10. MacRumors - Apple's .Mac Service to be Renamed, Revamped? - MacRumors 2008-05-30.
  11. Mac OS 10.6 reference in iPhone SDK beta 6 - MacRumors 2008-05-29.
  12. The iPhone - iPhone OS 2.2 Developers beta released
  13. iPhone DevCenter
  15. [1]
  22. Apple iPhone 'kill switch' discovered - Telegraph
  23. Don't eat yellowsn0w!

External links

Embed code:

Got something to say? Make a comment.
Your name
Your email address