Originally posted by: Chaotic42
Originally posted by: rch4001
of course it wont be free - ms has had 1000 or so people working on it for 2 years. free???????????
How much work can it be? The free OSes have people working on it in their spare time and they've already got it up and running.
That's because Linux is based on the Unix design philosophy. Which is that operating systems should be open as possible and portable as possible. It's the whole layed design thing, each aspect of the operating system should do there job and that's it. (Unix didn't turn into the big dinosaurs until companies like SCO and Sun tried to monopolize the developement, think the portability of NetBSD....)
In unix if a programmer has to pick a comprimise between speed or portability or conveniance, they should pick portability almost every time.
Since each part of the operating system is designed to exist in a high level of abstraction (at least that's the idea) most of it is isolated from hardware changes. Since the kernel is <i>suppose</i> to be the only thing that realy interacts directly with the hardware, you port the kernel/drivers and create a C compiler for a architecture then 90% of the work is already done. Of course the remaning 10% for memory tweaks and algorithims or whatever for many programs to take advantage of hardware features is a pain in the butt to port.
I suspect that in Windows developement that the philosophy would be to pick speed and conveniance over portability.. so lots of the apsects the operating system involve hardware-dependant choices and tweaks. Lots of the OS interacts directly with hardware and <i>may</i> (for example) have some limited parts written in assembly in order to get as much out of the hardware as possible. Which would explain how in some respects windows would always be just a bit faster then Linux...
Since lots of these choices in designed may span back all the way to the win95 days, many of the original developers are either long gone or forgot about what they did 10 or so years ago. The Windows Operating system is complex enough that I am guessing that nobody realy remembers what is going on in the deep dark resesses in many programs... So it's going to be very labor intensive to go and track down all those changes and tweaks and then once you find them you have to then figure out how to rewrite them for a brand new and untested hardware that design may not yet be in the finalized stages of developement.
Programmers reuse code as much as possible. If for example you have to create a file sharing program for Windows XP, are you going to spend a couple years designing/testing/implimenting a brand new design? Or are you going to spend a couple months adapting Win98/NT's version of SMB file sharing to the new OS?
This is also (from what I understand) why crackers are always finding new buffer overflows and stuff in Unix/Linux and Windows programs. Now programmers know they must make checks and put special protections around buffers and stuff, but 10-20 years ago you were operating under much more restrictive hardware and security wasn't in the for-front and you had to make this stuff fit in 720k worth of memory.. Who would of thought that decendants of DOS/Windows 95 would be using in machines with 3 gig proccessors with over a gig of memory?
All in all I am guessing that it would be much more work to port Windows then to port Linux.