David Leimbach wrote:
Anyone happen to know the history behind why linux chose to implement epoll when many other Unix's were already doing kqueues?
I'm sure someone had a reason somewhere, and I hope it's not just NIH syndrome.
Sometimes I think Linux exists because it is fun to reinvent Unix. Unfortunately, they usually do it badly :) Linus thinks kqueue is "silly" and too complicated: http://lkml.indiana.edu/hypermail/linux/kernel/0010.3/0013.html One Linux developer attempted (and failed) to get kevents added to the kernel. Apparently he is working on eventfs now: http://lwn.net/Articles/225714/ I think it would be possible to use a combination of Linux kernel facilities to emulate most of kqueue's functionality. Here's a rough mapping: epoll Sockets inotify Files and directories signalfd Signals timerfd Timers It looks like timerfd was released in one Linux kernel rev, and then withdrawn for futher rework of the API. I don't know if it will be reintroduced later. Regards, - Mark