BeOS: Porting UNIX Applications

We've covered the relevance of POSIX in the makeup of the BeOS a number of times. While a majority of the software written for the BeOS will use the BeOS C++/object-based environment, a significant proportion is expected to be made up of UNIX-style tools and utilities.
In order to make this possible, Be needed to build a UNIX-like interface to the complex BeOS system, and that presented a problem. There is no such thing as a single UNIX OS. Most commercial UNIX operating systems, including HP-UX, Solaris, and SCO, are made up of elements from the two main schools of UNIX software, BSD and AT&T (System V). Even different versions from the same vendor are not tied to one particular variety. If any UNIX limited itself to only the "standard" functions, we wouldn't have access to the tools and utilities most people consider to be the standard, such as NIS (Network Information Service), DNS (Domain Name Service), and NFS (Network File Service) at a network level and sockets and streams at an OS level.
Rather than trying to adhere to a specific UNIX standard, Be decided to reverse the position and follow the standard that UNIX vendors, and vendors of other OSs, use as their guide to developing their OS. This standard is POSIX, and we will take a brief look at the effect of POSIX on UNIX and how the POSIX support has been implemented on the BeOS, and how this pertains to the porting process.