En informática , la fusión de la misma página del kernel ( KSM ), también conocida como memoria compartida del kernel , fusión de memoria , desduplicación de memoria y desduplicación de página es una característica del kernel que hace posible que un sistema de hipervisor comparta páginas de memoria que tienen contenidos idénticos entre múltiples procesos y / o invitados virtualizados . Si bien no está vinculada directamente, la máquina virtual basada en kernel (KVM) puede usar KSM para fusionar páginas de memoria ocupadas por máquinas virtuales .
Deduplicación
KSM realiza la deduplicación de la memoria escaneando la memoria principal en busca de páginas físicas que tengan contenido idéntico e identifica las páginas virtuales que están asignadas a esas páginas físicas. Deja una página sin cambios y vuelve a mapear cada página duplicada para que apunte a la misma página física, después de lo cual libera las páginas físicas adicionales para su reutilización. También marca ambas páginas virtuales como " copia en escritura " (COW), de modo que el kernel reasignará automáticamente una página virtual para que tenga su propia página física separada tan pronto como cualquier proceso comience a escribir en ella. [1]
Originalmente, KSM estaba destinado a ejecutar más máquinas virtuales en un host compartiendo memoria entre procesos y máquinas virtuales. Tras su implementación , los usuarios encontraron que KSM también era útil para entornos no virtualizados en los que la memoria es escasa. [2] [3] Una implementación experimental de KSM por Red Hat descubrió que 52 instancias virtuales de Windows XP con 1 GB de memoria podían ejecutarse en una computadora host que tuviera sólo 16 GB de RAM. [4]
KSM se fusionó con la línea principal del kernel de Linux en la versión 2.6.32, que fue lanzada el 3 de diciembre de 2009. [2] [4] Para ser efectivo, el kernel del sistema operativo debe encontrar páginas de memoria idénticas en diferentes procesos. El kernel también necesita predecir si es probable que las páginas se actualicen con poca frecuencia como para que la fusión sea un uso eficiente de los recursos del procesador. [3] Una preocupación es que aunque se reduce el uso de la memoria, el uso de la CPU aumenta, lo que anula los posibles aumentos del rendimiento. [1]
Riesgos de seguridad
La seguridad también es una preocupación:
- Permite eludir la distribución aleatoria del diseño del espacio de direcciones (ASLR) [5] [6]
- Expone información a través de ataques de sincronización [7]
- Permite la contaminación de recursos criptográficos en otros huéspedes virtualizados a través del ataque de martillo de fila de memoria [8]
Ver también
- Desduplicación de datos , reducción de los requisitos de almacenamiento al compartir archivos duplicados
- Almacenamiento de instancia única
Referencias
- ^ a b "KSM vuelve a intentarlo" . lwn.net . kernel.org . Consultado el 21 de agosto de 2010 .
- ^ a b "Anatomía de la memoria compartida del kernel de Linux" . Desarrollador de IBM . IBM. Archivado desde el original el 9 de julio de 2016 . Consultado el 21 de agosto de 2010 .CS1 maint: URL no apta ( enlace )
- ^ a b "Aumento de la densidad de la memoria mediante el uso de KSM" (PDF) . kernel.org . Consultado el 21 de agosto de 2010 .
- ^ a b "Linux kernel 2.6.32, sección 1.3. Kernel Samepage Merging (deduplicación de memoria)" . kernelnewbies.org . 3 de diciembre de 2009 . Consultado el 12 de agosto de 2015 .
- ^ Kuniyasu Suzaki; Kengo Iijima; Toshiki Yagi; Cyrille Artho. "Deduplicación de memoria como una amenaza para el sistema operativo invitado" (PDF) .
- ^ Barresi, Antonio; Razavi, Kaveh; Pagador, Mathias ; Gross, Thomas R. (agosto de 2015). "CAIN: Rompiendo silenciosamente ASLR en la nube" (PDF) . USENIX . Consultado el 12 de agosto de 2015 .
- ^ Sombrero rojo; Polyakov, Andy. "Todo es cuestión de tiempo - Ataques de tiempo AES en OpenSSL" . access.redhat.com . Red Hat . Consultado el 4 de agosto de 2016 .
- ^ "Nuevo ataque FFS Rowhammer secuestra máquinas virtuales Linux" . Consultado el 17 de agosto de 2016 .
enlaces externos
- Documentación del kernel de Linux
- Usando KSM (archivado desde el original el 2 de julio de 2014)
- Página de Fedora KSM
- Sitio de máquina virtual basada en kernel - KSM