Самый последний ios. Дополнительные возможности режима “Не беспокоить”. Возможность быстрой настройки уведомлений

Специалисты аналитической компании Apteligent провели масштабное тестирование различных версий iOS и Android с целью выяснить, какая мобильная операционная система является самой стабильной. Результаты многих удивят.

iOS 10 - самая стабильная ОС

Эксперты Apteligent провели анализ более 400 млн сбоев в работе различных операционных систем, на которых работают современные смартфоны и планшеты. Фиксировались экспертами вылеты приложений, внезапные перезагрузки и прочие проблемные случаи.

Анализ показал, что самой стабильной мобильной операционной системой является iOS 10. На устройствах под управлением «десятки» сбои зафиксированы лишь в 4,1% случаев. Практически таким же результатом порадовала и iOS 9. Ее показатель равен 4,13%. У iOS 8 и iOS 7 дела похуже - сбои возникали в 5,68% и 5,8% случаев соответственно.

Важно отметить, что в тестировании участвовала финальная версия iOS 10, а не . В последней, напомним, компания Apple исправила и недоработок. Вероятнее всего, iOS 10.1 сумела бы показатель куда лучший результат, чем iOS 10.0.1 и укрепиться на лидирующем месте в списке самых стабильных мобильных ОС еще сильнее.

Что там у Android

Самой нестабильной версией Android специалистами Apteligent названа Android 7.0 Nougat. На новейшей мобильной ОС от Google сбои фиксировались в 6,4% случаев. Впрочем, бороться с ошибками системами приходится лишь немногим владельцам Android-устройств. Nougat на текущий момент установлена всего на 1% от общего количества смартфонов и планшетов на Android.

Что нового? Все нововведения iOS 12!

iOS 12 - мобильная операционная система Apple для iPhone и iPad, которая вышла 17 сентября 2018 . В iOS 12 появилось множество новых функций и изменений в интерфейсе, а главное - прошивка iOS 12 значительно увеличила скорость работы Айфонов и Айпэдов. iOS 12 стала одним из самых стабильных релизов мобильной операционной системы для iPhone, iPad и iPod touch за последние годы. Что нового в iOS 12 подробно рассказали в этом материале.

Важно! На текущий момент самая новая версия iOS 12 для iPhone - iOS 12.1.4 (). Прошивка с исправлением критического бага в FaceTime вышла 7 февраля 2019 года. Новые функции и заметные изменения в интерфейсе для всех мобильных устройств Apple ожидаются в iOS 12.2.

Быстрый переход:

Какие устройства поддерживает iOS 12 - официальный список

  • iPhone X
  • iPhone 8
  • iPhone 8 Plus
  • iPhone 7
  • iPhone 7 Plus
  • iPhone 6
  • iPhone 6 Plus
  • iPhone 6s
  • iPhone 6s Plus
  • iPhone SE
  • iPhone 5s
  • iPad (2018)
  • iPad Pro 12,9″ первого и второго поколения
  • iPad Pro 10,5″
  • iPad Pro 9,7″
  • iPad Air 2
  • iPad Air 1
  • iPad пятого поколения
  • iPad (2017)
  • iPad mini 4
  • iPad mini 3
  • iPad mini 2

iPod touch

  • iPod touch шестого поколения

Производительность и оптимизация iOS 12 - это самая быстрая iOS в истории

Главный фокус в iOS 12 сделан на увеличении производительности. Apple, как и прогнозировалось, пожелала во что бы то ни стало восстановить репутацию iOS после провального запуска iOS 11. Как итог, iOS 12 стала в два (!) раза быстрее iOS 11.

Разработчики Apple так сильно постарались, что iOS 12:

  • на 40% (!) быстрее запускает приложения по сравнению с iOS 11;
  • на 50% быстрее работает с клавиатурой;
  • на 70% (!) быстрее открывает приложение «Камера» и выполняет любые действия в нем.

