1 votos

¿Hay algún lugar en el que pueda indagar en la fuente del Hypervisor Framework?

Hasta ahora he estado buscando en XNU fuente, el código abierto oficial sitio y el único documentación He encontrado para ello. En cualquier caso no he podido encontrar algo que me sirva para entender las interioridades del Hypervisor Framework implementado en Swift y no en C.

En realidad estoy tratando de escribir mi propio tiempo de ejecución del contenedor desde cero (con fines de aprendizaje) por lo que si Apple abrió esta fuente espero aprender de esa base de código específico. No quiero usar algo como qemu o libvirt (quiero sentir el dolor de implementarlo desde cero).

No fui capaz de encontrar pistas en el Xhyve fuentes.

Así que cualquier cosa relacionada con los documentos internos, las fuentes o lo que sea (conocimiento profundo) sobre el marco del hipervisor será realmente apreciado. Por cierto, estaba buscando fuentes en C porque quiero usar Rust y, como sabrás, C y Rust son muy interoperables.

¿Ha publicado Apple esta parte del código o alguna nota sobre la base de código que ha utilizado para este esfuerzo?

3voto

Jose Chavez Puntos 645

El marco del hipervisor en sí no es de código abierto, por lo que no se puede obtener una copia del código fuente (a menos que se tenga un acuerdo con Apple para ello).

Si realmente quieres examinar cómo funciona específicamente, podrías hacer ingeniería inversa (desensamblar) el binario para extraer ese conocimiento. Sin embargo, normalmente no tiene sentido hacerlo.

El soporte correspondiente del kernel para el marco de trabajo de HyperVisor es visible en el código fuente de XNU disponible públicamente. Tenga en cuenta que aquí se conoce bajo el nombre de "hv". Por ejemplo, eche un vistazo aquí:

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

Para aprender, yo recomendaría no tratar de hacer ingeniería inversa del Hypervisor.framework, sino simplemente mirar el código fuente (y todo tipo de libros, tutoriales, cursos, etc. disponibles) para otros hipervisores. En general, está muy bien documentado y hay recursos de aprendizaje disponibles sobre cómo hacer un hipervisor, por ejemplo, utilizando las instrucciones VT-X de Intel.

Si no fuera por motivos de aprendizaje, no recomendaría implementar esta parte del hipervisor por ti mismo. En su lugar, basaría el sistema de contenedores en el sistema de Apple Hipervisor.framework Si quieres controlar y personalizar el resto del sistema por ti mismo (es decir, todo lo que no es la CPU), te recomiendo el programa de Apple Virtualización si quieres un sistema relativamente estándar y no necesitas personalizar los periféricos.

Una de las principales ventajas de utilizar los frameworks de Apple (además de que son fáciles de usar) es que puedes hacer uso de ellos desde las aplicaciones sandbox de la App Store -y no necesitas mantener una extensión del kernel tú mismo- con todos los problemas prácticos que conllevan para los usuarios de los MacOS modernos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X