Wikipedia
Contributors to Wikimedia projects
/static/apple-touch/wikipedia.png
Mobile operating system by Apple

For other uses, see IOS (disambiguation).

Not to be confused with HiOS, an operating system developed by Tecno Mobile.

Operating system

iOSDeveloperAppleWritten inC, C++, Objective-C, Swift, assembly languageOS familyUnix-like, based on Darwin (BSD), macOSWorking stateCurrentSource modelClosed, with open-source componentsInitial releaseJune 29, 2007; 17 years ago ( )Latest release17.6.1[1] (21G93)[2] (August 7, 2024; 4 days ago ( )) Latest preview18.0 beta 5[3] (August 5, 2024; 6 days ago ( ))

18.1 beta 1[4] (July 29, 2024; 13 days ago ( ))

,Marketing targetSmartphones, tablet computers, portable media playersAvailable in41 languages[5]

List of languages

Arabic, Bulgarian, Catalan, Chinese Simplified, Chinese Traditional (Hong Kong), Chinese Traditional (Taiwan), Croatian, Czech, Danish, Dutch, English (Australia), English (United Kingdom), English (United States), Finnish, French (Canada), French (France), German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Kazakh, Korean, Malay, Norwegian, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian, Russian, Slovak, Slovenian (iOS 18), Spanish (Latin America), Spanish (Spain), Swedish, Thai, Turkish, Ukrainian, Vietnamese

Update methodOTA (since iOS 5), Finder (from macOS Catalina onwards),[6] Apple Devices (from Windows 10 version 22H2 onwards)[7] or iTunes (Windows and macOS pre-Catalina)PlatformsKernel typeHybrid (XNU)Default

user interfaceMulti-touch, graphical user interfaceLicenseProprietary software except for open-source componentsOfficial websitewww .apple .com /ios /Support statusSupportedArticles in the seriesiOS version history

iOS (formerly iPhone OS)[8] is a mobile operating system developed by Apple exclusively for its smartphones. It was unveiled in January 2007 for the first-generation iPhone,[9] launched in June 2007.

It is the operating system that powers many of the company's mobile devices, including the iPhone. It was also used on iPads (introduced: January 2010; availability: April 2010) until iPadOS was introduced in 2019, and on the iPod Touch devices, which were discontinued in mid-2022.[10] It is the world's second-most widely installed mobile operating system, after Android. It is the basis for three other operating systems made by Apple: iPadOS, tvOS, and watchOS.[11]

As of December 2023 , Apple's App Store contains more than 3.8 million iOS applications.[12] These mobile apps have collectively been downloaded more than 130 billion times.

iOS is based on macOS. Like macOS, it includes components of the Mach microkernel and FreeBSD.[13][14] It is a Unix-like operating system. Although some parts of iOS are open source under the Apple Public Source License[15] and other licenses,[16] iOS is proprietary software.[17][18]

Major versions of iOS are released annually. The current stable version, iOS 17, was released to the public on September 18, 2023.[19]

History

See also: iOS version history

Major iOS releases Release Initial release date iPhone OS 1 June 29, 2007 iPhone OS 2 July 11, 2008 iPhone OS 3 June 17, 2009 iOS 4 June 21, 2010 iOS 5 October 12, 2011 iOS 6 September 19, 2012 iOS 7 September 18, 2013 iOS 8 September 17, 2014 iOS 9 September 16, 2015 iOS 10 September 13, 2016 iOS 11 September 19, 2017 iOS 12 September 17, 2018 iOS 13[a] September 19, 2019 iOS 14 September 16, 2020 iOS 15 September 20, 2021 iOS 16 September 12, 2022 iOS 17 September 18, 2023 iOS 18 September 2024 Legend: Obsolete Supported Current Beta

In 2005, when Steve Jobs began planning the iPhone, he had a choice to either "shrink the Mac, which would be an epic feat of engineering, or enlarge the iPod". Jobs favored the former approach but pitted the Macintosh and iPod teams, led by Scott Forstall and Tony Fadell, respectively, against each other in an internal competition, with Forstall winning by creating iPhone OS. The decision enabled the success of the iPhone as a platform for third-party developers: using a well-known desktop operating system as its basis allowed the many third-party Mac developers to write software for the iPhone with minimal retraining. Forstall was also responsible for creating a software development kit for programmers to build iPhone apps, as well as an App Store within iTunes.[20][21]

The operating system was unveiled with the iPhone at the Macworld Conference & Expo on January 9, 2007, and released in June of that year.[22][23][24] At the time of its unveiling in January, Steve Jobs claimed: "iPhone runs OS X" and runs "desktop class applications",[25][26] but at the time of the iPhone's release, the operating system was renamed "iPhone OS".[27] Initially, third-party native applications were not supported. Jobs' reasoning was that developers could build web applications through the Safari web browser that "would behave like native apps on the iPhone".[28][29] In October 2007, Apple announced that a native Software Development Kit (SDK) was under development and that they planned to put it "in developers' hands in February".[30][31][32] On March 6, 2008, Apple held a press event, announcing the iPhone SDK.[33][34]

The iOS App Store was opened on July 10, 2008, with an initial 500 applications available.[35] This quickly grew to 3,000 in September 2008,[36] 15,000 in January 2009,[37] 50,000 in June 2009,[38] 100,000 in November 2009,[39][40] 250,000 in August 2010,[41][42] 650,000 in July 2012,[43] 1 million in October 2013,[44][45] 2 million in June 2016,[46][47][48] and 2.2 million in January 2017.[49][50] As of March 2016 , 1 million apps are natively compatible with the iPad tablet computer.[51] These apps have collectively been downloaded more than 130 billion times.[46] App intelligence firm Sensor Tower estimated that the App Store would reach 5 million apps by 2020.[52]

In September 2007, Apple announced the iPod Touch, a redesigned iPod based on the iPhone form factor.[53] On January 27, 2010, Apple introduced their much-anticipated media tablet, the iPad, featuring a larger screen than the iPhone and iPod Touch, and designed for web browsing, media consumption, and reading, and offering multi-touch interaction with multimedia formats including newspapers, e-books, photos, videos, music, word processing documents, video games, and most existing iPhone apps using a 9.7-inch (25 cm) screen.[54][55][56] It also includes a mobile version of Safari for web browsing, as well as access to the App Store, iTunes Library, iBookstore, Contacts, and Notes. Content is downloadable via Wi-Fi and optional 3G service or synced through the user's computer.[57] AT&T was initially the sole U.S. provider of 3G wireless access for the iPad.[58]

In June 2010, Apple rebranded iPhone OS as "iOS".[59][60] The trademark "IOS" had been used by Cisco for over a decade for its operating system, IOS, used on its routers. To avoid any potential lawsuit, Apple licensed the "IOS" trademark from Cisco.[61]

The Apple Watch smartwatch was announced by Tim Cook on September 9, 2014, being introduced as a product with health and fitness-tracking.[62][63] It was released on April 24, 2015.[64][65][66] It uses watchOS as its operating system; watchOS is based on iOS, with new features created specially for the Apple Watch such as an activity tracking app.[67]

In October 2016, Apple opened its first iOS Developer Academy in Naples inside University of Naples Federico II's new campus.[68][69] The course is completely free, aimed at acquiring specific technical skills on the creation and management of applications for the Apple ecosystem platforms.[70] At the academy there are also issues of business administration (business planning and business management with a focus on digital opportunities) and there is a path dedicated to the design of graphical interfaces. Students have the opportunity to participate in the "Enterprise Track", an in-depth training experience on the entire life cycle of an app, from design to implementation, to security, troubleshooting, data storage and cloud usage.[71][72] As of 2020, the academy graduated almost a thousand students from all over the world, who have worked on 400 app ideas and have already published about 50 apps on the iOS App Store. In the 2018–2019 academic year, students from more than 30 countries arrived. 35 of these have been selected to attend the Worldwide Developer Conference, the annual Apple Developer Conference held annually in California in early June.[73][74]

On June 3, 2019, iPadOS, the branded version of iOS for iPad, was announced at the 2019 WWDC; it was launched on September 25, 2019.[75]

Features

Interface

The iOS user interface is based upon direct manipulation, using multi-touch gestures such as swipe, tap, pinch, and reverse pinch. Interface control elements include sliders, switches, and buttons.[76] Internal accelerometers are used by some applications to respond to shaking the device (one common result is the undo command) or rotating it in three dimensions (one common result is switching between portrait and landscape mode). Various accessibility described in § Accessibility functions enable users with vision and hearing disabilities to properly use iOS.[77]

