Understanding Linux Network Internals-4. Preface

Today more than ever before, networking is a hot topic. Any electronic gadget in its latest generation embeds some kind of networking capability. The Internet continues to broaden in its population and opportunities. It should not come as a surprise that a robust, freely available, and feature-rich operating system like Linux is well accepted by many producers of embedded devices. Its networking capabilities make it an optimal operating system for networking devices of any kind. The features it already has are well implemented, and new ones can be added easily. If you are a developer for embedded devices or a student who would like to experiment with Linux, this book will provide you with good fodder.

今天相对以往更多的,网络不是一个热门的话题。任何最终版本的电子小器件嵌入某一种类的网络功能。因特网继续在它的容量和机会中机会扩展。它不应该作为一个令人惊奇的事物-一个鲁棒的、免费提供的、功能丰富的操作系统像linux被很多嵌入式设备生产商很好的接受 出现。它的网络能力使它对于任何一种网络设备成为一个营运的操作系统。这个功能已经被很好的完成,新功能的能够被很容易的添加。如果你是个嵌入式系统开发人员,或者你是个喜欢linux实践的学生,这本书会提供给你很好的素材。

 

The performance of a pure software-based product that uses Linux cannot compete with commercial products that can count on the help of specialized hardware. This of course is not a criticism of software; it is a simple recognition of the consequence of the speed difference between dedicated hardware and general-purpose CPUs. However, Linux can definitely compete with low-end commercial products that are entirely software-based. Of course, simple extensions to the Linux kernel allow vendors to use Linux on hybrid systems as well (software and hardware); it is only a matter of writing the necessary device drivers.

一个基于使用Linux产品的纯净软件的性能比不上能够在专业硬件帮助下计算的商业软件的效率。这当然不是一个软件的评论;它是一个在专用硬件和通用中央处理器之间的速度不同的结果的简单认识。无论如何,Linux能够与低档的完全基于软件的商业软件进行明确竞争。当然,linux扩展到Linux核心,允许用户扩展到允许用户在混合系统(硬件和软件)上使用Linux的Linux核心;它仅有一个写必须的设备驱动的问题。

 

Linux is also often used as the operating system of choice for the implementation of university projects and theses. Not all of them make it to the official kernel (not right away, at least). A few do, and others are simply made available online as patches to the official kernel. Isn't it a great satisfaction and reward to see your contribution to the Linux kernel being used by potentially millions of users? There is only one drawback: if your contribution is really appreciated, you may not be able to cope with the numerous emails of thanks or requests for help.

The momentum for Linux has been growing continually over the past years, and apparently it can only keep growing.

I first encountered Linux at the University of Bologna, where I was a grad student in computer science around 10 years ago. What a wonderful piece of software! I could work on my image processing projects at home on an i286/486 computer without having to compete with other students for access to the few Sun stations available at the university labs.

Linux也被经常使用作为选择为大学项目和论文完成的操作系统。不是所有的核心成为正式的核心(至少不是马上)。做了一些后,其他的部分可以作为在线升级包用来作为正式的核心。看到你对linux的贡献可以预期存在数百万用户难道这不是一个非常伟大的满足和回报?仅仅有一个缺点:如果你的贡献被真正的感激, 你可能不会收到很多的感谢信或者帮助需求。这是linux在过去几年一直不断成长的动力,显然它仅仅能保持成长。我在博洛尼亚大学第一次遭遇Linux,在哪大概10年前我是个计算机专业的研究生。一个多么精彩的软件啊!我能在家里工作在我的图像处理项目,不用和其他学生争抢访问很少的只能在大学实验室使用的Sun工作站。

 

Since then, my marriage to Linux has never seen a gray day. It has even started to displace my fond memories of the glorious C64 generation, when I was first introduced to programming with Assembly language and the various dialects of BASIC. Yes, I belong to the C64 generation, and to some extent I can compare the joy of my first programming experiences with the C64 to my first journeys into the Linux kernel.

从那以后,我与Linux的婚姻从来没有看起来灰色的日子。它甚至已经开始替代了我喜欢的关于光辉的C64时代的回忆,那是当我第一次使用汇编语言和各种不同的BASIC语言介绍程序的时候。是的,我属于C64时代,在一些领域我能够区分我的第一个使用C64的程序经验和我的第一个进入Linux核心的旅程的不同。

 

When I was first introduced to the beautiful world of networking, I started playing with the tools available on Linux. I also had the fortune to work for a UNESCO center in Italy where I helped develop their networking courses, based entirely on Linux boxes. That gave me access to a good lab equipped with all sorts of network devices and documentation, plus plenty of Linux enthusiasts to learn from and to collaborate with.

当我第一次介绍网络这个漂亮单词的时候,我开始在Linux上使用这个工具。我也有机会在意大利的一个联合国教科文组织工作,在那我帮助开发他们的完全基于Linux的网络课程。那给我了访问一个使用各种各样网络设备装的好的实验室和文档,另外有大量的linux爱好者可以互相学习和合作。

 

