Software Engineering

42 articles

Systematically Exposing OS Kernel Races – An Interview with Ben Blum

By Jakob Engblom 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…

Crystal Forest on Simics

By Jakob Engblom A few week ago, Intel announced the Crystal Forest platform, a new IA-based platform for networking and communications applications. The first Crystal Forest hardware is appearing now, but we have been working with Crystal Forest on Simics for more than a year already.  While we cannot yet talk about the details of the hardware (and in any case, that is…

Using Static Analysis to Improve Product Quality, Earlier and Cheaper

By Bill Graham Fixing bugs is expensive. Fixing bugs is more expensive the later you leave them, in fact, its been shown to cost a magnitude higher with each major phase of development. The famous defect cost chart from Capers Jones shows the cost of a bug going from $25 at the coding phase to $16,000 in development.  Not only that,…

Making a Faulty Serial Port

By Jakob Engblom  As noted before, one common use case for Simics is doing fault injection.  Fault injection is typically added to an existing system without changing it, since the goal is to maintain a fundamentally fast simulator when not injecting faults.  There are a range of mechanisms available in Simics to implement fault injection. This blog post will take a…

Simics for Networked Systems: An Interview with RTI

By Jakob Engblom Networked systems is one of the primary application areas for Simics. Simics can run many machines inside a single Simics simulation, and apply all Simics features to the system, not just to a single machine inside the system. This is something that Dan Poirot from Real-Time Innovations, RTI, has made quite extensive use of recently. It is a…

Stop, Think, and Tie Your Shoes Right

By Jakob Engblom I was sent a link to a past TED talk about how to tie your shoes. It is worth watching, and from the discussions I have seen on Facebook around the video, it seems that most people do it the "wrong" way.  I have actually started to try to do it the "right" way, and the result is…

Surfing the Web with Netscape 4

By Jakob Engblom While looking into our old SPARC server targets for our new SPARC legacy offering, I  opened up a Simics demo checkpoint that we have had around for a long time (at least eight years). This demo is an UltraSPARC II running Solaris 9, and it shows how web browsers looked around 2001.  I used real-network to connect the…

How to Get Virtual

By Jakob Engblom My blog posts about Simics tend to focus on how virtual platforms are used and what you can do with them. However, underlying all Simics use is the issue of getting a virtual platform in place. You need some kind of platform to run your software on in order to get the full benefit of Simics. Thus,…

Software at the Toddler Stage

By Jakob Engblom Developing software is an adventure where you explore the unknown, one line of code at a time.  At some point, the program reaches the stage where you can actually run it and try it - and that's where the real fun begins.  The software will sometimes behave as expected, but more often than not it will not.…

They Just Upgraded our Coffee Machine

By Jakob Engblom They just upgraded our coffee machine in the office. When I came out into the kitchen to get another cup, a service technician was there with a laptop perched on the sink and a USB cable running into the innards of the coffee machine, into the back of its open front panel. When I asked what was…