3 ms·
The NT Kernel has some cool features. One of them is that it has environment subsystems. So it has POSIX environment subsystem, Win32 subsystem , OS/2 subsystem
by UK-AL 11y ago
The NT Kernel has some cool features. One of them is that it has environment subsystems. So it has POSIX environment subsystem, Win32 subsystem , OS/2 subsystem. So it's not limited by the win32 api.
Most of these are no longer maintained, but has the capability to do so.
- beagle3 11y agoIn what way do these "environment subsystems" differ from a user-level library? Linux has a Win32 subsystem, it's called "Wine", and POSIX subsystems called "glibc" and "musl". Seriously, what makes these "subsystems" different than "libraries", other than they are shipped with the OS?
- pjmlp 11y agoYou cannot implement features like fork() without kernel level support. This is just one example.
- beagle3 11y agoThere have, in fact, been multiple fork() implementation for Windows without kernel support. They weren't very efficient, but IIRC, only in version 1.7 (at about 15 years of age), did the Cygwin fork() implementation start to use kernel support. And that still does not answer my question: In what way is the "NT kernel subsystem" different from a user mode library? Either the underlying kernel supports the features you need, or it doesn't. From my perspective, there's an NT kernel (with the so-called Native API) and a few libraries that make it look like Win32 or severely limited POSIX or at one point in time OS2.
- pjmlp 11y agoBut that is the whole point, efficiency. They are some kind of blessed libraries, you cannot do everything they are able to do with plain userspace code. I don't remember all the technical details from "Inside Windows Kernel" book series to discuss it further, but I can have a look.
- jandrese 11y agoThe POSIX subsystem was one of the worst offenders for the "checkbox marketing" abuse that I've ever seen. I am hard pressed to think of anybody who successfully used it for anything because it came with so many caveats right out of the box. Microsoft implemented the absolute minimum they needed to check the box and nothing more. I don't know about the OS/2 subsystem, but I wouldn't be surprised if it was only sufficient to run Lotus Notes or something back when that was a relevant business need.