Pourquoi un iPhone utiliserait-il la version Darwin de l’iOS d’Apple ? Quelle est la différence entre la version Darwin et la version normale ?


Vous ne pouvez pas construire un noyau iOS qui fonctionnera sur un iPhone à partir des sources publiées par Apple.

Il y a des pièces d'assemblage ARM manquantes, donc même si vous pouviez extraire les KEXTs pour les pilotes de périphériques à partir du bundle du noyau, ce n'est pas réellement un ensemble complet de sources du noyau.


En supposant que vous fassiez cela, cependant, vous ne seriez pas en mesure de signer cryptographiquement le bundle avec une clé que le bootloader reconnaîtrait.

Cela empêche les gens de créer des logiciels malveillants au démarrage qui s'insèrent dans l'espace d'adresse du noyau, pour voler des numéros de carte de crédit et d'autres informations.

En interne, les développeurs iOS ont accès au code source non expurgé qui inclut les bits ARM propriétaires, et plutôt que de signer l'image du noyau, ils utilisent un dispositif qui est "developer fused" : il contient des composants de CPU qui sont grillés hors des iPhones de production non développés lorsqu'ils passent par les étapes finales de fabrication en usine.

En outre, Apple utilise des câbles d'accueil spéciaux qui leur donnent un accès supplémentaire aux parties fusionnées, comme les ports JTAG. Vous n'avez pas accès à ces câbles.

Si vous essayez de porter le noyau XNU d'Apple sur un autre périphérique, en supposant que vous connaissez l'assemblage ARM, et en supposant que vous êtes un développeur de niveau relativement élevé, un portage vous prendra probablement environ un mois pour arriver à démarrer en mode multi-utilisateur, mais sans pilotes supplémentaires spécifiques au périphérique.

Les pièces que vous devez inventer ne sont pas si importantes.

Si vous essayez de faire fonctionner une image iOS d'un iPhone au-dessus de cela, cependant, vous devrez fournir des pilotes. À ce stade, cependant, vos efforts de clonage d'un iPhone échoueront presque certainement.

Les processeurs ARM d'Apple ont des GPU et une bande passante mémoire nettement meilleurs que ceux des pièces ARM de tout autre fournisseur. Samsung et Qualcomm peuvent rivaliser sur les cycles bruts du processeur, mais ils ne peuvent pas déplacer la mémoire aussi rapidement que les puces d'Apple.

Au cas où vous vous poseriez la question, la faible utilisation de l'énergie n'est pas la seule raison pour laquelle Apple a acheté PASemi. Beaucoup d'ingénieurs de PASemi viennent de NetScaler, et avant cela, du groupe de conception de CPU DEC Alpha.

Ils savent ce qu'ils font quand il s'agit de la conception de puces ; beaucoup d'autres groupes de conception de puces sont simplement "phoning it in". Les seules personnes que je mettrais (peut-être) en face d'eux sont les gars du silicium de Cavium, ou l'équipe d'Intel à Haïfa en Israël.

.