Fatboy Joe
May 29th, 2001, 17:31
All this talk of technical challenges reminded me of one that I haven't had a chance to undertake myself. Since I think it would probably actaully be a fairly decent if different strainer involving reversing and a little programming I figured I'd write it up and share it to see if anyone fancies tackling it. I don't know if anyones really planning on doing serious strainers or if there is gonna be any reward for it, but I guess if you are looking for ideas, please free to try this one.
In a recent freak storm I had some memory fried, not completely, the computer still boots up with it, but certain physical locations of the memory are corrupt. As you go about your usual bussiness strange things start to happen, intermittent faults caused by having the memory not perform as intended. There is a program called memtest[1] that allows you to test the memory and which particular locations are broken, but most operating systems (afaik) don't allow you to specify that certain parts of your ram are dodgy. You can quite often specify that you only want to use only the first xxxxMB of memory with your optrating system. This however is a bit lame if the error is towards the start of the memory module as you can't use all the memory that occurs after it. A nice guy came up with a patch for the linux kernel to prevent just the physical pages that are corrupt being used called badram[2]. It does take out a whole page (4k on a typical linux i386 box) for even a bit's error, but this is a whole lot better than the xMB after the fault.
What I would like to see done is some kind of program to solve the problem on Windows 2000, and any other flavours of Windows you see fit. On linux it's relatively simple, not least because you can look at badram. With Windows 2000 you will (I assume) need to study the kernel and it's memory management in particular. Then once you understand how it allocates memory you will be able to figure out how to prevent the particular parts of memory from being accessed. Ideally you should be able to take a config file like the badram program does to specify the locations, but that is the only requirment apart from working that I would place on this task. There are obvious issues about people having different versions of kernels and the such like but I will leave that completely open ended, solving those types of problems is a whole other challenge.
It's pretty open ended since if anyone is going to do this, the results are likely to be a lot better and more interesting if originality is allowed
[1] http://reality.sgi.com/cbrady_denver/memtest86/
[2] http://rick.vanrein.org/linux/badram/
In a recent freak storm I had some memory fried, not completely, the computer still boots up with it, but certain physical locations of the memory are corrupt. As you go about your usual bussiness strange things start to happen, intermittent faults caused by having the memory not perform as intended. There is a program called memtest[1] that allows you to test the memory and which particular locations are broken, but most operating systems (afaik) don't allow you to specify that certain parts of your ram are dodgy. You can quite often specify that you only want to use only the first xxxxMB of memory with your optrating system. This however is a bit lame if the error is towards the start of the memory module as you can't use all the memory that occurs after it. A nice guy came up with a patch for the linux kernel to prevent just the physical pages that are corrupt being used called badram[2]. It does take out a whole page (4k on a typical linux i386 box) for even a bit's error, but this is a whole lot better than the xMB after the fault.
What I would like to see done is some kind of program to solve the problem on Windows 2000, and any other flavours of Windows you see fit. On linux it's relatively simple, not least because you can look at badram. With Windows 2000 you will (I assume) need to study the kernel and it's memory management in particular. Then once you understand how it allocates memory you will be able to figure out how to prevent the particular parts of memory from being accessed. Ideally you should be able to take a config file like the badram program does to specify the locations, but that is the only requirment apart from working that I would place on this task. There are obvious issues about people having different versions of kernels and the such like but I will leave that completely open ended, solving those types of problems is a whole other challenge.
It's pretty open ended since if anyone is going to do this, the results are likely to be a lot better and more interesting if originality is allowed

[1] http://reality.sgi.com/cbrady_denver/memtest86/
[2] http://rick.vanrein.org/linux/badram/