《TCP/IP详解 卷2:实现》 —1.13 源代码组织

举报
华章计算机 发表于 2019/11/20 16:05:54 2019/11/20
【摘要】 本节书摘来自华章计算机《TCP/IP详解 卷2:实现》一书中第1章,第1.13节,作者是[美]加里R.赖特(Gary R.Wright),W. 理查德史蒂文斯(W.Richard Stevens),陆雪莹 蒋慧 等译 谢希仁 校。

1.13   源代码组织

图1-15所示的是Net/3网络源代码的组织,假设它位于目录/usr/src/sys。

image.png

图1-15   Net/3源代码组织

本书的重点在目录netinet,它包含所有TCP/IP源代码。在目录kern和net中我们也可找到一些文件。前者是协议无关的插口代码,而后者是一些通用联网函数,用于TCP/IP例程,如路由代码。

包含在每个目录中的文件简要地列于下面。

i386:Intel 80x86专用目录。例如,目录i386/isa包含专用于ISA总线的设备驱动程序。目录i386/stand包含单机引导程序代码。

kern:通用的内核文件,不属于其他目录。例如,处理系统调用fork和exec的内核文件在这个目录。在这个目录中,我们只考察少数几个文件—用于插口系统调用的文件(插口层在图1-3)。

net:通用联网文件,例如,通用联网接口函数,BPF(BSD分组过滤器)代码、SLIP驱动程序和路由代码。在这个目录中我们考察一些文件。

netccitt:OSI协议接口代码,包括HDLC(高级数据链路控制)和X.25驱动程序。

netinet:Internet协议代码,包括IP、ICMP、IGMP、TCP和UDP。本书的重点集中在这个目录中的文件。

netiso:OSI协议。

netns:施乐(Xerox)XNS协议。

nfs:Sun公司的网络文件系统代码。

sys:系统头文件。在这个目录中我们考察几个头文件。这个目录中的文件还出现在目录/usr/include/sys中。

ufs:Unix文件系统(有时叫伯克利快速文件系统)的代码。它是标准磁盘文件系统。

vm:虚拟存储器系统代码。

图1-16所示的是源代码组织的另一种表现形式,它映射到我们的三个内核层。忽略netimp和nfs这样的目录,在本书中我们不关心它们。

image.png

图1-16   映射到三个内核层的Net/3源代码组织

在每个表格框底下的数字是对应功能的C代码的近似行数,包括源文件中的所有注释。

我们不考察图中所有的源代码。显示目录netns与netiso是为了与Internet协议比较。我们仅考虑有阴影的表格框。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。