Windows file sharing has always felt a bit magical to me. I
use it all the time, certainly, but I never quite understood how it worked;
it was just this big chunk of Microsoft protocol that felt like it really did not want to talk to
other types of operating systems. Sure, I have used the open-source "samba"
server for a long time with great success… but it always seemed to suffer from
issues with access rights (probably the fault of me and server setup and mixing Unix and Windows accounts, not a
fault in the server itself).
With this background, I was really delighted and surprised when I managed
to almost effortlessly get a Simics target to share and serve files to my
Windows host. A big-endian Power Architecture QSP target at that,
running VxWorks, how cool isn’t that? The key to the puzzle was the Visuality NQ Server from Visuality Systems Ltd. in Israel. It
just worked, and let me try some interesting and educational setups.
Late last year, I presented a one-hour webinar on how Simics lets you “resolve bugs in minutes instead of weeks.” Part of that webinar were two Simics demos that show Simics in action, from the first booting of a target system through loading software onto it and debugging a nasty crash in a server program. The webinar demos are now available as a single Youtube movie, on the Wind River Youtube channel.
I often write and talk about how useful Simics is for
debugging concurrency bugs and glitches in multithreaded and multicore systems. Recently, we had a case where we proved this on a very complex application,
namely Simics itself. This nicely demonstrated both the recursive completeness
of Simics, and its usefulness for conquering tricky bugs in complex software.
In a recent Simics seminar, I was asked about repeatability, variability, determinism and Simics. This is a question that comes up almost every time I present about Simics in front of an audience with testing experience. The people asking the question intuitively think that determinism is a bad thing - since it sounds like it will limit the execution scenarios that will be explored in testing. For a tester, variation is a good thing. However, determinism is not in conflict with variation. And I think I found a perfect illustration of this in a setting that is a bit more accessible and easy to understand than computer simulators. In a computer game, Bad Piggies, from Rovio.
Full-system simulators like Simics provide unparalleled
insight into what is going on in a target system. Indeed, better insight is one
of the main features of simulation that we get regardless of what we simulate and
how. In addition, if we want to, we can also exert control over the target
system to make it take different execution paths than it otherwise would.
Earlier this year, Ben Blum at Carnegie-Mellon University CMU presented a Master’s thesis that provides
a very good example of just what can be achieved by combing the insight and
control of a simulator with intelligence and domain knowledge. The system is
called Landslide, and it is used to expose race conditions inside of
operating-system kernels.
In my previous blog post on multicore scaling
investigations with Simics, I tested a simple parallel program on a variety
of machines. The scaling obtained was not particularly impressive, especially
not on a 60-core target machine. In this post, we will use the Simics timeline
view to look a bit closer at what is going on inside the target machines. In
particular, with respect to operating system scheduling of the target threads.
A few years ago, I did a Simics demo where I tested the
scalability of a multithreaded program as the target hardware went from two to
four to eight cores. Unfortunately, I could not take it beyond that point,
since the hardware platform that I used simply did not allow for more than
eight cores. Now, with the Simics Quick Start Platforms (QSP), the situation is
different. I picked up the demo again, and pushed it to sixty (60) cores
with ease.
Recently, we introduced a synthetic simulation-only Simics target machine called QSP (Quick-Start Platform) and it's included in the latest version of Wind River Simics. The idea of QSP is to give every user a useful Simics target that allows them to immediately start using Simics and begin reaping the benefits of simulation for software development. In this blog post, we'll be taking a look under the hood of QSP to see how it works.
We just released a new Simics feature, the QSP (Quick-Start Platform). This is a synthetic simulation-only Simics target machine that is included with the Simics base product. QSP provides every user with a useful Simics target that allows you to immediately start using Simics and reap the benefits of simulation for software development, without waiting for a target model to be ready. It provides a quick way to realize our old Simics slogan: "Resistance is Futile, you will be Simulated."
With QSP, we provide a shortcut by offering a ready-to-use integration of a model and target software stack that can be used to do application-level development from the moment a user receives Simics. QSP also makes simulation features like checkpointing, reverse execution, unintrusive debug, repeatability, automation, and scripting easily available for application developers without having to first setup an OS and select a target machine.
Wind River Education Services provides user training for a variety of topics, including Wind River operating systems and tools, as well as more general topics like networking. Training always includes hands-on labs, which can complicate logistics for training sessions. Shipping boards and configuring networks is time-consuming and error-prone. For that reason, we are looking into using Simics as an alternative to physical hardware to streamline training logistics. It also makes it simple to encapsulate configurations, while maintaining the reality of cross-development. In this blog post, we will look at how Simics is used as a tool to facilitate network labs in the context of education.
Jakob Engblom is Technical Marketing Manager for the Simics product line at Wind River. He came to Wind River with the Virtutech acquisition in March 2010, and has been working with Simics since 2002. As technical marketing manager, he works with the what and how of Simics usage, including actually writing real code.
The postings on this site are the views of the individual poster and do not represent Wind River's positions, strategies or opinions. Please review the Wind River Blogging Guidelines. We may be reached via email at blogs@windriver.com.