kqueue有哪些局限性?

时间:2011-05-23 14:03:01

标签: networking kqueue libev

libev(source)的文档说:

  

Kqueue特别值得一提,因为在撰写本文时,除了NetBSD之外,它在所有BSD上都被破坏了(除了在套件和管道之外的任何东西,除了在达尔文,当然它完全没用)

它还提到:

  

kqueue系统调用在所有已知版本中都被破坏 - 大多数版本仅支持套接字,许多支持管道。

那么,kqueue的局限性是什么?这些限制在哪里记录?初步研究发现旧操作系统(Mac OS X 10.3)上的内核恐慌以及有关错误/不完整文档的投诉。我不知道这些来源有多可靠。

特别是,如果kqueue与套接字(AF_UNIX,AF_INET和AF_INET6)可靠地工作,那么我不介意。我对有关Mac OS X和FreeBSD实现的信息特别感兴趣。

2 个答案:

答案 0 :(得分:4)

在OS X上,您不应该遇到AF_UNIXAF_INETAF_INET6的问题。如果你想在OS X上使用PTY,那么你会遇到问题。 10.9,因为这些版本不支持PTY。有证据表明在OS X 10.9上,最终支持PTY。

如果您尝试使用非文件描述符通知,您将开始遇到其他限制(例如,不支持AIO)。

我不熟悉FreeBSD的kqueue实现。也许其他人可以添加一些有关它的信息。

答案 1 :(得分:1)

kqueue完全适用于FreeBSD,至少对于网络而言。我已经使用高达180k连接的活动套接字测试了自己的网络内容。我不知道AIO ..还没有测试过自己。