I've always thought that I would want to run windows under Linux, thus my interest in things like cygwin has always been sort of low.
But these Cooperative Linux folks seem set on making Linux-under-windows a viable idea. After all, “Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want to get it running on Windows.” But with cooperative linux, maybe not?
Dog on its hind legs, or something cool? I can't quite tell, although it seems to me that Linux under Windows would not be nearly as robust as the other way around.
I would disagree. Linux is not architected to support a virtualization layer, Windows NT is. In fact that is one of the things that is currently being exploited by certain attacks. Windows NT was designed from the start so as to be capable of running UNIX and VMS processes in partitioned subsystems.
From a pure architecture point of view Linux began the first effort of Linus copying the then pretty ancient UNIX architecture by way of Minix. The kernel of WNT on the other hand was designed by David Cutler and was his third major O/S design after VMS and RSX-11. The kernel of VMS is legendary for its stability. Uptime of years was routine and expected.
The result instability of WNT and Linux is mostly the result of crappy hardware and crappy drivers. Part of the reason for the stability of VMS was the fact that like Apple DEC controlled their hardware environment absolutely. Unlike Apple pre Jobs DEC used its control to make sure that the hardware was of the highest quality.
Modern commodity hardware is just not built to the same quality standards and to make matters worse the chips give off so much heat that cooling is now a major problem.
I used to have serious reliabilty problems with Win98. They went away when I as soon as I bought WinXP even though I didn’t get round to implementing it for several months. Win XP did not support my orphaned 3DFX Voodoo3 graphics card. But the reliability problem went away the minute I pulled it and put a WinXP compatible replacement in even though I was running Win98.
Linux drivers tend to be more robust because they are generally written to be far less close to the edge than Windows drivers. Benchmarks are done on Windows and do not measure stability as a rule.
But by the same token, if you want to run a UNIX app on Windows the easiest way to do so is to simply load the Microsoft Unix Services for Windows subsystem and use that. It is fully POSIX compliant.