На чем построена ios
На чем построена ios
Apple iOS (ранее называвшаяся iPhone OS) — операционная система, разработанная компанией Apple на основе Mac OS X для мобильных устройств: iPhone, iPod Touch, iPad. Входит в семейство операционных систем Apple OS X, к которому также относится и ОС для настольных компьютеров — Mac OS X. В Apple iOS используется ядро Darwin, основанное на микроядре Mach и содержащее код, написанный самой Apple, и код, полученный от ОС NeXTSTEP и FreeBSD.
История версий iOS
Стандартные приложения iOS
Как сделать перезагрузку, выключение, хард-резет?
Как снять скриншот?
Что такое Springboard? Как перемещать ярлыки и создавать папки?
Sprinhgboard – это рабочий стол iOS-устройства.
Для перемещения ярлыка, нажмите и удерживайте его, пока ярлыки не станут «трястись», а потом переместите на необходимое место (ялыки возможно установить только по сетке).
Для создания папки, перетащите один ярлык на другой.
Для создания новой страницы рабочего стола или папки, перетащите ярлыки на правый край крайнего правого рабочего стола.Пустой рабочий стол будет автоматически удален, за исключением домашнего (первого слева) стола.
Почему некоторые возможности iOS ограничены на старых устройствах?
Это сделано из-за того, что железо устаревших устройств не может обеспечить приемлемое качество анимации и визуальных эффектов. Кроме того, в некоторых девайсах просто нет нужных частей (например, в iOS 7 появилась поддержка Touch ID, но iPhone 5 не имеет датчика отпечатков пальцев, поэтому эта функция вырезана из его прошивки).
Кау устроена iOS
Содержание статьи
Mac OS X
Операционная система, установленная сегодня на все маки и (в измененном виде) на айдевайсы, ведет свою историю аж с 1988 года, который в мире IT известен также тем, что стал годом выпуска первой бета-версии операционной системы NeXTSTEP. Сама NeXTSTEP была детищем команды разработчиков Стива Джобса, который к тому времени уже покинул Apple и основал компанию NeXT, которая занялась разработкой компьютеров для образовательных нужд.
В момент своего появления на свет NeXTSTEP была поистине передовой операционной системой, которая включала в себя множество технологических новаций. В основе ОС лежало модифицированное микроядро Mach, дополненное компонентами ядра FreeBSD, включая эталонную реализацию сетевого стека. Более высокоуровневые компоненты NeXTSTEP были написаны с использованием языка Objective-C и предоставляли разработчикам приложений богатый объектно-ориентированный API. Система была снабжена развитым и весьма удобным графическим интерфейсом (ключевые компоненты которого сохранились в OS X и даже iOS) и мощной средой разработки, включавшей в себя в том числе известный всем современным разработчикам визуальный дизайнер интерфейса.
После провала NeXT и возвращения Стива Джобса в компанию Apple в 1997 году NeXTSTEP легла в основу проекта Rhapsody, в рамках которого началась разработка системы-наследника Mac OS 9. В 2000 году из Rhapsody был выделен открытый проект Darwin, исходники которого опубликованы под лицензией APSL, а уже в 2001 году появилась на свет OS X 10.0, построенная на его основе. Спустя несколько лет Darwin лег в основу операционной системы для готовящегося к выпуску смартфона, о котором до 2007-го, кроме слухов, не было известно почти ничего.
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 реализует лишь базовую часть 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, который является всего лишь стандартным приложением, которое можно остановить, заменить или вообще удалить из системы (в этом случае на экране останутся вполне рабочие кнопки навигации и строка состояния со «шторкой»).
Приложения
На самой вершине этой пирамиды находятся приложения. iOS различает встроенные (стоковые) высоко привилегированные приложения и сторонние, устанавливаемые из iTunes. И те и другие хранятся в системе в виде бандлов, во многом похожих на те, что используются для фреймворков. Разница заключается лишь в том, что бандл приложения включает в себя несколько иную метаинформацию, а место динамической библиотеки занимает исполняемый файл в формате Mach-O.
Стандартный каталог хранения стоковых приложений — /Applications/. В iOS он абсолютно статичный и изменяется только во время обновлений системы; пользователь получить к нему доступ не может. Сторонние приложения, устанавливаемые из iTunes, напротив, хранятся в домашнем каталоге пользователя /var/mobile/Applications/ внутри подкаталогов, имеющих вид 4-2-2-2-4, где два и четыре — это шестнадцатеричные числа. Это так называемый GUID — уникальный идентификатор, который однозначно идентифицирует приложение в системе и нужен в том числе для создания изолированной песочницы (sandbox).
Sandbox
В iOS песочницы используются для изолирования сервисов и приложений от системы и друг от друга. Каждое стороннее приложение и большинство системных работают в песочнице. С технической точки зрения песочница представляет собой классический для мира UNIX chroot, усиленный системой принудительного контроля доступа TrustedBSD MAC (модуль ядра sandbox.kext), которая отрезает приложениям не только доступ к файлам за пределами домашнего каталога, но и прямой доступ к железу и многим системным функциям ОС.
В целом заключенное в sandbox приложение ограничено в следующих возможностях:
Все эти ограничения соответствуют sandbox-профилю (набору ограничивающих правил) container и применяются к любому стороннему приложению. Для стоковых приложений, в свою очередь, могут применяться другие ограничения, более мягкие или жесткие. В качестве примера можно привести почтовый клиент (профиль MobileMail), который в целом имеет такие же серьезные ограничения, как и сторонние приложения, но может получить доступ ко всему содержимому каталога Library/. Обратная ситуация — SpringBoard, вообще не имеющий ограничений.
Вторая проблема — это защита системы от самой себя и пользователя. Баги могут существовать как в стоковом софте от Apple, так и в головах юзеров. Sandbox защищает от обоих. Даже если злоумышленник найдет дыру в Safari и попытается ее эксплуатировать, он все равно останется в песочнице и не сможет навредить системе. А юзер не сможет «сломать свой любимый телефончик» и не напишет гневных отзывов в адрес Apple. К счастью, знающие люди всегда могут сделать jailbreak и обойти защиту sandbox (собственно, в этом и есть смысл джейлбрейка).
Многозадачность
Одна из самых спорных особенностей iOS — это реализация многозадачности. Она вроде бы и есть, а с другой стороны, ее нет. В сравнении с традиционными настольными ОС и пресловутым Android iOS не является многозадачной операционной системой в привычном смысле этого слова и не позволяет приложениям свободно работать в фоне. Вместо этого ОС реализует API, который приложение может использовать для выполнения отдельных задач, пока оно находится в фоновом режиме.
Впервые такой API появился в iOS 4 (до этого фоновые задачи могли выполнять только стоковые приложения) и наращивался по мере развития операционной системы. Сегодня (речь идет об iOS 7) так называемый Background API позволяет делать следующее:
Такие ограничения на работу в фоне необходимы в первую очередь для того, чтобы сохранить заряд батареи и избежать лагов интерфейса, так знакомых пользователям Android, где приложения могут делать в фоне все что захотят. На самом деле Apple настолько сильно заботится о сохранении батареи, что даже реализовала специальный механизм для группировки фоновых действий приложений и их запуска в нужные моменты, например тогда, когда смартфон активно используется, подключен к Wi-Fi-сети или к зарядному устройству.
Выводы
Стоит сказать, что за время своего развития и последующего переезда в мобильные девайсы NeXTSTEP не только не растеряла все свои достоинства, но и приумножила их. Можно долго слушать россказни сотрудников Google, уверяющих, что Android разрабатывался без оглядки на iOS, но факт остается фактом: многие архитектурные решения Android позаимствовал именно у iOS. И не потому, что так было проще, а благодаря их красоте и эффективности.
Шесть стадий загрузки iOS
4 Ядро. Здесь все как обычно. Ядро производит инициализацию оборудования, после чего передает управление демону launchd.
5 Launchd. Это первичный процесс iOS и Mac OS X, он подключает файловые системы, запускает демоны/службы (например, backupd, configd, locationd), дисплейный сервер, фреймворки, а на последнем этапе загрузки отдает управление SpringBoard. В iOS и Mac OS X launchd используется как замена стандартного /bin/init в UNIX, однако его функциональность гораздо шире.
6 SpringBoard. Вот и экран блокировки!
Первые четыре этапа в этой цепи образуют chain of trust, реализованный с помощью сверки цифровой подписи загружаемого компонента. Цифровую подпись имеют LLB, iBoot и ядро, что позволяет исключить внедрение в цепочку хакнутого загрузчика или ядра, которые могут быть использованы для загрузки сторонней операционной системы или джейлбрейка. Единственный способ обойти этот механизм — найти дыру в одном из загрузчиков и воспользоваться ею для обхода проверки. В свое время было найдено несколько таких дыр в Boot ROM (наиболее известен эксплойт limera1n от geohot, актуальный для iPhone 1–4), а в начале 2014 года и в iBoot (хакер iH8sn0w, эксплойт так и не был опубликован).
Удерживая кнопку «Домой» при включении iPhone, можно заставить iBoot загрузиться в так называемый режим восстановления (Recovery), который позволяет восстановить прошивку iOS или обновить ее, используя iTunes. Однако механизм автоматического OTA-обновления использует другой режим, именуемый DFU (Device Firmware Upgrade), который активируется на раннем этапе загрузки сразу после Boot ROM и реализован в двух компонентах: iBSS и iBEC. По сути, это аналоги LLB и iBoot, конечная цель которых — не загрузить ОС, а перевести смартфон в режим обновления.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Apple iOS
производство
доступность
пространство
пользовательский
интерфейс
iOS (до 24 июня 2010 года – iPhone OS) – проприетарная операционная система от компании Apple, выпускаемая исключительно для устройств данной компании. Впервые представлена Стивом Джобсом 9 января 2007 года одновременно с первой моделью iPhone. Позже была разработана версия для iPad, Apple TV, Apple Watch.
В основе iOS лежит POSIX-совместимая ОС Darwin, а основа Darwin — это ядро XNU, появившееся на свет в результате слияния микроядра Mach и компонентов ядра FreeBSD. Единственная поддерживаемая архитектура – ARM.
Содержание
История создания
Операционная система iPhone OS была представлена 9 января 2007 года совместно с мобильным телефоном iPhone лично Стивом Джобсом на выставке-конференции Macworld Conference & Expo и выпущена в июне того же года. Apple не предполагала отдельного названия для операционной системы, поэтому первоначальный слоган звучал так: «iPhone работает на OS X».
Приложения iOS
По состоянию на 1 мая 2014 года магазин приложений App Store содержит более 1,4 млн приложений для iOS, которые все вместе были загружены более 100 миллиардов раз.
История версий
Информация с оффициального сайта
Производительность – Любое дело сделается быстрее. iOS прошла оптимизацию как для iPhone, так и для iPad. В результате заметно возросла скорость работы системы и отклика приложений. Даже самые простые действия — такие как включение Камеры или набор текста — стали намного быстрее. Возможности многозадачности тоже были значительно усовершенствованы. Благодаря этим улучшениям возросла производительность всех устройств, совместимых с системой, в том числе iPhone 5s и iPad Air.
FaceTime на 32 человека сразу.
Теперь в аудио- и видеозвонках по FaceTime могут участвовать до 32 собеседников одновременно. Когда кто-то из них вступает в беседу, его окно увеличивается, чтобы остальным было удобнее следить за разговором. Пользователь может начать такой звонок по FaceTime прямо из групповой переписки в Сообщениях или присоединиться к тому, который уже идёт.
Memoji – Создайте Animoji с собственным лицом.
Можно создать Memoji, который будет похож на вас и передаст ваше настроение. Можно сделать сразу несколько альтер эго и использовать их в Сообщениях и FaceTime.
Четыре новых Animoji.
Чтобы добавить веселья разговору в Сообщениях или по FaceTime, можно примерить на себя новые Animoji — коалу, тигра, привидение или ти-рекса. Кроме того, все Animoji стали ещё выразительнее — теперь они умеют подмигивать и даже показывать язык.
Эффекты Камеры – Оживите любую беседу.
Можно сделать беседы в Сообщениях и звонки FaceTime ярче. Возможность снять фото или видео и сразу же делиться ими. Использовать фильтры, добавлять Animoji, Memoji, анимированные текстовые эффекты, забавные стикеры и многое другое.
Дополненная реальность – Реальна настолько, что ею можно поделиться.
ARKit 2 позволяет разработчикам создавать ещё более впечатляющие приложения с дополненной реальностью, включая многопользовательские. Можно пересылать друг другу объекты дополненной реальности и помещать их в окружающей обстановке. А новое приложение Measure для iOS позволяет измерять объекты в реальном мире — достаточно просто навести на них камеру.
Экранное время – Пользуйтесь устройствами осознанно.
Приложения помогают нам делать удивительные вещи, поэтому с ними можно легко потерять счёт времени. Функция «Экранное время» показывает, сколько времени вы и ваши дети проводите в приложениях, на сайтах и со своими устройствами. Это позволит вам эффективно распоряжаться своим временем с iPhone или iPad.
Уведомления – Держите уведомления под контролем.
Функция быстрой настройки уведомлений поможет не отвлекаться от важных дел в течение дня. Прямо с экрана блокировки переключайте уведомления от выбранных приложений в беззвучный режим. Тогда они будут появляться только в Центре уведомлений. Вы даже можете выключить их совсем.
На основе ваших предпочтений Siri будет давать подсказки. Цепочки сообщений и уведомления на одну тему объединяются в группы, поэтому теперь вы сможете проще узнавать всё самое важное.
iOS 12 позволяет вам полностью контролировать уведомления, но иногда необходимо оградиться даже от сообщений и звонков. Режим «Не беспокоить» теперь можно включить на определённое время или для выбранного места. Когда ваша встреча закончится или вы покинете заданную геопозицию, режим отключится автоматически.
Общий доступ к фото – Новый способ показать ваши самые удачные снимки.
На вкладке «Для Вас» отображаются лучшие моменты из вашей коллекции фотографий, а интеллектуальные подсказки предлагают поделиться ими с теми, кто на них изображён. Если получатели используют iOS 12, им тоже будет предложено отправить вам фотографии, на которых вы есть в кадре.
Поиск Фото – Лучший способ найти нужные фотографии.
Поиск даёт подсказки, которые помогут найти нужный снимок или освежить в памяти самые интересные моменты. Ещё до того, как вы начнёте писать запрос, вам будут предложены подсказки на основе недавних событий, встреч и мест. По мере набора текста подсказки будут становиться точнее — и вам останется только добавить несколько ключевых слов.
Быстрые команды Siri – Cделайте привычные дела проще.
Теперь Siri анализирует повседневные дела, для которых вы используете сторонние приложения, и в нужный момент даёт полезные советы прямо на экране блокировки. Можно активировать быстрые команды голосом или создавать собственные в новом приложении «Быстрые команды».
Конфиденциальность – iOS защищает ваши личные данные. Даже когда сайты этого не делают.
Создатели считают конфиденциальность неотъемлемым правом человека. Вот почему в состав iOS всегда входят система шифрования, функции интеллектуальной защиты и другие инструменты, которые обеспечивают безопасность вашей личной информации. В iOS 12 они усовершенствовали все эти функции. Теперь Safari запрещает сайтам без вашего разрешения отслеживать вас по нажатию кнопки «Поделиться» или по использованию виджетов для комментариев. Кроме того, Safari не позволяет рекламодателям собирать персональные данные вашего устройства с целью его отслеживания и показа целевой рекламы онлайн.
Новое приложение «Книги».
С обновлённым дизайном приложения «Книги» пользователю будет ещё проще читать любимую литературу.
Новый дизайн приложения «Акции».
Обновлённое приложение «Акции» позволяет легко следить за рынком ценных бумаг с помощью наглядных котировок и графиков. Впервые приложение доступно не только на iPhone, но и на iPad.
Диктофон теперь есть на iPad.
Самое популярное приложение для записи аудио на iPhone теперь доступно и на iPad. Используйте iCloud, чтобы голосовые заметки всегда были под рукой.
Автоматические надёжные пароли.
Уникальные пароли для всех приложений и сайтов создаются и сохраняются в Safari и других приложениях автоматически. Теперь можно использовать сложные пароли и не бояться их забыть.
Сторонние приложения для навигации в CarPlay.
Поддержка сторонних приложений навигации добавлена в CarPlay. Теперь водители могут выбирать знакомый интерфейс на приборной панели.
Больше информации об аккумуляторе.
График использования аккумулятора в Настройках теперь показывает данные за последние 24 часа или 10 дней. Выберите интересующий вас период времени, чтобы увидеть, какими приложениями вы пользовались.
Автозаполнение кода безопасности.’
Одноразовые пароли из SMS автоматически появляются в нужном поле. Теперь не придётся запоминать их и вводить вручную.
Siri теперь может гораздо больше.
Пользователь может смотреть результаты соревнований, проверять пароли и находить любимые Воспоминания. [Источник 1]
Особенности
Домашний экран
Домашний экран представляет собой панель, на которой отображаются значки всех приложений, установленных в системе. В случае нехватки места для значков, система создает дополнительную страницу, доступ к которой можно получить, смахнув пальцев влево или вправо. Также внизу экрана существует Dock, в котором пользователь добавляет часто используемые приложения. Данная панель не меняется при переходе на другую страницу. Чтобы получить доступ к домашнему экрану пользователь должен нажать кнопку Home или смахнуть пальцев вверх на iPhone X. Сверху расположены индикаторы заряда, время, уровень сигнала сотовой связи, и активные в текущий момент сервисы (Wi-Fi, Bluetooth, GPS и др.).
В iPhone OS 3 был представлен Spotlight, позволяющий пользователям искать носители, приложения, электронные письма, контакты, сообщения, напоминания, события календаря и аналогичный контент. В iOS 7 и более поздних версиях Spotlight можно получить, вытаскивая в любом месте главного экрана (кроме верхнего и нижнего краев, которые открывают Центр уведомлений и Центр управления). [Источник 2] В iOS 9 есть два способа доступа к Spotlight. Как и в случае с iOS 7 и 8, выключение на любом рабочем экране будет показывать Spotlight. Тем не менее, он также может быть доступен, как в iOS 3-6. Это дает Spotlight, наделенный предложениями Siri, которые включают в себя предложения, предложения и новости о контактах. В iOS 10 Spotlight находится в верхней части панели «Сегодня». [Источник 3]
Исследователи обнаружили, что пользователи создают значки на своих домашних экранах на основе частоты использования и связанных с ними приложений, а также из соображений удобства и эстетики.
Системный шрифт
Изначально Helvetica была основным системным шрифтом. С выпуском iPhone 4 и Retina Display был разработан шрифт Helvetica Neue. В бета версии iOS 7 Apple изменила шрифт на Helvetica Neue Light, что вызвало критику за неправильное использование тонкого шрифта для мобильных экранов с низким разрешением. В итоге Apple выбрала Helvetica Neue. В выпуске iOS 7 также появилась возможность масштабирования текста или применения других форм изменений доступности текста через «Настройки». В iOS 9 Apple изменила шрифт на San Francisco, разработанный Apple шрифт, нацеленный на максимальную удобочитаемость и соответствие шрифтов в линейке продуктов, однако тоже был встречен с критикой, но это не помешало Apple сделать его основным в системе. [Источник 4]
Папки
В iOS 4 появились папки, которые можно создать, перетащив приложение поверх другого. Заголовок для папки автоматически выбирается категорией приложений внутри, но имя также может быть отредактировано самостоятельно. Когда приложения внутри папок получают значки уведомлений, отдельные номера уведомлений складываются, и общее число отображается как значок уведомления в самой папке. Первоначально папки на iPhone могли включать до 12 приложений, в то время как папки на iPad могли включать в себя 20, но с увеличением размера дисплея в новых поколениях устройств, iOS 7 добавила в папки страницы, тем самым увеличив максимальный размер до 135 приложений в одной папке. В iOS 9 увеличился размер до 240 приложений в одной папке для iPad. [Источник 5]
Центр уведомлений
В iOS 5 Apple представила Центр уведомлений, который позволяет пользователям просматривать историю уведомлений. Пользователь может открыть соответствующее уведомление, которое перенесет его в соответсвующее приложение, или очистить его. Уведомления отображаются в баннерах, которые отображаются кратко в верхней части экрана. Пользователи также могут просматривать уведомления в модальных окнах оповещений, настраивая параметры уведомлений приложения. Представленные с помощью iOS 8 виджетов теперь доступны через Центр уведомлений.
Доступность
iOS предлагает различные функции доступности, которые помогают пользователям с нарушениями зрения и слуха. Одна из основных функций VoiceOver предоставляет информацию о чтении голосом с экрана, включая контекстные кнопки, значки, ссылки и другие элементы пользовательского интерфейса, а также позволяет пользователю перемещаться по операционной системе с помощью жестов. Любые приложения с элементами управления по умолчанию и разработанные с помощью платформы UIKit получают встроенную функциональность VoiceOver. Apple разработала технологию для использования Bluetooth и специальный технологический протокол, позволяющий совместимому стороннему оборудованию подключаться к iPhones и iPads для потоковой передачи звука напрямую в звуковые аппараты пользователя. Дополнительная настройка, доступная для продуктов Made for iPhone, включает в себя отслеживание батареи и настройки звука для разных сред. Apple приложила все усилия для обеспечения доступности для iOS 10 в 2016 году, добавив новый редактор произношения в VoiceOver, добавив параметр Magnifier для увеличения объектов через камеру устройства, поддержку программного обеспечения TTY для глухих людей для совершения телефонных звонков с iPhone и давая учебные пособия и рекомендации для сторонних разработчиков о включении в свои приложения надлежащих функций доступности. [Источник 6]
В 2012 году Лиат Корновски из The Atlantic писал, что «iPhone оказался одним из самых революционных событий с момента изобретения Брайля», а в 2016 году Стивен Акино из TechCrunch назвал Apple «лидером в вспомогательная технология», с Сарой Хэрлингер, старшим менеджером по глобальной политике и инициативам в области доступности в Apple, заявив, что «мы рассматриваем доступность как одно из основных прав человека. Основываясь на наших продуктах, мы предлагаем видение инклюзивного мира, где есть возможность и доступ к информация является безбарьерной, позволяющей людям с ограниченными возможностями достигать своих целей».
Многозадачность
Реализация многозадачности в iOS была подвергнута критике за ее подход, что ограничивает работу, которую приложения в фоновом режиме могут выполнять с ограниченным набором функций, и требует от разработчиков приложений для их поддержки.
До iOS 4 многозадачность ограничивалась выбором приложений Apple, входящих в состав устройства. Пользователи могли, однако, «джейлбрейк» их устройство, чтобы неофициально многозадачно. Начиная с iOS 4, на устройствах третьего поколения и новых iOS, многозадачность поддерживается через семь фоновых API:
В iOS 5 были введены три новых API:
В iOS 7 Apple представила новую функцию многозадачности, предоставляя всем приложениям возможность выполнять фоновое обновление. Эта функция предпочитает обновлять наиболее часто используемые приложения пользователя и предпочитает использовать сети Wi-Fi через сотовую сеть без существенного сокращения времени автономной работы устройства. [Источник 7]
Переключение приложений
В iOS 4.0 до iOS 6.x двойной щелчок на домашней кнопке активирует коммутатор приложений. Прокручиваемый стыковочный интерфейс появляется снизу, перемещая содержимое экрана вверх. Выбор значка переключается на приложение. В крайнем левом углу находятся значки, которые функционируют как музыкальные элементы управления, блокировка вращения и iOS 4.2 и выше, контроллер громкости.
С введением iOS 7 двойной щелчок на домашней кнопке также активирует коммутатор приложений. Однако, в отличие от предыдущих версий, он отображает скриншоты открытых приложений поверх значка, а горизонтальная прокрутка позволяет просматривать предыдущие приложения, и можно закрыть приложения, перетащив их вверх, подобно тому, как WebOS обрабатывает несколько карт.
Завершение задач
В iOS 4.0 до iOS 6.x кратковременное удерживание значков в коммутаторе приложений делает их «покачиванием» (аналогично рабочему экрану) и позволяет пользователю принудительно выйти из приложений, нажав на красный круг минус, который появляется в углу значок приложения. Очистка приложений от многозадачности осталась неизменной с iOS 4.0 до 6.1.6, последней версии iOS 6.
Начиная с iOS 7, процесс стал быстрее и проще. В iOS 7 вместо того, чтобы удерживать значки, чтобы закрыть их, они закрываются, просто вытаскивая их вверх с экрана. До трех приложений можно очистить одновременно по сравнению с одним в версиях до iOS 6.1.6.
Завершение задачи
Запуск задачи позволяет приложениям продолжить выполнение определенной задачи после приостановки приложения. Начиная с iOS 4.0, приложения могут запросить до десяти минут для выполнения задачи в фоновом режиме. Это не распространяется на фоновый просмотр и скачивание (например, если вы загружаете приложение в одном приложении, оно не будет завершено, если вы отключаетесь от приложения). [Источник 8]
Появился впервые в феврале 2010 года, после чего был приобретен Apple спустя два месяца, а затем интегрирован в iPhone 4S в октябре 2011 года. В то же время отдельное приложение также было удалено из магазина приложений iOS.
Siri поддерживает широкий спектр пользовательских команд, включая выполнение действий телефона, проверку базовой информации, планирование событий и напоминаний, настройку параметров устройства, поиск в Интернете, навигацию по областям, поиск информации о развлечениях и возможность взаимодействия с iOS-интегрированными приложениями. С выпуском iOS 10 в 2016 году Apple открыла ограниченный сторонний доступ к Siri, в том числе сторонние приложения для обмена сообщениями, а также платежи, совместное использование поездок и интернет-приложения. С выпуском iOS 11 Apple обновила голоса Siri для более четких человеческих голосов, теперь она поддерживает последующие вопросы и перевод на язык, а также дополнительные действия сторонних разработчиков. [Источник 9]
Архитектура
XNU и Darwin
Условно начинку OS X / iOS можно разделить на три логических уровня (см. рис. 1): ядро 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.
Рисунок 1 – Устройство iOS
Фреймворки
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, который является всего лишь стандартным приложением, которое можно остановить, заменить или вообще удалить из системы (в этом случае на экране останутся вполне рабочие кнопки навигации и строка состояния со «шторкой»). [Источник 10]
Стороннее ПО
Другие приложения могут быть разработаны с помощью 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% поддержку. [Источник 11]
Сравнительная таблица
Сравнительная таблица переведена ниже.
Платформа | Windows Mobile 6.5.3 | Windows Phone 7 | BlackBerry OS 6.0 | Symbian 3 | Android 2.3.4 | iOS 4.3.2 |
---|---|---|---|---|---|---|
Компания | Microsoft | Microsoft | Research In Motion | Nokia | Apple | |
Возраст | 19 | 8 | — | 20 | 11 | 11 |
Исходный код | Закрытый | Закрытый | Закрытый | Открытый | Открытый | Закрытый |
Тип ядра | Гибридное | Гибридное | Незвестно | Микроядро | Монолитное | Гибридное |
Поддерживаемые архитектуры процессоров | ARM | ARM | Текстячейки | ARM, X86 | ARM, X86 | ARM |
Дружественность | 2 | 3 | 2 | 2 | 3 | 3 |
Производительность системы | 1 | 3 | 2 | 1 | 3 | 2 |
Вычислительные затраты | 2 | 3 | 3 | 2 | 3 | 3 |
Надежность | 2 | 2 | 3 | 3 | 2 | 3 |
Отказоустойчивость | 2 | 2 | 2 | 3 | 2 | 3 |
Преемственность | 2 | 3 | 3 | 1 | 2 | 3 |
Многозадачность | Да | Нет | Да | Да | Да | Да |
Официальный магазин приложений | Да | Да | Да | Да | Да | Да |
Количество приложений в магазине на момент 2010 года | — | 11 | 26 | 54 | 206 | 333 |
Мультитач | Да | Да | Да | Да | Да | Да |
Копирование/вставка | Да | Нет | Да | Да | Да | Да |
Технология экрана | Емкостная/Резистивная | Емкостная | Емкостная/Резистивная | Емкостная/Резистивная | Емкостная/Резистивная | Емкостная |
Обновление прошивки | По воздуху/ По кабелю | По воздуху/ По кабелю | По воздуху/ По кабелю | По воздуху/ По кабелю | ТекПо воздуху/ По кабелюстячейки | По кабелю |
Место в мире | — | 5/2 | 4/4 | 2/5 | 1/1 | 3/3 |
Для анализа программных платформ будем использовать несколько критериев.