При этом самое главное, что такой прирост производительности произошел на абсолютно всех моделях iPhone, iPad и iPod touch. Включая самые старые модели, которым в этом году исполнится уже пять лет. Речь идет о широко распространенных в России и странах СНГ: iPhone 5s, iPad Air и iPad mini 2. Все эти устройства не просто получили поддержку iOS 12 (хотя по обычным правилам Apple не должны были), но и были значительно ускорены.

Apple официально объявила о том, что iOS 12 ощущается в “живой” работе “быстрее, чем когда-либо”. Руководители компании отдельно подчеркнули, что это сильнее всего относится к iPhone 5s и iPad Air, поэтому пользователи этих моделей могут ожидать по-настоящему великолепного опыта использования своих устройств под управлением iOS 12.

Сравнения iOS 12 с iOS 11 подтверждают, что производительность в новой операционной системе сильно улучшилась. Детальные сравнения iOS 12 и iOS 11 доступны по представленным ниже ссылкам:

Ускоренная анимация

Помимо оптимизации iOS 12 с целью увеличить скорость работы, разработчики Apple также ускорили анимацию большинства действий. В результате этого, быстродействие iOS 12 по сравнению с iOS 11 возросло еще больше. Ниже представлен наглядный пример изменения скорости анимации и его прямого влияния на общее ощущение от операционной системы.

Ускоренная клавиатура QuickType

Про то, что стандартная клавиатура iOS 12 стала гораздо быстрее мы уже написали. Но заострить внимание на этом улучшение стоит еще раз. Просто потому, что клавиатура получила по-настоящему стремительную скорость работы. Представленная ниже анимация показывает улучшения нагляднее всего.


FaceTime, анимодзи и мемодзи

Новые анимодзи

Не обошлось и без новых анимодзи для iPhone X, а в недалеком будущем и для трех новых моделей iPhone, которые будут представлены в сентябре. К и без того внушительному списку анимодзи добавились: коала, тигр, призрак и тираннозавр. Особенность новых анимодзи заключается в том, что они невероятно точно переносят не только мимику лица, но и движения языка. Прежде такого не было ни у Apple, ни, разумеется, у других производителей, чьи аналоги анимодзи по сравнению с высококачественными моделями производителя iPhone смотрятся по-настоящему смешно.

Возможность записи анимодзи в течение 30 секунд

У пользователей iPhone X есть возможность записывать короткие ролики с использованием анимодзи для отправки друзьям. В iOS 11 такие видео могли иметь максимальную продолжительность всего 10 секунд. В iOS 12 компания Apple предложила запись видео с анимодзи в течение целых 30 секунд.

Улучшенный интерфейс выбора анимодзи

Выбирать анимодзи в iOS 12 стало удобнее. Если прежде в приложении “Сообщения” список анимодзи был вертикальным, то теперь он горизонтальный с большими миниатюрами. Выбора анимодзи осуществляется по свайпу влево или вправо. Кроме этого, есть возможность открыть полный список всех доступных анимодзи по свайпу вверх.

Memoji (мемодзи)

Memoji (мемодзи) - это ответ Apple компании Samsung и ее аналогу анимодзи. Презентуя Galaxy S9 компания Samsung представила AR Emoji - анимированные смайлики, в основу которых ложится не мультяшный персонаж, а лицо пользователя. Качество AR Emoji оставляло желать лучшего, поэтому нововведение Samsung было названо провальным. У Apple же схожая “фишка” получилась на твердые пять баллов.

Memoji не сканируют лицо человека, они создаются в специальном редакторе в приложении “Сообщения”. В этом редакторе представлены сотни разнообразных частей лица и аксессуаров, позволяющие создать по-настоящему похожего на пользователя персонажа. После созданных персонажей можно использовать для записи посланий друзьям, как и в случае с обычными анимодзи. Функция для развлечения, не более, но даже ее Apple реализовала в своем стиле - идеально.

Поддержка стикеров, анимодзи и мемодзи в FaceTime

В групповых или личных видеозвонках по FaceTime в iOS 12 пользователи могут использовать дополнительные развлекательные инструменты. Apple предоставила пользователям возможность отправлять стикеры во время беседы, а также активировать анимодзи или мемодзи для того, чтобы представать перед друзьями в различных мультяшных образах.

iMessage

