10/22 = 7

Windows 7 went on sale today.

I’m enormously pleased about this because for the last two and a half years I’ve been working as a Software Development Engineer in Test (SDET) on the Windows Fundamentals Reliability team. I joined the team (and Microsoft) right as Windows 7 development was getting underway and have been immersed in our work on it ever since.

Throughout the development cycle the Reliability team was responsible for driving reliability improvements across Windows as a whole. We tackled this with a range of approaches, one of which was implementing new reliability-related features within Windows. I owned the testing responsibilities for three of these. All three are low-level infrastructure features that won’t be mentioned in an ad campaign, but each has been given some level of exposure as Windows 7 architecture has been  discussed and reviewed in the run-up to its release.

RADAR – Automatic memory leak detection

RADAR automatically detects memory leaks in processes running on a Windows 7 system. Most of the public documentation about this feature is an interview that three of my colleagues and I gave to MSDN’s Channel 9. We got to dive into RADAR’s architecture and the impact it has had on Windows 7 throughout its development. The C9 page for the interview has a nice summary of RADAR:

RADAR is a memory leak detection technology built into Windows 7 and integrated with Watson (error reporting) and AutoBug (automatic bug filing). It allows Microsoft product teams and third parties to discover and fix memory leaks early in the product cycle and after release. Since RADAR runs on customer machines, leaks can be caught during public betas, after release, and by third parties, thus ridding the entire ecosystem of memory leaks. RADAR-shipped components are highly optimized to have no appreciable performance impact.

The talk is archived here: Inside Windows 7: RADAR – Windows Automatic Memory Leak Detection.

Fault Tolerant Heap (FTH)

Fault Tolerant Heap (FTH) was, in a lot of ways, the most fascinating of all three features to work on. FTH monitors application crashes on a Windows 7 system. When it thinks it can help FTH applies mitigations on a per-application basis to try to prevent future crashes. The development lead for the project, Silviu Calinoiu, did a great interview with C9 that went into detail about how exactly FTH goes about its crash prevention.

Silviu’s talk is archived here: Silviu Calinoiu: Inside Windows 7 – Fault Tolerant Heap.

One potential complication for FTH is that developers who are working on a new app may not want FTH’s help – they want their test app to crash so that they can find the problem and fix it. MSDN has a page that discusses how devs can check whether FTH has been enabled for a particular app and, if they choose, disable FTH entirely on a test machine. See here: Fault Tolerant Heap (Windows).

Process Reflection

Process reflection is a way for a monitor application to clone, or reflect, some target process. Once the operation is complete the clone, or reflection, process has a complete copy of the original target process’s address space which can then be analyzed or dumped to disk for later analysis. Even better, the target process doesn’t have to be suspended or terminated to be reflected which makes process reflection tremendously useful for gathering data from long-running processes like background services or the user shell. Mark Russinovich briefly discusses process reflection and shows a nice demo of it in action in another C9 talk that just went up today: Mark Russinovich- Inside Windows 7 Redux. He starts talking about process reflection at around the 31:00 mark. He also updated his SysInternals procdump tool to optionally use reflection for creating dumps. The updated procdump is available here.

It’s been a tremendously satisfying and humbling two and a half years working on Windows 7 together with a great set of colleagues from all over the world. I can’t wait to see what the next two and a half years will bring!


Test aphorisms 1-4

The summer Engineering Forum at Microsoft was held back at the start of June. It’s an annual week-long event where technical staff from across the company present lectures and hold roundtable discussions on a variety of engineering topics. All presentations were organized into topical groups called tracks. For example, there was a designing and testing


Five definitions of reliability

A large part of my day job revolves around reliability—testing software reliability, testing operating system features that make the software running on it more reliable, working on test tools that look for reliability problems. I think about reliability a lot. And here’s the amazing conclusion I’ve come to:
No one knows what reliability is.
Or, to put


Implementing continuations for a virtual machine environment

When I was a graduate student at CSU, Chico I wrote my master’s thesis on how to implement Scheme-style continuations within the context of the .NET CLR – Implementing Continuations for a Virtual Machine Environment.
Traditional continuation implementation techniques depend on the ability to modify the area of memory holding the runtime call stack, but the CLR


Mad world

I know I’m – what, two years? – late with this, but the Gears of War ad with the cover of “Mad World” by Gary Jules and Michael Andrews is one of the best game advertisements ever.

The way the music recontextualizes the game footage astonishes me each time I watch it.


Other family weblogs

There are a couple more weblogs on lorelli.info. Emily started a new weblog at emily.lorelli.info. We also started a family weblog at family.lorelli.info.
The original photo galleries are still MIA. Eventually I’d like to get them back up at the new web host. I’ll probably change the format significantly though. I used to export pages straight


Here we go again

Finally put a weblog back up. It’s Monday. The Olympics are on. Let’s go.