Simics es un simulador de sistema completo o una plataforma virtual que se utiliza para ejecutar archivos binarios de producción sin cambios del hardware de destino. Simics fue desarrollado originalmente por el Instituto Sueco de Ciencias de la Computación (SICS) y luego se escindió a Virtutech para su desarrollo comercial en 1998. Virtutech fue adquirida por Intel en 2010. Actualmente, Intel proporciona Simics en un lanzamiento público [1] y vendido comercialmente por Wind River Systems , que en el pasado era una subsidiaria de Intel.
Simics contiene simuladores de conjuntos de instrucciones y modelos de hardware, y se utiliza o se ha utilizado para simular sistemas como Alpha , ARM (32 y 64 bits), IA-64 , MIPS (32 y 64 bits), MSP430 , PowerPC . ( 32 y 64 bits ), RISC-V ( 32 y 64 bits ), SPARC-V8 y V9 , y CPU x86 y x86-64 .
Se han ejecutado muchos sistemas operativos diferentes en varias plataformas virtuales simuladas, incluidas Linux , MS-DOS , Windows , VxWorks , OSE , Solaris , FreeBSD , QNX , RTEMS , UEFI y Zephyr .
El puerto NetBSD AMD64 se desarrolló inicialmente utilizando Simics antes del lanzamiento público del chip. [2] El propósito de la simulación en Simics es a menudo desarrollar software para un tipo particular de hardware sin requerir acceso a ese hardware preciso, utilizando Simics como plataforma virtual . Esto se puede aplicar tanto al desarrollo de software previo al lanzamiento como al desarrollo previo al silicio para hardware futuro, así como al hardware existente. Intel utiliza Simics para proporcionar a su ecosistema acceso a plataformas futuras meses o años antes del lanzamiento del hardware. [3]
La versión actual de Simics es 6, que se lanzó públicamente en 2019. [4] [5] Simics se ejecuta en máquinas x86-64 de 64 bits que ejecutan Microsoft Windows y Linux (la compatibilidad con 32 bits se eliminó con el lanzamiento de Simics 5, ya que 64 bits ofrece importantes ventajas de rendimiento y está disponible universalmente en el hardware actual). La versión anterior, Simics 5, se lanzó en 2015. [6]
Simics tiene la capacidad de ejecutar un sistema en dirección hacia adelante y hacia atrás. [7] La depuración inversa puede arrojar luz sobre cómo se produjo una condición excepcional o un error . Al ejecutar un sistema operativo como Linux al revés usando Simics, los archivos previamente eliminados reaparecen cuando el punto de eliminación se pasa al revés y el desplazamiento y otras actualizaciones de la consola y la pantalla gráfica también se producen al revés.
Simics está diseñado para la ejecución de alto rendimiento de modelos de sistema completo y utiliza traducción binaria y virtualización asistida por hardware para aumentar la velocidad de simulación. Tiene múltiples subprocesos de forma nativa y puede simular múltiples procesadores y placas de destino (o invitados) utilizando múltiples subprocesos de host. Se ha utilizado para ejecutar simulaciones que contienen cientos de procesadores de destino.