Обработка фото и видео в iMessage

В приложении “Сообщения” в iOS 12 добавлена возможность максимально быстро обработать отправляемое фото или видео. Пользователям предлагается применить к видео анимодзи или добавить к снимку один из многочисленных эффектов, текст или же какой-либо объект, например, стрелочку или галочку. Новая функция приложения “Сообщения” призвана облегчить способ обработки отправляемых фото и видео.

Полноценный режим съемки в приложении “Сообщения”

При съемке фото или видео из приложения “Сообщения” для мгновенной отправки в iOS 12 открывается полноэкранный режим камеры. Благодаря этому у пользователей появится куда больше шансов создать качественное фото или видео с первого раза. В предыдущих версиях iOS окошко камеры представляло из себя небольшой квадрат прямо в интерфейсе приложения.

Панель со стикерами и расширениями переместилась

Панель со стикерами, анимодзи и расширениями различных приложений в приложении “Сообщения” в iOS 12 переместилась. Она располагается над клавиатурой, а не под ней, как было прежде. Новое размещение панели гораздо удобнее, в частности, потому что случайных нажатий на нее становится гораздо меньше. Как и в iOS 11, скрыть панель полностью невозможно.

Быстрые ярлыки в приложении “Сообщения”

В iOS 12 при нажатии на имя контакта в приложении “Сообщения” открывается новая панель с быстрыми ярлыками. Они позволяют связаться с контактом посредством аудио или видео по FaceTime и просмотреть подробную информацию о нем. В предыдущих версиях iOS такой панели не было, можно было только вызывать абонента путем усиленного нажатия по его иконке.


ARKit 2 - новая дополненная реальность

С приходом iOS 12 компания Apple запустит новую улучшенную платформу дополненной реальности ARKit 2.0. Обновленная платформа позволит разработчикам создавать впечатляющие приложения и игры с поддержкой дополненной реальности. Приложения, созданные на ARKit 2, могут одновременно использовать несколько человек. Они могут просматривать объекты дополненной реальности с различных ракурсов, что значительно расширяет возможности приложений.

Приложение «Рулетка»

Также ARKit 2 позволяет измерять объекты. В iOS 12 появилось новое приложение “Рулетка” (Measure), предлагающее возможность быстро и очень просто определить размеры даже относительно больших объектов реального мира.

Для измерения объекта на него необходимо навести камеру и поставить на нем две точки. Измерение происходит моментально, а главное - с высочайшей точностью. Схожие приложения-рулетки, основанные на первых в версиях ARKit, давно представлены в App Store, но с “Рулеткой” от Apple они сравниться не могут.

Приложение “Рулетка” появилось не на всех устройствах с поддержкой iOS 12. Новая полезная утилита стала доступной только на iPhone и iPad с поддержкой ARKit:

  • iPhone SE
  • iPhone 6s
  • iPhone 6s Plus
  • iPhone 7
  • iPhone 7 Plus
  • iPhone 8
  • iPhone 8 Plus
  • iPhone X
  • iPad Pro (все модели)
  • iPhone 2017
  • iPhone 2018

Новое расположение функции “Уровень”

Стандартная функция “Уровень” сменило свое обычное расположение на устройствах с поддержкой ARKit. Если прежде оно находилось в приложении “Компас”, то теперь ему отделена собственная вкладка в приложении “Рулетка”.


Функция “Экранное время”

В начале 2018 года правозащитники обратили внимание на то, что подростки проводят все больше времени за смартфонами и планшетами, в частности, за iPhone и iPad. Сразу несколько ведомств попросили Apple как-либо повлиять на ситуацию. Apple не пришлось долго уговаривать и в iOS 12 появилась новая функция “Экранное время”.

Функция позволяет следить за тем, как пользователи тратят время при использовании своих iPhone и iPad. Функция работает по аналогии с опцией мониторинга расхода заряда аккумулятора, показывая график использования мобильного устройства и конкретную активность в тех или иных приложениях. У пользователей имеется возможность установить ограничения на активность в любых приложениях и играх, установленных на iPhone или iPad.

