【发布时间】:2012-07-06 18:10:33
【问题描述】:
我正在 Linux 内核中编写一个通过网络发送数据的驱动程序。现在假设我要发送的数据(缓冲区)在内核空间中。我如何在不创建套接字的情况下发送数据(首先这是一个好主意吗?)。我正在寻找代码中的性能而不是简单的编码。我如何设计接收端?没有套接字连接,我可以在接收端获取和查看数据吗(如何)?如果缓冲区在用户空间中,所有这些都会改变(包括性能)(如果有的话,我会从用户那里复制:-))?
【问题讨论】:
-
这是什么设备?什么样的网络?
-
我想实现一个适用于所有网络设备的通用驱动程序。好吧,我已经阅读了太多禁止我在内核空间内编写网络代码的文章。想看看如果我这样做会发生什么
-
我今天遇到了一个新想法。如果我在用户空间中创建一个套接字描述符并在我的驱动程序的模块插入期间传递它并使用它直到它被卸载,这是否有意义> 它仍然可以帮助我节省上下文切换的时间。只是一个随机的想法需要知道这是否比我原来的问题更好
标签: linux network-programming linux-kernel linux-device-driver