Simics

Simics is a full-system simulator or virtual platform used to run unchanged production binaries of the target hardware. Simics was originally developed by the Swedish Institute of Computer Science (SICS), and then spun off to Virtutech for commercial development in 1998. Virtutech was acquired by Intel in 2010. Currently, Simics is provided by Intel in a public release and sold commercially by Wind River Systems, which was in the past a subsidiary of Intel.

Simics contains both instruction set simulators and hardware models, and is or has been used to simulate systems such as Alpha, ARM (32- and 64-bit), IA-64, MIPS (32- and 64-bit), MSP430, PowerPC (32- and 64-bit), RISC-V (32- and 64-bit), SPARC-V8 and V9, and x86 and x86-64 CPUs.

Many different operating systems have been run on various simulated virtual platforms, including Linux, MS-DOS, Windows, VxWorks, OSE, Solaris, FreeBSD, QNX, RTEMS, UEFI, and Zephyr.

The NetBSD AMD64 port was initially developed using Simics before the public release of the chip. The purpose of simulation in Simics is often to develop software for a particular type of hardware without requiring access to that precise hardware, using Simics as a virtual platform. This can applied both to pre-release and pre-silicon software development for future hardware, as well as for existing hardware. Intel uses Simics to provide its ecosystem with access to future platform months or years ahead of the hardware launch.

The current version of Simics is 6 which was released publicly in 2019. Simics runs on 64-bit x86-64 machines running Microsoft Windows and Linux (32-bit support was dropped with the release of Simics 5, since 64-bit provides significant performance advantages and is universally available on current hardware). The previous version, Simics 5, was released in 2015.

Simics has the ability to execute a system in forward and reverse direction. Reverse debugging can illuminate how an exceptional condition or bug occurred. When executing an OS such as Linux in reverse using Simics, previously deleted files reappear when the deletion point is passed in reverse and scrolling and other graphical display and console updates occur backwards as well.

Simics is built for high performance execution of full-system models, and uses both binary translation and hardware-assisted virtualization to increase simulation speed. It is natively multithreaded and can simulate multiple target (or guest) processors and boards using multiple host threads. It has been used to run simulations containing hundreds of target processors.