Благодаря новой функции родители могут ограничить использование “вредных” приложения для своих детей наиболее простым образом. Например, если ваш ребенок слишком много смотрит YouTube, то в iOS 12 вы сможете поставить ограничение на просмотр видео в приложении. Когда указанный вами лимит времени подойдет к концу, приложение перестанет запускаться.

Блокировка всех отвлекающих приложений

Одной из главных возможностей новой функции “Экранное время” является опция блокировки всех приложений, кроме тех, что занесены пользователем в список разрешенных. Приложения можно блокировать на определенный период времени или по указанному расписанию. На заблокированных для использования приложениях появляется иконка с песочными часами, которая и указывает на то, что в настоящее время приложения открыть не получится.

Функция будет полезна не только родителям, которые хотят ограничить использование своими детьми различных приложений или игр. Многие пользователи вполне захотят установить ограничения для самих себя, например, в период активной работы или учебы, когда iPhone или iPad является одним из наиболее отвлекающих факторов.

Виджет функции “Экранное время”

Также у функции “Экранное время” имеется собственный виджет. Он позволяет максимально быстро и просто увидеть статистику использования iPhone или iPad за сегодняшний день на странице виджетов.

Переработанный “Центр уведомлений”

Одно из самых долгожданных и запрашиваемых пользователями нововведений - обновленный “Центр уведомлений”. Apple прислушалась к потребителям и предоставила им гибкие настройки списка оповещений. В iOS 12 пользователи получили возможность группировать уведомления по приложению, а также управлять оповещениями прямо из “Центра уведомлений”.

“Умная” группировка уведомлений

По умолчанию на iPhone и iPad под управлением iOS 12 включена “умная” группировка оповещений для всех приложений. Уведомления группируются не просто по приложению, а еще и с учетом предпочтений каждого конкретного пользователя. Благодаря этому наиболее важные оповещения всегда появляются вверху списка, что будет особенно удобно для тех пользователей, которые получают большое количество уведомлений из различных приложений.

Быстрая настройка уведомлений любого приложения

В iOS 12 у пользователей есть возможность без отлагательств, прямо из “Центра уведомлений”, перейти к настройкам оповещений приложений. Для этого требуется зажать на любом входящем уведомлении, нажать на иконку ( ) и выбрать пункт “Настройки”. Очень удобная опция, которая позволит изменить тип уведомлений от приложений за считанные секунды и без необходимости копаться в настройках.

Быстрое заглушение звуков уведомлений отдельных приложений

Еще один приятный твик “Центра уведомлений”. Зажав на любом уведомлении и нажав уже знакомую иконку ( ), у пользователей имеется возможность в два нажатия заглушить все уведомления от выбранного приложения. При этом оповещения продолжат появляться в “Центре уведомлений”, но никакого звукового сопровождения при их появлении не будет.

Новый интерфейс настроек уведомлений

В самих настройках уведомлений тоже небольшое, но приятное изменение. На странице с параметрами оповещений появились большие и понятные миниатюры, которые показывают, как именно уведомления будут отображаться на экране.


Улучшенный режим “Не беспокоить”

Режим “Не беспокоить”, как мы и прогнозировали, в iOS 12 стал лучше. В обновлении он предлагает больше гибких настроек. Так, вы можете быстро включить его только на 1 час, до окончания текущего мероприятия из “Календаря” или, например, до ухода из текущей геопозиции.

Поскольку популярность продукции Apple растет с каждым днем, все чаще можно услышать вопрос: «iOS - что это такое?» На самом деле, это операционная система, первоначально выпущенная в 2007 году для iPhone и имеющая настройки для управления сенсорным экраном. Впоследствии она была расширена для поддержки других устройств и используется на iPad и Apple TV. В отличие от Windows Phone и Android, производитель не предоставил лицензию для ее использования на сторонних устройствах. Именно поэтому следует учитывать данное обстоятельство, говоря об iOS (как установить ее на смартфон или планшет).

Пользовательский интерфейс этой ОС основан на концепции прямой манипуляции с использованием мультитач. управления состоят из курсора, переключателя и кнопок. Отвечая на вопрос «iOS - что это такое», следует отметить, что эта платформа является производной от OS X и базируется на аналогичной основе. Таким образом, это операционная система на ядре Unix.

