mirror of https://github.com/tLDP/LDP
*** empty log message ***
This commit is contained in:
parent
21c1272a39
commit
84c7315f0f
|
@ -3,135 +3,160 @@
|
|||
<title>Overview</title>
|
||||
|
||||
<para>
|
||||
A Brief History of Linux Networking Kernel Development.
|
||||
As with the rest of the Linux operating system and its numerous components
|
||||
development of networking stack within Linux has been both a slow and
|
||||
complex journey that has resembled that journey that has been faced by
|
||||
people in the development of networking stacks of other operating systems
|
||||
such as Microsoft Windows and Free BSD.
|
||||
</para>
|
||||
|
||||
Developing a brand new kernel implementation of the tcp/ip protocol
|
||||
stack that would perform as well as existing implementations was not
|
||||
an easy task. The decision not to port one of the existing
|
||||
implementations was made at a time when there was some uncertainty as
|
||||
to whether the existing implementations may become encumbered by
|
||||
restrictive copyrights because of the court case put by U.S.L. and
|
||||
when there was a lot of fresh enthusiasm for doing it differently and
|
||||
perhaps even better than had already been done.
|
||||
<para>
|
||||
As has been stated in the Linux Networking HOWTO
|
||||
(http://tldp.org/HOWTO/NET3-4-HOWTO.html)
|
||||
the actual implementation of the TCP/IP protocol stack was done
|
||||
basically from scratch due to concerns with regards to copyright issues
|
||||
as well as the possibilty that developers would be able to come up
|
||||
with a protocol stack that was superior to existing protocol stacks.
|
||||
</para>
|
||||
|
||||
The original volunteer to lead development of the kernel network code
|
||||
was Ross Biro <biro@yggdrasil.com>. Ross produced a simple and
|
||||
incomplete but mostly usable implementation set of routines that were
|
||||
complemented by an ethernet driver for the WD-8003 network interface
|
||||
card. This was enough to get many people testing and experimenting
|
||||
with the software and some people even managed to connect machines in
|
||||
this configuration to live internet connections. The pressure within
|
||||
the Linux community driving development for networking support was
|
||||
building and eventually the cost of a combination of some unfair
|
||||
pressure applied to Ross and his own personal commitments outweighed
|
||||
the benefit he was deriving and he stepped down as lead developer.
|
||||
Ross's efforts in getting the project started and accepting the
|
||||
responsibility for actually producing something useful in such
|
||||
controversial circumstances were what catalyzed all future work and
|
||||
were therefore an essential component of the success of the current
|
||||
product.
|
||||
<para>
|
||||
<screen>
|
||||
The original volunteer to lead development of the kernel network code
|
||||
was Ross Biro <biro@yggdrasil.com>. Ross produced a simple and
|
||||
incomplete but mostly usable implementation set of routines that were
|
||||
complemented by an ethernet driver for the WD-8003 network interface
|
||||
card.This was enough to get many people testing and experimenting
|
||||
with the software and some people even managed to connect machines in
|
||||
this configuration to live internet connections. The pressure within
|
||||
the Linux community driving development for networking support was
|
||||
building and eventually the cost of a combination of some unfair
|
||||
pressure applied to Ross and his own personal commitments outweighed
|
||||
the benefit he was deriving and he stepped down as lead developer.
|
||||
Ross's efforts in getting the project started and accepting the
|
||||
responsibility for actually producing something useful in such
|
||||
controversial circumstances were what catalyzed all future work and
|
||||
were therefore an essential component of the success of the current
|
||||
product.
|
||||
|
||||
Orest Zborowski <obz@Kodak.com> produced the original BSD socket
|
||||
programming interface for the Linux kernel. This was a big step
|
||||
forward as it allowed many of the existing network applications to be
|
||||
ported to linux without serious modification.
|
||||
Orest Zborowski <obz@Kodak.com> produced the original BSD socket
|
||||
programming interface for the Linux kernel. This was a big step
|
||||
forward as it allowed many of the existing network applications to be
|
||||
ported to linux without serious modification.
|
||||
|
||||
Somewhere about this time Laurence Culhane <loz@holmes.demon.co.uk>
|
||||
developed the first drivers for Linux to support the SLIP protocol.
|
||||
These enabled many people who did not have access to Ethernet
|
||||
networking to experiment with the new networking software. Again, some
|
||||
people took this driver and pressed it into service to connect them to
|
||||
the Internet. This gave many more people a taste of the possibilities
|
||||
that could be realized if Linux had full networking support and grew
|
||||
the number of users actively using and experimenting with the
|
||||
networking software that existed.
|
||||
Somewhere about this time Laurence Culhane <loz@holmes.demon.co.uk>
|
||||
developed the first drivers for Linux to support the SLIP protocol.
|
||||
These enabled many people who did not have access to Ethernet
|
||||
networking to experiment with the new networking software. Again, some
|
||||
people took this driver and pressed it into service to connect them to
|
||||
the Internet. This gave many more people a taste of the possibilities
|
||||
that could be realized if Linux had full networking support and grew
|
||||
the number of users actively using and experimenting with the
|
||||
networking software that existed.
|
||||
|
||||
One of the people that had also been actively working on the task of
|
||||
building networking support was Fred van Kempen
|
||||
<waltje@uwalt.nl.mugnet.org>. After a period of some uncertainty
|
||||
following Ross's resignation from the lead developer position Fred
|
||||
offered his time and effort and accepted the role essentially
|
||||
unopposed. Fred had some ambitious plans for the direction that he
|
||||
wanted to take the Linux networking software and he set about
|
||||
progressing in those directions. Fred produced a series of networking
|
||||
code called the `NET-2' kernel code (the `NET' code being Ross's)
|
||||
which many people were able to use pretty much usefully. Fred formally
|
||||
put a number of innovations on the development agenda, such as the
|
||||
dynamic device interface, Amateur Radio AX.25 protocol support and a
|
||||
more modularly designed networking implementation. Fred's NET-2 code
|
||||
was used by a fairly large number of enthusiasts, the number
|
||||
increasing all the time as word spread that the software was working.
|
||||
The networking software at this time was still a large number of
|
||||
patches to the standard release of kernel code and was not included in
|
||||
the normal release. The NET-FAQ and subsequent NET-2-HOWTO's
|
||||
described the then fairly complex procedure to get it all working.
|
||||
Fred's focus was on developing innovations to the standard network
|
||||
implementations and this was taking time. The community of users was
|
||||
growing impatient for something that worked reliably and satisfied the
|
||||
80% of users and, as with Ross, the pressure on Fred as lead developer
|
||||
rose.
|
||||
One of the people that had also been actively working on the task of
|
||||
building networking support was Fred van Kempen
|
||||
<waltje@uwalt.nl.mugnet.org>.After a period of some uncertainty
|
||||
following Ross's resignation from the lead developer position Fred
|
||||
offered his time and effort and accepted the role essentially
|
||||
unopposed. Fred had some ambitious plans for the direction that he
|
||||
wanted to take the Linux networking software and he set about
|
||||
progressing in those directions. Fred produced a series of networking
|
||||
code called the `NET-2' kernel code (the `NET' code being Ross's)
|
||||
which many people were able to use pretty much usefully. Fred formally
|
||||
put a number of innovations on the development agenda, such as the
|
||||
dynamic device interface, Amateur Radio AX.25 protocol support and a
|
||||
more modularly designed networking implementation.Fred's NET-2 code
|
||||
was used by a fairly large number of enthusiasts, the number
|
||||
increasing all the time as word spread that the software was working.
|
||||
The networking software at this time was still a large number of
|
||||
patches to the standard release of kernel code and was not included in
|
||||
the normal release.The NET-FAQ and subsequent NET-2-HOWTO's
|
||||
described the then fairly complex procedure to get it all working.
|
||||
Fred's focus was on developing innovations to the standard network
|
||||
implementations and this was taking time. The community of users was
|
||||
growing impatient for something that worked reliably and satisfied the
|
||||
80% of users and, as with Ross, the pressure on Fred as lead developer
|
||||
rose.
|
||||
|
||||
Alan Cox <iialan@www.uk.linux.org> proposed a solution to the problem
|
||||
designed to resolve the situation. He proposed that he would take
|
||||
Fred's NET-2 code and debug it, making it reliable and stable so that
|
||||
it would satisfy the impatient user base while relieving that pressure
|
||||
from Fred allowing him to continue his work. Alan set about doing
|
||||
this, with some good success and his first version of Linux networking
|
||||
code was called `Net-2D(ebugged)'. The code worked reliably in many
|
||||
typical configurations and the user base was happy. Alan clearly had
|
||||
ideas and skills of his own to contribute to the project and many
|
||||
discussions relating to the direction the NET-2 code was heading
|
||||
ensued. There developed two distinct schools within the Linux
|
||||
networking community, one that had the philosophy of `make it work
|
||||
first, then make it better' and the other of `make it better first'.
|
||||
Linus ultimately arbitrated and offered his support to Alan's
|
||||
development efforts and included Alan's code in the standard kernel
|
||||
source distribution. This placed Fred in a difficult position. Any
|
||||
continued development would lack the large user base actively using
|
||||
and testing the code and this would mean progress would be slow and
|
||||
difficult. Fred continued to work for a short time and eventually
|
||||
stood down and Alan came to be the new leader of the Linux networking
|
||||
kernel development effort.
|
||||
Alan Cox <iialan@www.uk.linux.org> proposed a solution to the problem
|
||||
designed to resolve the situation. He proposed that he would take
|
||||
Fred's NET-2 code and debug it, making it reliable and stable so that
|
||||
it would satisfy the impatient user base while relieving that pressure
|
||||
from Fred allowing him to continue his work. Alan set about doing
|
||||
this, with some good success and his first version of Linux networking
|
||||
code was called `Net-2D(ebugged)'. The code worked reliably in many
|
||||
typical configurations and the user base was happy. Alan clearly had
|
||||
ideas and skills of his own to contribute to the project and many
|
||||
discussions relating to the direction the NET-2 code was heading
|
||||
ensued. There developed two distinct schools within the Linux
|
||||
networking community, one that had the philosophy of `make it work
|
||||
first, then make it better' and the other of `make it better first'.
|
||||
Linus ultimately arbitrated and offered his support to Alan's
|
||||
development efforts and included Alan's code in the standard kernel
|
||||
source distribution.This placed Fred in a difficult position. Any
|
||||
continued development would lack the large user base actively using
|
||||
and testing the code and this would mean progress would be slow and
|
||||
difficult. Fred continued to work for a short time and eventually
|
||||
stood down and Alan came to be the new leader of the Linux networking
|
||||
kernel development effort.
|
||||
|
||||
Donald Becker <becker@cesdis.gsfc.nasa.gov> soon revealed his talents
|
||||
in the low level aspects of networking and produced a huge range of
|
||||
ethernet drivers, nearly all of those included in the current kernels
|
||||
were developed by Donald. There have been other people that have made
|
||||
significant contributions, but Donald's work is prolific and so
|
||||
warrants special mention.
|
||||
Donald Becker <becker@cesdis.gsfc.nasa.gov> soon revealed his talents
|
||||
in the low level aspects of networking and produced a huge range of
|
||||
ethernet drivers, nearly all of those included in the current kernels
|
||||
were developed by Donald. There have been other people that have made
|
||||
significant contributions, but Donald's work is prolific and so
|
||||
warrants special mention.
|
||||
|
||||
Alan continued refining the NET-2-Debugged code for some time while
|
||||
working on progressing some of the matters that remained unaddressed
|
||||
on the `TODO' list. By the time the Linux 1.3.* kernel source had
|
||||
grown its teeth the kernel networking code had migrated to the NET-3
|
||||
release on which current versions are based. Alan worked on many
|
||||
different aspects of the networking code and with the assistance of a
|
||||
range of other talented people from the Linux networking community
|
||||
grew the code in all sorts of directions. Alan produced dynamic
|
||||
network devices and the first standard AX.25 and IPX implementations.
|
||||
Alan has continued tinkering with the code, slowly restructuring and
|
||||
enhancing it to the state it is in today.
|
||||
Alan continued refining the NET-2-Debugged code for some time while
|
||||
working on progressing some of the matters that remained unaddressed
|
||||
on the `TODO' list.By the time the Linux 1.3.* kernel source had
|
||||
grown its teeth the kernel networking code had migrated to the NET-3
|
||||
release on which current versions are based. Alan worked on many
|
||||
different aspects of the networking code and with the assistance of a
|
||||
range of other talented people from the Linux networking community
|
||||
grew the code in all sorts of directions. Alan produced dynamic
|
||||
network devices and the first standard AX.25 and IPX implementations.
|
||||
Alan has continued tinkering with the code, slowly restructuring and
|
||||
enhancing it to the state it is in today.
|
||||
|
||||
PPP support was added by Michael Callahan <callahan@maths.ox.ac.uk>
|
||||
and Al Longyear <longyear@netcom.com> this too was critical to
|
||||
increasing the number of people actively using linux for networking.
|
||||
PPP support was added by Michael Callahan <callahan@maths.ox.ac.uk>
|
||||
and Al Longyear <longyear@netcom.com> this too was critical to
|
||||
increasing the number of people actively using linux for networking.
|
||||
|
||||
Jonathon Naylor <jsn@cs.nott.ac.uk> has contributed by significantly
|
||||
enhancing Alan's AX.25 code, adding NetRom and Rose protocol support.
|
||||
The AX.25/NetRom/Rose support itself is quite significant, because no
|
||||
other operating system can boast standard native support for these
|
||||
protocols beside Linux.
|
||||
Jonathon Naylor <jsn@cs.nott.ac.uk> has contributed by significantly
|
||||
enhancing Alan's AX.25 code, adding NetRom and Rose protocol support.
|
||||
The AX.25/NetRom/Rose support itself is quite significant, because no
|
||||
other operating system can boast standard native support for these
|
||||
protocols beside Linux.
|
||||
|
||||
There have of course been hundreds of other people who have made
|
||||
significant contribution to the development of the Linux networking
|
||||
software. Some of these you will encounter later in the technology
|
||||
specific sections, other people have contributed modules, drivers,
|
||||
bug-fixes, suggestions, test reports and moral support. In all cases
|
||||
each can claim to have played a part and offered what they could. The
|
||||
Linux kernel networking code is an excellent example of the results
|
||||
that can be obtained from the Linux style of anarchic development, if
|
||||
it hasn't yet surprised you, it is bound to soon enough, the
|
||||
development hasn't stopped.
|
||||
There have of course been hundreds of other people who have made
|
||||
significant contribution to the development of the Linux networking
|
||||
software. Some of these you will encounter later in the technology
|
||||
specific sections, other people have contributed modules, drivers,
|
||||
bug-fixes, suggestions, test reports and moral support. In all cases
|
||||
each can claim to have played a part and offered what they could. The
|
||||
Linux kernel networking code is an excellent example of the results
|
||||
that can be obtained from the Linux style of anarchic development, if
|
||||
it hasn't yet surprised you, it is bound to soon enough, the
|
||||
development hasn't stopped.
|
||||
|
||||
Linux Networking HOWTO, http://tldp.org/HOWTO/NET3-4-HOWTO.html
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
----------
|
||||
|
||||
<para>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.1.4. IP Addresses, an Explanation.
|
||||
|
||||
|
|
Loading…
Reference in New Issue