1 votes

Existe-t-il un endroit où je peux trouver les sources de l'Hypervisor Framework ?

Jusqu'à présent, j'ai étudié XNU source, le site officiel de l'Open Source site et le seul la documentation Je l'ai trouvé. En tout cas, je n'ai pas réussi à trouver quelque chose que je puisse utiliser pour comprendre le fonctionnement interne de l'Hypervisor Framework implémenté en Swift et non en C.

J'essaie actuellement d'écrire mon propre runtime de conteneur à partir de zéro (à des fins d'apprentissage), donc si Apple ouvre cette source, j'espère apprendre de cette base de code spécifique. Je ne veux pas utiliser quelque chose comme qemu ou libvirt (je veux ressentir la douleur de l'implémentation à partir de la base).

Je n'ai pas trouvé d'indices sur le site de la Xhyve sources.

Donc tout ce qui concerne les documents sur les aspects internes, les sources ou autres (connaissances approfondies) sur le Framework de l'Hyperviseur sera très apprécié. En outre, je cherchais des sources en C car je veux utiliser Rust et comme vous le savez peut-être, C et Rust sont très interopérables.

Apple a-t-elle ouvert cette partie du code ou publié des notes sur la base de code qu'elle a utilisée pour cet effort ?

3voto

Jose Chavez Points 645

Le cadre de l'hyperviseur lui-même n'est pas open-source - vous ne pouvez donc pas obtenir une copie du code source (à moins d'avoir un accord avec Apple à cet effet).

Si vous vouliez vraiment examiner son fonctionnement spécifique, vous pourriez faire de l'ingénierie inverse (désassembler) sur le binaire pour extraire ces connaissances. Cependant, il n'y a généralement aucun intérêt à le faire.

La prise en charge du noyau correspondant au cadre HyperVisor est visible dans le code source XNU accessible au public. Notez qu'il est connu sous le nom de "hv". Par exemple, jetez un coup d'œil ici :

https://github.com/apple/darwin-xnu/blob/a1babec6b135d1f35b2590a1990af3c5c5393479/osfmk/kern/hv_support_kext.c

À des fins d'apprentissage, je recommanderais de ne pas essayer de faire de la rétro-ingénierie sur Hypervisor.framework, mais plutôt de regarder le code source (et toutes sortes de livres, tutoriels, cours, etc. disponibles) pour d'autres hyperviseurs. Il est généralement extrêmement bien documenté et des ressources d'apprentissage sont facilement disponibles sur la façon de créer un hyperviseur - par exemple en utilisant les instructions Intel VT-X.

Si ce n'était pas à des fins d'apprentissage, je ne recommanderais pas d'implémenter vous-même cette partie de l'hyperviseur. Au lieu de cela, je baserais le système de conteneurs sur le système d'Apple Hyperviseur.framework si vous souhaitez contrôler et personnaliser vous-même le reste du système (c'est-à-dire tout ce qui n'est pas le CPU), et je recommanderais le logiciel Apple's Virtualisation si vous souhaitez un système relativement standard et que vous n'avez pas besoin de personnaliser les périphériques.

L'un des principaux avantages de l'utilisation des frameworks d'Apple (outre leur facilité d'utilisation) est que vous pouvez les utiliser à partir d'applications en bac à sable dans l'App Store - et que vous n'avez pas besoin de maintenir vous-même une extension du noyau - avec tous les problèmes pratiques qu'ils entraînent pour les utilisateurs de MacOS moderne.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X