User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

developersguide:posixandminix [2014/11/11 08:52] external edit
developersguide:posixandminix [2014/11/12 10:55] (current)
Line 1: Line 1:
 +====== POSIX and MINIX 3 ======
 +MINIX 3 is POSIX conformant. This document discusses what that means.
 +=====  What is POSIX? ​ =====
 +<​code> ​
 +"To make it possible to write programs that could run on any UNIX
 +system, IEEE developed a standard for UNIX, called POSIX, that most
 +versions of UNIX now support. ​ POSIX defines a minimal system call
 +interface that conformant UNIX systems must support. ​ In fact, some
 +other operating systems now also support the POSIX interface."​
 +    -- Operating Systems Design and Implementation,​ 2nd ed., p. 11
 +Before the release of Minix 2.0.0, efforts were made to check
 +it against the then-current version of the official POSIX standard,
 +//​International Standard ISO/IEC 9945-1//, also known as 
 +//ANSI/IEEE Std 1003.1, First edition, 1990-12-07//​.  ​
 +The full name of the document is ''​Information Technology -- Portable Operating System Interface (POSIX)
 +part 1: System Application Programming Interface (API) [C Language]''​. ​
 +There have been a number of revisions and extensions since 1990. As of early
 +2005, the latest version of the basic document is known as
 +''​IEEE Std 1003.1, 2004 Edition, Single UNIX Specification Version 3
 +=====  Where Can I Get a Copy of the POSIX Standard? =====
 +Hard copy is available from the
 +[[http://​​ |IEEE (Institute of Electrical and Electronics Engineers)]] ​
 +in New York.  It's expensive, however. ​ Even paying to have a PDF document e-mailed to you is quite
 +expensive. ​ You can get information on purchasing IEEE documents
 +on-line at [[http://​​ | http://​​]].  ​
 +You might also do well to look in the engineering library of a local university.  ​
 +Possibly more useful than the IEEE document, and certainly considerably
 +less expensive, is the book 
 +[[http://​​catalog/​posix/​index.html|POSIX Programmer'​s Guide]], ​
 +by Donald Lewine, published by O'​Reilly. ​ It's listed at about US$35 on
 +[[http://​​exec/​obidos/​tg/​detail/​-/​0937175730/​qid=1109451696/​sr=1-6/​ref=sr_1_6/​103-8500237-7807003?​v=glance&​amp;​s=books|Amazon]], ​
 +with used copies from US$16 (prices noted Feb 2005) .
 +[[http://​​|Open Group]]
 +has the [[http://​​version3/​|Single Unix Specification]] ​
 +online. ​ They want you to register, but you can read documents on-line
 +for free.  You can also buy hard copy or text on CD-ROMs, from their
 +site, but these are expensive, too.  ​
 +=====  Does POSIX Compliance Mean I Can Compile Any Program from Another POSIX-Compliant System on MINIX 3?  =====
 +Well, maybe... ​ in principle, yes, but many systems (Minix included)
 +provide extensions to the basic C library functions defined by POSIX,
 +so you may have to deal with these in porting a program. ​ Also,
 +standards, no matter how carefully defined, may contain elements that
 +can be interpreted more than one way.  Many things outside the scope of
 +a standards document may make porting a program difficult. ​ The GNU
 +version of the //make(1)// utility, for instance, provides
 +facilities that are not present in the Minix version; you might have to
 +either port GNU make first or devote some effort to modifying a
 +Makefile before you could compile on Minix a package developed on a
 +GNU-ish system. ​ Finally there may be basic assumptions about system
 +resources that affect how a program works. ​ One that often affects
 +Minix users is the lack of virtual memory -- programmers writing for
 +environments that provide virtual memory may assume that memory is
 +effectively unlimited. ​ This is very much a problem with 16-bit Minix;
 +for 32-bit Minix it is becoming less problematic as newer computers
 +come equipped with amounts of physical memory undreamed of just a few
 +years ago.
developersguide/posixandminix.txt · Last modified: 2014/11/12 10:55 by lionelsambuc