Linked by Neeraj Singh on Mon 23rd Apr 2007 19:02 UTC
Windows If you shout something loud enough and many people are saying it, does it become true? Some groups of people (include tech journalists and Linux advocates, such as Steven J. Vaughn-Nichols) have a psychological need to find Vista lacking. Mr. V-N has predicted that Vista will have all manner of problems, so his clear interest is to point out everything that is wrong with the OS. Who cares if he has to even make some stuff up?
Thread beginning with comment 233356
To view parent comment, click here.
To read all comments associated with this story, please click here.
PlatformAgnostic
Member since:
2006-01-02

Thanks for a thought-out reply. You're absolutely right about third-party binaries and their detrimental effect on the stability of the system. The applications I use the most on Windows are either written by Microsoft or Open Source, so I definitely live by your statement. I have no choice with drivers, but I'm lucky to have mostly intel hardware with pretty decent drivers.

I have a pretty strong philosophical difference with you on the nature of simplicity in the OS. The Linux/UNIX method of simplicity is great for certain tasks, like high-performance-computing and portable servers. It's also great for bringing up new hardware, as you said in a recent post. But when it comes to making applications that have to have many interactions with the underlying system or which have to get a naturally complex task done, I think it's better to put some intelligence into the OS.

File-locking in distributed filesystems is the first issue that comes to mind for me. Windows has a pretty interesting mechanism to do distributed locking in the SMB protocol. UNIX used NFS for quite some time, which didn't even attempt to solve this problem, so it appears in applications. This is fixed in newer DFSes like NFSv4, but it's an example of what I consider "worse-is-better."

The registry is a Windows solution to setuid. It's basically a filesystem for storing key-value pairs which can be ACLed separately from each other. It also has atomic operations and in Vista, MSFT has implemented ACID transactions on the registry so partial installs can be transparently rolled back. I'd see the registry as a design strength of Windows rather than a design flaw.

I'm sure you've seen this before. I don't necessarily believe everything in here, but I think it's pretty funny and accurate in areas:
http://www.simson.net/ref/ugh.pdf

I respect your opinion in general, and I'd like some specifics in areas where you think the Windows design is deficient. I'm sure I'll agree with you on a lot of them, but the disagreements could be interesting. How would you feel about doing a joint OSNews article? It could be high-quality.

Edited 2007-04-24 06:19

Reply Parent Score: 4

butters Member since:
2005-07-08

The Linux/UNIX method of simplicity is great for certain tasks, like high-performance-computing and portable servers... But when it comes to making applications that have to have many interactions with the underlying system or which have to get a naturally complex task done, I think it's better to put some intelligence into the OS.

What I mean by simplicity is that a complex system is made up of simple and often interchangeable components that interface in a well-defined manner. Each component can be developed in loose coordination with its neighbors and completely ignorant of other components in the system.

The complexity isn't in the components themselves so much as the way they fit together. This is why UNIX and free software has excelled in the server space, where systems are often logically structured as a stack of components. The choice of where to draw the lines and how the components communicate isn't really that difficult in a stack.

But a desktop is more like a tree or even a more general form of graph. Some components form a sort of stack, others connect to a bus, some synchronize, others stream, and many participate in a combination of these relationships. Where to draw the lines and how to connect the dots is a harder problem, and as we watch the free software desktop develop mature technologies like DBUS and KParts, we see more powerful ways of connecting the components of the desktop becoming central pillars of the platform.

But as the componentized system that evolved in a distributed development environment becomes more powerful, or intelligent as you say, the complexity of each component stays in check, and the complexity of their relationships scales reasonably. The monolith forged in the halls of the Redmond campus, on the other hand, becomes harder and harder to maintain as new features creep in.

I shied away from your NFS comment before, but I'll agree with you that NFSv3 had its shortcomings and that NFSv4 is arguably even worse overall. Of course, Linux and other UNIX-like systems have SMB and CIFS support, but that doesn't mean that this is the best possible solution. There are other DFSs like Cargenie Mellon's AFS and Coda, IBM's GSA, and Red Hat's GFS, among many others. Then there's the trend of tunneling anything and everything through SSH to arrive at some interesting solutions like sshfs.

I have no problem with a registry in theory, such as the gconf registry in GNOME. But the Windows registry was subverted by malware authors early on, and Microsoft has seemed powerless to do anything about it. Maybe you could better explain how this happened, if you agree that the registry has become a weakness for Windows, that is.

Reply Parent Score: 2

PlatformAgnostic Member since:
2006-01-02

I'm not sure about the concepts behind DBUS and KParts and what their stated advantages and design goals are. As far as I can tell, they are means for providing standardized methods for things which were left to convention in the UNIX world. When I get a chance, I'll write a longer reply (or maybe I'll attempt another article) looking at those two specific components and their equivalents on Windows. Also, I'm no Russinovich, so I don't have all the details.

Why does the registry get "taken over"? Well, there are three or four different places in the registry that are used to configure auto-start programs. Maybe more. Malware puts keys here to auto-launch itself. This seems pretty equivalent to putting lines into the init.d scripts (or rc.d...). Or you can put lines into the xinit file or the kde/gnomeinit files. Or you could stick something into the startup script for some other popular system service.

I suppose with the registry change notification services, you could watch the auto-launch keys and replace them when they are removed. But you could use similar tricks using FAM on *nix.

The weakness in the registry could be the lack of privilege separation with regards to some keys. As some people have said, it might be worthwhile to grant an installer access to only the keys it needs in order to install rather than every administrative key on the system. But this is similar to the root/user divide on UNIX. The solution to this seems to be a capabilities-based OS. I hope this is something commercial and OSS people look at, but the cost might be higher than the payoff.

Reply Parent Score: 2