| Microsoft POSIX subsystem | |
|---|---|
| Developer | Microsoft |
| Initial release | July 27, 1993; 32 years ago (1993-07-27) |
| Operating system | Microsoft Windows |
| Platform | IA-32,Alpha,MIPS,PowerPC |
| Successor | Windows Services for UNIX |
| Standards | POSIX.1standard (IEEE Std 1003.1-1990 /ISO/IEC 9945-1:1990) |
| Type | Compatibility layer |
Microsoft POSIX subsystem is one offour subsystems shipped with the first versions ofWindows NT, the other three being theWin32 subsystem which provided the primaryAPI for Windows NT, plus theOS/2 andsecurity subsystems.
The subsystem only implements thePOSIX.1standard – also known asIEEE Std 1003.1-1990 orISO/IEC 9945-1:1990 – primarily covering the kernel and C library programming interfaces which allowed a program written for other POSIX.1-compliant operating systems to be compiled and run under Windows NT. The Windows NT POSIX subsystem did not provide the interactive user environment parts of POSIX, originally standardized as POSIX.2. That is, Windows NT did not provide a POSIX shell nor anyUnix commands out of the box, except forpax. The NT POSIX subsystem also did not provide any of the POSIX extensions that postdated the creation of Windows NT 3.1, such as those forPOSIX Threads or POSIXIPC.

The NT POSIX subsystem was included with the first versions of Windows NT because of 1980sUS federal government requirements listed inFederal Information Processing Standard (FIPS) 151-2.[1] This standard required that certain types of government purchases be POSIX-compliant, so that if Windows NT had not included this subsystem, computing systems based on it would not have been eligible for some government contracts. Windows NT versions3.5,3.51 and4.0 were certified as compliant with FIPS 151-2.
Theruntime environment of the subsystem is provided by two files:psxss.exe andpsxdll.dll. A POSIX application usespsxdll.dll to communicate with the subsystem while communicating withposix.exe to provide display capabilities on the Windows desktop.
The POSIX subsystem was replaced inWindows XP andWindows Server 2003 by "Windows Services for UNIX",[2] (SFU) which is based in part onOpenBSD code and other technology developed byInterix, a company later purchased by Microsoft.[3][4][5][6] SFU was removed from later versions of Windows 8 and Windows Server 2012. SFU is logically, though not formally, replaced by theWindows Subsystem for Linux[7] (WSL) in theWindows 10 Anniversary Update andWindows Server 2016 Version 1709[8][9] respectively.