iOS devices boot to the lock screen. The lock screen shows the time and a user's lock screen widgets, which display timely information from apps. [78] Upon unlock, a user is directed to the home screen, which is the primary navigation and information "hub" on iOS devices, analogous to the desktop found on personal computers. iOS home screens are typically made up of app icons and widgets; app icons launch the associated app, whereas widgets display live, auto-updating content, such as a weather forecast, the user's email inbox, or a news ticker directly on the home screen.[79]

Along the top of the screen is a status bar, showing information about the device and its connectivity. The Control Center can be "pulled" down from the top right of the notch or Dynamic Island (on iPhones with Face ID) or can be "pulled" up from the bottom to top of the screen (on iPhones with Touch ID), giving access to various toggles to manage the device more quickly without having to open the Settings. It is possible to manage brightness, volume, wireless connections, music player, etc.[80]

Scrolling from the top left to the bottom (or top to bottom on iPhones with Touch ID) will open the Notification Center, which in the latest versions of iOS is very similar to the lock screen. It displays notifications in chronological order and groups them by application. From the notifications of some apps it is possible to interact directly, for example by replying to a message directly from it. Notifications are sent in two modes, critical alerts that are displayed on the lock screen and signaled by a distinctive sound and vibration (e.g. emergency alerts or severe weather alerts), accompanied by a warning banner and the app badge icon, and standard alerts which use a default sound and vibration. Both can be found in the Notification Center, and show for a set amount of time on the lock screen (unless the user has Notification Center allowed when locked). [81][82]

On iPhones with Touch ID, screenshots can be created with the simultaneous press of the home and power buttons. In comparison to Android, which requires the buttons to be held down, a short press does suffice on iOS.[83] On iPhone with Face ID, screenshots are captured using the volume-up and power buttons instead.[84]

The camera application used a skeuomorphic closing camera shutter animation prior to iOS 7. Since then, it uses a simple short blackout effect.[85] Notable additions over time include HDR photography and the option to save both normal and high dynamic range photographs simultaneously where the former prevents ghosting effects from moving objects (since iPhone 5 on iOS 6), automatic HDR adjustment (since iOS 7.1), "live photo" with short video bundled to each photo if enabled (iPhone 6s, iOS 9), and a digital zoom shortcut (iPhone 7 Plus, iOS 10).[86][87][88] Some camera settings such as video resolution and frame rate are not adjustable through the camera interface itself, but are outsourced to the system settings.[89]

A new feature in iOS 13 called "context menus" shows related actions when you touch and hold an item. When the context menu is displayed, the background is blurred.[90]

To choose from a few options, a selection control is used. Selectors can appear anchored at the bottom or in line with the content (called date selectors). Date selectors take on the appearance of any other selection control, but with a column for day, month, and optionally year.

Alerts appear in the center of the screen, but there are also alerts that scroll up from the bottom of the screen (called "action panels"). Destructive actions (such as eliminating any element) are colored red.

The official font of iOS is San Francisco. It is designed for small text readability, and is used throughout the operating system, including third-party apps.[90]

The icons are 180x180px in size for iPhones with a larger screen, usually models over 6 inches, including iPhone 11 Pro and iPhone 8 Plus, while they are 120x120px on iPhones with smaller displays.[91]

Home screen

Main article: SpringBoard

The home screen, rendered by SpringBoard, displays application icons and a dock at the bottom where users can pin their most frequently used apps. iOS home screens are typically made up of app icons and widgets; app icons launch the associated app, whereas widgets display live, auto-updating content, such as a weather forecast, the user's email inbox, or a news ticker directly on the home screen.[92] The home screen appears whenever the user unlocks the device, presses the physical "Home" button while in an app, or swipes up from the bottom of the screen using the home bar.[93] 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. When a passcode is set and a user switches on the device, the passcode must be entered at the Lock Screen before access to the Home screen is granted.[94]

In iPhone OS 3, Spotlight was introduced, allowing users to search media, apps, emails, contacts, messages, reminders, calendar events, and similar content. In iOS 7 and later, Spotlight is accessed by pulling down anywhere on the home screen (except for the top and bottom edges that open Notification Center and Control Center).[95][96] In iOS 9, there are two ways to access Spotlight. As with iOS 7 and 8, pulling down on any homescreen will show Spotlight. However, it can also be accessed as it was in iOS versions 3 through 6. This endows Spotlight with Siri suggestions, which include app suggestions, contact suggestions and news.[97] In iOS 10, Spotlight is at the top of the now-dedicated "Today" panel.[98]

Since iPhone OS 3.2, users are able to set a background image for the Home Screen. This feature is only available on third-generation devices—iPhone 3GS, third-generation iPod Touch (iOS 4.0 or newer), and all iPad models (since iPhone OS 3.2)—or newer.[citation needed]

iOS 7 introduced a parallax effect on the Home Screen, which shifts the device's wallpaper and icons in response to the movement of the device, creating a 3D effect and an illusion of floating icons. This effect is also visible in the tab view of Mail and Safari.[99]

Researchers found that users organize icons on their homescreens based on usage frequency and relatedness of the applications, as well as for reasons of usability and aesthetics.[100]

System font

iOS originally used Helvetica as the system font. Apple switched to Helvetica Neue exclusively for the iPhone 4 and its Retina Display, and retained Helvetica as the system font for older iPhone devices on iOS 4.[101] With iOS 7, Apple announced that they would change the system font to Helvetica Neue Light, a decision that sparked criticism for inappropriate usage of a light, thin typeface for low-resolution mobile screens. Apple eventually chose Helvetica Neue instead.[102][103] The release of iOS 7 also introduced the ability to scale text or apply other forms of text accessibility changes through Settings.[104][105] With iOS 9, Apple changed the font to San Francisco, an Apple-designed font aimed at maximum legibility and font consistency across its product lineup.[106][107]

Folders

iOS 4 introduced folders, which can be created by dragging an application on top of another, and from then on, more items can be added to the folder using the same procedure. A title for the folder is automatically selected by the category of applications inside, but the name can also be edited by the user.[108] When apps inside folders receive notification badges, the individual numbers of notifications are added up and the total number is displayed as a notification badge on the folder itself.[108] Originally, folders on an iPhone could include up to 12 apps, while folders on iPad could include 20.[109] With increasing display sizes on newer iPhone hardware, iOS 7 updated the folders with pages similar to the home screen layout, allowing for a significant expansion of folder functionality. Each page of a folder can contain up to nine apps, and there can be 15 pages in total, allowing for a total of 135 apps in a single folder.[110] In iOS 9, Apple updated folder sizes for iPad hardware, allowing for 16 apps per page, still at 15 pages maximum, increasing the total to 240 apps.[111]

Notification Center

Main article: Notification Center

Before iOS 5, notifications were delivered in a modal window and could not be viewed after being dismissed. In iOS 5, Apple introduced Notification Center, which allows users to view a history of notifications. The user can tap a notification to open its corresponding app, or clear it.[112] Notifications are now delivered in banners that appear briefly at the top of the screen. If a user taps a received notification, the application that sent the notification will be opened. Users can also choose to view notifications in modal alert windows by adjusting the application's notification settings. Introduced with iOS 8, widgets are now accessible through the Notification Center, defined by 3rd parties.[113]

When an app sends a notification while closed, a red badge appears on its icon. This badge tells the user, at a glance, how many notifications that app has sent. Opening the app clears the badge.

Applications

iOS devices come with preinstalled apps developed by Apple including Mail, Maps, TV, Music, FaceTime, Wallet, Health, and many more.

Applications ("apps") are the most general form of application software that can be installed on iOS. They are downloaded from the official catalog of the App Store digital store, where apps are subjected to security checks before being made available to users. In June 2017, Apple updated its guidelines to specify that app developers will no longer have the ability to use custom prompts for encouraging users to leave reviews for their apps.[114][115] IOS applications can also be installed directly from an IPA file provided by the software distributor, via unofficial ways. They are written using iOS Software Development Kit (SDK) and, often, combined with Xcode, using officially supported programming languages, including Swift and Objective-C. Other companies have also created tools that allow for the development of native iOS apps using their respective programming languages.

Applications for iOS are mostly built using components of UIKit, a programming framework. It allows applications to have a consistent look and feel with the OS, nevertheless offering customization.

Elements automatically update along with iOS updates, automatically including new interface rules. UIKit elements are very adaptable, this allows developers to design a single app that looks the same on any iOS device. In addition to defining the iOS interface, UIKit defines the functionality of the application.

At first, Apple did not intend to release an SDK to developers, because they did not want third-party apps to be developed for iOS, building web apps instead. However, this technology never entered into common use, this led Apple to change its opinion, so in October 2007 the SDK for developers was announced, finally released on March 6, 2008.

The SDK includes an inclusive set of development tools,[116] including an audio mixer and an iPhone simulator. It is a free download for Mac users. It is not available for Microsoft Windows PCs. To test the application, get technical support, and distribute applications through App Store, developers are required to subscribe to the Apple Developer Program.

