3 ms·
In 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 "gl
by beagle3 11y ago
In 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.