Apple iOS

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:13, 16 сентября 2018.
(перенаправлено с «IOS»)
iOS
125px-Apple iOS new.svg.png
OS9 home screen.png
Главный экран iPhone 5 под управлением iOS 9.3.5
Разработчик Apple
OS линейка MacOS
Исходный код закрытый (со свободными компонентами)
Последний релиз 10.1.1 / < 31 October 2016 года; 2 years ago (2016-10-31)
Ядро (тип) XNU (гибридное)
Лицензия проприетарная
Официальный веб-сайт apple.com/ru/ios
Статус поддержки
актуальное

iOS (до 24 июня 2010 года — iPhone OS) — операционная система для смартфонов, электронных планшетов и носимых проигрывателей, разрабатываемая и выпускаемая американской компанией Apple. Была выпущена в 2007 году; первоначально — для iPhone и iPod touch, позже — для таких устройств, как iPad и Apple TV. В отличие от Windows Phone (Microsoft) и Android (Google), выпускается только для устройств, производимых фирмой Apple[1].

В iOS используется ядро XNU, основанное на микроядре Mach и содержащее программный код, разработанный компанией Apple, а также код из ОС NeXTSTEP и FreeBSD. Ядро iOS почти идентично ядру настольной операционной системы Apple macOS (ранее называвшейся OS X). Начиная с самой первой версии, iOS работает только на планшетных компьютерах и смартфонах с процессорами архитектуры ARM.

Общие сведения

Пользовательский интерфейс iOS основан на концепции прямого взаимодействия с использованием жестов «мультитач». Элементы управления интерфейсом состоят из ползунков, переключателей и кнопок.

iOS разработана на основе операционной системы OS X (с тех пор переименованной в macOS) и использует тот же набор основных компонентов Darwin, совместимый со стандартом POSIX.

Слои абстракции iOS:

  • Core OS;
  • Core Services;
  • Media Layer;
  • Cocoa Touch.

Для текущей версии операционной системы iOS 9.0) выделяется 1.4—2Гб флеш-памяти устройства для системного раздела и примерно 800Мб свободного места (варьируется в зависимости от модели) 8 08 2016.

История создания

Операционная система iPhone OS была представлена 9 января 2007 года совместно с мобильным телефоном iPhone лично Стивом Джобсом на выставке-конференции Macworld Conference & Expo и выпущена в июне того же года. Apple не предполагала отдельного названия для операционной системы, поэтому первоначальный слоган звучал так: «iPhone работает на OS X».

Приложения iOS

По состоянию на 1 мая 2014 года магазин приложений App Store содержит более 1,4 млн приложений для iOS, которые все вместе были загружены более 100 миллиардов раз.

История версий

Версия Номер сборки Дата релиза Последняя версия для
3.1.3 7E18 2 February 2010 года; 8 years ago (2010-02-02) iPhone (1-е поколение); iPod touch (1-е поколение)
4.2.1 8C148 22 November 2010 года; 7 years ago (2010-11-22) iPhone 3G; iPod touch (2-е поколение)
5.1.1 9B206 7 May 2012 года; 6 years ago (2012-05-07) iPod touch (3-е поколение); iPad (1-е поколение)
6.1.6 10B400 21 February 2014 года; 4 years ago (2014-02-21) iPhone 3GS; iPod touch (4-e поколение)
7.1.2 11D257
11D258
30 June 2014 года; 4 years ago (2014-06-30) iPhone 4
9.3.5 13G36 25-08-2016 iPhone 4s, iPod touch (5-е поколение); iPad 2, iPad (3-е поколение), iPad mini
10.2 14A403 13-12-2016 iPhone 5; iPhone 5c; iPhone 5s; iPhone 6; iPhone 6 Plus; iPhone 6s, iPhone 6s Plus, iPhone SE; iPhone 7, iPhone 7 Plus;iPad 4,iPad Air,iPad Air 2,iPad mini 2,iPad mini 3,iPad mini 4;iPod touch 6

Архитектура

XNU и Darwin

Условно начинку OS X / iOS можно разделить на три логических уровня: ядро XNU, слой совместимости со стандартом POSIX (плюс различные системные демоны/сервисы) и слой NeXTSTEP, реализующий графический стек, фреймворк и API приложений. Darwin включает в себя первые два слоя и распространяется свободно, но только в версии для OS X. iOS-вариант, портированный на архитектуру ARM и включающий в себя некоторые доработки, полностью закрыт и распространяется только в составе прошивок для айдевайсов (судя по всему, это защита от портирования iOS на другие устройства).

