4 ms·
I've read comments where people wrote that NT always had some kind of POSIX subsystem, and it has probably just now been completed and expanded. Can't find any
by whatever_dude 11y ago
I've read comments where people wrote that NT always had some kind of POSIX subsystem, and it has probably just now been completed and expanded.
Can't find any substantial writings on this, but it seems likely.
- barrkel 11y agoNot only did NT have a POSIX subsystem, but once upon a time I used it (when it was packaged as SFU, Services for Unix). It wasn't a pleasant experience. This will have been quite a bit more work than just a POSIX layer, IMO; POSIX defines a bunch of low-level functions that lie just under the C runtime library, but Linux defines a bunch more that expect a certain view of the world - things like clone(2), which lets you selectively choose what the forked process gets to inherit. POSIX only specifies fork(2). Linux implements fork(2) in terms of clone(2). And POSIX defines the API at the level of C; this will have had to implement the Linux ABI, where it differs from Win64. A minor detail of a bunch of assembly stubs, but work nonetheless.
- LukeShu 11y agoTo nitpick: On Linux, glibc implements fork(3) in terms of clone(2). Linux still has an independent fork(2), but nothing uses it.
- alwaysdownvoted 11y agoI still use SUA every day when I'm forced to use Windows. (I also run Linux binaries on BSD.) SUA is based on an old version of BSD, not GNU. tcsh, csh and sh. The compiler works. There is an old version of lex. For some of the userland, Windows binaries are provided, such as vi. It's better than nothing. Why did MS remove SUA from Windows 10? What harm would it do to remain an optional add-in as it was in Windows 7? Why do users have to upgrade to Windows 10 to use Linux binaries? Seems like Microsoft will do _anything_ to get users to upgrade. What are the privacy implications of Windows 10? Microsoft is very untrustworthy. Will users be able to run their own Linux binaries on Windows? Windows has never been a "pleasant experience". It's the unpleasantness of it that makes the alternative, UNIX, so appealing.
- deleted 11y ago[deleted]
- JdeBP 11y ago> The compiler works. ... but is too outdated to be capable of bootstrapping clang. There's very probably a long chain of bootstraps that would achieve it, but there's not a direct route. > Will users be able to run their own Linux binaries on Windows? The answer to that is easily determined from the demo video that Microsoft published. In it, Russ Alexander compiles a program with (Ubuntu binary) GCC and and runs it. Its implicit int in the declaration of main() was jarring. (-:
- JdeBP 11y ago> It wasn't a pleasant experience. In my experience the differing perception of pleasure, certainly with the Interix-derived Windows NT POSIX subsystem rather than the original one, is usually a result of the toolset being BSD rather than GNU. I don't have much trouble with the BSD toolset, myself, especially when switching between Windows and an actual BSD. (-: In addition to the fact that a number of the "Does this new subsystem ...?" questions are answerable as "No; but the old POSIX subsystem did." (https://news.ycombinator.com/item?id=11416392 https://news.ycombinator.com/item?id=11416392) the POSIX subsystem has some stuff that we're simply not going to get with a Linux subsystem that has vanilla Linux binaries including libraries right down to the system call level. There are things that only come by adjusting libraries and binaries, because they are above the raw system call level. The POSIX subsystem integrates the user account database access library routines with the Windows SAM, for example. So "ls -l" shows the actual Windows usernames. The POSIX subsystem also comes with a "service" command that understands and can work with the SCM, for another example. I'd like to see the POSIX subsystem reintroduced. It's a major reason not to use Windows 10.
- EvanAnderson 11y agoNT shipped w/ a POSIX subsystem. Later, Microsoft acquired Interix (https://en.wikipedia.org/wiki/Interix https://en.wikipedia.org/wiki/Interix), a more fully-featured POSIX subsystem. I have fond memories, in the late 1990's, of running GNU tools on NT under Interix.
- TeMPOraL 11y agoSame here. It's like everyone forgot there was such a thing as SFU/SUA. I found it much more pleasant to work with than Cygwin.
- krylon 11y ago> It's like everyone forgot there was such a thing as SFU/SUA Well, it's not like Microsoft made much of an effort to remind people. It was discontinued as a separate project after about Windows XP. It continued to be part of Windows Server[1], but AFAIK, it was no longer present in the client versions. [1] at least until 2008 or 2008 R2, I didn't check later versions.
- dboreham 11y agoIt was documented in the original NT manuals in 1992 which I still have on the bookshelf in pristine condition.
- nradov 11y agoMicrosoft implemented a minimal POSIX subsystem in Windows NT 3.1 as a checklist feature because at the time some government procurement rules required POSIX compatibility. They didn't expect anyone to actually use it and it was so limited that you couldn't really use it for much in practice.