[libdispatch-dev] linux port

Mark Heily mark at heily.com
Fri Sep 25 13:40:09 PDT 2009


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




More information about the libdispatch-dev mailing list