Over the years, the Apple Store apps surpassed multiple major milestones, including 50,000,[117] 100,000,[118] 250,000,[119] 500,000,[120] 1 million,[121] and 2 million apps.[122] The billionth application was installed on April 24, 2009.[123]

App Library

App Library automatically categorizes apps into folders based on their function or type and incluses an alphabetical list of all installed apps. For example, it might group all social media apps into one folder and productivity apps into another.[124] Users can quickly find and access apps by using the search bar at the top of the App Library. Users can choose to hide specific app pages from the home screen, making it easier to focus on the apps they use most frequently.[125]

Storage

See also: iCloud

iOS enforces strict sandboxing to maintain security and privacy. Apps are generally limited to accessing their own containers and specific system-provided directories, such as the Photos library. To access files outside of their sandbox, iOS uses mechanisms like document pickers, file providers, and app extensions.

iOS 8 introduced the Document Picker and Document Provider extensions as part of the document interaction controller.[126][127][128] This allows apps to open, save, and interact with documents stored in a central location or cloud storage services.

With iOS 11, Apple introduced the Files app[129] and the File Provider extension,[130] providing a central location for users to manage and organize their files. Apps can integrate with the Files app to make their documents accessible and editable directly from the Files app.

The storage of iOS devices can be expanded through iCloud, the Apple's cloud-based storage solution that provides 5GB of storage for free to all users, while other plans require a paid subscription. iCloud Drive allows users to store various types of files, such as documents, presentations, and spreadsheets, in the cloud. These files can be accessed across multiple devices as long as the user is signed in with the same Apple ID.

Accessibility

iOS offers various accessibility features to help users with vision and hearing disabilities. One major feature, VoiceOver, provides a voice reading information on the screen, including contextual buttons, icons, links and other user interface elements, and allows the user to navigate the operating system through gestures. Any apps with default controls and developed with a UIKit framework gets VoiceOver functionality built in.[131] One example includes holding up the iPhone to take a photo, with VoiceOver describing the photo scenery.[132] As part of a "Made for iPhone" program, introduced with the release of iOS 7 in 2013, Apple has developed technology to use Bluetooth and a special technology protocol to let compatible third-party equipment connect with iPhones and iPads for streaming audio directly to a user's ears. Additional customization available for Made for iPhone products include battery tracking and adjustable sound settings for different environments.[133][134] Apple made further efforts for accessibility for the release of iOS 10 in 2016, adding a new pronunciation editor to VoiceOver, adding a Magnifier setting to enlarge objects through the device's camera, software TTY support for deaf people to make phone calls from the iPhone, and giving tutorials and guidelines for third-party developers to incorporate proper accessibility functions into their apps.[135]

In 2012, Liat Kornowski from The Atlantic wrote that "the iPhone has turned out to be one of the most revolutionary developments since the invention of Braille",[136] and in 2016, Steven Aquino of TechCrunch described Apple as "leading the way in assistive technology", with Sarah Herrlinger, Senior Manager for Global Accessibility Policy and Initiatives at Apple, stating that "We see accessibility as a basic human right. Building into the core of our products supports a vision of an inclusive world where opportunity and access to information are barrier-free, empowering individuals with disabilities to achieve their goals".[137]

Criticism has been aimed at iOS depending on both internet connection (either WiFi or through iTunes) and a working SIM card upon first activation.[138] This restriction has been loosened in iOS 12, which no longer requires the latter.[139]

Multitasking

Multitasking for iOS was first released in June 2010 along with the release of iOS 4.[140][141] Only certain devices—iPhone 4, iPhone 3GS, and iPod Touch 3rd generation—were able to multitask.[142] The iPad did not get multitasking until iOS 4.2.1 in that November.[143]

The implementation of multitasking in iOS has been criticized for its approach, which limits the work that applications in the background can perform to a limited function set and requires application developers to add explicit support for it.[142][144]

Before iOS 4, multitasking was limited to a selection of the applications Apple included on the device. Users could however "jailbreak" their device in order to unofficially multitask.[145] Starting with iOS 4, on third-generation and newer iOS devices, multitasking is supported through seven background APIs:[146]

Background audio – application continues to run in the background as long as it is playing audio or video content[147]

Voice over IP – application is suspended when a phone call is not in progress[147]

Background location – application is notified of location changes[147]

Push notifications

Local notifications – application schedules local notifications to be delivered at a predetermined time[147]

Task completion – application asks the system for extra time to complete a given task[147]

Fast app switching – application does not execute any code and may be removed from memory at any time[147]

In iOS 5, three new background APIs were introduced:

Newsstand – application can download content in the background to be ready for the user[147]

External Accessory – application communicates with an external accessory and shares data at regular intervals[147]

Bluetooth Accessory – application communicates with a bluetooth accessory and shares data at regular intervals[147]

In iOS 7, Apple introduced a new multitasking feature, providing all apps with the ability to perform background updates. This feature prefers to update the user's most frequently used apps and prefers to use Wi-Fi networks over a cellular network, without markedly reducing the device's battery life.

Switching applications

In iOS 4.0 to iOS 6.x, double-clicking the home button activates the application switcher. A scrollable dock-style interface appears from the bottom, moving the contents of the screen up. Choosing an icon switches to an application. To the far left are icons which function as music controls, a rotation lock, and on iOS 4.2 and above, a volume controller.

With the introduction of iOS 7, double-clicking the home button also activates the application switcher. However, unlike previous versions it displays screenshots of open applications on top of the icon and horizontal scrolling allows for browsing through previous apps, and it is possible to close applications by dragging them up, similar to how WebOS handled multiple cards.[148]

With the introduction of iOS 9, the application switcher received a significant visual change; while still retaining the card metaphor introduced in iOS 7, the application icon is smaller, and appears above the screenshot (which is now larger, due to the removal of "Recent and Favorite Contacts"), and each application "card" overlaps the other, forming a rolodex effect as the user scrolls. Now, instead of the home screen appearing at the leftmost of the application switcher, it appears rightmost.[149] In iOS 11, the application switcher receives a major redesign. In the iPad, the Control Center and app switcher are combined. The app switcher in the iPad can also be accessed by swiping up from the bottom. In the iPhone, the app switcher cannot be accessed if there are no apps in the RAM.

Ending tasks

In iOS 4.0 to iOS 6.x, briefly holding the icons in the application switcher makes them "jiggle" (similarly to the homescreen) and allows the user to force quit the applications by tapping the red minus circle that appears at the corner of the app's icon.[150] Clearing applications from multitasking stayed the same from iOS 4.0 through 6.1.6, the last version of iOS 6.

As of iOS 7, the process has become faster and easier. In iOS 7, instead of holding the icons to close them, they are closed by simply swiping them upwards off the screen. Up to three apps can be cleared at a time compared to one in versions up to iOS 6.1.6.[151]

Task completion

Task completion allows apps to continue a certain task after the app has been suspended.[152][153] As of iOS 4.0, apps can request up to ten minutes to complete a task in the background.[154] This doesn't extend to background uploads and downloads though (e.g. if a user starts a download in one application, it won't finish if they switch away from the application).

Siri

Main article: Siri

Siri ( ) is a virtual assistant integrated into iOS. The assistant uses voice queries and a natural-language user interface to answer questions, make recommendations, and perform actions by delegating requests to a set of Internet services. The software adapts to users' individual language usages, searches, and preferences, with continuing use. Returned results are individualized.

Originally released as an app for iOS in February 2010,[155] it was acquired by Apple two months later,[156][157][158] and then integrated into iPhone 4S at its release in October 2011.[159][160] At that time, the separate app was also removed from the iOS App Store.[161]

Siri supports a wide range of user commands, including performing phone actions, checking basic information, scheduling events and reminders, handling device settings, searching the Internet, navigating areas, finding information on entertainment, and is able to engage with iOS-integrated apps.[162] With the release of iOS 10 in 2016, Apple opened up limited third-party access to Siri, including third-party messaging apps, as well as payments, ride-sharing, and Internet calling apps.[163][164] With the release of iOS 11, Apple updated Siri's voices for more clear, human voices, it now supports follow-up questions and language translation, and additional third-party actions.[165][166] iOS 17 enabled users to activate Siri by simply saying “Siri”, while the previous command, “Hey Siri”, is still supported.

Game Center

Main article: Game Center

Game Center is an online multiplayer "social gaming network"[167] released by Apple.[168] It allows users to "invite friends to play a game, start a multiplayer game through matchmaking, track their achievements, and compare their high scores on a leaderboard." iOS 5 and above adds support for profile photos.[167]

