Microsoft POSIX subsystem

Last updated
Microsoft POSIX subsystem
Developer(s) Microsoft
Initial releaseJuly 27, 1993;31 years ago (1993-07-27)
Operating system Microsoft Windows
Platform IA-32, Alpha, MIPS, PowerPC
Successor Windows Services for UNIX
Standard(s) POSIX.1 standard
(IEEE Std 1003.1-1990 / ISO/IEC 9945-1:1990)
Type Compatibility layer

Microsoft POSIX subsystem is one of four subsystems shipped with the first versions of Windows NT, the other three being the Win32 subsystem which provided the primary API for Windows NT, plus the OS/2 and security subsystems.

Contents

This subsystem implements only the POSIX.1 standard   also known as IEEE Std 1003.1-1990 or ISO/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 any Unix commands out of the box, except for pax. 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 for POSIX Threads or POSIX IPC.

The POSIX subsystem shown next to the Win32 and OS/2 subsystem in the architecture of Windows NT Windows 2000 architecture.svg
The POSIX subsystem shown next to the Win32 and OS/2 subsystem in the architecture of Windows NT

The NT POSIX subsystem was included with the first versions of Windows NT because of 1980s US federal government requirements listed in Federal Information Processing Standard (FIPS) 151-2. [1] Briefly, these documents 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 versions 3.5, 3.51 and 4.0 were certified as compliant with FIPS 151-2.

The runtime environment of the subsystem is provided by two files: psxss.exe and psxdll.dll. A POSIX application uses psxdll.dll to communicate with the subsystem while communicating with posix.exe to provide display capabilities on the Windows desktop.

The POSIX subsystem was replaced in Windows XP and Windows Server 2003 by "Windows Services for UNIX", [2] (SFU) which is based in part on OpenBSD code and other technology developed by Interix, 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 the Windows Subsystem for Linux [7] (WSL) in the Windows 10 Anniversary Update and Windows Server 2016 Version 1709 [8] [9] respectively.

See also

Related Research Articles

The Portable Operating System Interface is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines system and user-level application programming interfaces (APIs), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems. POSIX is also a trademark of the IEEE. POSIX is intended to be used by both application and system developers.

<span class="mw-page-title-main">Shell script</span> Script written for the shell, or command line interpreter, of an operating system

A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be command languages. Typical operations performed by shell scripts include file manipulation, program execution, and printing text. A script which sets up the environment, runs the program, and does any necessary cleanup or logging, is called a wrapper.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs access API functionality via dynamic-link library (DLL) technology.

In computing, a symbolic link is a file whose purpose is to point to a file or directory by specifying a path thereto.

In computing, the Windows Sockets API (WSA), later shortened to Winsock, is an application programming interface (API) that defines how Windows network application software should access network services, especially TCP/IP. It defines a standard interface between a Windows TCP/IP client application and the underlying TCP/IP protocol stack. The nomenclature is based on the Berkeley sockets API used in BSD for communications between programs.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

<span class="mw-page-title-main">Windows NT 3.1</span> First major release of Windows NT, released in 1993

Windows NT 3.1 is the first major release of the Windows NT operating system developed by Microsoft, released on July 27, 1993. It was the company's first 32-bit operating system, providing advantages over the constrictive 16-bit architecture of previous versions of Windows that relied on DOS, but retaining a desktop environment familiar to Windows 3.1 users.

Interix was an optional, POSIX-conformant Unix subsystem for Windows NT operating systems. Interix was a component of Windows Services for UNIX, and a superset of the Microsoft POSIX subsystem. Like the POSIX subsystem, Interix was an environment subsystem for the NT kernel. It included numerous open source utility software programs and libraries. Interix was originally developed and sold as OpenNT until purchased by Microsoft in 1999.

Windows Services for UNIX (SFU) is a discontinued software package produced by Microsoft which provided a Unix environment on Windows NT and some of its immediate successor operating-systems.

<span class="mw-page-title-main">Architecture of Windows NT</span> Structure of the operating system

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

<span class="mw-page-title-main">Winlogon</span> Component of Microsoft Windows operating systems