По своей сути Darwin — это «голая» UNIX-подобная ОС, которая включает в себя POSIX API, шелл, набор команд и сервисов, минимально необходимых для работы системы в консольном режиме и запуска UNIX-софта. В этом плане он похож на базовую систему FreeBSD или минимальную установку какого-нибудь Arch Linux, которые позволяют запустить консольный UNIX-софт, но не имеют ни графической оболочки, ни всего необходимого для запуска серьезных графических приложений из сред GNOME или KDE.

Ключевой компонент Darwin — гибридное ядро XNU, основанное, как уже было сказано выше, на ядре Mach и компонентах ядра FreeBSD, таких как планировщик процессов, сетевой стек и виртуальная файловая система (слой VFS). В отличие от Mach и FreeBSD, ядро OS X использует собственный API драйверов, названный I/O Kit и позволяющий писать драйверы на C++, используя объектно-ориентированный подход, сильно упрощающий разработку.

iOS использует несколько измененную версию XNU, однако в силу того, что ядро iOS закрыто, сказать, что именно изменила Apple, затруднительно. Известно только, что оно собрано с другими опциями компилятора и модифицированным менеджером памяти, который учитывает небольшие объемы оперативки в мобильных устройствах. Во всем остальном это все то же XNU, которое можно найти в виде зашифрованного кеша (ядро + все драйверы/модули) в каталоге /System/Library/Caches/com.apple.kernelcaches/kernelcache на самом устройстве.

Уровнем выше ядра в Darwin располагается слой UNIX/BSD, включающий в себя набор стандартных библиотек языка си (libc, libmatch, libpthread и так далее), а также инструменты командной строки, набор шеллов (bash, tcsh и ksh) и демонов, таких как launchd и стандартный SSH-сервер. Последний, кстати, можно активировать путем правки файла /System/Library/LaunchDaemons/ssh.plist. Если, конечно, джейлбрейкнуть девайс.

На этом открытая часть ОС под названием Darwin заканчивается, и начинается слой фреймворков, которые как раз и образуют то, что мы привыкли считать OS X / iOS.

Darwin KakustroenaiOS.png

Фреймворки

Darwin реализует лишь базовую часть Mac OS / iOS, которая отвечает только за низкоуровневые функции (драйверы, запуск/остановка системы, управление сетью, изоляция приложений и так далее). Та часть системы, которая видна пользователю и приложениям, в его состав не входит и реализована в так называемых фреймворках — наборах библиотек и сервисов, которые отвечают в том числе за формирование графического окружения и высокоуровневый API для сторонних и стоковых приложений.

Как и во многих других ОС, API Mac OS и iOS разделен на публичный и приватный. Сторонним приложениям доступен исключительно публичный и сильно урезанный API, однако jailbreak-приложения могут использовать и приватный.

В стандартной поставке Mac OS и iOS можно найти десятки различных фреймворков, которые отвечают за доступ к самым разным функциям ОС — от реализации адресной книги (фреймворк AddressBook) до библиотеки OpenGL (GLKit). Набор базовых фреймворков для разработки графических приложений объединен в так называемый Cocoa API, своего рода метафреймворк, позволяющий получить доступ к основным возможностям ОС. В iOS он носит имя Cocoa Touch и отличается от настольной версии ориентацией на сенсорные дисплеи.

Далеко не все фреймворки доступны в обеих ОС. Многие из них специфичны только для iOS. В качестве примеров можно привести AssetsLibrary, который отвечает за работу с фотографиями и видео, CoreBlueTooth, позволяющий получить доступ к синезубу, или iAd, предназначенный для вывода рекламных объявлений в приложениях. Другие фреймворки существуют только в настольной версии системы, однако время от времени Apple переносит те или иные части iOS в Mac OS или обратно, как, например, случилось с фреймворком CoreMedia, который изначально был доступен только в iOS.

Все стандартные системные фреймворки можно найти в системном каталоге /System/Library/Frameworks/. Каждый из них находится в своем собственном каталоге, называемом бандлом (boundle), который включает в себя ресурсы (изображения и описание элементов интерфейса), хидеры языка си, описывающие API, а также динамически загружаемую библиотеку (в формате dylib) с реализацией фреймворка.

Одна из интересных особенностей фреймворков — их версионность. Один фреймворк может иметь сразу несколько разных версий, поэтому приложение, разработанное для устаревших версий системы, будет продолжать работать, даже несмотря на изменения, внесенные в новые версии ОС. Именно так реализован механизм запуска старых iOS-приложений в iOS 7 и выше. Приложение, разработанное для iOS 6, будет выглядеть и работать именно так, как если бы оно было запущено в iOS 6.