Game Center was announced during an iOS 4 preview event hosted by Apple on April 8, 2010. A preview was released to registered Apple developers in August.[167] It was released on September 8, 2010, with iOS 4.1 on iPhone 4, iPhone 3GS, and iPod Touch 2nd generation through 4th generation.[169] Game Center made its public debut on the iPad with iOS 4.2.1.[170] There is no support for the iPhone 3G, original iPhone and the first-generation iPod Touch (the latter two devices did not have Game Center because they did not get iOS 4).[171] However, Game Center is unofficially available on the iPhone 3G via a hack.[172]

Hardware

The main hardware platform for iOS is the ARM architecture (the ARMv7, ARMv8-A, ARMv8.2-A, ARMv8.3-A). iOS releases before iOS 7 can only be run on iOS devices with 32-bit ARM processors (ARMv6 and ARMv7-A architectures). In 2013, iOS 7 was released with full 64-bit support (which includes a native 64-bit kernel, libraries, drivers as well as all built-in applications),[173] after Apple announced that they were switching to 64-bit ARMv8-A processors with the introduction of the Apple A7 chip.[174] 64-bit support was also enforced for all apps in the App Store; All new apps submitted to the App Store with a deadline of February 2015, and all app updates submitted to the App Store with a deadline of June 1, 2015.[175] iOS 11 drops support for all iOS devices with 32-bit ARM processors as well as 32-bit applications,[176][177] making iOS 64-bit only.[178]

Development

Main article: iOS SDK

The iOS SDK (Software development kit) allows for the development of mobile apps on iOS.

While originally developing iPhone prior to its unveiling in 2007, Apple's then-CEO Steve Jobs did not intend to let third-party developers build native apps for iOS, instead directing them to make web applications for the Safari web browser.[179] However, backlash from developers prompted the company to reconsider,[179] with Jobs announcing in October 2007 that Apple would have a software development kit available for developers by February 2008.[180][181] The SDK was released on March 6, 2008.[182][183]

The SDK is a free download for users of Mac personal computers.[184] It is not available for Microsoft Windows PCs.[184] The SDK contains sets giving developers access to various functions and services of iOS devices, such as hardware and software attributes.[185] It also contains an iPhone simulator to mimic the look and feel of the device on the computer while developing.[185] New versions of the SDK accompany new versions of iOS.[186][187] In order to test applications, get technical support, and distribute apps through App Store, developers are required to subscribe to the Apple Developer Program.[184]

Combined with Xcode, the iOS SDK helps developers write iOS apps using officially supported programming languages, including Swift and Objective-C.[188] Other companies have also created tools that allow for the development of native iOS apps using their respective programming languages.[189][190]

Apple provides major updates to the iOS operating system annually via iTunes and, since iOS 5, also over-the-air.[192] The device checks an XML-based PLIST file on mesu.apple.com [citation needed] for updates. Updates are delivered as unencrypted ZIP files. Updates are checked for regularly, and are downloaded and installed automatically if enabled. Otherwise, the user can install them manually or are prompted to allow automatic installation overnight if plugged in and connected to Wi-Fi.

iPod Touch users originally had to pay for system software updates due to accounting rules that designated it not a "subscription device" like the iPhone or Apple TV,[193][194] causing many iPod Touch owners not to update.[195] In September 2009, a change in accounting rules won tentative approval, affecting Apple's earnings and stock price, and allowing iPod Touch updates to be delivered free of charge.[196][197]

Apple significantly extended the cycle of updates for iOS-supported devices over the years. The iPhone (1st generation) and iPhone 3G only received two iOS updates, while later models had support for five, six, and seven years.[198][199]

XNU kernel

Main article: XNU

The iOS kernel is the XNU kernel of Darwin. The original iPhone OS (1.0) up to iPhone OS 3.1.3 used Darwin 9.0.0d1. iOS 4 was based on Darwin 10. iOS 5 was based on Darwin 11. iOS 6 was based on Darwin 13. iOS 7 and iOS 8 are based on Darwin 14. iOS 9 is based on Darwin 15. iOS 10 is based on Darwin 16. iOS 11 is based on Darwin 17. iOS 12 is based on Darwin 18. iOS 13 is based on Darwin 19. iOS 14 is based on Darwin 20. iOS 15 is based on Darwin 21. iOS 16 is based on Darwin 22.[200]

In iOS 6 the kernel is subject to ASLR, similar to that of OS X Mountain Lion. This makes exploit possibilities more complex since it is not possible to know the location of kernel code.

Apple has made the XNU kernel open source.[201] The source is under a 3-clause[202] BSD license for the original BSD parts, with parts added by Apple under the Apple Public Source License.[203] The versions contained in iOS are not available; only the versions used in macOS are available.

iOS does not have kernel extensions (kexts) in the file system, even if they are actually present. The kernel cache can be decompressed to show the correct kernel, along with the kexts (all packed in the __PRELINK_TEXT section) and their plists (in the __PRELINK_INFO section).

The kernel cache can also be directly decompressed (if decrypted) using third-party tools. With the advent of iOS 10 betas and default plain text kernelcaches, these tools can only be used after unpacking and applying lzssdec to unpack the kernel cache to its full size.

The kextstat provided by the Cydia alternative software does not work on iOS because the kextstat is based on kmod_get_info(...), which is a deprecated API in iOS 4 and Mac OS X Snow Leopard. There are other alternative software that can also dump raw XML data.

On developing devices, the kernel is always stored as a statically linked cache stored in /System/Library/Caches/com.apple.kernelcaches/kernelcache which is unpacked and executed at boot.

In the beginning, iOS had a kernel version usually higher than the corresponding version of macOS. Over time, the kernels of iOS and macOS have gotten closer. This is not surprising, considering that iOS introduced new features (such as the ASLR Kernel, the default freezer, and various security-strengthening features) that were first incorporated and subsequently arrived on macOS. It appears Apple is gradually merging the iOS and macOS kernels over time. The build date for each version varies slightly between processors. This is due to the fact that the builds are sequential.

