结论
通过以上分析得出
(1)Linux的代码比较混乱,可读性没有FreeBSD的好,例如,Linux省略了以太网层,而且在接收数据中有多次异步操作,也许这将会影响内核的稳定性。FreeBSD的代码就比较清晰,程序处理一目了然,可读性也高,最稳定的操作系统名不虚传。这也可以从两个操作系统的起源得到解释。Linux起源于互联网时代,由众多爱好者一起完成,并没有一个完整的规划,代码也多次经过变动,而作者水平也参次不齐,造成现在的样子。而FreeBSD系出名门。一直由一个独立的小组进行维护,多年来更新不大,只有少许优化,所以代码的可读性非常高。但从另一方面讲,不断更新的Linux在代码方面比较激进。比如Linux使用skb缓冲效率要较FreeBSD使用的m-buf为高。而且linux发送数据时,复制数据的同时完成TCP的效验。节省了一次数据的遍历操作。也提高了效率。
(2)从效率上讲。Linux略占优势。而如果从稳定性上考虑。FreeBSD应该更胜一酬。不过,这两个操作系统都是非常优秀并久经考验。它们之间的差别也许仅存于纸面分析上。比如说,它们都采用数据缓冲区管理,以避免额外的数据复制操作,也都采用针对体系结构的数据校验算法,以提高数据数据校验的效率。而这,也正是协议栈实现中最大的瓶颈所在。所以,无论选择哪种系统做为服务器,都不会让人失望的,而要是希望学习协议栈的实现。则可以考虑从FreeBSD来人手。