SpringBoard

Уровнем выше находятся приложения, системные и устанавливаемые из магазина приложений. Центральное место среди них занимает, конечно же, SpringBoard (только в iOS), реализующее домашний экран (рабочий стол). Именно оно запускается первым после старта системных демонов, загрузки в память фреймворков и старта дисплейного сервера (он же менеджер композитинга, он же Quartz Compositor), отвечающего за вывод изображения на экран.

SpringBoard — это связующее звено между операционной системой и ее пользователем, графический интерфейс, позволяющий запускать приложения, переключаться между ними, просматривать уведомления и управлять некоторыми настройками системы (начиная с iOS 7). Но также это и обработчик событий, таких как касание экрана или переворот устройства. В отличие от Mac OS X, которая использует различные приложения и демоны-агенты для реализации компонентов интерфейса (Finder, Dashboard, LaunchPad и другие), в iOS почти все базовые возможности интерфейса пользователя, в том числе экран блокировки и «шторка», заключены в одном SpringBoard.

В отличие от других стоковых приложений iOS, которые располагаются в каталоге /Applications, SpringBoard наравне с дисплейным сервером считается частью фреймворков и располагается в каталоге /System/Library/CoreServices/. Для выполнения многих задач он использует плагины, которые лежат в /System/Library/SpringBoardPlugins/. Кроме всего прочего, там можно найти, например, NowPlayingArtLockScreen.lockboundle, отвечающий за отображение информации о проигрываемой композиции на экране блокировки, или IncomingCall.serviceboundle, ответственный за обработку входящего звонка.

Начиная с iOS 6 SpringBoard разделен на две части: сам рабочий стол и сервис BackBoard, ответственный за коммуникации с низкоуровневой частью ОС, работающей с оборудованием (уровень HAL). BackBoard отвечает за обработку таких событий, как касания экрана, нажатия клавиш, получение показания акселерометра, датчика положения и датчика освещенности, а также управляет запуском, приостановкой и завершением приложений.

SpringBoard и BackBoard имеют настолько большое значение для iOS, что, если каким-либо образом их остановить, вся система застынет на месте и даже запущенное в данный момент приложение не будет реагировать на касания экрана. Это отличает их от домашнего экрана Android, который является всего лишь стандартным приложением, которое можно остановить, заменить или вообще удалить из системы (в этом случае на экране останутся вполне рабочие кнопки навигации и строка состояния со «шторкой»).[2]

Стороннее ПО

Другие приложения могут быть разработаны с помощью Xcode для Mac и iPhone, iPod Touch и iPad, Codea для iPad, и опубликованы в App Store — онлайн-магазине, который поставляется с самим iPhone/iPod touch/iPad, начиная с версии iPhone OS 2.0, и является крупнейшим магазином мобильных приложений (на июнь 2013 года — более 900 тыс. приложений для iOS, более 350 тыс. приложений специально для iPad).

Отличия от других мобильных систем

Оптимизация мобильной операционной системы

Стабильность и плавность работы системы смартфона – главные параметры для любого пользователя. Благодаря своей оптимизации, продуманному интерфейсу и одинаковым техническим комплектующим в лидеры этого показателя битвы iOs vs Android вырывается система от Apple.

Многообразие Android устройств и различные графические прошивки негативно влияют на показатель плавности работы гаджета. Более того, Google не обещает стабильность работы оболочек от сторонних производителей: они имеют уязвимости и часто зависают, что приводит к потребности перезагрузки устройства.

Стабильность мобильных операционок

Как уже было указано в пункте выше, стабильность Android хромает. Это касается и технической части устройств: производители используют разные комплектующие, а некоторые из них не имеют официальной поддержки Google.

Ситуация с iOS получше: если и встречаются проблемы с технической начинкой устройство – дело не в система, а в гаджете. Компания без проблем заменит ваше устройство на новое, но если вы все же захотели сделать откат iOS, то это тоже возможно.

Различия в технической поддержке Apple и Google

Компания Google предоставляет технический сервис только для “родной” версии операционной системы. За поддержкой для модифицированных версий Android стоит обращаться к компаниям-производителям.

iOS – закрытая система, что позволяет обеспечить 100% поддержку[3].

Сравнительная таблица

05e8dbdb633fd5fd51c24ec5801b3b44.png

