> The Linux devs had 5 years to come up with the inotify design because their API is more flexible.
That doesn't even begin to make sense. There's nothing inherent in the kqueue API that mandates that all filter types be defined upfront and never be extended or modified.
> On Linux epoll is far more extensible because it just means adding a new descriptor type.
How is that more extensible? The whole point of kqueue is that there exists a class of event types for which a read-based FD API is not the most efficient mechanism for event dispatch.
> Apple apparently has added a completely different approach to fs notifications. Based on a device and a deamon. Why didn't they just add an EVFILT_DIR, if that's as easy as you claim?
Corporate developer politics. The people working on kqueue and the people working on Spotlight (the primary FSEvent consumer) were in two separate universes.
> Why didn't the BSDs do it?
It clearly hasn't been a priority for anyone; kqueue meets most needs just fine.