Перейти к основному содержимому

2.01. iOS

Разработчику Архитектору Инженеру

iOS

iOS – мобильная операционная система, разработанная Apple Inc., предназначенная для работы на iPhone, iPad и iPodTouch. Она основана на той же ядерной основе, что и macOS – ядре XNU, и является частью более широкой экосистемы Apple, включающей также iPadOS, watchOS, tvOS, macOS.


Как устроена iOS?

Архитектура iOS включает в себя следующие компоненты:

  • Ядро (XNU) – управляет взаимодействием с оборудованием;
  • UNIX Layer (Darwin) – BSD API, процессы, файловая система, сетевые протоколы;
  • UIKit / SwiftUI – фреймворки для пользовательского интерфейса;
  • SpringBoard – системная оболочка (заменяет Finder);
  • App Store и Sandboxing – безопасность и изоляция приложений;
  • Файловая система APFS;
  • Средства командной строки (в jailbroken-устройствах).

1. Ядро

★ Ядро, как и в macOS, используется гибридное – XNU, которое сочетает элементы монолитного и микроядра. Компоненты – Mach для управления памятью, IPC; BSD Subsystem для реализации UNIX API; I/O Kit, библиотека драйверов на C++.

Особенности ядра в iOS:

  • Secure Virtual Memory (SVM) – защита данных в памяти;
  • Address Space Layout Randomization (ASLR) – усложняет эксплойты;
  • Code Signing Enforcement – запуск только подписанного кода;
  • Pointer Authentication Codes (PAC) – защита указателей (на чипах A12 и выше);
  • Application Sandbox – изоляция приложений друг от друга.

2. Эксклюзивность

★ Эксклюзивность. Как и в macOS, iOS выпускается только для устройств Apple, а каждый выпуск получает собственное имя и номер версии, старые версии прекращают поддержку. Следовательно, политика Apple связана с множеством ограничений, в первую очередь обоснованных безопасностью.

Процесс снятия ограничений, наложенным на устройство (в основном iOS), называют джейлбрейк (Jailbreak). Он позволяет получить root-доступ (права суперпользователя) и устанавливать неподписанные приложения, изменять системные файлы и настраивать ОС глубже, чем это разрешено по умолчанию.

Это, конечно, выполняется для установки неофициальных (и пиратских) приложений, кастомизации интерфейса, удаления предустановленных приложений, доступа к скрытым функциям. И такой процесс – нарушение лицензионного соглашения, который приведёт к юридическим проблемам, потере гарантии и поддержки, а также проблемам со стабильностью и безопасностью.


3. Среда и ключевое ПО

★ Среда и ключевое ПО, службы Графическая среда:

  • SpringBoard – главный интерфейс iOS (экран с иконками);
  • NotificationCenter – центр уведомлений;
  • Control Center – быстрые настройки;
  • Dock (на iPad) – аналог рабочего стола.

Интеграция с Apple экосистемой:

  • iCloud – синхронизация данных;
  • AirDrop, Handoff, Universal Clipboard;
  • Find My iPhone, Find My Network.

Ключевые приложения:

  • Safari, Messages, FaceTime, Photos, Notes;
  • App Store – центр загрузки приложений;
  • Health, Wallet, Maps, Music;
  • Shortcuts – автоматизация задач.

Службы:

  • launchd – система запуска и управления процессами (как в macOS);
  • backboardd – управление экраном и кнопками;
  • mediaserverd – работа с медиафайлами.

4. Инструменты

★ Полезные инструменты iOS

На уровне пользователя:

  • Shortcuts – мощная система автоматизации;
  • Files – файловый менеджер (начиная с iOS 11);
  • Screen Recording – запись экрана;
  • Accessibility Features – голосовое управление, увеличение, VoiceOver.

Для разработчиков и продвинутых пользователей:

  • Xcode – официальная IDE Apple;
  • Instruments – профилирование производительности;
  • Console.app – просмотр логов;
  • Simulator – тестирование приложений без устройства;
  • TestFlight – бета-тестирование.

Для джейлбрейкнутых устройств имеются отдельные средства, которые позволяют получить расширенный доступ к ОС.


5. Сеть

★ Работа с сетью в iOS.

Wi-Fi и Bluetooth:

  • Wi-Fi Settings – выбор сети, заблокированные сети, DNS;
  • Bluetooth – подключение аксессуаров;
  • Personal Hotspot – раздача интернета.

Инструменты диагностики:

  • Network Link Conditioner – имитация плохого соединения (требуется установка через Xcode);
  • Settings > General > About > Diagnostics & Usage;
  • Wi-Fi Assist – переключение на мобильный интернет при слабом Wi-Fi.

Удалённый доступ:

  • Remote Debugging – через Xcode;
  • SSH (при джейлбрейке) – для низкоуровневого доступа.

6. Запуск iOS на Windows, Linux, macOS

Запустить iOS как полноценную ОС на обычном ПК невозможно из-за привязки к Apple-аппаратуре, но существуют способы её эмуляции и тестирования – Xcode Simulator на macOS, iPadian, Corellium, VirtualBox / QEMU на других ОС.