| Rev | Author | # | Line |
|---|---|---|---|
| 10 | StuartYeates | 1 | Acronym for __P__ortable __O__perating __S__ystem __I__nterface Uni__X__. |
| 2 | |||
| 14 | StuartYeates | 3 | [ISO]/IEC 9945 / [IEEE] Std 1003.1-1988. |
| 4 | |||
| 16 | IanMcDonald | 5 | An attempt to define a standard interface for all [UNIX] systems from different vendors and fight the "[BSD] vs. System V" split and the tendency of commercial operating systems to fragment and diverge. |
| 10 | StuartYeates | 6 | |
| 7 | POSIX is a large (some might even say unwieldy) standard (officially [IEEE] Standard 1003) specifying things such as the behaviour (arguments, etc) of standard programs and utilities that must exist on a system and [C] library functions. The theory is that if you write a program that conforms to POSIX standards, it will compile and run on any POSIX-compliant operating system. | ||
| 12 | StuartYeates | 8 | |
| 16 | IanMcDonald | 9 | The current standard is available at: http://www.opengroup.org/onlinepubs/009695399/ but is not for re-distribution. There is also [special permission|http://standards.ieee.org/announcements/pr_linuxman.html] for extracts from the (copyrighted) standard to be used in Linux manual pages. |
| 11 | JohnMcPherson | 10 | |
| 14 | StuartYeates | 11 | It used to be significantly harder for individuals to get copies of the standard, leading to comments such as |
| 11 | JohnMcPherson | 12 | |
| 16 | IanMcDonald | 13 | <pre> |
| 11 | JohnMcPherson | 14 | /* |
| 15 | * ok, as I hadn't got any other source of information about | ||
| 16 | * possible error numbers, I was forced to use the same numbers | ||
| 17 | * as minix. | ||
| 18 | * Hopefully these are posix or something. I wouldn't know (and posix | ||
| 19 | * isn't telling me - they want $$$ for their f***ing standard). | ||
| 20 | ... | ||
| 21 | */ | ||
| 16 | IanMcDonald | 22 | </pre> |
| 11 | JohnMcPherson | 23 | |
| 24 | in errno.h from the Linux kernel (version 0.01). | ||
| 10 | StuartYeates | 25 | |
| 26 | ---- | ||
| 27 | Some parts of the standard (particularly the bits that are relevant to the [Linux] [Kernel] and UserSpace: | ||
| 28 | |||
| 29 | 1003.1 defines the core functions and behaviours, as well as things like the standard ErrorMessages. | ||
| 30 | |||
| 31 | 1003.1b includes real-time extensions. | ||
| 32 | |||
| 33 | 1003.2 defines extra things such as standard RegularExpression syntax and behaviour, asynchronous I/O, and real time signal queues. | ||
| 34 | |||
| 35 | See also [POSIXLY_CORRECT]. | ||
| 11 | JohnMcPherson | 36 | |
| 10 | StuartYeates | 37 | ---- |
| 38 | From "The Open Group Base Specification Issue 6": | ||
| 39 | ;:The name POSIX was suggested by Richard Stallman. It is expected to be pronounced pahz-icks, as in positive, not poh-six, or other variations. The pronunciation has been published in an attempt to promulgate a standardized way of referring to a standard operating system interface. | ||
| 40 | |||
| 41 | Standardisation of the the pronounciation of the standards name I think is perhaps taking things too far. | ||
| 42 | |||
| 43 | POSIX® is a registered trademark of the Institute of Electrical and Electronic Engineers, Inc. | ||
| 44 | |||
| 45 | ---- | ||
| 46 | As an example what it was like trying to standardise the different functionality of the different unices, consider this from the documentation for gettext(1): | ||
| 47 | |||
| 16 | IanMcDonald | 48 | <pre> |
| 10 | StuartYeates | 49 | There are two competing methods for language independent messages: |
| 50 | the X/Open `catgets' method, and the Uniforum `gettext' method. The | ||
| 51 | `catgets' method indexes messages by integers; the `gettext' method | ||
| 52 | indexes them by their English translations. The `catgets' method has | ||
| 53 | been around longer and is supported by more vendors. The `gettext' | ||
| 54 | method is supported by Sun, and it has been heard that the COSE | ||
| 55 | multi-vendor initiative is supporting it. Neither method is a POSIX | ||
| 56 | standard; the POSIX.1 committee had a lot of disagreement in this area. | ||
| 57 | |||
| 58 | Neither one is in the POSIX standard. There was much disagreement | ||
| 59 | in the POSIX.1 committee about using the `gettext' routines vs. | ||
| 60 | `catgets' (XPG). In the end the committee couldn't agree on anything, | ||
| 61 | so no messaging system was included as part of the standard. I believe | ||
| 62 | the informative annex of the standard includes the XPG3 messaging | ||
| 63 | interfaces, "...as an example of a messaging system that has been | ||
| 64 | implemented..." | ||
| 16 | IanMcDonald | 65 | </pre> |
| 14 | StuartYeates | 66 | ---- |
| 67 | |||
| 68 | [POSIX] compliant systems include: | ||
| 69 | |||
| 70 | # [SunOS] / [Solaris] | ||
| 71 | # [HPUX] | ||
| 72 | # [MacOSX] | ||
| 73 | # [Debian] | ||
| 74 | # [RedHat] | ||
| 15 | StuartYeates | 75 | # [AIX] |
| 16 | IanMcDonald | 76 | # [MicrosoftWindows] (with addons) |
| 15 | StuartYeates | 77 | ... |
| 14 | StuartYeates | 78 | |
| 79 | Note that the Linux kernel itself is not a full [POSIX] system, because a full system includes things like awk(1) and vi(1). | ||
| 10 | StuartYeates | 80 | |
| 81 | ---- | ||
| 82 | CategoryStandards |
lib/blame.php:177: Warning: Invalid argument supplied for foreach()