我正计划深入研究 Linux TCP/IP 堆栈。我应该研究哪个内核版本的源代码树——它在概念上应该更接近当前的内核代码,但更容易掌握和理解。或者我应该研究像 lwip 这样的其他项目。
我的目标是了解有关设备驱动程序级别以上网络的所有内容。
谢谢。
我正计划深入研究 Linux TCP/IP 堆栈。我应该研究哪个内核版本的源代码树——它在概念上应该更接近当前的内核代码,但更容易掌握和理解。或者我应该研究像 lwip 这样的其他项目。
我的目标是了解有关设备驱动程序级别以上网络的所有内容。
谢谢。
lwip
是一件好事。这是基本功能的一个非常简单的实现。此外,您可以轻松地在用户空间中创建两个“虚拟主机”以查看它的运行情况——例如,只需创建两个通过管道相互通信的进程。这样你就可以得到基本的了解。那么你绝对应该看看现代linux
代码。
我从一位网络程序员那里得到的一个建议是首先查看内核 1.0 源代码,然后逐渐使用最新的 3.X 内核源代码。
uname -r
安装最近的 linux 发行版(例如 Ubuntu),并通过执行命令查看它使用的内核版本。下载此命令显示的版本。
linux内核编译的第一步是配置设置。通过下载与您的发行版安装的内核版本相同的内核版本,您将能够make oldconfig
毫不费力地运行和导入所有这些配置,因此您可以专注于学习网络堆栈的实现。