What is an OS, re: wired.com
A bunch of software, what did you think?
More seriously, what CS types would normally call an operating system is defined as something like a layer of software that manages the raw hardware (cpu, memory, disks, other i/o) and presents a higher level set of abstractions to the application programmer, like processes (ie, instances of running programs), virtual memory, files and a file system instead of disks, windows (in the generic sense) instead of raw display hardware, etc. In the early, pre-networking Bell labs unix I startded with, the OS was the Unix kernel, and it provided a very clean and simple set of abstractions that was quite elegant. Section 2 of the manual, which defined the kernel interface, was all of 20 pages or something, and there was this great paper, "Unix System Programming", probably by Kernigan and Ritchie, which explained everything to the point you could write your own "shell", or command interpreter. In this sense, it's pretty laughable to call IE or any browser part of the OS.
Of course, with Microsoft it's different. I have no idea if anything that could reasonably be compared to the Unix kernel even exists in Windows 95. NT has a kernel, but it doesn't have a published API, to my knowledge. Instead, there's this vast thicket of DLL's, with thousands of documentented function calls and probably thousands more undocumented, and who knows what's going on. DLL's, dynamic link librarys, are sort of like the various runtime support libraries that various languages would have to interface to the OS without being OS specific, but the so-called Win32 api is so vast, there's nothing you can really compare it to.
The "hardware abstraction" view of an OS isn't the whole story, of course. Every real OS always comes with a bunch of application-level utilities, both for administration and general use. Unix always came with a C compiler, a bunch of editors, email, and various programming tools. In this sense, sure, Microsoft can throw whatever it wants into the Windows distribution and call it "part of the OS", like solitaire.
There's also Reardon's old "set of api's" definition, which, as I've said before, could just as well apply to Office as IE, as I understand it. Part of that thicket of DLL's thing. With IE, Microsoft is obviously going to hook everything they can in the existing Windows distribution into the IE dll's. That's fine, I guess, but not necessarily a good design. I'd say it's clearly got more to do with killing Netscape and getting that all important proprietary lock on the internet than any rational design decision. But that's what makes Microsoft great, they don't let sensible software design get in the way of their business plan.
Cheers, Dan. |