Когда в 2007 году была выпущена iPhone OS 1.0, она изменила определение смартфона как устройства с ограниченным набором функций. В настоящее время iOS 14 содержит невероятное количество компонентов.
Если вы следили за недавними событиями от Apple, то, вероятно, видели рентгеновские изображения A14 и M1. Это заставило меня задуматься о том, что вы увидите, если сможете просветить iOS рентгеновскими лучами …
В моей предыдущей статье об эволюции языков программирования с iPhone OS 1.0 до iOS 14 я проанализировал iOS на основе количества двоичных файлов и их языков программирования. Как я указывал в прошлой публикации, размер двоичных файлов не принимался во внимание. В этой новой статье я рассматриваю iPhone OS 1.0 и iOS 14 с точки зрения размера с использованием древовидных карт.
Методология
Для создания изображений в этой статье я взял корневую файловую систему (включая общий кеш dyld) каждого основного выпуска iOS:
iOS 14.0 (18A373) iPhone X
iOS 13.1 (17A844) iPhone X
iOS 12.0 (16A366) iPhone X
iOS 11.1 (15B93) iPhone X
iOS 10.1 (14B72) iPhone 5s
iOS 9.0 (13A344) iPhone 5s
iOS 8.0 (12A365) iPhone 5s
iOS 7.0.1 (11A470a) iPhone 5s
iOS 6.0 (10A403) iPhone 3GS
iOS 5.0 (9A334) iPhone 3GS
iOS 4.0 (8A293) iPhone 3GS
iPhone OS 3.0 (7A341) iPhone 3GS
iPhone OS 2.0 (5A347) iPhone 2G
iPhone OS 1.0 (1A543a) iPhone 2G
Затем я создал древовидную карту. Возможно, вы знакомы с древовидными картами, поскольку они часто используются для визуализации иерархии файлов, чтобы дать вам графический обзор структуры. Одной из ключевых характеристик является то, что каждый файл отображается в виде прямоугольника с площадью, пропорциональной размеру файла. Древовидные карты, показанные в этой статье, были созданы с использованием великолепной GrandPerspective и аннотированы с помощью Pixelmator.
iPhone OS 1.0
Давайте посмотрим, что вы бы увидели, если бы сканировали iPhone OS 1.0 с помощью рентгеновских лучей:
На диаграмме ниже показаны некоторые из основных функциональных блоков:
Можно заметить, что:
Структура довольно проста и имеет сходство с macOS
Фреймворки занимают более трети всей ОС
Шрифты занимают более 25% всей операционной системы
Мы можем спуститься на один уровень глубже и определить все компоненты:
Из списка компонентов мы можем четко определить все основные функции iPhone OS 1.0:
ICU (International Components for Unicode) занимает более 5%
SpringBoard составляет примерно 2%
Перенесемся на несколько лет вперед
Я не буду вдаваться в подробности о каждом выпуске iOS, но вы можете проверить древовидные карты от iPhone OS 2.0 до iOS 13.1 здесь:
Обратите внимание, что количество блоков увеличивается с каждым новым релизом iOS, а компоненты становятся меньше.
iOS 14
Сейчас 2020 год, и доступна iOS 14. Неудивительно, что iOS 14 намного сложнее, чем iPhone OS 1.0:
На схеме показаны функциональные блоки в iOS 14:
Мы можем отметить, что основная структура все еще довольно похожа на исходную версию iPhone OS 1.0: шрифты, фреймворки, приложения, библиотеки, /usr… все еще здесь.
Однако есть пара больших отличий:
iOS 14 содержит множество предустановленных ассетов (Preinstalled Asset) и лингвистических данных (Linguistic Data). Насколько я могу судить, эти компоненты используются для машинного обучения на устройстве: детектор языка, голоса, токенизаторы, вокализаторы и т.д.
Общий кеш dyld, механизм кэширования, представленный в iPhone OS 3.1, приводит к разделению Frameworks и Private Frameworks на несколько областей. Общий кеш dyld отмечен на диаграмме красным прямоугольником.
Здоровье — это, несомненно, важная функция iOS 14.
В iOS 14 так много компонентов, что идентифицировать их все намного сложнее. Тем не менее я попробовал:
Хотя сейчас сложно перечислить все особенности, есть несколько явных тенденций:
iOS 14 оснащена технологиями машинного обучения на устройстве: обнаружением лиц, глубокими сверточными сетями, фреймворками машинного зрения, распознаванием текста, нейронной сетью и т.д.
С камерой и фотографиями связано множество компонентов: эффекты, Воспоминания, обработка видео, библиотека фотографий…
Мы можем выделить несколько функций, добавленных за эти годы: HomeKit, Watch, CarPlay, Spotlight, Emoji, News, iWork, Wallet, Shortcuts, ARKit…
Дополнительная статистика:
Шрифты теперь составляют менее 6% от размера.
Лингвистические данные составляют почти 8% от размера.
Хотя после iPhone OS 1.0 размер ICU увеличился более чем в 3 раза, сейчас он составляет примерно 0.5% от общего количества.
Сравнение iPhone OS 1.0 с iOS 14.0
Для удобства чтения все предыдущие древовидные карты в этой статье были показаны с одинаковым размером. Если мы представим iPhone OS 1.0 рядом с iOS 14 с пропорциональной областью, вы увидите, что вся iPhone OS 1.0 в основном принимает размер обоев iOS 14:
Вывод
Когда в 2007 году была выпущена iPhone OS 1.0, она изменила определение смартфона как устройства с ограниченным набором функций. В настоящее время iOS 14 содержит невероятное количество компонентов. Рассматривая их по размеру, мы можем определить наиболее важные особенности. Таким образом, мы отчетливо видим, что Apple продвигает ИИ и машинное обучение на устройствах вместе с такими технологиями, как обнаружение объектов в изображениях и видео, анализ языка, классификация звука и распознавание текста.