Standard order for most features that presented here...
(Briefly) what is it?
When did it appear on Linux?
2.6.0 probably means "sometime in 2.5.x".
Which Unix implementations support it, or something similar? Is it standardised?
Why use it? What shortcomings or limitations does it address?
How does it work? How is it used (sample code)?
Where can more information be found?
SUSv3 specification is often useful, online at http://www.unix-systems.org/version3/.
POSIX manual pages are distributed with Linux, e.g.:
man 3p sem_open
What I'd love to be able to say...
(C) 2006, Michael Kerrisk