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 на других ОС.
Файловая система и структура каталогов iOS
Файловая система iOS основана на ядре Darwin (как и macOS) и использует APFS (Apple File System) в качестве стандартной файловой системы. Однако в отличие от macOS, iOS применяет значительно более строгую модель изоляции приложений, управление доступом через sandboxing и ограничения на взаимодействие между компонентами системы.
Структура каталогов iOS оптимизирована под мобильные устройства с ограниченными ресурсами, безопасность пользовательских данных и контроль со стороны Apple. Доступ к большинству системных каталогов закрыт даже для разработчиков без джейлбрейка.
/ — корневой каталог
Корень файловой системы содержит все остальные каталоги. На iOS этот уровень практически недоступен обычным пользователям и приложениям.
/System — защищённые системные компоненты
Этот каталог содержит неизменяемые системные файлы:
/System/Library— фреймворки, расширения, шрифты, звуки;/System/Applications— предустановленные системные приложения (например, Телефон, Сообщения);/System/DriverKit— драйверы нового поколения.
Все эти файлы защищены механизмом System Integrity Protection (SIP) и подписью кода. Изменение невозможно без отключения защиты и наличия root-доступа.
/usr — системные утилиты и библиотеки
Содержит компоненты Unix-подсистемы:
/usr/bin— команды терминала:ls,grep,ps;/usr/lib— системные библиотеки;/usr/include— заголовочные файлы (доступны только в Xcode SDK).
На iOS многие из этих утилит либо отсутствуют, либо сильно урезаны по сравнению с macOS.
/bin и /sbin — базовые исполняемые файлы
Содержат минимальный набор утилит для работы системы:
/bin/sh— оболочка;/sbin/reboot,/sbin/mount— административные команды.
Доступ к этим каталогам возможен только в режиме восстановления или через терминал с root-привилегиями.
/etc — конфигурационные файлы
Хранит системные настройки:
/etc/hosts— локальное сопоставление доменов;/etc/passwd,/etc/group— совместимость с Unix (реальные данные хранятся в Open Directory).
Большинство конфигураций в iOS управляется через plist-файлы и настройки профиля, а не через текстовые файлы.
/var — переменные данные
Изменяющиеся во время работы системы файлы:
/var/log— системные журналы;/var/db— локальные базы данных, включая настройки и состояние служб;/var/run— PID-файлы и сокеты.
/tmp — временные файлы
Используется для хранения временных данных. Содержимое может очищаться при перезагрузке или при нехватке места.
/Applications — системные и сторонние приложения
Содержит установленные приложения:
- системные приложения Apple (подписаны и защищены);
- сторонние приложения из App Store (установленные в виде
.appbundle).
Каждое приложение представляет собой каталог с исполняемым файлом, ресурсами и метаданными (Info.plist).
/private — служебные каталоги
Содержит «реальные» реализации некоторых путей:
/private/var→/var;/private/etc→/etc.
Это сделано для совместимости с Unix-стандартами.
/Developer — инструменты разработчика (временный)
Появляется при подключении устройства к Xcode для отладки. Содержит:
- демон отладки (
debugserver); - временные артефакты сборки;
- символы отладки.
Удаляется после завершения сессии разработки.
Песочница приложений
Ключевая особенность iOS — песочница (sandbox). Каждое приложение работает в изолированном контейнере, расположенном в:
/var/mobile/Containers/Data/Application/<UUID>/
Структура контейнера приложения
Documents/— пользовательские документы, доступные через «Файлы» (если приложение разрешает);Library/— данные приложения:Preferences/— настройки (plist-файлы);Caches/— кэш (может быть удалён системой);Application Support/— постоянные данные приложения;
tmp/— временные файлы;Library/Cookies/— cookie для WebView;Library/Keychains/— данные цепочки ключей (keychain).
Приложение не имеет доступа к контейнерам других приложений, за исключением случаев явного предоставления доступа через App Groups или Shared Containers.
/var/mobile/Media — пользовательский медиаконтент
Содержит медиафайлы пользователя:
DCIM/— фотографии и видео с камеры;Music/— музыкальная библиотека;Movies/— видеофайлы;Screenshots/— скриншоты.
Этот каталог доступен через приложения «Фото», «Музыка» и «Файлы».
/var/mobile/Library — пользовательские настройки и данные
Хранит глобальные данные пользователя:
Preferences/— системные настройки;SMS/— сообщения (в зашифрованной базе);AddressBook/— контакты;Keyboard/— словари и автозамена;Safari/— данные браузера.
Доступ к этим данным ограничен и регулируется через Privacy API и запросы разрешений.
Особенности iOS
Подпись кода и защита целостности
Все исполняемые файлы в iOS должны быть подписаны сертификатом Apple. Это гарантирует, что:
- приложение прошло проверку App Store (или развёрнуто через Enterprise/Developer-сертификат);
- содержимое не было изменено после установки.
Data Protection
iOS шифрует пользовательские данные с использованием Data Protection API. Уровень шифрования зависит от состояния устройства:
- Complete Protection — данные доступны только при разблокированном устройстве;
- Protected Until First User Authentication — данные доступны после первой разблокировки после перезагрузки.
Недоступность прямого доступа
Без джейлбрейка пользователь не может:
- просматривать корневую файловую систему;
- устанавливать приложения вне App Store;
- модифицировать системные файлы.
Даже через Files.app виден только ограниченный набор каталогов, связанных с пользовательскими данными и облачными сервисами.
iCloud и синхронизация
Многие данные автоматически синхронизируются с iCloud:
- настройки приложений;
- документы;
- фото (через iCloud Photos);
- заметки, напоминания, контакты.
Локальные файлы могут быть заменены «заполнителями» (placeholders), а реальные данные загружаются по запросу.