Unfortunately for my own peace of mind (but fortunately, I hope, for the reader of this book who benefits from the results), I am the kind of person that likes to understand everything and takes very little for granted. So at UNESCO, I started looking into the kernel code. This not only proved to be a good way to burn in my knowledge, but it also gave me more confidence in making use of user-space configuration tools: whenever a configuration tool did not provide a specific option, I usually knew whether it would be possible to add it or whether it would have required significant changes to the kernel. This kind of study turns into a path without an end: you always want more.

After developing a few tools as extensions to the Linux kernel (some revision of versions 2.0 and 2.2), my love for operating systems and networking led me to the Silicon Valley (Cisco Systems). When you learn a language, be it a human language or a computer programming language, a rule emerges: the more languages you know, the easier it becomes to learn new ones. You can identify each one's strengths and weaknesses, see the reasons behind design compromises, etc. The same applies to operating systems.

 遗憾的对我自己的平和心情(但是幸运的,我希望,这本书的读者从结果中得到好处),我是喜欢理解每样东西和很少想当然的类型的人。因此在联合国教科文组织,我开始研究核心代码。这不是仅有的提供一个好办法来在我的知识中燃烧,而且它也提供了更多的把握在制造用户空间配置工具的用法方面:无论什么时候一个配置工具不提供一个特定的选项,我通常知道添加它是否得可能的或者是否它对核心有重要的改变。这种学习变成了没有结束的一条路:你一直想要学的更多。在开发一些工具作为Linux核心的扩展后(版本2.0和2.2的一些版本),我对操作系统和网络的热爱引导我走向硅谷(思科公司)。当你学习一门语言的时候,人类语言或者计算机语言,规则形成:你知道更多的语言,你学习新语言会变的更容易。你能够辨别每个人的长处和弱点,看清楚隐藏在妥协之后的原因,等等。同样的会应用到操作系统。

 

 

When I noticed the lack of good documentation about the networking code of the Linux kernel and the availability of good books for other parts of the kernel, I decided to try filling in the gapor at least part of it. I hope this book will give you the starting documentation that I would have loved to have had years ago.

当我注意到缺少好的关于linux核心的网络代码的文档和关于核心的其他部分的有益的好书的时候,我决定试着填充这部分空白。我希望这本书会带给你在我在很多年前会已经爱上这些方面的启动文档。

 

I believe that this book, together with O'Reilly's other two kernel books (Understanding the Linux Kernel and Linux Device Drivers), represents a good starting point for anyone willing to learn more about the Linux kernel internals. They complement each other and, when they do not address a given feature, point the reader to external documentation sources (when available).

我相信这本书会和奥雷利其他的两个核心的书籍(理解Linux和性能和Linux设备驱动)一起,为任何人带来一个好的起点,会学习更多的关于Linux核心内部的东西。他们互相补充,当他们没有解释被给定的功能的时候,知道读者到扩展的文档资源(当这些资源可用的时候)。

 

However, I still suggest you make some coffee, turn on the music, and spend some time on the source code trying to understand how a given feature is implemented. I believe the knowledge you build in this way lasts longer than that built in any other way. Shortcuts are good, but sometimes the long way has its advantages, too.

无论如何,我仍然建议你做一些咖啡,打开音乐,在源代码上花费一些时间试着理解一个给定的功能如何被执行。我相信你用这个办法获得的知识比其他办法更牢固。快捷方式是好的,但是有时遥远的道路也有它的优势。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Understanding Linux Network Internals”(了解Linux网络内部)是一本介绍Linux操作系统网络内部机制的书籍。该书深入介绍了Linux操作系统中网络协议栈的实现原理,以及网络设备驱动程序、套接字接口和网络管理等方面的知识。 该书以理论和实践相结合的方式,系统地介绍了Linux网络协议栈的设计、功能和实现。它从网络硬件驱动程序开始,逐步探讨了数据在不同网络层之间的传输过程,包括数据包的封装、解封装、路由选择和转发等关键步骤。 此外,该书还介绍了Linux内核中关键的网络数据结构、算法和协议。读者可以学习到如何使用套接字编程接口创建网络应用程序,并深入了解每个网络层的功能和工作原理,从而更好地理解Linux操作系统中网络的运行机制。 对于计算机网络相关的开发人员和系统管理员而言,深入了解Linux网络内部机制是非常重要的。通过掌握Linux网络协议栈的实现原理,操作系统和网络应用程序的开发者可以更好地进行网络性能调优、故障排查和安全加固等工作。同时,系统管理员可以更好地监控和管理网络资源,提高网络的可靠性和性能。 总的来说,阅读“Understanding Linux Network Internals”这本书可以帮助读者深入了解Linux操作系统中网络的工作原理和机制,进而提升计算机网络相关领域的技术能力。这对于开发人员和系统管理员来说都是非常有价值的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值