This article gives a fairly good review on common event multiplexing techniques, especially the difference between epoll (in Linux) and kqueue (in BSD).
There are also some interesting anecdotes enclosed in the post, such as:
- Stateful event multiplexing techniques (epoll, kqueue) are derived from the paper by Banga et al, published at USENIX ATC 1999.
- kqueue is technically superior to epoll.
- It is often quoted that “In Unix, everything is a file”, but it is not always true.