Darwin Kernel version history iOS version Darwin Kernel Build Notes 1.0 Darwin Kernel Version 9.0.0d1: Tue May 22 21:15:55 PDT 2007; root:xnu-933.0.0.178.obj~3/RELEASE_ARM_S5L8900XRB 1.0.1 Darwin Kernel Version 9.0.0d1: Fri Jun 22 00:38:56 PDT 2007; root:xnu-933.0.1.178.obj~1/RELEASE_ARM_S5L8900XRB 1.0.2 1.1 Darwin Kernel Version 9.0.0d1: Thu Sep 6 23:26:45 PDT 2007; root:xnu-933.0.0.203.obj~6/RELEASE_ARM_S5L8900XRB iPod touch only 1.1.1 Darwin Kernel Version 9.0.0d1: Wed Sep 19 00:08:42 PDT 2007; root:xnu-933.0.203~21/RELEASE_ARM_S5L8900XRB 1.1.2 Darwin Kernel Version 9.0.0d1: Wed Oct 10 00:07:49 PDT 2007; root:xnu-933.0.204~7/RELEASE_ARM_S5L8900XRB 1.1.3 Darwin Kernel Version 9.0.0d1: Wed Dec 12 00:16:00 PST 2007; root:xnu-933.0.211~2/RELEASE_ARM_S5L8900XRB 1.1.4 1.1.5 iPod touch only 2.0 GM Darwin Kernel Version 9.3.1: Sun Jun 15 21:37:01 PDT 2008; root:xnu-1228.6.76~45/RELEASE_ARM_S5L8900X 2.0 2.0.1 2.0.2 2.1 Darwin Kernel Version 9.4.1: Sun Aug 10 21:25:25 PDT 2008; root:xnu-1228.7.27~12/RELEASE_ARM_S5L8720X 2.1.1 2.2 Darwin Kernel Version 9.4.1: Sat Nov 1 19:13:13 PDT 2008; root:xnu-1228.7.36~2/RELEASE_ARM_S5L8720X 2.2.1 Darwin Kernel Version 9.4.1: Mon Dec 8 21:02:57 PST 2008; root:xnu-1228.7.37~4/RELEASE_ARM_S5L8720X 3.0 Darwin Kernel Version 10.0.0d3: Wed May 13 22:16:49 PDT 2009; root:xnu-1357.2.89~4/RELEASE_ARM_S5L8920X 3.0.1 3.1 Darwin Kernel Version 10.0.0d3: Fri Aug 14 13:23:32 PDT 2009; root:xnu-1357.5.30~2/RELEASE_ARM_S5L8920X 3.1.2 Darwin Kernel Version 10.0.0d3: Fri Sep 25 23:35:35 PDT 2009; root:xnu-1357.5.30~3/RELEASE_ARM_S5L8920X 3.1.3 Darwin Kernel Version 10.0.0d3: Fri Dec 18 01:34:28 PST 2009; root:xnu-1357.5.30~6/RELEASE_ARM_S5L8920X 3.2 Darwin Kernel Version 10.3.1: Mon Mar 15 23:15:33 PDT 2010; root:xnu-1504.2.27~18/RELEASE_ARM_S5L8930X iPad only 3.2.1 Darwin Kernel Version 10.3.1: Fri May 28 16:46:17 PDT 2010; root:xnu-1504.2.50~4/RELEASE_ARM_S5L8930X 3.2.2 Darwin Kernel Version 10.3.1: Wed Aug 4 19:08:04 PDT 2010; root:xnu-1504.2.60~1/RELEASE_ARM_S5L8930X 4.0 Darwin Kernel Version 10.3.1: Wed May 26 22:28:33 PDT 2010; root:xnu-1504.50.73~2/RELEASE_ARM_S5L8930X 4.0.1 4.0.2 Darwin Kernel Version 10.3.1: Wed Aug 4 18:46:06 PDT 2010; root:xnu-1504.50.80~1/RELEASE_ARM_S5L8930X 4.1 Darwin Kernel Version 10.3.1: Wed Aug 4 22:35:51 PDT 2010; root:xnu-1504.55.33~10/RELEASE_ARM_S5L8930X 4.2.1 Darwin Kernel Version 10.4.0: Wed Oct 20 20:14:45 PDT 2010; root:xnu-1504.58.28~3/RELEASE_ARM_S5L8930X 4.2.5 Darwin Kernel Version 10.4.0: Thu Dec 30 19:38:02 PST 2010; root:xnu-1504.62~11/RELEASE_ARM_S5L8930X iPhone 4 only. 4.2.6 4.2.7 4.2.8 4.2.9 Darwin Kernel Version 10.4.0: Fri Jul 8 18:32:26 PDT 2011; root:xnu-1504.63~1/RELEASE_ARM_S5L8930X 4.2.10 4.3 Darwin Kernel Version 11.0.0: Thu Feb 10 21:46:56 PST 2011; root:xnu-1735.46~2/RELEASE_ARM_S5L8930X 4.3.1 4.3.2 Darwin Kernel Version 11.0.0: Wed Mar 30 18:51:10 PDT 2011; root:xnu-1735.46~10/RELEASE_ARM_S5L8930X 4.3.3 4.3.4 Darwin Kernel Version 11.0.0: Sat Jul 9 00:59:43 PDT 2011; root:xnu-1735.47~1/RELEASE_ARM_S5L8930X 4.3.5 5.0 Darwin Kernel Version 11.0.0: Thu Sep 15 23:34:16 PDT 2011; root:xnu-1878.4.43~2/RELEASE_ARM_S5L8930X 5.0.1 Darwin Kernel Version 11.0.0: Tue Nov 1 20:34:16 PDT 2011; root:xnu-1878.4.46~1/RELEASE_ARM_S5L8940X 5.1 Darwin Kernel Version 11.0.0: Wed Feb 1 23:18:07 PST 2012; root:xnu-1878.11.8~1/RELEASE_ARM_S5L8945X 5.1.1 Darwin Kernel Version 11.0.0: Sun Apr 8 21:51:26 PDT 2012; root:xnu-1878.11.10~1/RELEASE_ARM_S5L8930X 6.0 Darwin Kernel Version 13.0.0: Sun Aug 19 00:27:34 PDT 2012; root:xnu-2107.2.33~4/RELEASE_ARM_S5L8930X 6.0.1 Darwin Kernel Version 13.0.0: Wed Oct 10 23:32:19 PDT 2012; root:xnu-2107.2.34~2/RELEASE_ARM_S5L8950X 6.0.2 iPhone 5 only. 6.1 Darwin Kernel Version 13.0.0: Sun Dec 16 20:01:39 PST 2012; root:xnu-2107.7.55~11/RELEASE_ARM_S5L8950X 6.1.1 iPhone 4s only 6.1.2 6.1.3 Darwin Kernel Version 13.0.0: Wed Feb 13 21:35:42 PST 2013; root:xnu-2107.7.55.2.2~1/RELEASE_ARM_S5L8920X 6.1.4 iPhone 5 only. 6.1.5 iPod touch (4th generation) only. 6.1.6 iPod touch (4th generation) and iPhone 3GS only. 7.0 Darwin Kernel Version 14.0.0: Tue Aug 13 21:39:05 PDT 2013; root:xnu-2423.1.73~3/RELEASE_ARM_S5L8930X 7.0.1 Darwin Kernel Version 14.0.0: Mon Sep 9 20:56:02 PDT 2013; root:xnu-2423.1.74~2/RELEASE_ARM64_S5L8960X iPhone 5c and 5s only 7.0.2 7.0.3 Darwin Kernel Version 14.0.0: Fri Sep 27 23:08:32 PDT 2013; root:xnu-2423.3.12~1/RELEASE_ARM64_S5L8960X 7.0.4 7.0.5 iPhone 5c and iPhone 5s only. 7.0.6 7.1 Darwin Kernel Version 14.0.0: Fri Feb 21 19:41:10 PST 2014; root:xnu-2423.10.67~1/RELEASE_ARM_S5L8930X 7.1.1 Darwin Kernel Version 14.0.0: Fri Mar 28 21:22:10 PDT 2014; root:xnu-2423.10.70~1/RELEASE_ARM_S5L8930X 7.1.2 Darwin Kernel Version 14.0.0: Thu May 15 23:17:54 PDT 2014; root:xnu-2423.10.71~1/RELEASE_ARM64_S5L8960X 8.0 Darwin Kernel Version 14.0.0: Tue Aug 19 15:09:47 PDT 2014; root:xnu-2783.1.72~8/RELEASE_ARM64_S5L8960X 8.0.1 Darwin Kernel Version 14.0.0: Thu Sep 18 21:52:21 PDT 2014; root:xnu-2783.1.72~23/RELEASE_ARM_S5L8950X 8.0.2 8.1 Darwin Kernel Version 14.0.0: Fri Oct 7 00:04:37 PDT 2014; root:xnu-2783.3.13~4/RELEASE_ARM_S5L8950X 8.1.1 Darwin Kernel Version 14.0.0: Mon Nov 3 22:54:30 PDT 2014; root:xnu-2783.3.22~1/RELEASE_ARM_S5L8950X 8.1.2 8.1.3 Darwin Kernel Version 14.0.0: Mon Jan 2 21:29:20 PST 2015; root:xnu-2783.3.26~3/RELEASE_ARM_S5L8950X 8.2 Darwin Kernel Version 14.0.0: Mon Feb 9 22:07:57 PST 2015; root:xnu-2783.5.38~5/RELEASE_ARM_S5L8950X 8.3 Darwin Kernel Version 14.0.0: Sun Mar 29 19:44:04 PDT 2015; root:xnu-2784.20.34~2/RELEASE_ARM_S5L8950X 8.4 Darwin Kernel Version 14.0.0: Wed Jun 24 00:50:15 PDT 2015; root:xnu-2784.30.7~30/RELEASE_ARM64_S5L8960X 8.4.1 Darwin Kernel Version 14.0.0: Wed Aug 5 19:24:44 PDT 2015; root:xnu-2784.40.6~18/RELEASE_ARM_S5L8950X 9.0 Darwin Kernel Version 15.0.0: Thu Aug 20 13:11:13 PDT 2015; root:xnu-3248.1.3~1\/RELEASE_ARM_S5L8950X 9.0.1 9.0.2 9.1 Darwin Kernel Version 15.0.0: Fri Oct 2 14:07:07 PDT 2015; root:xnu-3248.10.42~4\/RELEASE_ARM64_S5L8960X 9.2 Darwin Kernel Version 15.0.0: Fri Nov 13 16:08:07 PST 2015; root:xnu-3248.21.2~1\/RELEASE_ARM64_S5L8960X 9.2.1 Darwin Kernel Version 15.0.0: Wed Dec 9 22:19:38 PST 2015; root:xnu-3248.31.3~2\/RELEASE_ARM64_S5L8960X 9.3 Darwin Kernel Version 15.4.0: Fri Feb 19 13:54:52 PST 2016; root:xnu-3248.41.4~28\/RELEASE_ARM64_S8000 9.3.1 9.3.2 Darwin Kernel Version 15.5.0: Mon Apr 18 16:44:07 PDT 2016; root:xnu-3248.50.21~4\/RELEASE_ARM64_S8000 9.3.3 Darwin Kernel Version 15.6.0: Mon Jun 20 20:10:21 PDT 2016; root:xnu-3248.60.9~1/RELEASE_ARM_S5L8950X 9.3.4 9.3.5 Darwin Kernel Version 15.6.0: Fri Aug 19 10:37:56 PDT 2016; root:xnu-3248.61.1~1\/RELEASE_ARM64_S5L8960X 9.3.6 10.0 Darwin Kernel Version 16.0.0: Wed Aug 10 22:33:10 PDT 2016; root:xnu-3789.2.2~3\/RELEASE_ARM64_T8010 10.0.1 Darwin Kernel Version 16.0.0: Sun Aug 28 20:36:54 PDT 2016; root:xnu-3789.2.4~3\/RELEASE_ARM64_S8000 10.0.2 10.1 Darwin Kernel Version 16.1.0: Thu Sep 29 21:56:12 PDT 2016; root:xnu-3789.22.3~1\/RELEASE_ARM64_S8000 10.1.1 10.2 Darwin Kernel Version 16.3.0: Tue Nov 29 21:40:09 PST 2016; root:xnu-3789.32.1~4\/RELEASE_ARM64_S8000 10.2.1 Darwin Kernel Version 16.3.0: Thu Dec 15 22:41:46 PST 2016; root:xnu-3789.42.2~1\/RELEASE_ARM64_S8000 10.3 Darwin Kernel Version 16.5.0: Thu Feb 23 23:22:54 PST 2017; root:xnu-3789.52.2~7\/RELEASE_ARM64_S8000 10.3.1 10.3.2 Darwin Kernel Version 16.6.0: Mon Apr 17 17:33:34 PDT 2017; root:xnu-3789.60.24~24/RELEASE_ARM_S8000 10.3.3 Darwin Kernel Version 16.7.0: Thu Jun 15 18:33:36 PDT 2017; root:xnu-3789.70.16~4/RELEASE_ARM64_S8000 10.3.4 Darwin Kernel Version 16.7.0: Wed Jul 26 11:08:56 PDT 2017; root:xnu-3789.70.16~21/RELEASE_ARM_S5L8950X 11.0 Darwin Kernel Version 17.0.0: Fri Sep 1 14:59:17 PDT 2017; root:xnu-4570.2.5~167/RELEASE_ARM64_S8000 11.0.1 11.0.2 11.0.3 11.1 Darwin Kernel Version 17.2.0: Fri Sep 29 18:14:51 PDT 2017; root:xnu-4570.20.62~4/RELEASE_ARM64_T8015 11.1.1 11.1.2 11.2 Darwin Kernel Version 17.3.0: Mon Nov 6 21:19:16 PST 2017; root:xnu-4570.32.1~1/RELEASE_ARM64_T8015 11.2.1 11.2.2 11.2.5 Darwin Kernel Version 17.4.0: Fri Dec 8 19:35:51 PST 2017; root:xnu-4570.40.9~1/RELEASE_ARM64_T8015 11.2.6 11.3 Darwin Kernel Version 17.5.0: Tue Mar 13 21:32:11 PDT 2018; root:xnu-4570.52.2~8/RELEASE_ARM64_T8010 11.3.1 11.4 Darwin Kernel Version 17.6.0: Mon Apr 30 18:48:32 PDT 2018; root:xnu-4570.60.21~3/RELEASE_ARM64_T8015 11.4.1 Darwin Kernel Version 17.7.0: Mon Jun 11 19:06:27 PDT 2018; root:xnu-4570.70.24~3/RELEASE_ARM64_T8015 12.0 Darwin Kernel Version 18.0.0: Tue Aug 14 22:07:16 PDT 2018; root:xnu-4903.202.2~1/RELEASE_ARM64_T8015 12.0.1 12.1 Darwin Kernel Version 18.2.0: Tue Oct 16 21:02:33 PDT 2018; root:xnu-4903.222.5~1/RELEASE_ARM64_T8015 12.1.1 Darwin Kernel Version 18.2.0: Mon Nov 12 20:32:01 PST 2018; root:xnu-4903.232.2~1/RELEASE_ARM64_T8020 12.1.2 Darwin Kernel Version 18.2.0: Mon Nov 12 20:32:01 PST 2018; root:xnu-4903.232.2~1/RELEASE_ARM64_T8020 12.1.3 Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020 12.1.4 12.2 Darwin Kernel Version 18.5.0: Tue Mar 5 19:52:18 PST 2019; root:xnu-4903.252.2~1/RELEASE_ARM64_T8020 12.3 Darwin Kernel Version 18.6.0: Thu Apr 25 22:14:10 PDT 2019; root:xnu-4903.262.2~2/RELEASE_ARM64_T8020 12.3.1 (12F203) 12.3.1 (12F8202) Darwin Kernel Version 18.6.0: Thu May 9 15:45:33 PDT 2019; root:xnu-4903.262.2~4/RELEASE_ARM64_T8010 12.3.2 Darwin Kernel Version 18.6.0: Thu Apr 25 22:14:08 PDT 2019; root:xnu-4903.262.2~2/RELEASE_ARM64_T8015 12.4 Darwin Kernel Version 18.7.0: Fri Jun 21 22:24:16 PDT 2019; root:xnu-4903.270.47~7/RELEASE_ARM64_T8015 12.4.1 Darwin Kernel Version 18.7.0: Mon Aug 19 22:24:08 PDT 2019; root:xnu-4903.272.1~1/RELEASE_ARM64_T8020 12.4.2 Darwin Kernel Version 18.7.0: Mon Aug 19 22:24:08 PDT 2019; root:xnu-4903.272.1~1/RELEASE_ARM64_T7000 12.4.3 12.4.4 12.4.5 12.4.6 12.4.7 12.4.8 12.4.9 Darwin Kernel Version 18.7.0: Thu Oct 29 23:39:18 PDT 2020; root:xnu-4903.272.3~1/RELEASE_ARM64_T7000 12.5 Darwin Kernel Version 18.7.0: Mon Nov 9 15:07:15 PST 2020; root:xnu-4903.272.3~3/RELEASE_ARM64_T7000 12.5.1 12.5.2 12.5.3 12.5.4 12.5.5 Darwin Kernel Version 18.7.0: Thu Sep 16 20:47:11 PDT 2021; root:xnu-4903.272.4~1/RELEASE_ARM64_T7000 12.5.6 Darwin Kernel Version 18.7.0: Fri Aug 19 23:28:26 PDT 2022; root:xnu-4903.272.5~1/RELEASE_ARM64_T7000 12.5.7 13.0 Darwin Kernel Version 19.0.0: Mon Aug 12 20:19:35 PDT 2019; root:xnu-6153.0.103.12~1/RELEASE_ARM64_T8015 13.1 Darwin Kernel Version 19.0.0: Tue Sep 3 21:52:14 PDT 2019; root:xnu-6153.2.3~2/RELEASE_ARM64_T8030 13.1.1 13.1.2 13.1.3 13.2 Darwin Kernel Version 19.0.0: Wed Oct 9 22:42:11 PDT 2019; root:xnu-6153.42.1~1/RELEASE_ARM64_T8030 13.2.2 13.2.3 13.3 Darwin Kernel Version 19.2.0: Mon Nov 4 17:44:49 PST 2019; root:xnu-6153.60.66~39/RELEASE_ARM64_T8010 13.3.1 Darwin Kernel Version 19.3.0: Thu Jan 9 21:10:55 PST 2020; root:xnu-6153.82.3~1/RELEASE_ARM64_T8010 13.4 Darwin Kernel Version 19.4.0: Mon Feb 24 22:04:12 PST 2020; root:xnu-6153.102.3~1/RELEASE_ARM64_T8010 13.4.1 13.5 Darwin Kernel Version 19.5.0: Tue Apr 28 22:25:26 PDT 2020; root:xnu-6153.122.1~1/RELEASE_ARM64_T8010 13.5.1 Darwin Kernel Version 19.5.0: Tue May 26 20:56:04 PDT 2020; root:xnu-6153.122.2~1/RELEASE_ARM64_S8000 13.6 Darwin Kernel Version 19.6.0: Sat Jun 27 04:36:25 PDT 2020; root:xnu-6153.142.1~4/RELEASE_ARM64_T8030 13.6.1 13.7 Darwin Kernel Version 19.6.0: Sat Jul 11 00:58:54 PDT 2020; root:xnu-6153.142.1~8/RELEASE_ARM64_T8010 14.0 Darwin Kernel Version 20.0.0: Fri Aug 28 23:05:58 PDT 2020; root:xnu-7195.0.46~9/RELEASE_ARM64_S8000 14.0.1 14.1 Darwin Kernel Version 20.0.0: Wed Sep 30 03:24:26 PDT 2020; root:xnu-7195.0.46~41/RELEASE_ARM64_T8101 14.2 Darwin Kernel Version 20.1.0: Fri Oct 30 00:34:17 PDT 2020; root:xnu-7195.42.3~1/RELEASE_ARM64_T8015 14.2.1 14.3 Darwin Kernel Version 20.2.0: Fri Nov 13 01:00:15 PST 2020; root:xnu-7195.62.1~4/RELEASE_ARM64_T8015 14.4 Darwin Kernel Version 20.3.0: Tue Jan 5 18:34:47 PST 2021; root:xnu-7195.80.35~2/RELEASE_ARM64_T8015 14.4.1 14.4.2 14.5 Darwin Kernel Version 20.4.0: Sun Feb 28 21:05:16 PST 2021; root:xnu-7195.100.367~3/RELEASE_ARM64_T8015 14.5.1 14.6 Darwin Kernel Version 20.5.0: Sat May 8 02:21:45 PDT 2021; root:xnu-7195.122.1~4/RELEASE_ARM64_T8101 14.7 Darwin Kernel Version 20.6.0: Mon Jun 21 21:23:35 PDT 2021; root:xnu-7195.140.42~10/RELEASE_ARM64_T8101 14.7.1 14.8 Darwin Kernel Version 20.6.0: Tue Aug 24 21:10:43 PDT 2021; root:xnu-7195.140.44~1/RELEASE_ARM64_T8101 14.8.1 Darwin Kernel Version 20.6.0: Tue Oct 12 18:57:56 PDT 2021; root:xnu-7195.140.46~1/RELEASE_ARM64_T8101 15.0 Darwin Kernel Version 21.0.0: Sun Aug 15 20:55:58 PDT 2021; root:xnu-8019.12.5~1/RELEASE_ARM64_T8101 15.0.1 15.0.2 Darwin Kernel Version 21.0.0: Wed Sep 29 08:30:00 PDT 2021; root:xnu-8019.12.5~35/RELEASE_ARM64_T8110 15.1 Darwin Kernel Version 21.1.0: Wed Oct 13 18:16:52 PDT 2021; root:xnu-8019.42.4~1/RELEASE_ARM64_T8110 15.1.1 15.2 Darwin Kernel Version 21.2.0: Sun Nov 28 20:43:39 PST 2021; root:xnu-8019.62.2~1/RELEASE_ARM64_T8110 15.2.1 15.3 Darwin Kernel Version 21.3.0: Wed Jan 5 21:44:44 PST 2022; root:xnu-8019.80.24~23/RELEASE_ARM64_T8110 15.3.1 15.4 Darwin Kernel Version 21.4.0: Mon Feb 21 21:27:57 PST 2022; root:xnu-8020.102.3~1/RELEASE_ARM64_T8110 15.4.1 15.5 Darwin Kernel Version 21.5.0: Thu Apr 21 21:51:30 PDT 2022; root:xnu-8020.122.1~1/RELEASE_ARM64_T8110 15.6 Darwin Kernel Version 21.6.0: Sat Jun 18 18:56:54 PDT 2022; root:xnu-8020.140.41~4/RELEASE_ARM64_T8110 15.6.1 Darwin Kernel Version 21.6.0: Wed Aug 10 15:38:26 PDT 2022; root:xnu-8020.142.2~1/RELEASE_ARM64_T8110 15.7 Darwin Kernel Version 21.6.0: Thu Aug 11 21:46:05 PDT 2022; root:xnu-8020.241.2~1/RELEASE_ARM64_T8110 15.7.1 Darwin Kernel Version 21.6.0: Thu Sep 29 22:46:31 PDT 2022; root:xnu-8020.241.8~1/RELEASE_ARM64_T8110 15.7.2 Darwin Kernel Version 21.6.0: Sun Nov 6 23:07:09 PST 2022; root:xnu-8020.241.14~1/RELEASE_ARM64_T8110 15.7.3 Darwin Kernel Version 21.6.0: Sun Jan 8 22:45:56 PST 2023; root:xnu-8020.241.19~1/RELEASE_ARM64_T8010 15.7.4 Darwin Kernel Version 21.6.0: Thu Mar 9 20:53:53 PST 2023; root:xnu-8020.241.25~1/RELEASE_ARM64_T8010 15.7.5 15.7.6 Darwin Kernel Version 21.6.0: Mon Apr 24 22:01:29 PDT 2023; root:xnu-8020.241.30~1/RELEASE_ARM64_T8010 15.7.7 Darwin Kernel Version 21.6.0: Fri Jun 9 22:00:21 PDT 2023; root:xnu-8020.241.30.0.1~1/RELEASE_ARM64_T8010 15.7.8 Darwin Kernel Version 21.6.0: Fri Jul 7 18:36:11 PDT 2023; root:xnu-8020.241.41~1/RELEASE_ARM64_T8010 15.7.9 15.8 Darwin Kernel Version 21.6.0: Sun Oct 15 00:18:06 PDT 2023; root:xnu-8020.241.42~8/RELEASE_ARM64_T8010 16.0 Darwin Kernel Version 22.0.0: Tue Aug 16 20:51:28 PDT 2022; root:xnu-8792.2.11.0.1~1/RELEASE_ARM64_T8110 16.0 (20A8372) Darwin Kernel Version 22.0.0: Fri Sep 16 03:07:41 PDT 2022; root:xnu-8792.2.12~10/RELEASE_ARM64_T8112 Preinstalled on the iPad (10th generation), iPad Pro (11-inch) (4th generation) and iPad Pro (12.9-inch) (6th generation) 16.0.1 Darwin Kernel Version 22.0.0: Tue Aug 16 20:51:14 PDT 2022; root:xnu-8792.2.11.0.1~1/RELEASE_ARM64_T8120 iPhone 14 model series only. 16.0.2 16.0.3 Darwin Kernel Version 22.0.0: Tue Oct 4 16:59:26 PDT 2022; root:xnu-8792.2.15~1/RELEASE_ARM64_T8120 16.1 Darwin Kernel Version 22.1.0: Thu Oct 6 19:34:16 PDT 2022; root:xnu-8792.42.7~1/RELEASE_ARM64_T8120 16.1.1 16.1.2 16.2 Darwin Kernel Version 22.2.0: Mon Nov 28 20:09:56 PST 2022; root:xnu-8792.62.2~1/RELEASE_ARM64_T8120 16.3 Darwin Kernel Version 22.3.0: Wed Jan 4 21:25:01 PST 2023; root:xnu-8792.82.2~1/RELEASE_ARM64_T8120 16.3.1 16.4 Darwin Kernel Version 22.4.0: Mon Mar 6 20:42:19 PST 2023; root:xnu-8796.102.5~1/RELEASE_ARM64_T8120 16.4.1 16.5 Darwin Kernel Version 22.5.0: Mon Apr 24 21:09:28 PDT 2023; root:xnu-8796.122.4~1/RELEASE_ARM64_T8120 16.5.1 Darwin Kernel Version 22.5.0: Thu Jun 8 17:15:47 PDT 2023; root:xnu-8796.122.5~1/RELEASE_ARM64_T8120 16.6 Darwin Kernel Version 22.6.0: Wed Jun 28 20:51:46 PDT 2023; root:xnu-8796.142.1~1/RELEASE_ARM64_T8120 16.6.1 16.7 Darwin Kernel Version 22.6.0: Fri Sep 15 13:06:14 PDT 2023; root:xnu-8796.142.1.700.13~1/RELEASE_ARM64_T8120 16.7.1 Darwin Kernel Version 22.6.0: Wed Oct 4 17:21:32 PDT 2023; root:xnu-8796.142.1.700.14~1/RELEASE_ARM64_T8120 16.7.2 Darwin Kernel Version 22.6.0: Wed Oct 4 21:56:32 PDT 2023; root:xnu-8796.142.1.701.11~1/RELEASE_ARM64_T8120 16.7.3 Darwin Kernel Version 22.6.0: Tue Nov 7 21:42:40 PST 2023; root:xnu-8796.142.1.702.9~1/RELEASE_ARM64_S8000 17.0 Darwin Kernel Version 23.0.0: Thu Aug 24 20:19:01 PDT 2023; root:xnu-10002.2.11~1/RELEASE_ARM64_T8120 17.0.1 Darwin Kernel Version 23.0.0: Fri Sep 15 13:43:33 PDT 2023; root:xnu-10002.2.12~1/RELEASE_ARM64_T8120 17.0.2 17.0.3 Darwin Kernel Version 23.0.0: Sat Sep 30 17:17:51 PDT 2023; root:xnu-10002.2.13~1/RELEASE_ARM64_T8122 17.1 Darwin Kernel Version 23.1.0: Tue Oct 10 02:21:19 PDT 2023; root:xnu-10002.42.9~2/RELEASE_ARM64_T8122 17.1.1 17.1.2 17.2 Darwin Kernel Version 23.2.0: Sun Nov 12 06:35:58 PST 2023; root:xnu-10002.60.75.0.3~27/RELEASE_ARM64_T8122

