A look inside

There’s one major difference between trying to repair a computer and trying to repair an alarm clock, a car, or nearly anything else.

This can be annoying when you’re trying to fix things.

So it’s usually completely impossible to see what’s wrong.

Yes, the OS is meant to keep you informed about things like this. But since when did it ever do a good job of this?

The only information OS’s generally give you is

  1. A list of processes and the resources they’re using
  2. How much memory is free
  3. How much processor is being used.

Wouldn’t it be brilliant if, when you had a wifi problem, you could just peer into the TCP/IP stack, watch the packets flowing backwards and forwards, and spot that they weren’t getting past the router?

Wouldn’t it be awesome if your printer wasn’t responding- but you could just take the cover off the USB controller and see that one of the driver instances had crashed?

Well, you could.

Imagine a separate monitor program that runs alongside the OS, as weakly connected to it as possible (so that the OS can go down without affecting the monitor). Its job is to give you a visual, schematic-type picture of everything going on inside your system.

List of running processes? Bah. Now you can see each process as a box on the screen, with lines connecting it to the resources it’s using: network sockets, hard disc, memory, files it has open, DLLs or libraries it has loaded.

Along each line you can see the flow of data: how much, and in what direction. Look at your Firefox instance and you can see it pulling data from different servers over wifi or ethernet, loading it into memory and, in the case of Firefox, forgetting about it there.

Processes are not the only thing you can monitor. When you open a bonnet, you can see your engine working: there are moving parts, obvious interconnections and obvious problems. Our monitor program would watch the OS and display a schematic of its various parts (kernel, graphics, I/O, network, device drivers…), how they were connected to each other, whether each one was responsive, and how data and dependencies existed between them.

One of the most annoying things about Windows is when it won’t let you eject a drive because it is “in use.” Even if nothing appears to be using it. No problem any more. Just check the monitor; see the lines (or curves, or excting flashing trails) leading from the drive to all the programs which are using it. Check the data flow down the lines, and if if nothing important is being written, you can kill the programs.

Hard drive on the blink? Not sure whether it’s the drive or the motherboard? Check the monitor. Data flow seems fine along the line from the motherboard to the drive. Crap, I need a new motherboard.

Of course, there are downsides…

blog comments powered by Disqus