3 ms·
> The NT Kernel and OS was designed to run DOS, POSIX, ... What you're referring to were what the NT team called "personalities", or more formally "environment
by lobster_johnson 11y ago
> The NT Kernel and OS was designed to run DOS, POSIX, ...
What you're referring to were what the NT team called "personalities", or more formally "environment subsystems".
A subsystem was an API on top of the native NT API. Win32 was one such subsystem; users were exposed to the Win32 API, and weren't supposed to talk directly to the intentionally undocumented NT API (although some developers did reverse-engineer it eventually). POSIX and OS/2 compatibility was implemented as subsystems, but these were rarely used by anyone, and eventually removed in XP. DOS was not a subsystem, but rather its own thing.
Note that this has nothing to do with microkernels. In a microkernel architecture, things like file systems and device drivers live run as normal processes separate from the kernel. In NT, everything was in the kernel. These subsystems didn't act as part of a microkernel design.
Oh, and NT was not a rewrite of OS/2. It was written from scratch. The project was started back when Microsoft and IBM had a good relationship, and NT was originally planned to as OS/2 3.0.