Slashdot Mirror


Inside The Development of Windows NT

mrpuffypants writes "Winsupersite has a 3 part series this month about the history and development of Windows NT all the way up through Windows Server 2003. The author goes fairly in-depth describing how Windows is developed, managed, and how all 50 million+ lines are compiled daily. Part One covers the history of NT from its early days at Microsoft and Part Two discusses how the deployment of the forthcoming server version of Windows is coordinated daily." *shiver*

34 of 681 comments (clear)

  1. the book 'Show-Stopper!' Ready to Buy? Sign in to by Anonymous Coward · · Score: 2, Interesting

    This book, from around '95 I think, was a great read. I don't know how much overlapit has with the articles mentioned above, but I enjoyed it.

    http://www.amazon.com/exec/obidos/tg/detail/-/00 29 356717/103-3105313-8496655?vi=glance

    Also available at your local library!

  2. Re:hmmm... by Anonymous Coward · · Score: 5, Interesting

    Sorry, but I think that's Waddle, the Beanie Buddy (a larger version of Waddle, the Beanie Baby). Penguins are cool to a lot of folks - and not all stuffed penguins are Tux.

  3. Alpha by deacent · · Score: 5, Interesting

    I see a lot of complaining in the article about how some architectures were not ready for NT on a timely basis (Intel i860, PowerPC), but I see no mention how they were so slow to bring NT to the Alpha. I recall that DEC actually ended up porting VMS to the Alpha because they were waiting on MS for their promised NT release. I'm a bit curious to hear from the developers about their perspective on that.

    I've used both NT and VMS on the Alpha (as well as a Unix varient). NT is sooooo slow.

    -Jennifer

    1. Re:Alpha by garcia · · Score: 3, Interesting

      I have actually heard that NT ran better on the Alpha UDB than other OSs that run on it. The Alpha UDB was designed to be a small NT workstation.

      Linux runs fine on mine but from what I hear NT also runs on it fairly well. I guess we would have had to be running it when the UDB first came out to make any sort of educated descision on that.

      Anyone have first-hand experience w/NT on the UDB?

  4. VMS + 1 = WNT by jjga · · Score: 3, Interesting

    It is interesting how incrementing each of the letters in VMS gives WNT. It is something similar to IBM and HAL.

  5. Re:Hmm by mrpuffypants · · Score: 4, Interesting

    Winsupersite is, for the most part, a very pro-microsoft website...however, even if their reviews and previews may be slanted a bit they still get very early releases of different products and write decent reviews of them...with lots of screenshots!

  6. The NT Kernel Is Good by DakotaSandstone · · Score: 5, Interesting
    I know this is the equivalent of Flamebait on /., but the NT kernel (borrowed though it may be from other OS ideas) is actually darn good.

    Passing IRP's (IO request packets) between drivers creates a much more well-defined interface that a bunch of globally namespaced functions just calling each other (like some other OSes we all know). It also lends itself to a layered driver model (Bus Driver, Physical Driver, Functional Driver) much better.

    I really like the NT Kernel. What driver developers do with it isn't the kernel's fault.

    --
    Nothing is so smiple that it can't get screwed up.
    1. Re:The NT Kernel Is Good by Elbereth · · Score: 4, Interesting

      The NT kernel was good. Then Microsoft moved the GUI into the kernel. We all know what happened after that. Okay, to be fair, the NT kernel is still pretty nice, but it's deeply annoying that Microsoft is so willing to sacrifice stability for a little more speed. I find it difficult to crash Win2k and XP, but it does happen... mostly from PC games.

    2. Re:The NT Kernel Is Good by stratjakt · · Score: 3, Interesting

      I partially agree. I would have preferred to see it implemented both ways, then let the user/admin decide.

      If I want to run the GUI and video drivers in userspace for stability on a server or workstation, then I could. But the kernel mode is definately a huge speed boost for gaming, multimedia (remember how impossible it was to do anything like that under NT 4.0?)

      All in all, I probably like it better the way it is. I've never had a problem so long as I stick with WHQL certified drivers. It'd be nice to be able to choose.

      --
      I don't need no instructions to know how to rock!!!!
    3. Re:The NT Kernel Is Good by DakotaSandstone · · Score: 5, Interesting
      Good point. That was a mixed blessing. But then again, so is the fact that any 3rd party can write a kernel driver (although MS is trying to assuage this with things like driver signing)

      I've read some interesting defenses of moving GDI to the kernel. Some of the rationale was:

      • GDI crashing, be it in the kernel or user mode, is basically a fatal system error. As designed, it is not clear how NT could "restart" a crashed user-mode GUI subsystem. Even if GDI is user mode, if it crashes, you'd probably have to reboot anyway.
      • There are many other complex subsystems that exist in the kernel, and have been made pretty bulletproof (scheduler, disk subsystem). What makes the graphics subsystem any more dangerous? Yes, moving code to the kernel requires less buggy code, but we're Microsoft, and we're up to the challenge. It can be done.

      Personally, I would love to see an OS take advantage of more than 2 of the 4 "rings" an x86 processor has. In such an OS, one could theoretically have a driver crash, and could still recover.

      Until that day, though, I agree - GUI subsystem code is hard to make bulletproof, and moving said code into the "sacred" kernel is pretty gutsy.

      --
      Nothing is so smiple that it can't get screwed up.
    4. Re:The NT Kernel Is Good by dildatron · · Score: 2, Interesting

      I have crshed Win2k Advanced server quite a number of times. Here are the latest few I can remember:

      Had three downloads coming down with Mozilla, nearly maxing out my connection (each about 700KB/s). Then, the machine bluescreened and said TCPIP.SYS (or something similar to do with networking... i forget exactly what it was) had dumped.

      Another instance was when I accidentally started 3 instances of outlook. The machine just bluescreened and rebooted. these are two different machinines. They are dual boot Linux/Win2k, and Linux works fine doing the same (type of) thing.

      I have also crashed linux, so don't think I am just trashing the NT kernel. Linux and NT could both use some work to get where some of the commercial unixes are. But, I think Win2k and Linux are fairly solid, but there is definately room for both kernels to improve, and we don't need to get started on the older VM problems either.

      I remember one day about a year ago when we managed to crash an N-class HPUX server. I thought the world might end - it is that stable. We found out it was a hardware failure that didn't manifest until several months down the road. Still, HPUX and Sub boxes are a lot more stable than windows or Linux, luckily that gap is getting smaller though and we get more stability for less money.

      --


      If you had nuts on your chin, would they be chin nuts?
  7. Michael Landon Is My Cousin by Acidic_Diarrhea · · Score: 3, Interesting
    I think that is because the articles are trying to give a very general overview of the life cycle of NT. The various corporate dealings of Microsoft aren't of consequence when discussing how a huge project such as NT gets off the ground and how new demands cause new solutions to be found. And the article did mention that the choice to go to Win32 rather than OS/2 helped to sour the relationship between IBM and Microsoft. What more did you want?

    And while you're right that this article is a very happy view of NT, it's interesting from the standpoint of how a project grows and new versioning control systems are added to handle such growth. Sure, the articles are heavy on fluff and light on details - but Microsoft is closed source. They're not going to give you much more. I honestly am not sure why you're so upset with these articles.

    --
    I hate liberals. If you are a liberal, do not reply.
    1. Re:Michael Landon Is My Cousin by CoolVibe · · Score: 1, Interesting
      I think that is because the articles are trying to give a very general overview of the life cycle of NT.

      They do somewhat, but not really. But more about that later.

      The various corporate dealings of Microsoft aren't of consequence when discussing how a huge project such as NT gets off the ground and how new demands cause new solutions to be found. And the article did mention that the choice to go to Win32 rather than OS/2 helped to sour the relationship between IBM and Microsoft. What more did you want?

      I know they went for win32, but what about OS/2? Why no information what happened to the IBM code base? Windows NT 3.51 had an OS/2 2.x subsystem in there. No word about that in the article. If they are going to "spill the beans" about the history of NT, the site should have reported on Microsoft's love relationship with IBM as well.

      Also, I'm not upset with the article. It's probably not for me. Judging from the information that _is_ in the article, Microsoft made lots of design decisions that make NT the piece of horsemaneur it is today (IMHO of course). Also, what I don't understand is WHY Microsoft abandoned all those other platforms (MIPS, Alpha et al) and decided to go with IA32 only, which was a fundamentally STUPID move (also IMHO).

      I would have loved to have seen a more objective story about NT from persons inside MS, without all the feel-good fluffyness. But I guess one can only get stories like that from ex-MS emplyees that are past their NDA due date, and the MS marketroids don't have a grip on.

  8. Re:Security? by t0ny · · Score: 2, Interesting
    I think if you compare NT with the security of a lot of platforms that came out around the same time, you will see a very similiar set of holes.

    I still remember all the programs all over the internet you could use to grab NetWare passwords, so its not like MS was the only one with holes.

    What is a difference, however, is that people are still using NT4, whereas none of its contemporary OSs are around anymore (or at least, not around in a significant installed base).

    --

    Manipulate the moderator system! Mod someone as "overrated" today.

  9. Re:Why do Microsoft reviewers always sound... by Alric · · Score: 3, Interesting

    I have had this thought myself, more often lately. I have come to the conclusion that it's probably not an active conspiracy by MSFT. Instead, I think it is a passive effect of a monopoly system.

    My example:
    Reviewer A writes a technical summary of some new MSFT product. Reviewer A invested months learning this new product and how it fits into MSFT's overall strategy. Reviewer A runs a consulting firm that specializes in MSFT products. That firm has invested time in training its people to know the new MSFT product. Reviewer A is probably not conciously being unethical, but he needs people to use this new MSFT product so his firm can make money helping companies solve the new problems that this product created. He writes a review/book that highlights the good points and downplays the bad points.

    So, his review is biased, but it's not exactly a conspiracy by MSFT.

  10. Linux? by 13Echo · · Score: 2, Interesting
    "Getting all those people going in the same direction, cranking out code, is an enormous task. Building the results of their work, compiling and linking it into the executable and other components that make up a Windows CD is a 12 to 13 hour process that is done every day of the week. It's the biggest software engineering task ever attempted. There are no other software projects like this." And Microsoft compiles the whole thing--all 50+ million lines of code, almost every single day, he said. "We're evolving the development environment all the time," Lucovsky noted."


    I think that they were forgetting about that orher large-scale software engineering task, in which thousands (tens of thousands?) of people crunch out code and compile software every day.

    What's that called?

    Linux.
  11. Re:NT == VAX OS? by SerpentMage · · Score: 2, Interesting

    What I am amazed at is that in the history of Windows NT Dave Cutler was cut so little space. He was mentioned twice. Once at the beginning of the article and then in the timeline.

    And from what I remember about the hoopla, etc. Dave Cutler was fairly important in the first version of Windows NT.

    But you know it shows just how little MS remembers the people who got it there in the first place!

    --

    "You can't make a race horse of a pig"
    "No," said Samuel, "but you can make very fast pig"
  12. War team triages by Anonymous Coward · · Score: 1, Interesting

    I was an employee with Microsoft for sometime and was there when the RTM march was on for Windows XP and I can definitely tell you that war team during the last few weeks before escrow is a lot more than just inconsequential bugs. Its staggering how many bugs that are punted to the next release are actually rather serious in the grander scheme of things beyond the "ship windows" horizon. This is a very happy and flowery view Paul has given but it is not very accurate.

  13. Re:WinNT development cycle. by MaxQuordlepleen · · Score: 5, Interesting

    [---snip---]
    tanzarian:/$ grep -r ' goto ' /usr/src/linux | wc -l
    1543
    [----snip---]

    that's from 2.4.19

  14. What a Laughable Piece of Fantasy by Anonymous Coward · · Score: 1, Interesting

    I laughed out loud over the assertion that the Win32 API is easy to work with. I guess you can get away with lying when you know your audience won't go and check.

    Go get a complete listing of the API function reference sometime. It looks like 12 different groups of developers came with 12 different coding styles (few of which could be described as elegant; or even safe for that matter) and got in a fist-fight. They were all beat up and too tired to fix it at the end of the day, so they just shipped the mess that is Win32.

    Wonder why they re-invented all the ANSI C functions. The new functions do the same things, but with different names.

    NT was a great operating system until 1990, then it went to hell from there.

    A. Penguin User

  15. Re:Incremental build? by sheldon · · Score: 3, Interesting

    "to me rebuilding libX throws another wrench into the fire."

    Exactly!

    If rebuilding libX is going to cause you problems, then you want to know about that NOW and fix it. I don't see any benefit to waiting to address build issues. Do you seriously think you're going to improve your productivity?

  16. Re:NT == VAX OS? by leandrod · · Score: 2, Interesting
    > IBM and MS started a collaboration called OS/2, then later decided to part ways.

    Actually MS stabbed IBM in the back by breaking the agreement (MS-W16 never to get 32 bits or a DOS virtual machine, OS/2 forever) without warning by launching MS-W3.1. This effectively killed OS/2 and made going from OS/2 3.0 NT to MS-WNT a no-brainer for MS.

    > MS wasn't entirely enthusiastic about development at IBM speed

    You mean IBM quality, not speed. OS/2 development speed wasn't so bad; in fact, they decided to go for a command-line only, i286 version initially in order to ship early.

    The real problem is that MS wanted to push forward the stupid MS Win16 API inherited from MS Windows 1.0 for the IBM-PC/XT, and IBM knew it was garbage. Also MS realised it could get more money by selling a product without any interoperability or standardisation, while IBM would have made it interoperable, documented and stable -- as they still do with the current IBM OS/2.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
  17. Re:Incremental build? by SnowDog_2112 · · Score: 3, Interesting

    "my software is being updated, but libX isn't, then i wouldn't want to recompile libX"

    I guess it depends on exactly how much you trust the software that decides what depends on what and what's changed. Can you honestly tell me you've never had a problem that doing a "make clean" fixed?

    All I'm saying is that for the groups I've worked in, the cost of having the automated script do a "make clean all" as opposed to "make all" each night is considered acceptable for the peace of mind that knowing that absolutely every change is accounted for and there's no possible dependencies that got dropped in by make.

    --
    Not representing or approved by my company or anybody else.
  18. Re:hmmm... by MaufTarkie · · Score: 3, Interesting

    Actually, I think it's "Tux Rux" (second entry under Penguin -- compare the grandparent's photo with TR's photo). They were selling these two years ago at our local Safeway supermarket, and I got one as a Christmas present then. When you push his belly, he will alternate with "Hi! I'm Tux Rux" and a very disturbing growl/purr that I can only assume is the sound that a very irate poked penguin would make.

    --
    Without you I'm one step closer to happiness without violence.
  19. Re:Punted to longhorn by thoth · · Score: 3, Interesting

    It is hard to tell. Bugs are filed for the obvious (software errors) but also things like new features desired, performance enhancements to be had, and occasionally things like rearchitecture needed (say, redo horribly confusing UI to something better).

    It is true though, when the war room meets you have to have somebody there to vouch for any fixes checked in to resolve bugs. Mostly the war room wants to hear about impact, if the fix was tested, any issues that arose from the testing (regressions and/or new problems), and if the fix is really needed.

  20. Branding Issue Bugs? by RoboLobster · · Score: 2, Interesting
    On that day, WinServer 2K3 had just a few active bugs, and at least a quarter to one-third of those bugs were simple branding issues.

    What is a branding issue bug?

  21. ReactOS by dcuny · · Score: 4, Interesting
    Why not have a look at ReactOS, an open source clone of NT?

    Unlike some doomed attempts to make a "better" Windows clone *cough*Freedows*cough* that degenerated into a puff of vaporware, the fine people at ReactOS have been keeping their noses to the grindstone and quietly worked away at getting an NT clone working. It's still a long way from replacing NT, as this screenshot of the one and only GUI application shows.

    But if you want a free and open look at Inside the development of [a] Windows NT [clone], ReactOS is a good place to look.

    They've done a number of things right:

    • Shut up and coded...
    • Picked NT as a target instead of the more glitzy Win9x
    • And coded...
    • Focused on core features instead of the GUI
    • And coded...
    • Borrowed from Wine where it seemed sensible

    Did I mention they spend thankless hours coding?

  22. How MS "punishes" bug meeting truants by dpbsmith · · Score: 5, Interesting

    Let's see if I've got this right:

    "This late in the development process, bugs are often passed along, or "punted," to the next Windows release--Longhorn--if they're not sufficiently problematic."

    "The atmosphere in War Room is intimidating, and I spent most of my time in the room, silent and almost cowering, praying that Wanke wouldn't turn his attention to me or my group.... The most virulent treatment, naturally, is saved for those foolish enough to blow off a War Room meeting. On the day I attended, one feature group had four of its bugs punted to Longhorn because they had failed to shown up for War Room. When someone argued that they should be given another day, Wanke simply said, "F#$% 'em. If it was that important, they would have been here. It's in Longhorn. Next bug."

    So... in this macho atmosphere, reeking of testosterone... the punishment for not being that the bug meet is that... YOU DON'T HAVE TO FIX YOUR BUGS UNTIL THE NEXT MAJOR RELEASE?????????

    Words fail me...

  23. Bugs by sstory · · Score: 2, Interesting

    If they're really that fix-crazed, how come outlook has had the same bug (overly persistent and reappearing send/receive dialog box) for years now? I first got that bug on Outlook Express on Windows 95. Fast forward 5 years, and I have that bug on Outlook on Windows 2000.

  24. Re:NT == VAX OS? by Locutus · · Score: 1, Interesting

    I had heard that when Microsoft released MS-DOS to IBM originally, it didn't work and IBM had to all but rewrite it( PC-DOS ). I'm sure there where many at IBM who knew how bad a coding Microsoft was/is but they "partnered" on OS/2 anyway.

    I had also heard that another big fracture between IBM and Microsoft was in the design of the OS itself. Microsoft wanted the application with focus to get most of the CPU and IBM wanted a tight kernel so that all apps got an appropriate amount of CPU time. It took almost 10 years before Microsoft came out with an OS( W2K ) which had decent multitasking for the DESKTOP. Of course THE DESKTOP was now a 700MHz machine with 128MB of RAM while OS/2 still ran great on a 300MHz machine with 64MB of RAM.

    It's all about marketing though and that's what Microsoft is, a marketing company. The ultimate snake oil salesman award goes to Bill Gates and Steve Balmer. IMO.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  25. History is written by the losers by Anonymous Coward · · Score: 2, Interesting

    (of the anti-trust case)

    Microsoft is pushing awfully hard to sell their version of NT's history. The fact is, that even if someone was on Microsoft's payroll to tinker with some "new technology" since 1989, there was no NT product until 1996, when Windows NT 3.5 came out. It was a flop, because it still had the old Windows 3.1 GUI, and everyone was enarmoured with Windows 95's look and feel. Their official "NT 3.5" was actually just a bolted on netware client to windows for workgroups (16 bit.) NT 4.0 was just a GUI upgrade, but wasn't really usable for a couple of service packs. NT started having "server" functionality around 1997, and that was really just back office -- whose main feature was a network printer driver!

  26. Re:no the kernel build still works on alpha by Guy+Harris · · Score: 2, Interesting
    the NT kernel is a microkernel much like the mach kernel in MacOS 10.x

    Yeah, both of them keep a ton of stuff in kernel-mode code, such as file sysstems, network stacks, etc.. They're not microkernels much like, say, QNX, however.

  27. Re:WinNT development cycle. by Anonymous Coward · · Score: 2, Interesting

    Microsoft C actually does support structured exception handling with _try/_except (along with termination handlers using _finally), which is vital to the design of the NT kernel. I think it was added to the MS C compiler specifically for NT, but I'm not sure. Anyway, the proper use of C exception handling in kernel-mode NT code (e.g. device drivers) is explained in the NT/Windows DDK docs.

    A related point is that I do recall that MS tried to get exception handling added to C some years back (for the C89 standard, IIRC), but failed. It didn't make it into C99 either, unfortunately, although I don't know if MS bothered trying to get it in again. (And people wonder why MS so blithely ignore standards.)

    As for gotos, I agree there's nothing wrong with them. Even when exceptions are available as an alternative, gotos can be considerably more efficient in certain cases (e.g. where you know exceptions will never be thrown).

  28. Re:WinNT development cycle. by nathanh · · Score: 2, Interesting
    tanzarian:/$ grep -r ' goto ' /usr/src/linux | wc -l
    1543

    I'm not surprised. Dijkstra's "Goto Considered Harmful" paper isn't gospel. Lots of programmers disagree with it, including core developers of Linux. In fact, I only ever find first year uni students quoting the paper and that includes myself back when I first read it :-/