Kernel Image

The kernel image base is randomized by the boot loader (iBoot). This is done by creating random data, doing a SHA-1 hash of it and then using a byte from the SHA-1 hash for the kernel slide. The slide is calculated with this formula:[204][205]

base=0x01000000+(slide_byte*0x00200000)

If the slide is 0, the static offset of 0x21000000 is used instead.[206]

The adjusted base is passed to the kernel in the boot arguments structure at offset 0x04, which is equivalent to gBootArgs->virtBase.

Kernel Map

The kernel map is used for kernel allocations of all types (kalloc(), kernel_memory_allocate(), etc.) and spans all of kernel space (0x80000000-0xFFFEFFFF). The kernel based maps are submaps of the kernel_map, for example zone_map, ipc_kernel_map, etc.[206]

The strategy is to randomize the base of the kernel_map. A random 9-bit value is generated right after kmem_init() which establishes kernel_map, is multiplied by the page size. The resulting value is used as the size for the initial kernel_map allocation. Future kernel_map (and submap) allocations are pushed forward by a random amount. The allocation is silently removed after the first garbage collection and reused. This behaviour can be overridden with the "kmapoff" boot parameter.

Versions codenames

Internally, iOS identifies each version by a codename, often used internally only, normally to maintain secrecy of the project. For example, the codename for iOS 17 is Dawn.[207]

