LWN.net Logo

Kamp: A Generation Lost in the Bazaar

Kamp: A Generation Lost in the Bazaar

Posted Aug 21, 2012 9:54 UTC (Tue) by tialaramex (subscriber, #21167)
In reply to: Kamp: A Generation Lost in the Bazaar by drag
Parent article: Kamp: A Generation Lost in the Bazaar

You seem to have only the vaguest idea what was going on with NT and personalities, so I guess it might help to fix some of that before we get to the "Why" part

- There is no real "NT userland". The NT-specific stuff all lives below the personalities, and is thus accessible from all of them. Unlike a Unix Microsoft does not officially document and support the system call interface to their kernel.
- Win32 originates in Windows NT (although obviously the design owes plenty to Win16) and was present as a personality essentially from the platform début. This is the "native" personality of NT operating systems, and the one with access to all the nice toys invented in the last 25 years.
- The original POSIX and OS/2 subsystems date to the early 1990s too.

You're correct that POSIX is present because it was felt to be advantageous in contract negotiations. You would be wrong if you imagined that Microsoft intended /anyone/ to use this interface. It's drastically hobbled, implementing only a bare minimum of POSIX features and serving to demonstrate (as someone has commented above) that POSIX is "useless" because it doesn't specify enough to build much real software. BSD sockets, for example, are not a mandatory POSIX feature, and thus Microsoft omits them. Likewise X is not present, nor is any alternative Unix-like windowing system.

The OS/2 personality is there for the same reason. It's a checkbox item. Can this all-singing all-dancing NT run our old OS/2 software? Yes says the salesman. Then the NT stuff is installed, the OS/2 app doesn't work, and Microsoft explains that oops, that's using an unsupported API but hey, one of the many Windows ISVs will be happy to offer you an alternative that does run on NT.

Services For Unix isn't an evolution of the POSIX personality. It's Microsoft reluctantly accepting the reality that people wanted to actually _run_ Linux software (hence all the GNU utilities) on their expensive NT systems and that all too often now the IT management is present when the salesman makes his pitch and will laugh uncontrollably if the POSIX personality is mentioned. They needed a new pig, as my old CEO would say. So they bought Interix (which is what customers who desperately needed this stuff to actually work had been using instead of the POSIX personality) and renamed it SFU (I'm surprised they couldn't find an excuse to insert a 'T' in that abbreviation) but of course they've essentially allowed it to stagnate so that it's becoming irrelevant again.

It's a mistake to imagine that NT's innards resemble those of a Unix at all. It's similarly _capable_ but that's all. Roughly everything you can do on Linux from a certain era you can also do on NT from that era. But the /way/ you do them is very different. There is a different philosophy at work in the Microsoft kernel team than in Linus' project.

Today the Microsoft salesman will deflect questions about cross platform compatibility by suggesting that you can run all your "legacy" (ie non-Microsoft) software in a virtual machine. If you're dumb enough to fall for that, you deserve everything you will get.


(Log in to post comments)

Microsoft cross-platform

Posted Aug 21, 2012 13:39 UTC (Tue) by Wol (guest, #4433) [Link]

Actually means your old Windows software will run on your new Windows.

Which may be true for stuff MS wrote, but I have problems running WordPerfect on XP, and on 7 it won't even think of installing!

Cheers,
Wol

Microsoft cross-platform

Posted Aug 22, 2012 12:09 UTC (Wed) by vonbrand (subscriber, #4458) [Link]

It's not. A MSFT written game (forgot details) for Win98 which exactly met WinNT 4.0's specifications wouldn't make it past its splash screen.

Microsoft cross-platform

Posted Aug 22, 2012 15:01 UTC (Wed) by cortana (subscriber, #24596) [Link]

IIRC, DirectX on NT 4 never made it past version 2, so it's not surprising that a game written by MS (and hence one that probably relied on the latest DirectX) wouldn't work.

Kamp: A Generation Lost in the Bazaar

Posted Aug 22, 2012 8:42 UTC (Wed) by drag (subscriber, #31333) [Link]

> BSD sockets, for example, are not a mandatory POSIX feature, and thus Microsoft omits them.

Microsoft SUA supports BSD sockets. In Ipv6, no less. But that's neither here nor there and thanks for the mini lesson on NT personalities. I am not a NT guy.

I am sure that we all can agree at this point that POSIX has no relevance any more if your concern is about portable software. It still may be useful for some API lawyering, but besides that it is entirely insufficient for most software.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds