勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!


翻译:Understanding Linux Network Internals [Preface 前言]


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 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是在Bologna大学,十年前,我在那里毕业于计算机。它确实是一个令人惊奇的的软件! 我可以在家里的i386/486上运行我的图形处理工程,而不用在大学的实验室里和同学争用少数的几台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.


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.


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.

不幸的是因为我自己安稳的想法(也是幸运,我希望是,做为本书的读者可以从中受益),我就是那种什么都想知道,却对本质了解很少的那种人。所以,在UNESCO, 我开始了解内核代码。这不仅提供了一个好的方法让知识在我的大脑里留下深刻的印象,同时在用户空间的工具配置上,也给了我不少的信心:不管一个工具的配置是否提供了特殊的选项,我通常会知道它是否会有可能添加到内核,或者是否会对内核的修改有特殊的要求。这种学习方式转向了一条不归路:你总想知道更多。

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.


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.


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).

我相信,这本书和O'Reilly的其它两本内核的书(Understanding the Linux Kernel and Linux Device Drivers),为任何一个想学习更多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.


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.

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.

 (=^o^=)  Wu.Country@侠缘      
 (~)@(~)  一辈子,用心做一件事!

posted on 2008-11-15 22:57  Wu.Country@侠缘  阅读(699)  评论(2编辑  收藏  举报