Slashdot Mirror


The Setup Behind Microsoft.com

Toreo asesino writes "Jeff Alexander gives an insight into how Microsoft runs its main sites. Interesting details include having no firewall, having to manage 650 GB of IIS logs every day, and the use of their yet unreleased Windows Server 2008 in a production environment.

49 of 412 comments (clear)

  1. Mostly how they run it by Anonymous Coward · · Score: 5, Funny

    is have some crazy sys admins throw chairs around.

    1. Re:Mostly how they run it by ObsessiveMathsFreak · · Score: 3, Funny

      With Microsoft Windows Server 2008, chairs practically throw themselves!

      --
      May the Maths Be with you!
  2. Firewall Schmirewall by mrtroy · · Score: 5, Funny

    No firewall? Of course not!

    Microsoft servers are notorious for their invulnerability.

    --
    [I can picture a world without war, without hate. I can picture us attacking that world, because they'd never expect it]
    1. Re:Firewall Schmirewall by great_snoopy · · Score: 5, Informative

      Of course they have a firewall, just watch the difference between a tcptraceroute to a public port (like 80) and tcptraceroute to the same ip but some other port (like 110 pop3 for example). You'll see that packets get dropped at some point indicating a firewall. It's not a RST (port closed) it's just dropping packets for nonpublic services. That is a packet filtering firewall.

    2. Re:Firewall Schmirewall by oliderid · · Score: 4, Informative

      from the article:
      "...At this point we still don't use firewalls for MS.COM..."

      and then

      "Router ACLs are in place to block unnecessary ports"

      blocking unnecessary ports is a firewall feature (IMHO ?)

      Anyway it looks quite impressive. I still don't understand how to handle 650 GB of logs :-).

    3. Re:Firewall Schmirewall by MstrFool · · Score: 4, Funny

      Well, remember the story a while back about MS using Linux for some things? I think we just found where they use it. Storing their logs in /dev/nul is the most likely way they deal with 650 GB of logs.

      --
      Question reality.
    4. Re:Firewall Schmirewall by allenw · · Score: 3, Informative

      Large scale log processing isn't hard if you have the right tools. :)

    5. Re:Firewall Schmirewall by Anonymous Coward · · Score: 3, Interesting

      Anyway it looks quite impressive. I still don't understand how to handle 650 GB of logs :-).

      My question is why are the logs in ASCII text format? When all you want is say the IP [4 bytes], time of day [4 bytes], URI, referrer and return code [do you really care about their browser strings? You are MS after all, just assume it's IE].

      Storing an IP as text requires on average 15 bytes, so right there you can shave off 11 bytes with a binary IP. Time of day is worse, a date+time string is like 25 chars. Doesn't seem like much, but multiply the 32 bytes per entry you save by say 50 million hits and that's 1.5Gbyte you saved. That's not counting the white space you can remove, and a simple huffman code you could apply to the URL/referrer.

      Heck, just piping the binary IP/date and ASCII URL/referrer through gzip [or use libz's gzPrintf() etc...] could make a large difference as well.

      Point is, bragging about 650GB/day logs is not really impressive when you're "doing it wrong" (tm). That's like bragging about how much you cut your face while shaving.

    6. Re:Firewall Schmirewall by rasputin465 · · Score: 5, Funny

      Storing their logs in /dev/nul is the most likely way they deal with 650 GB of logs.

      Well geez.. in that case I sure hope they do regular backups of /dev/null! ;-)

    7. Re:Firewall Schmirewall by morgan_greywolf · · Score: 3, Insightful

      Using router ACLs to block ports is pretty much the same thing as using iptables on Linux to filter ports. So, IOW, yes, blocking unnecessary ports on a router means that the router is a firewall. Something is filtering packets and even if it's called a router and not a firewall, that's the function it is serving.

      If it walks like a duck and quacks like a duck...

    8. Re:Firewall Schmirewall by AK+Marc · · Score: 5, Insightful

      Actually you're wrong. They're blocking ports. Port blocking != firewall.

      Ah, the little children. Do you know what the first firewalls were? Routers with access lists. Anything that blocks anything from going to one place from another is a firewall. Port blocking is a firewall, and there exists no firewall I know of that can't be configured to do nothing other than port blocking. You don't have to inspect packets, track flows, or any of those other things to be a firewall, all you have to do is offer some means of restricting traffic. And blocking ports does that.

    9. Re:Firewall Schmirewall by somersault · · Score: 5, Funny

      Inventing some binary format is pointless I'm guessing you have no prior experience with Microsoft Office then..
      --
      which is totally what she said
    10. Re:Firewall Schmirewall by marcansoft · · Score: 3, Funny

      $ cat /dev/null | gzip - > devnull.gz
      $

      Works fine for me. Are you sure you're not confusing /dev/null with /dev/zero? The latter's a real bitch, it's always too large for my destination drive! Gzip helps though; you can get compression ratios of approximately 2000:1.

    11. Re:Firewall Schmirewall by darthnoodles · · Score: 3, Funny

      Yes I am confusing them. I'm not really a Linux/Unix guy. I'm just pretending.

    12. Re:Firewall Schmirewall by lena_10326 · · Score: 5, Informative

      My question is why are the logs in ASCII text format? When all you want is say the IP [4 bytes], time of day [4 bytes], URI, referrer and return code [do you really care about their browser strings? You are MS after all, just assume it's IE]. Storing an IP as text requires on average 15 bytes, so right there you can shave off 11 bytes with a binary IP. Time of day is worse, a date+time string is like 25 chars. Doesn't seem like much, but multiply the 32 bytes per entry you save by say 50 million hits and that's 1.5Gbyte you saved. That's not counting the white space you can remove, and a simple huffman code you could apply to the URL/referrer.

      Logging in fixed format is not more efficient than variable format text files (unless we're talking about transactions but we're not). Let's assume you're logging the basics: IP address, Timestamp, Return code, URI and we'll look at logging in fixed format then variable format.

      [abcd] [timestmap] [code] [URI]
      4 bytes 8 bytes 1 byte 50 bytes (you actually need 2 bytes for HTTP return code, but let's ignore that)

      Every record will require 63 bytes and we'll round up to 64 for proper word alignment). So, if we log 1000 messages, we will consume 64,000 bytes total.

      Ok. Now for text logging with space delimiters. We have 3 options below, each requiring slightly less space than the previous. We'll run totals for each.

      123.567.890.123 YYYYMMDDHHMMSS x URI...............\n
      16 bytes 15 bytes 2 bytes 50 bytes 1 byte

      123.567.890.123 1197572382 x URI...............\n (UNIX time)
      16 bytes 11 bytes 2 bytes 50 bytes 1 byte

      1235678901231197572382xURI...............\n (UNIX time)
      12 bytes 10 bytes 1 bytes 50 bytes 1 byte

      16 + 15 + 2 + 50 + 1 = 84 bytes * 1000 = 84,000 bytes
      16 + 11 + 2 + 50 + 1 = 80 bytes * 1000 = 80,000 bytes
      12 + 10 + 1 + 50 + 1 = 74 bytes * 1000 = 74,000 bytes

      Wow. Fixed binary format kicks variable text format's ass. Wrong. This assumes the URI (or message) block will always occupy 50 bytes. It will not. Let's go right down the middle and assume it averages 25 bytes and we'll recalculate.

      16 + 15 + 2 + 25 + 1 = 59 bytes * 1000 = 59,000 bytes
      16 + 11 + 2 + 25 + 1 = 55 bytes * 1000 = 55,000 bytes
      12 + 10 + 1 + 25 + 1 = 49 bytes * 1000 = 49,000 bytes

      Variable text format almost always beats fixed binary format for logging. That's why Microsoft (and the rest of the world) stores log files as text. Plus, it's far easier to manage and debug when you can slice and dice the files with standard command line tools.

      One more thing. I know what you might be thinking. We're logging URLS, which will probably consume the majority of the 50 byte allotment. Most developers will calculate an average width size and double it, so no matter what we'll still be filling about 50% of the message section.

      Last point. If I were to use your example, the savings with text logging would even be greater. 2 URLS would be stored, both consuming about 50% of their data block. IP address, timestamp, URI, Referrer URI, Return Code. There's also a bunch of other little optimizations you can do such as storing the domain, year, month, and day in the filename rather than in the data or dropping the least significant byte in the HTTP return code.

      --
      Camping on quad since 1996.
  3. Re:Beta in production environment. by EvanED · · Score: 5, Informative

    Vista was never meant as a server. Same as XP isn't used as a server, it's Server 2003.

  4. Eating dogfood is good by ReallyEvilCanine · · Score: 5, Insightful

    How can anyone complain that they're running Server 2008? My company's software quality dropped considerably when we stopped eating our own dogfood two years ago. When techs, engineers and everyone else is stuck with the same problems as the future ell-users, shit gets fixed a lot faster and a lot better.

    1. Re:Eating dogfood is good by ashridah · · Score: 4, Informative

      Not complaining in TFA, but this is /. -- I just anticipated the howls of the unwashed hordes rightfully bitching about yet another "professional" OS with a markedly unprofessional Teletubbies UI which certainly isn't ready for market yet, all while ignoring MS' internal dogfood consumption. I'll bet if enough Microsofties had eaten Office dogfood you could shut off that fucking control-click "Research" panel easily.

      Nevermind that the UI for 2008 is roughly the same as 2003, only with a more extensive (yet still looking clean and fairly spartan with the eyecandy) set of configuration utilities for roles and features. Just wish I could say the same for the control panel. :)

      As for the 'research' panel... okay, I work here at microsoft, and I own my own copies of office at home, and I have no idea what that is. Of course, I'm hardly an office power user.

      You can bet your bottom dollar that office 2007 is all that's in use around most of the company. As is vista, although it tends to be a mixture of vista, xp and 2003/2008 in most offices, usually for a variety of legacy reasons (maintenance of older projects, testing, etc)

      I've got all but XP myself, but only because I haven't needed it to do my job.

  5. Re:Supporting by plague3106 · · Score: 5, Insightful

    How many times have you seen the microsoft.com website down / hacked?

  6. Priceless... by orclevegam · · Score: 4, Funny

    Cisco Router: ~$700
    Server to run it on: ~$2000
    Beta testing Microsofts new server 2008 in a production environment: Priceless

    --
    Curiosity was framed, Ignorance killed the cat.
    1. Re:Priceless... by BytePusher · · Score: 3, Insightful

      It's called Alpha testing in this case. It's good marketing on their part to say, "We're so sure our software is good we use our pre-Beta software in a production environment." Never mind the fact that they have Server 2003 waiting ready to take over when their 2008 server horks itself.

  7. Re:Beta in production environment. by schnikies79 · · Score: 5, Informative

    Funny, but you're wrong. Pro is for networking enviorments where you need RDP, policies, ability to join a domain, file encryption, etc. Home lacks these.

    --
    Gone!
  8. Re:Microsoft brainwashing by plague3106 · · Score: 4, Informative

    You realize that Win2k3 does turn off most services by default, and Win2k8 takes this even further by not installing them at all.

    Uh, didn't I read an article not too long ago about how the update.microsoft.com site was broken into?

    Link, please?

  9. Re:Beta in production environment. by JCSoRocks · · Score: 5, Funny

    Tis a sad day when the fanbois can't even get their insults right. shameful.

    --
    You are using English. Please learn the difference between loose and lose; they're, there, and their; your and you're.
  10. Re:Beta in production environment. by EvanED · · Score: 3, Informative

    No, the pro version is more intended toward business users. Not servers, but the sort of thing workers have on their desktop. That's why it has tunings for corporate networks and ACLs and quotas and such.

    You can debate the drawbacks and benefits of having so many versions, but XP was never intended to be a substantial server.

  11. Re:Supporting by outZider · · Score: 4, Insightful

    Reliability in numbers. If you have 30 machines running your website, no one will notice if one goes down.

    --
    - oZ
    // i am here.
  12. Re:HBI? by orclevegam · · Score: 4, Funny

    Humongously Bad Interface. That's the internal name for all new MS APIs.

    --
    Curiosity was framed, Ignorance killed the cat.
  13. Swimming in acronym soup... by thatseattleguy · · Score: 5, Funny
    Could someone with more Microsoft Kool-Aid in their veins stick their fork in the acronym salad that is this article? ACL (Access Control Lists - which technically are a firewall), DoS (denial of service attacks) and IPS (intrusion protection services) I all know, but WTF are:


    HBI?
    GFS (is the G for "Ghost")?
    NBI?
    NLB?
    ACE?


    TIA :),
    /tsg/

    1. Re:Swimming in acronym soup... by loconet · · Score: 3, Interesting

      Interesting, I thought I was the only one. Why is it that every time I read about Microsoft related technology it's always an acronym salad. Not even commonly used acronyms either, they use acronyms for their own way of calling technology xyz. It's almost like they do it on purpose ..

      --
      [alk]
    2. Re:Swimming in acronym soup... by Anonymous Coward · · Score: 5, Informative

      GFS: Global Foundation Services. Microsoft's big internal network management thing. It's the people who keep the servers up and running for everything facing outward.

      HBI: High Business Impact. Social Security numbers ,Passport accounts, etc.

      NLB: Network Load Balancer.

      AV: AntiVirus.
      DoS: Denial of Service
      IIS: Internet Information Services. 'httpd' for Windows.

  14. Re:Beta in production environment. by ByOhTek · · Score: 3, Insightful

    Windows Server 2008 is (or rather, will be) effectively "Windows Vista Server Edition", just as Windows Server 2003 is effectively "Windows XP Server Edition".

    --
    Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
  15. Perhaps the only ones who can do it "right" by teebob21 · · Score: 5, Insightful

    Let's set aside the natural urge to bash MS into oblivion. Let's (just for now) ignore conventional advice about network security and firewall use. Now, not only are these guys a Microsoft shop...they ARE Microsoft. MS claims their software is stable and secure. Perhaps it is -- when was the last time microsoft.com was taken down by malevolent hackers?

    That said, with their closed source and closed-doors policy to revealing details about the inner workings of the OS, _Microsoft_ may be the only company that can successfully deploy a 100% Microsoft powered solution. How many registry changes, service daemon modifications, and other tweaks have been made to get their config running this way? The world may never know. It's probably impossible for the consumer world to ever have that level on knowledge about the Windows environment, and thus run it at peak security levels. For most consumers and businesses, a Linux OS with properly implemented firewalls is much more secure than an out-of-the-box Windows deployment and router ACLs.

    --
    khasim (12/9/06): In a blind taste test, more people preferred Coke over the Pepsi that I had previously pissed in.
  16. Re:HBI? by SpaFF · · Score: 3, Insightful

    I was assuming he meant Host Based Intrusion.

    --
    -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GIT d? s: a-- C++++ UL++++ P++ L+++ E- W++ N o-- K- w--- O- M+ V PS+ P
  17. Re:Beta in production environment. by vtscott · · Score: 5, Funny
    And of course it's already been modded up (at least only as funny). To clarify why the GP is wrong, from the wikipedia entry on Windows server 2008:

    Windows Server 2008 introduces most of the new features from Windows Vista to Windows Server. This is a similar relationship to that between Windows Server 2003 and Windows XP.

    Gotta give credit to MS for eating their own dog food...

    Allow incoming connection on port 80? Confirm/deny

  18. Re:Microsoft and logs do not compute by Crane+Style · · Score: 4, Insightful

    Isn't that just you announcing your ignorant of which tools to use? Are you that kid in gym class that was always trying to put his shoes back on without untying them, rather than take the seconds to untie/re-tie he'd stomp himself around the locker room for minutes until they fit right. Oh and, how long would it take you to create and print a tri-fold pamphlet using sed? Perhaps you're the problem, not the app.

  19. Re:Supporting by Digital+Vomit · · Score: 3, Funny

    The highly objective and insightful article mentions, for example,

    "Windows and IIS...rock solid and secure!"

    Talc is technically a rock...

    --
    Modern copyright is theft of culture from everyone and it retards the progress of the useful arts and sciences.
  20. akamai by wwmedia · · Score: 3, Informative

    don't forget the whole slough of Linux servers that they use through Akamai to handle the bandwidth;

    it's one reason why why doing a lookup on Microsoft servers, it often shows that they are running Linux. It's also another reason why people point out that Linux is more scalable because even Microsoft can't eat it's own dogfood.

  21. Misleading Summary. Total Propaganda by mpapet · · Score: 3, Informative

    1. The asshat highlights they use no firewall, and yet buried deeper in the article is this "Router ACLs are in place to block unnecessary ports" That's the functional equivalent of a firewall.

    2. I get into discussions where tech guys spew traffic numbers and I'm never impressed. It creates issues if you want to actually do something with the data which I doubt they do much beyond running the usual marketing metrics. Until you actually shoot for 99.99 service uptime, you begin to comprehend the challenge it is (on any platform) the traffic itself is not the challenge.

    3. I'm very interested in reading what their hardware budget is like. I get excellent performance out of Linux compared to server 2003 boxes on similar compaq dl380's.

    --
    http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
  22. But generally.. by Junta · · Score: 5, Insightful

    Router ACLs are in place to block unnecessary ports
    Cisco Guards for DoS detection and automated response In other words, they don't use firewalling where you have administrator defined rules to control traffic flow, they use networking equipment that accept administrator defined rules to control traffic flow .... totally different..

    What in the world do *you* perceive the difference being between a 'firewall' and a router blocking ports based on source and destination being compared with a set of rules (aka ACLs)? Generally, firewall rules *can* get more complex than that, but mere port blocking by an intermediate router has been considered a firewall, even if it doesn't log violating or accepted packets, even if it doesn't have complex rules about connection state. Even if it doesn't have the word 'firewall' emblazened on the chassis somewhere.
    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:But generally.. by nuzak · · Score: 4, Informative

      The distinction between port filtering + ACLs and today's notion of "firewall" that's actually useful is of a stateful firewall, doing stateful packet inspection, with policies based on not just the packet you're picking a TCP header out of. If you tried to sell a stateless filter as a "firewall" today, you'd be laughed out of the market.

      And no, I don't see any need to firewall a web farm either.

      --
      Done with slashdot, done with nerds, getting a life.
    2. Re:But generally.. by Kalriath · · Score: 3, Informative

      No, because you'd have to go to considerable effort to configure it in such a way that what you say would actually happen. Hell, even my Windows Server 2003 machine is still running stable and virus/spyware free after about five years (or so).

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  23. Re:Supporting by MightyYar · · Score: 4, Informative
    Whoopsie, looks like Akamai uses IIS now - I'm behind the times, I guess:

    % nmap -A -T4 -F -P0 www.microsoft.com
     
    Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2007-12-13 11:48 EST
    Interesting ports on wwwbaytest2.microsoft.com (207.46.19.254):
    (The 1218 ports scanned but not shown below are in state: filtered)
    PORT STATE SERVICE VERSION
    80/tcp open http Microsoft IIS webserver 7.0
    179/tcp closed bgp
    443/tcp open ssl/http Microsoft IIS webserver 7.0
     
    Nmap finished: 1 IP address (1 host up) scanned in 167.891 seconds
    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  24. Re:Beta in production environment. by ashridah · · Score: 4, Interesting

    Which we do on a regular basis. Every few weeks I see emails going around from higher-ups asking us to test their team's RC or beta stuff at home for them, and the project I'm working on has been dependent on VS2008 since beta2. Everyone here has their favourite project they like to keep tabs on. I've got longhorn server 2008 running on one of my machines here.

    That said, the choice to use longhorn server in production isn't actually a bad one. It's really, REALLY stable. I keep hearing (from people both inside and outside the company) that it's more stable than 2003 is (and 2003 has the benefits of multiple service packs). It's also a lot more configurable about what it runs, and how much of it it enables when it's installed. I wouldn't bet the entire stable on it, but I'd be willing to put money on it getting a place.

    All in all, it's pretty sweet, if you look at it from the sysadmin perspective. Also, the stuff you can setup when you couple it with vista is really nice (from a security standpoint, particularly). That said, some of that functionality is being backported to XP with SP3 or whatever.

  25. Re:Microsoft brainwashing by jez9999 · · Score: 5, Funny

    Uh, didn't I read an article not too long ago about how the update.microsoft.com site was broken into?

    Link, please? http://update.microsoft.com/
  26. Re:Beta in production environment. by somersault · · Score: 4, Funny

    Program WinYes! is trying to perform an action on a dialog box. Allow/Deny?

    --
    which is totally what she said
  27. Re:Microsoft brainwashing by Kalriath · · Score: 3, Informative

    Actually, when you first boot Windows Server it pops up with the "Configure Your Server" page, and an extra note that until you've set up roles on it, nothing will work. As in, it hasn't started IIS, it hasn't started AD, it hasn't even started Terminal Services. And until you've picked which ones you want to run, it wont even allow inbound connections whatsoever!

    --
    For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  28. Re:Beta in production environment. by ashridah · · Score: 4, Insightful

    Ok, but is the OS *still* organized like crap? I mean, is C:\Windows still a dumping ground for a bunch of arbitrarily named data files, log files, drivers, and libraries using, for the most part, the old 8.3 naming convention?

    Dude, if you can't hack that right now, how are you dealing with unix instead?

    If any platform's based on a standard of bizarre naming due to space saving stupidity, that's it. Far more so than windows. Infact, name any mature platform that's based on reasonable standards for it's underlying API's and structure.

    Didn't think you could. While it's true that things like the FHS are helping on the unix side, try telling an oldschool developer like oracle that they need to follow it. They'll laugh. and laugh.

    and laugh.

    Windows is in much the same position. At least .NET has made this significantly less painful, because it was considered ahead of time (it's not much easier to actually manage, but that's the tools more than anything, and just takes a bit of experience.... which unsurprisingly, is what dealing with the idiosyncracies of the old systems take anyway!)

    ash

  29. Re:Beta in production environment. by misleb · · Score: 5, Insightful

    Dude, if you can't hack that right now, how are you dealing with unix instead?


    Because at least Unix has conventions.

    If any platform's based on a standard of bizarre naming due to space saving stupidity, that's it.


    Really? Ok, lets open up C:\Windows on one of our Windows servers. Hmmm a folder named "$hf_mig$". I suppose you know what that means or what convention that follows? Or C:\Windows\adam. Kinda looks like it might be some directory tools. Maybe ADAM = Active Directory AdMinistration? What's that doing there anyway? I could keep going down the list. I suppose there is a very good reason why there are .BMP files in C:\Windows? Desktop wallpapers? Come on. I wonder if they're related the other brilliantly named files such as SET2.tmp and SET3.tmp in that same directory. And don't get me started on the insanity that is C:\Windows\System32. Hardly a single file/folder that doesn't use 8.3 naming. I haven't clue what have that stuff is doing there.

    Infact, name any mature platform that's based on reasonable standards for it's underlying API's and structure.


    First of all, I was only talking about superficial organization. And if you want to see something nice, have a look at OS X some time. Not only is the System (/System) well organized, but most applications are neatly self contained in /Applications/Some.app. They usually don't spew files all over the place when installed. You know where the term DLL Hell comes from, don't you?

    Didn't think you could. While it's true that things like the FHS are helping on the unix side, try telling an oldschool developer like oracle that they need to follow it. They'll laugh. and laugh.


    I could give fuck-all what Oracle thinks. My Debian systems are very well organized, thank you very much. I don't find desktop wallpapers in /usr/lib. I don't find temporary files for applications in /usr/bin. FreeBSD is even cleaner. The system files never change unless I explicitly do an upgrade. All supplementary software (ports, mostly) goes in /usr/local. With Windows, on the other hand, who knows what strange and wonderful new files I might find dumped in C:\Windows tomorrow. Maybe $hf_mig2$. WHich would be version 2.0 of whtever that is, i guess.

    -matthew

    --
    "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
  30. Re:Beta in production environment. by ashridah · · Score: 4, Interesting

    Because at least Unix has conventions.

    Conventions are a nice way of saying "that's the way it's always been, so that's the way it stays." Windows has similar problems left over from legacy, going all the way back to CP/M. Yes, this sucks, but so does some conventions in unixland. Just ask a Solaris 10 admin how much it sucks when your upstream vendor breaks decades-long convention.

    Really? Ok, lets open up C:\Windows on one of our Windows servers. Hmmm a folder named "$hf_mig$". I suppose you know what that means or what convention that follows? Or C:\Windows\adam. Kinda looks like it might be some directory tools. Maybe ADAM = Active Directory AdMinistration? What's that doing there anyway? I could keep going down the list. I suppose there is a very good reason why there are .BMP files in C:\Windows? Desktop wallpapers? Come on. I wonder if they're related the other brilliantly named files such as SET2.tmp and SET3.tmp in that same directory. And don't get me started on the insanity that is C:\Windows\System32. Hardly a single file/folder that doesn't use 8.3 naming. I haven't clue what have that stuff is doing there.

    You're not looking in the right place. Microsoft, love it or hate it, worked out a long time ago that 'filename' and 'metadata' aren't necessarily the same thing. The filename and path are just handy locational indexes, and don't necessarily need to mean *anything*. Sure, a DLL can, and often, for newer stuff, IS far longer than 8.3, but it wasn't until later versions of NT (3.5/4.0, I don't remember my history too well) that support for it kicked in well enough, and there's some legacy stuff around. You don't break legacy just because it's fun. Microsoft gets this right, even if they had to tread over it a fair bit in vista, and add some nasty hacks to deal with most of the fallout.

    Anyway, as I was saying, you're not looking in the right place. Case study: C:\windows\system32\apss.dll: Microsoft(r) InfoTech Storage System Library.
    Problem solved. (it's not at all difficult to use something like powershell (or possibly other tools) to just print this out in a souped up version of ls with a little scripting, I might add, just like I can do a few similar scripting tricks on my debian system to tell you who owns the copyright to 90% of .so's in /usr/lib.)

    Want another one?

    c:\windows\System32\bitsigd.dll: Background Intelligent Transfer Service IGD Support

    Oh look, another one, fully named.

    Of course, this starts to fall down when the file doesn't contain metadata, but that's a problem for, say, XML schema files in /usr/share/ on linux too. The organisation might be a bit better, but not by much. The saving grace there is that I have dpkg to work shit out for me. .NET goes even further. You can register as many different versions of a namespace as you like, and .NET will do the mapping for you if you request a specific version.

    First of all, I was only talking about superficial organization. And if you want to see something nice, have a look at OS X some time. Not only is the System (/System) well organized, but most applications are neatly self contained in /Applications/Some.app. They usually don't spew files all over the place when installed. You know where the term DLL Hell comes from, don't you?

    Yes. I do. .NET does a good job of solving this quite nicely. Adds public/private keys into the mix too, plus a bunch of other mechanisms. .NET isn't just for C# either. It deals with VB, C++, and (ahahahha) J# too.
    I will admit that the mac platform is neatly arranged, but their QA seems to have gone to the toilet right now. A place that windows' QA has emerged from rather nicely, I should mention.

    As for random stuff appearing in random places, try dealing with commercial software. Even on linux, the developers will put shit in strange places. Open