While the list would be pretty big for the number of differences but would use this opportunity to specify few which I feel are some of the more note-worthy ones.
I had to revisit this topic as had to do some troubleshooting including an install/reinstall for a friend. I partially covered this in all the GNU/Linux primers. Also most of my findings and observations are between Ubuntu 8.10 and Windows xpsp3. (I don’t have a machine that can run Vista or haven’t had experience working with it so that’s out) I would also try to list some idiosyncrasies of each OS as I see them.
The first difference is drivers. In MS-Windows one is dependent on the CD given by the manufacturer as a starting point. Then of course, one could update the same if there is a newer vesion in the database. In GNU/Linux all the drivers reside inside the kernel as modules. Infact one of the most interesting news which came out is that Creative (the maker of audio hardware) has released its source-code for drivers which would make it again a choice for people on FOSS.
One of the other major differences is the filesystem stability and the way the OS’es work at maintaining it. While in MS-Windows it is upto the user to do a regular chkdsk or do defrags or whatever, in GNU/Linux (specifically Ubuntu) while loading the system, the system would check for filesystem consistency in case of a crash/not proper shutdowns or whatever.
Another biggie is the way GNU/Linux has constantly looked at giving applications less privileges to the kernel and stuff and a general behavior that the application may crash but the OS shouldn’t. I have heard they have tried doing something similar in Vista, how good or bad that is I don’t know.
One another thing is making a user with lesser privileges in GNU/Linux (again specifically Ubuntu) by default in the installation of the OS, while in MS-Windows one just doesn’t see that . In Vista, no idea.
Another thing is updates and package installation. While in Ubuntu and GNU/Linux in general, updates and packages are through centralized repositories which makes the whole thing effortless while in MS-Windows you have to go to some site and download the application.
Last is bug-fixing. While Ubuntu and most of the GNU/Linux distros in general encourage bug-reporting, bug-triaging and testing, Windows picks people specifically for the job (and they most probably have to sign up an NDA) while with Ubuntu one does not. I am right now on Jaunty 😉
Now for the idiosyncrasies between the two Oses in general.
From the time I have used MS-Windows I have never seen it doing chkdsk in case of improper shutdowns. This is right from Windows 3.1 to XPSP3 , while in GNU/Linux i.e. Ubuntu that’s been there from start.
The kernel :- As told before in Windows the kernel is stable over 4 years, while in GNU/Linux it changes every 6 months, so developers of related apps have to be that more quick.
Bug-reporting and triaging :- Frankly not so much of an idea in Windows.
In Ubuntu however it works when it works. Lots of times it leaves much to be desired. For instance, sometimes I file a bug and the triager asks after 6 months, can you see if this bug has the issue in the new release. While this is well and good for somebody like me who may be on the release, but what about majority of users, I don’t think they have either the time or the inclination to do something like that.
Also if its a new release, somebody has to put up a request for backport, see if all the dependencies can bse satisfed or not and ask for the needful to be done. The user also has to know of existence of release-updates, release-proposed and release-backports if he wants to enjoy the bugs which may be fixed or not although each of them are slightly different frome each other.
Lastly, like many people before me and around me, I was shocked for the trouble that pulse-audio bought in. The great thing about, finally am able to hear sounds from different apps. at the same time, the price though is it works when it works. The implementation atleast in Ubuntu has been a big issue.
Well, that’s about all for this time.