Apple предоставляет важные обновления для ОС примерно раз в год, загрузить которые возможно с использованием сервиса Itunes (начиная с iOS Beta 2). Наиболее новой версией операционной системы является 6.0, выпущенная девятнадцатого сентября 2012 года. Она предложила пользователям более 200 новых функций, включая новые службы Apple Passbook, карты и полную интеграцию Facebook.

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

Начиная с версии 3.0, стала доступна функция поиска Spotlight, расположенная в левой стороне экрана. Она позволяет пользователям найти музыку, приложения, электронную почту, контакты, сообщения, напоминания, календарь событий и похожие файлы.

В iOS 4 или более поздних версиях, пользователи получили возможность установить изображение в качестве фона главного экрана. Эта функция доступна только в третьем поколении устройств или новее - с iPhone 3GS и iPod Touch 3. В iPad, однако, эта функция была доступна с момента его выхода с прошивкой 3.2.

При попытке подробно объяснить, iOS - что это такое, нельзя не упомянуть приложение Siri. Оно представляет собой интеллектуального личного помощника, отвечающего на голосовые команды пользователя. С его помощью можно выполнить различные задачи, например, набор номера или текста, запуск приложений, поиск в Интернете и так далее.

Siri в настоящее время доступна только на 5, iPod touch пятого поколения, iPad Мини, и iPad третьего и четвертого поколения.

Отвечая на вопрос «iOS - что это такое», нельзя не вспомнить такое явление, как джейлбрейк устройств Apple. С момента первого релиза платформы, она стала предметом различных хаков с целью добавления функциональности, которая не допускается производителем. Постепенно общие мотивы для джейлбрейка изменились. Пользователи прибегают к нему по разным причинам, в том числе и для получения доступа к файловой системе, установки пользовательских тем и модификации устройства SpringBoard. На некоторых устройствах джейлбрейк позволяет также установить альтернативные например, Android и другие дистрибутивы Linux.

Все в курсе, что мобильные девайсы Apple работают под управлением iOS. Многие знают, что iOS представляет собой облегченную версию настольной Mac OS X. Некоторые догадываются, что в основе Mac OS X лежит POSIX-совместимая ОС Darwin, а те, кто всерьез интересуется IT, в курсе, что основа Darwin - это ядро XNU, появившееся на свет в результате слияния микроядра Mach и компонентов ядра FreeBSD. Однако все это голые факты, которые ничего не скажут нам о том, как же на самом деле работает 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 для сторонних и стоковых приложений

INFO

Как и во многих других ОС, 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 приложение ограничено в следующих возможностях:

  • Доступ к файловой системе за исключением своего собственного каталога и домашнего каталога пользователя.
  • Доступ к каталогам Media и Library внутри домашнего каталога за исключением Media/DCIM/, Media/Photos/, Library/AddressBook/, Library/Keyboard/ и Library/Preferences/.
  • Доступ к информации о других процессах (приложение «считает» себя единственным в системе).
  • Прямой доступ к железу (разрешено использовать только Cocoa API и другие фреймворки).

Все эти ограничения соответствуют sandbox-профилю (набору ограничивающих правил) container и применяются к любому стороннему приложению. Для стоковых приложений, в свою очередь, могут применяться другие ограничения, более мягкие или жесткие. В качестве примера можно привести почтовый клиент (профиль MobileMail), который в целом имеет такие же серьезные ограничения, как и сторонние приложения, но может получить доступ ко всему содержимому каталога Library/. Обратная ситуация - SpringBoard, вообще не имеющий ограничений.

