POSIX Subsystem

From ReactOS Wiki
Jump to: navigation, search

Why a POSIX Subsystem?

Application compatibility is one of the main goals of ReactOS. This goal has been reached to some extent with the main core of Win32/WinNT applications, but this can also include compatibility with programs designed for other Operating Systems. NT originally included IBM OS/2 and UNIX's POSIX API standard (although they are no longer present in home editions of XP and vista). Including these will allow a richer OS, since more applications will be able to run, and would be in keeping with the NT historical precedent. Of these 2 interface's POSIX is probably the most significant since the majority of free open-source software is written for the POSIX compliant linux/BSD's, and would encourage the FOSS community.

What benefits would a POSIX Subsystem offer?

A POSIX implementation as a subsystem would have considerable advantages over the use of a Virtual Machine, or VM, running UNIX/Linux, as VMs tend to consume considerably more RAM and Processing Power. An implementation as a subsystem, if done properly would allow seamless integration with win32 apps (or vice-versa :p) including clipboard access and potentially graphical rendering. Finally, an implementation as a subsystem would be a techinical vindication for the NT architecture.

Okay then! How far have we got?

The development of the POSIX subsystem has already begun, mainly by KJK::Hyperion (See his notes on the POSIX Subsystem). Development has since stalled and the previous work has been removed from the ReactOS SVN tree as of revision 21379 by Dr. Fred, at the request of KJK::Hyperion. Several options have been considered for the new POSIX Subsystem, including the ideas of building off of existing projects, such as coLinux or WINNT POSIX.

The POSIX Subsystem was the subject of a 2004 letter between Wine Developer Shachar Shemesh, and ReactOS/Wine Developer Steven Edwards, which you can read here.

See Also