Winlogon is the component of Microsoft Windows operating systems that is responsible for handling the secure attention sequence, loading the user profile on logon, creates the desktops for the window station, and optionally locking the computer when a screensaver is running. The roles and responsibilities of Winlogon have changed significantly in Windows Vista and later operating systems.

A hybrid kernel is an operating system kernel whose architecture attempts to combine aspects and benefits of microkernel and monolithic kernel architectures used in operating systems.

Resource Kit is a term used by Microsoft for a set of software resources and documentation released for their software products, but which is not part of that product. Resource kits offer supplementary resources such as technical guidance, compatibility and troubleshooting information, management, support, maintenance and deployment guides and multipurpose useful administrative utilities, which are available separately.

Security Support Provider Interface (SSPI) is a component of Windows API that performs security-related operations such as authentication.

Windows NT is a proprietary graphical operating system produced by Microsoft as part of its Windows product line, the first version of which, Windows NT 3.1, was released on July 27, 1993. Originally made for the workstation, office, and server markets, the Windows NT line was made available to consumers with the release of Windows XP in 2001. The underlying technology of Windows NT continues to exist to this day with incremental changes and improvements, with the latest version of Windows based on Windows NT being Windows 11 in 2021.

<span class="mw-page-title-main">Unix-like</span> Operating system that behaves similarly to Unix, e.g. Linux

A Unix-like operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like application is one that behaves like the corresponding Unix command or shell. Although there are general philosophies for Unix design, there is no technical standard defining the term, and opinions can differ about the degree to which a particular operating system or application is Unix-like.

In computing on Microsoft platforms, WoW64 is a subsystem of the Windows operating system capable of running 32-bit applications on 64-bit Windows. It is included in all 64-bit versions of Windows, except in Windows Server Server Core where it is an optional component, and Windows Nano Server where it is not included. WoW64 aims to take care of many of the differences between 32-bit Windows and 64-bit Windows, particularly involving structural changes to Windows itself.

Environmental subsystems are central components of operating systems of the Windows NT type. They allow the operating system to run software developed for the platform in question. For example, Windows NT 4.0 has four environmental subsystems, for example Win32, DOS or Win16, OS/2, and POSIX, the latter of which is a Unix standard. The latter resides primarily in the Dynamic Link Library posix.dll.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Feature that provides for a Linux operating system within Windows

Windows Subsystem for Linux (WSL) is a feature of Microsoft Windows that allows for using a Linux environment without the need for a separate virtual machine or dual booting. WSL is installed by default in Windows 11. In Windows 10, it can be installed either by joining the Windows Insider program or manually via Microsoft Store or Winget.

References

  1. "Federal Information Processing Standards Publication 151-2". Archived from the original on 2014-02-20. Retrieved 2008-09-03.
  2. "POSIX and OS/2 are not supported in Windows XP or in Windows Server 2003". Archived from the original on 2013-03-28.
  3. Dohnert, Roberto J. (2004-01-21), "Review of Windows Services for UNIX 3.5", OSNews , David Adams, archived from the original on 2008-02-11
  4. Reiter, Brian (2010-01-26). "WONTFIX: select(2) in SUA 5.2 ignores timeout". brianreiter.org.
  5. "Microsoft Acquires Softway Systems To Strengthen Future Customer Interoperability Solutions", Microsoft News Center, Microsoft, 1999-09-17
  6. "Milltech Consulting Inc". 2019. Archived from the original on 2020-09-18. Retrieved 2020-06-23.
  7. Hammons, Jack (22 April 2016). "Windows Subsystem for Linux Overview". Microsoft Developer Network (MSDN). Microsoft. Retrieved 21 December 2016.)
  8. Turner, Rich (9 August 2017). "WSL arrives on Windows Server!". Microsoft Developer Network (MSDN). Rich Turner of Microsoft. Retrieved 8 March 2018.
  9. Cooley, Sarah. "Install the Linux Subsystem on Windows Server". Microsoft Docs. Microsoft. Retrieved 8 March 2018.

Further reading