Jailbreaking

Main article: iOS jailbreaking

Since its initial release, iOS has been subject to a variety of different hacks centered around adding functionality not allowed by Apple.[208] Prior to the 2008 debut of Apple's native iOS App Store, the primary motive for jailbreaking was to bypass Apple's purchase mechanism for installing the App Store's native applications.[209] Apple claimed that it would not release iOS software updates designed specifically to break these tools (other than applications that perform SIM unlocking); however, with each subsequent iOS update, previously un-patched jailbreak exploits are usually patched.[210]

When a device is booting, it loads Apple's own kernel initially,[211][212] so a jailbroken device must be exploited and have the kernel patched each time it is booted up.

There are different types of jailbreak. An untethered jailbreak uses exploits that are powerful enough to allow the user to turn their device off and back on at will, with the device starting up completely, and the kernel will be patched without the help of a computer – in other words, it will be jailbroken even after each reboot.[212]

However, some jailbreaks are tethered. A tethered jailbreak is only able to temporarily jailbreak the device during a single boot. If the user turns the device off and then boots it back up without the help of a jailbreak tool, the device will no longer be running a patched kernel, and it may get stuck in a partially started state, such as Recovery Mode. In order for the device to start completely and with a patched kernel, it must be "re-jailbroken" with a computer (using the "boot tethered" feature of a tool) each time it is turned on. All changes to the files on the device (such as installed package files or edited system files) will persist between reboots, including changes that can only function if the device is jailbroken (such as installed package files).[213]

