2011-05-23 79 views
1

的libev(source)文檔說:kqueue有什麼限制?

KQUEUE特別值得一提,因爲在寫這篇文章的時候,它是在所有的BSD破除NetBSD的(通常不可靠地與任何東西,但工作插座和管道,達爾文除外,當然它完全沒用)。

它還提到:

的kqueue的系統調用在所有已知的版本破 - 大多數版本僅支持插座,許多支撐管。

那麼,kqueue的侷限性是什麼?這些限制在哪裏有記錄?最初的研究發現了舊版操作系統(Mac OS X 10.3)上的內核恐慌以及有關錯誤/不完整文檔的抱怨。我不知道這些來源有多可靠。

特別是,如果kqueue可以通過套接字(AF_UNIX,AF_INET和AF_INET6)可靠地工作,那麼我不介意。我對有關Mac OS X和FreeBSD實現的信息特別感興趣。

回答

3

在OS X上,您應該沒有AF_UNIXAF_INETAF_INET6的問題。如果您想在OS X < 10.9上使用PTY,則會遇到問題,因爲這些版本不支持PTY。有一些證據表明,在OS X 10.9上,PTYs最終得到了支持。

如果您嘗試使用非文件描述符通知,您將開始遇到其他限制(例如,AIO不受支持)。

我不熟悉FreeBSD的kqueue實現。也許別人可以添加一些關於它的信息。

1

kqueue完全適用於FreeBSD,至少在網絡方面。我已經使用多達180k個連接的活動插座測試了自己的網絡。我不知道AIO ..沒有測試過自己。