6 ms·
For anyone interested in the history behind the NT kernel I recommend a book called "Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generat
by scardine 8y ago
For anyone interested in the history behind the NT kernel I recommend a book called "Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft" by G. Pascal Zachary - really enjoyed it.
I think the Windows NT kernel is a very underrated piece of technology - the reason it was unstable in the beginning is due to a corporate top-down decision: the hardware of the time was limited so they included GDI stuff in the kernel (crappy code not written by Cutler's team).
- CaptainZapp 8y agoIt's, in a way, the continuation of VMS and inherited a lot of the concepts. Which is not really surprising , considering that Dave was one of the main architects of VMS. On a personal note: Best OS I ever worked with. Rock solid stable and a few conecpts and tools, which are still unmatched. At to that the arguably best documentation I've ever had the pleasure to work with in any environment.
- magduf 8y ago>At to that the arguably best documentation I've ever had the pleasure to work with in any environment. Documentation for everything was a lot better in the 70s.
- CaptainZapp 8y agoYou're right, of course. DEC, however, was in some respects really above the pack. Documentation being one of them. I'd throw in DECnet and VAX Clustering as other examples.
- taneq 8y agoNT was pretty damn good, in hindsight. 2K was alright too but bang-for-seniority NT4 was great.
- mixmastamyk 8y agoNT 3.5 was rock solid, believe it was NT4 where they put graphics in the kernel to speed it up. One wonders why they don't put it back now that computers are 1000x faster.
- krylon 8y agoI was under the impression that GPU drivers run in userspace since ... Vista? At least I have seen the GPU driver crash on Windows 7 machines - the screen went blank for a second or two, then it showed the same desktop as before, with a popup that rougly said, "The GPU driver crashed, so I restarted it."
- tw04 8y agoThey did, it's why you no longer have to reboot when upgrading video drives. You just get a couple of black screens as the modules are reloaded.
- orbital-decay 8y agoThey actually finally did this in OneCore AFAIK.
- mixmastamyk 8y agoAwesome, NT finally shedding some baggage.
- chasil 8y agoOne particular flaw was CMD.EXE. In the few pages where it is mentioned in the Showstoppers book, it appears that this code came from IBM. The scripting in CMD.EXE has been described as a "serial killer," and they really would have been better off implementing a Bourne shell for Windows. http://blog.nullspace.io/batch.html http://blog.nullspace.io/batch.html
- kyberias 8y agoWhoever borrowed that book from me, please return it. Thanks.
- muststopmyths 8y ago>I think the Windows NT kernel is a very underrated piece of technology - the reason it was unstable in the beginning is due to a corporate top-down decision: the hardware of the time was limited so they included GDI stuff in the kernel (crappy code not written by Cutler's team). Err, no. The reason it was unstable in the beginning were choices like having a "MUST SUCCEED" kernel memory pool which caused a bugcheck if the system could not allocate from that pool. Random kernel components allocated from this pool and if you opened too many handles (sockets for example), you'd get a bluescreen because an unrelated driver was trying to allocate memory for some other activity. There were probably other similar choices that I don't remember now. It has been 25+ years. And let's talk about the NT Driver I/O model. The most highly complex, over-designed POS I have ever seen. And this design was "polluted" for performance out of the gate (Fast I/O path, for example). It took Microsoft years to reliably and safely cancel pending I/O in the kernel. Remember the days when a random peripheral driver could hold on to an IRP and cause bluescreens all over the place because the process it was doing I/O for exited ? It was hard for internal Microsoft people to write good drivers, let alone OEMs in the wild with a fraction of the learning resources at their disposal. NT was based on the microkernels that were fashionable in those days (e.g, Mach from Rick Rashid et. al). As with most academic ideas, when microkernels met the real world they had to be adapted. Win32K came about because GDI performance in NT was crap. There were other things that were similarly pushed into the kernel already. I believe a classic microkernel would also have networking modules in user mode, for example. DirectX in the kernel (hated by the purists back in the day) is inarguably responsible for NT being able to supplant Win9x in the consumer PC market. The NT kernel evolved over the years to be something that actually met the needs of Microsoft's customers. I would argue that's the real achievement, and not all of that can be laid at the feet of "Cutler's team". I second the recommendation for "Show Stopper" :-)
- filereaper 8y agoI can't really comment about mentions on the I/O model or the early instability. We should give credit to the early architectural decisions made by Cutler which allow for niceties like the Windows Subsystem for Linux (WSL) that came about recently. I third the recommendation for "Show Stopper" as well. :-)
- EamonnMR 8y agoI second the recommendation for Showstopper!, though I wonder if MS's culture of burning out developers for months contributed to its reputation for buggyness in the early 00s.
- ghaff 8y agoShow Stopper is probably my second favorite product development story book. (My favorite is Soul of a New Machine but I'm biased there because I worked at the company a bit later and knew many of the people involved.)
- foobiekr 8y agoIf you liked Show Stopper, you would probably really like the various MIT Platform Series books. Each of them is excellent and while they are not really the story of new product development, there is plenty of product development in them.
- reubenswartz 8y agoThat was a great book. In college, I read it on the plane on the way to an interview with an operating systems team. During my interviews, people thought I had a ton of experience with operating systems coding, which I didn't, but the concepts, terminology, and design debates from the book were fresh in my mind. ;-)