Для анализа программных платформ будем использовать несколько критериев.

  1. Компания-разработчик данной мобильной операционной системы.
  2. Возраст — сколько лет на рынке.
  3. Исходный код. Может быть закрытым или открытым. Закрытый исходный код — как правило, это означает, что распространяются только откомпилированные версии платформы и лицензия подразумевает отсутствие доступа к исходному коду операционной системы; Открытый – означает, что исходный код доступен для просмотра, изучения и изменения, что позволяет стороннему разработчику принять участие в доработке самой системы.
  4. Тип ядра. Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений. Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.
  5. Поддерживаемые архитектуры процессоров. Процессоры x86 – это микропроцессоры, поддерживающие одноимённый набор инструкций и обладающие микроархитектурой, производной от IA-32, то есть Intel Architecture 32-бит. Чипы построены на основе архитектуры CISC (Complex Instruction Set Computing, то есть «с полным набором инструкций»), в которой каждая инструкция может выполнять сразу несколько низкоуровневых операций. ARM-процессоры – 32-битные чипы на базе архитектуры RISC (Reduced Instruction Set Computer), то есть с сокращённым набором команд. В основу этой архитектуры положена идея повышения быстродействия за счёт максимального упрощения инструкций и ограничения их длины.
  6. Дружественность – оценка того, насколько неподготовленный пользователь сможет разобраться с системой.
  7. Производительность системы – насколько сложные и технически трудные операции может выполнять система.
  8. Вычислительные затраты – насколько быстро система обрабатывает определенную операцию.
  9. Надежность – свойство системы сохранять во времени способность выполнять требуемые функции.
  10. Отказоустойчивость — свойство технической системы сохранять способность правильно функционировать после отказа системы или некоторых ее частей.
  11. Преемственность – показывает, насколько компания-разработчик поддерживает обновление программной платформы на устройствах с устаревшей системой. Например, взять коммуникатор Motorola Milestone. При выпуске на нем был установлен Android 2.1., спустя год была выпущена Android 2.2. под него. Это не самый лучший показатель.
  12. Многозадачность — свойство операционной системы обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.
  13. Официальный магазин приложений создает компания-разработчик. Это электронный магазин, в который можно попасть прямо с мобильного устройства. В этом магазине компания-разработчик, а так же сторонние разработчики выкладывают свои приложения для бесплатного/платного скачивания пользователями.
  14. Количество приложений в магазине – данные от 27 апреля 2011 года.
  15. Мультитач — функция сенсорных систем ввода, осуществляющая одновременное определение координат двух и более точек касания.
  16. Копирование/вставка – возможность копировать и вставлять текст.
  17. Технология экрана. Резистивный экран представляет собой стеклянный жидкокристаллический дисплей, на который наложена гибкая мембрана. На соприкасающиеся стороны нанесён резистивный состав, а пространство между плоскостями разделено диэлектриком. По краям пластин закреплены электроды (четыре или восемь, пять или шесть и семь). Несложно догадаться, что при нажатии экран и мембрана соприкасаются в месте нажатия, координаты которого вычисляются путём последовательной подачи тока на верхнюю и нижнюю пластины и замеров напряжения в точке касания пластин. Именно поэтому на такой экран можно нажимать любым твёрдым предметом — от ногтя и стилуса до карандаша или спички, и он сработает. Ёмкостный сенсорный экран в общем случае представляет собой стеклянную панель, на которую нанесён слой прозрачного резистивного материала. По углам панели установлены электроды, подающие на проводящий слой низковольтное переменное напряжение. Поскольку тело человека способно проводить электрический ток и обладает некоторой ёмкостью, при касании экрана в системе появляется утечка. Место этой утечки, то есть точку касания, определяет простейший контроллер на основе данных с электродов по углам панели.
  18. Обновление прошивки По воздуху – обновление происходит через WiFi соединение либо через 3G прямо на мобильном устройстве. По кабелю – для этого необходимо подсоединить мобильное устройство к персональному компьютеру и с помощью специализированных программ установить обновление.
  19. Место в мире – учитываются темпы развития и нынешняя доля рынка на 29 марта 2011 года и прогноз на 2015 год[4].

Примечания

  1. iOS [Электронный ресурс]: — Режим доступа: https://ru.wikipedia.org/wiki/IOS
  2. Кау устроена iOS [Электронный ресурс]: — Режим доступа: https://xakep.ru/2014/10/08/kau-ustroena-ios/
  3. Ответ на вопрос: Какая ОС лучше – iOS или Android [Электронный ресурс]: — Режим доступа: http://buyitunes.net/ios-vs-android/
  4. Сравнительный анализ мобильных операционных систем [Электронный ресурс]: — Режим доступа: https://habrahabr.ru/post/137001/