[Info-vax] openvms and xterm

David Goodwin david+usenet at zx.net.nz
Fri Apr 26 00:36:41 EDT 2024


In article <v0c0a6$2ihq5$2 at dont-email.me>, ldo at nz.invalid says...
> 
> On Wed, 24 Apr 2024 21:52:36 +1200, David Goodwin wrote:
> 
> > The difference here is that Windows NT isn't limited to a single
> > userspace API/personality, historically it provided three (Win32, OS/2
> > and POSIX) in addition to its own Native API.
> 
> That?s the theory. In practice, it doesn?t seem to have worked very well. 
> The POSIX ?personality? for example, was essentially unusable.

There were two different POSIX personalities. There was the original 
POSIX Environment Subsystem was included since NT 3.1 for box checking 
purposes - it strictly implemented the POSIX specifications *and nothing 
more* making it not terribly useful for anything beyond bidding for 
government contracts that required "POSIX".

Then there was Interix which was a 3rd-party product that Microsoft 
acquired and renamed to Services for Unix (SFU). This was initially sold 
as a product and later given away for free. It was last made available 
for Windows 8 and Server 2012.

Interix worked quite well, but it wasn't Linux. IIRC getting stuff going 
on it was much the same as getting it going on some random proprietary 
Unix. But Microsoft did include GCC and a bunch of other stuff, and 
there was a community site providing more pre-built binaries.

> When the Windows engineers were working on WSL1, emulating Linux kernel 
> APIs on Windows, you would think they would have used this ?personality? 
> system. But they did not. I suspect it had already bitrotted into 
> nonfunctionality by that point.

Microsoft didn't re-architect Windows NT for the Windows 10 release or 
move all of Win32 into the kernel (why would they?). CSRSS is still 
there just like its always been providing the Win32 environment that 
most windows software runs under.

And its not like WSLv1 is some Cygwin-like thing sitting on top of 
Win32. Its even in the name: Windows Subsystem for Linux. WSLv1 is like 
Interix but taken several steps further to provide Linux binary 
compatibility and better performance. 

> In the end, they had to give up, and bring in an honest-to-goodness Linux 
> kernel, in WSL2.

Primarily because it gets them them the best compatibility (including 
kernel modules) with a wide selection of pre-built software for the 
least amount of work. Why go to all the effort reimplementing the whole 
Linux syscall interface and keeping it up-to-date when you could just 
run the Linux kernel in a VM.

Anyway, I'm not sure what your point is here. Are you trying to argue 
that moving code out of the kernel into userspace is a bad idea?



More information about the Info-vax mailing list