Внутри песочниц работают многие системные демоны, включая, например, AFC, предназначенный для работы с файловой системой устройства с ПК, но ограничивающий «область видимости» только домашним каталогом пользователя. Все доступные системные sandbox-профили располагаются в каталоге /System/Library/Sandbox/Profiles/* и представляют собой наборы правил, написанных на языке Scheme. Кроме этого, приложения также могут включать в себя дополнительные наборы правил, называемых entitlement. По сути, это все те же профили, но вшитые прямо в бинарный файл приложения (своего рода самоограничение). Просмотреть эти правила можно, например, так:
# cat -tv /Applications/MobileSafari.app/MobileSafari | tail -31 | more
Смысл существования всех этих ограничений двойной. Первая (и главная) задача, которую решает sandbox, - это защита от вредоносных приложений. Вкупе с тщательной проверкой опубликованных в iTunes приложений и запретом на запуск не подписанных цифровым ключом приложений (читай: любых, полученных не из iTunes) такой подход дает прекрасный результат и позволяет iOS находиться на вершине в списке самых защищенных от вирусов ОС.

Вторая проблема - это защита системы от самой себя и пользователя. Баги могут существовать как в стоковом софте от Apple, так и в головах юзеров. Sandbox защищает от обоих. Даже если злоумышленник найдет дыру в Safari и попытается ее эксплуатировать, он все равно останется в песочнице и не сможет навредить системе. А юзер не сможет «сломать свой любимый телефончик» и не напишет гневных отзывов в адрес Apple. К счастью, знающие люди всегда могут сделать jailbreak и обойти защиту sandbox (собственно, в этом и есть смысл джейлбрейка).

Многозадачность

Одна из самых спорных особенностей iOS - это реализация многозадачности. Она вроде бы и есть, а с другой стороны, ее нет. В сравнении с традиционными настольными ОС и пресловутым Android iOS не является многозадачной операционной системой в привычном смысле этого слова и не позволяет приложениям свободно работать в фоне. Вместо этого ОС реализует API, который приложение может использовать для выполнения отдельных задач, пока оно находится в фоновом режиме.

Впервые такой API появился в iOS 4 (до этого фоновые задачи могли выполнять только стоковые приложения) и наращивался по мере развития операционной системы. Сегодня (речь идет об iOS 7) так называемый Background API позволяет делать следующее:

  • проигрывать аудио;
  • совершать VoIP-звонки;
  • получать информацию о смене местоположения;
  • получать push-уведомления;
  • планировать отложенный вывод уведомлений;
  • запрашивать дополнительное время для завершения работы после перехода в фоновый режим;
  • обмениваться данными с подключенными к девайсу аксессуарами (в том числе Bluetooth);
  • получать и отправлять данные по сети (начиная с iOS 7).

Такие ограничения на работу в фоне необходимы в первую очередь для того, чтобы сохранить заряд батареи и избежать лагов интерфейса, так знакомых пользователям Android, где приложения могут делать в фоне все что захотят. На самом деле Apple настолько сильно заботится о сохранении батареи, что даже реализовала специальный механизм для группировки фоновых действий приложений и их запуска в нужные моменты, например тогда, когда смартфон активно используется, подключен к Wi-Fi-сети или к зарядному устройству.

Выводы

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

Шесть стадий загрузки iOS

  1. Boot ROM . После включения устройства первым запускается минималистичный загрузчик, прошитый в постоянную память устройства. Его задача - произвести начальную инициализацию железа и передать управление первичному загрузчику LLB. Boot ROM всегда имеет заводскую прошивку и не может быть обновлен.
  1. Low Level Bootloader (LLB) . Далее управление получает LLB. Это первичный загрузчик, задача которого - найти в памяти устройства iBoot, проверить его целостность и передать ему управление либо переключить девайс в режим восстановления, если это не удалось. Код LLB хранится в NAND-памяти устройства и обновляется вместе с установкой новой версии прошивки. Кроме всего прочего, он выводит на экран загрузочный логотип.
  1. iBoot . Это вторичный и основной загрузчик айдевайсов. Он включает в себя драйвер файловой системы, с помощью которого получает доступ к содержимому NAND-памяти, находит ядро и передает ему управление. В iBoot также встроен драйвер UART, с помощью которого можно производить отладку ядра и ОС, подключив девайс к COM-порту или USB-порту компа (с помощью кабеля USB - UART).

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, конечная цель которых - не загрузить ОС, а перевести смартфон в режим обновления.