In more recent years, two other solutions have been created – semi-tethered and semi-untethered.[211]

A semi-tethered solution is one where the device is able to start up on its own, but it will no longer have a patched kernel, and therefore will not be able to run modified code. It will, however, still be usable for normal functions, just like stock iOS. To start with a patched kernel, the user must start the device with the help of the jailbreak tool.[212]

A semi-untethered jailbreak gives the ability to start the device on its own. On first boot, the device will not be running a patched kernel. However, rather than having to run a tool from a computer to apply the kernel patches, the user is able to re-jailbreak their device with the help of an app (usually sideloaded using Cydia Impactor) running on their device. In the case of the iOS 9.2-9.3.3 and 64-bit 10.x jailbreaks, Safari-based exploits were available, thereby meaning websites could be used to re-jailbreak.

In more detail: Each iOS device has a bootchain that tries to make sure only trusted/signed code is loaded. A device with a tethered jailbreak is able to boot up with the help of a jailbreaking tool because the tool executes exploits via USB that bypass parts of that "chain of trust", bootstrapping to a pwned (no signature check) iBEC, or iBoot to finish the boot process.

Since the arrival of Apple's native iOS App Store, and—along with it—third-party applications, the general motives for jailbreaking have changed.[214] People jailbreak for many different reasons, including gaining filesystem access, installing custom device themes, and modifying SpringBoard. An additional motivation is that it may enable the installation of pirated apps. On some devices, jailbreaking also makes it possible to install alternative operating systems, such as Android and the Linux kernel. Primarily, users jailbreak their devices because of the limitations of iOS. Depending on the method used, the effects of jailbreaking may be permanent or temporary.[215]

In 2010, the Electronic Frontier Foundation (EFF) successfully convinced the U.S. Copyright Office to allow an exemption to the general prohibition on circumvention of copyright protection systems under the Digital Millennium Copyright Act (DMCA). The exemption allows jailbreaking of iPhones for the sole purpose of allowing legally obtained applications to be added to the iPhone.[216] The exemption does not affect the contractual relations between Apple and an iPhone owner, for example, jailbreaking voiding the iPhone warranty; however, it is solely based on Apple's discretion on whether they will fix jailbroken devices in the event that they need to be repaired. At the same time, the Copyright Office exempted unlocking an iPhone from DMCA's anticircumvention prohibitions.[217] Unlocking an iPhone allows the iPhone to be used with any wireless carrier using the same GSM or CDMA technology for which the particular phone model was designed to operate.[218]

Unlocking

Main article: SIM lock

Initially most wireless carriers in the US did not allow iPhone owners to unlock it for use with other carriers. However AT&T allowed iPhone owners who had satisfied contract requirements to unlock their iPhone.[219] Instructions to unlock the device are available from Apple,[220] but it is ultimately at the sole discretion of the carrier to authorize unlocking the device.[221] This allows the use of a carrier-sourced iPhone on other networks. Modern versions of iOS and the iPhone fully support LTE across multiple carriers wherever the phone was purchased.[222] Programs to remove SIM lock restrictions are available, but are not supported by Apple, and most often not a permanent unlock – a soft unlock,[223] which modifies the iPhone so that the baseband will accept the SIM card of any GSM carrier. SIM unlocking is not jailbreaking, but a jailbreak is also required for these unofficial software unlocks.

The legality of software unlocking varies in each country; for example, in the US, there is a DMCA exemption for unofficial software unlocking of devices purchased before January 26, 2013.[224]

Digital rights management

The closed and proprietary nature of iOS has garnered criticism, particularly by digital rights advocates such as the Electronic Frontier Foundation, computer engineer and activist Brewster Kahle, Internet-law specialist Jonathan Zittrain, and the Free Software Foundation who protested the iPad's introductory event and have targeted the iPad with their "Defective by Design" campaign.[225][226][227][228] Competitor Microsoft, via a PR spokesman, criticized Apple's control over its platform.[229]

At issue are restrictions imposed by the design of iOS, namely digital rights management (DRM) intended to lock purchased media to Apple's platform, the development model (requiring a yearly subscription to distribute apps developed for the iOS), the centralized approval process for apps, as well as Apple's general control and lockdown of the platform itself. Particularly at issue is the ability for Apple to remotely disable or delete apps at will.[230]

Some in the tech community have expressed concern that the locked-down iOS represents a growing trend in Apple's approach to computing, particularly Apple's shift away from machines that hobbyists can "tinker with" and note the potential for such restrictions to stifle software innovation.[231][232] Former Facebook developer Joe Hewitt protested against Apple's control over its hardware as a "horrible precedent" but praised iOS's sandboxing of apps.[233]

Security and privacy

iOS utilizes many security features in both hardware and software.

Reception

Market share

iOS is the second most popular mobile operating system in the world, after Android. Sales of iPads in recent years are also behind Android, while, by web use (a proxy for all use), iPads (using iOS) are still the most popular.[235]

At WWDC 2014, Tim Cook said 800 million devices had been sold by June 2014.[236] During Apple's quarterly earnings call in January 2015, the company announced that they had sold over one billion iOS devices since 2007.[237][238]

By February 2023, there were 2 billion devices activated,[239] and 1.5 billion iPhones had been sold since 2007.[240]

By late 2011, iOS accounted for 60% of the market share for smartphones and tablets.[241] By the end of 2014, iOS accounted for 14.8% of the smartphone market[242] and 27.6% of the tablet and two-in-one market.[243] In May 2023, StatCounter reported iOS was used on 31.44% of smartphones and 55.75% of tablets worldwide, measured by internet usage instead of sales.[244]

In the third quarter of 2015, research from Strategy Analytics showed that iOS adoption of the worldwide smartphone market was at a record low 12.1%, attributed to lackluster performance in China and Africa. Android accounted for 87.5% of the market, with Windows Phone and BlackBerry accounting for the rest.[245][246]

Devices

Main article: List of iPhone models

See also

Computer programming portal

Comparison of mobile operating systems

Notes

References