DLLs were a great breakthough, away from monolithic hell where everytime you want a new minor feature somewhere you have to recompile the whole kernel, still a major issue with Linux today
Dynamic Link Libraries are a great concept, but have been poorly implemented in Windows. Microsoft themselves have admitted this by trying various ways to fix the problem: WFP in Win2000, GAC in .NET and now winsxs.
The monolithic design of the Linux kernel versus the hybrid/modular kernel in Windows NT and above has nothing to do with this discussion around DLLs and DLL Hell.
Early versions of Windows ran on MS-DOS. MS-DOS provided all of the OS level operations and effectively acted as the kernel. The higher level functions, such as the drawing API (GDI) were implemented in Windows Dynamic Link Libraries.
Linux has its own implementation of DLL now, called modules, and Linux drivers can be part of the kernel or can be separate as loadable modules.
Now here is the thing. The Linux kernel is monolithic and the Windows NT+ kernel is modular/hybrid, yet Unix or Linux, as an operating system, are designed to be modular, whereas Windows is monolithic in its design.
Your argument is akin to saying, "I have a dog therefore I hate cats".
95% of BSODs (MS's own stats) are based on OEM faulty drivers. Windows has a much wider compatability and hardware universe then mac. In the old days you couldn't even compare.
This could be a discussion around differences in Microsoft's and Apple's philosophies - controlling the hardware and software versus software on other hardware platforms beyond your control. The same discussion could be had about iOS and Android.
On my current Windows 7 personal build I've only experienced 2 BSODs and I can attribute those to the 3G USB modem and, clearly, a somewhat dodgy driver implementation. Should a driver for an external device bring down the whole kernel though?
As I've mentioned Linux supports modular drivers, but it is a monolithic kernel and the services within it are interdependent. Despite the monolithic approach the Linux kernel is designed to be minimal and almost every useful feature that a user will see will not have access to vulnerable parts of the system. Now let's go back to Windows. As you have mentioned most Windows BSODs can be traced back to faulty drivers and, in fact, they are often caused by one group of drivers specifically - graphics cards. The problem is that Windows integrates functions such as graphics into the kernel and a bug in the drivers can cause a system failure. In Linux this bug may cause the graphical desktop to crash but not the entire system and the desktop can be restarted without having the need to reboot.
OsX is based on freebsd and feels very x-windowy
the directory system is a nightmare. The only reason it works well today is the sheer amount of code that monitors installation. Even so OsX still bungs up over time (I just read a latest issue of some mac magazine, can't remember the name, advising how to speed up macs. Alot of this advice looks just like windows).
I cannot really comment on this because my technical knowledge of OSX is still lacking and I am learning more every day. I have read about directory problems before, but not in any depth.
That leaves use with the registry. Its a single database of settings (rather then a dispersed, non-standard and difficult to search well (awk, grep, whatever) directory structure where no standard is enforced between applications - like UNIX).
The registry is easy to search and repair.
Unfortunately, due to the OEM plug-in nature of Windows many installation programs leaves stuff lying around.
I must commend you because I've never actually seen someone trying to defend the registry. The issues with the registry are well known and can be found with a quick search of the internet so I won't repeat them here.
Even Microsoft is trying to steer developers away from the registry by encouraging use of configuration files in .NET for storing data that would have in the past been stored in the registry.
"The Application Settings feature of Windows Forms makes it easy to create, store, and maintain custom application and user preferences on the client computer. With Windows Forms application settings, you can store not only application data such as database connection strings, but also user-specific data, such as user application preferences. Using Visual Studio or custom managed code, you can create new settings, read them from and write them to disk, bind them to properties on your forms, and validate settings data prior to loading and saving."
I agree Mac OsX is a good iteration of FreeBSD, and as I said above I like it alot. Windows has also much improved.
I know there are alot of complaints about Wndows but that is mostly due to the factor that everyone uses it, there is the most hardware and software avilable, and in these millions of applicaitons and usage you are bound to get cock ups. Albeit MS has better controlled them over time.
Lastly its a cheek to peddle the old thing about bloat. This is purely extra funcitonality that users demand. A web browser was called Bloat at some point. I would remind you that OsX comes with iTunes, iphoto, igarage band (whats that all about!) and a bunch of other things I never use
True, but I can remove iTunes, iPhoto and iGarage Band without adversely affecting core parts of the operating system. A web browser is an application. In windows it was made to be a core part of the operating system and hence why MS has been battling with the insecurities. Have you ever tried to remove internet explorer from Windows? Hell, there was a whole anti-trust law suit about this.
This is the key issue at play here. Some of the design decisions in Windows have been baffling. The features are not separated into sensible layers and the interdependencies between parts of the system grow in complexity. I've already mentioned that Windows includes far too many features into its core. This is bad for stability, but also bad for security, because so many of the subsystems are inter-dependent on each other and because they have access to the core. Therefore if someone finds a security flaw in the graphics rendering system, the nature of Windows' design makes it easy to use this flaw to take control of the entire system.
I have used many PCs, managed development teams and have advised IT management in the past.
I have never seen big issues with Windows and its always been a reliable workhorse since NT 3.51
rgds
I don't want to get into a xxxx swinging contest, but let me assure you that my credentials, education, CV and foot size are sound.