Running Simics inside a container is a topic that has come up several times in recent years. In a two-part Intel Developer Zone blog post, my colleague Mambwe Mumbwa and I discuss both some background on container technology, how and how well Simics can run inside of containers, and what you can with containerized Simicses. Overall, containers offer a very good alternative to virtual machines for running programs like Simics, and the tool ecosystem opens up some exciting new ways to manage Simics installations and simulation instances.
Update: this post was extended to link to both part 1 and part 2 of the blog.
As the picture above shows, on of the main points of container usage (as we see it) is to combine the Simics installation with all the other bits and pieces of software it needs to run in a single blob that is easy to copy around. A big benefit is to combine and package a specific set of versions of the various Simics components – so that a user can easily get one setup going. Also, with the Linux distro being used packaged into the container, there is no risk of distro incompatibilities affecting the software.
When looked at like this, containers look and work a lot like traditional virtual machine images. However, the key point of containers is that they avoid the full overhead of running a guest operating system by using the host Linux kernel to handle OS operations – thus, the container itself becomes more like a rather funny looking user-level process. Namespacing in the kernel is used to separate the containers, providing each container the illusion of having a machine of their own.
There is a lot more to be said about Simics and containers, so go and read the blogs:
- Part 1, more about the technology https://software.intel.com/en-us/blogs/2019/03/18/containerizing-wind-river-simics-virtual-platforms-part-1
- Part 2, more about utilizing the container ecosystem: https://software.intel.com/en-us/blogs/2019/03/28/using-wind-river-simics-with-containers-part-2