Opracowanie zupełnie nowej implementacji protokołu tcp/ip, pracująego równie dobrze jak inne istniejące implementacje nie było łatwym zadaniem. Decyzja aby napisać wszystko od zera została podjęta w czasie gdy istniała niepewność, że istniejące implementacje mogą zostać zaprzepaszczone przez restrykcyjne licencje, z powodu toczącej się sprawy sądowej rozpoczętej przez U.S.L. i w momencie gdy sieć była przepełniona świeżym entuzjazmem aby zrobić to inaczej, a być może nawet lepiej niż zostało do tej pory zrobione.
Pierwszym ochotnikiem przewodzenia w pracach nad rozwojem modułów
jądra do obsługi sieci był Ross Biro
<biro@yggdrasil.com>. Wykonał prostą i niepełną, lecz w
większości przypadków działającą implementacje podstawowych procedur,
uzupełnionych przez procedury drajwera karty sieciowej ethernet
WD-8003. To wystarczyło, aby przyciągnąć rzeszę ludzi, umożliwić im
testowanie i eksperymentowanie. Niektórm udało się nawet doprowadzić
do włączenia swoich komputerów do Internetu.
Nacisk społeczności Linuxowej na rozwój obsługi sieci przez jądro wciąż wzrastał. Gdy korzyści i stysfakcja z wykonywanej pracy przestały rekompensować w wystarczającym stopni poświecenia i odpieranie rosnących nacisków, Ross zrezygnował z roli prowadzącego budowę oprogramowania sieciowego. Jego wysiłki poświęcone na stworzenie w tak burzliwych czasach czegoś użytecznego stały się katalizatorem przyszłych prac i należy je zaliczyć do najważniejszych czynnikó, które przyczyniły się do osiągnięcia sukcesu.
Orest Zborowski <obz@Kodak.COM> dołączył do jądra oryginalny interfejs
programistyczny gniazd BSD. Był to ogromny krok naprzód, ponieważ
umożliwiał proste przenoszenie na Linuxa wielu istniejących
programów sieciowych, bez konieczności ich nadmiernej modyfikacji.
Mniej więcej w tym samym czasie Laurence Culhane
<loz@holmes.demon.co.uk> opracował pierwszy drjwer protokołu
SLIP. Wiele osób, które nie posiadały dostępu do sieci Ethernetowych
otrzymało możliwość eksperymentowania z nowym oprogramowaniem
sieciowym. Ponownie część osób wykorzystała te oprogramowanie do
przyłączania się do Internetu. W ten sposób uzmysłowili reszcie
jakie możliwości otworzyłyby się przed Linuxem, gdyby tlko posiadał
pełną obsługę sieci. Zwiększyło również liczbę osób aktywnie
wykorzystujących i eksperymentujących z istnejącym oprogramowaniem.
Jednym z ludzi, który równie aktywnie pracował nad zbudowaniem modułów
obsługi sieci w jądrze Linuxa był Fred van Kempen
<waltje@uwalt.nl.mugnet.org>. Po krótkim okresie niepewności
wywołanym rezygnacją Rossa Biro z prowadzenia projektu, Fred
zaoferował swój czas i umiejętności, i przyjął tę rolę w zasadzie bez
żadnych sprzeciwów. Fred miał ambitne plany na temat kierunków rozwoju
oprogramowania obsługi sieci w jądrze Linuxa i aktywnie je
realizował. Stworzył oprogramowanie znane pod nazwą NET-2
(oprogramowanie Rossa nosiło nazwę NET), z którego wielu ludzi
korzystało przez długi czas. Fred wprowadził wiele inowacji do
programu rozwoju oprogramowania dynamiczny interfejs urządzeń, obsługę
protokołu AX.25 (Amateur Radio) i bardziej modułowe implementacje
obsługi funkcji sieciowych. Oprogramowanie NET-2 było wykorzystywane
przez stale rosnącą grupę ludzi, w miarę jak świat dowiadywał się, że
coś takiego istnieje. Oprogramowanie sieciowe nadal było
rozpowszechniane w postaci łatek do standardowej dystrybucji jądra i
przez długi czas nie było rozpowszechniane razem z jądrem Linuxa.
NET-FAQ i późniejszy NET-2-HOWTO opisywały całkiem skomplikowana
procedurę uruchomienia sieci pod Linuxem. Fred skoncentrował się na
wprowadzaniu nowości do standardowej implementacji sieci, a to
zabierało czas. Społeczność użytkowników zaczynała się niecierpliwić
oczekujac na coś co działałoby bezbłędnie i zadawalałoby 80% z nich.
I podobnie jak w przypadku Rossa, naciski na Freda, jako
koordynatora projektu cały czas wzrastały.
Alan Cox <iialan@www.linux.uk.org> zaproponował rozwiązanie
zaistniałej sytuacji. Zaproponował, że weźmie kod napisany przez Freda
i przetestuje go. W ten sposób zapewni jego stabilność
satysfakcjonując grono niecerpliwych użytkowników, uwalniając tym
samym Freda od licznych nacisków i umożliwiając mu dalszą pracę nad
rozwojem oprogramowania. Tak też zrobił, co zakończyło się pełnym
sukcesem. Pierwsza wersja oprogramowani stworzona przez Alana nosiła
nazwę NET-2D (Debugged - odpluskwiony). Oprogramowanie pracowało
stabilnie w większości standardowych konfiguracji i większość
użytkowników była wreszcie szczęśliwa. Alan bez wątpienia posiadał
umiejętności i pomysły, które chciał zrealizować ku pożytkowi całej
społeczności Linuxa. Następstwem było wiele dyskusji na temat
kierunków rozwoju oprogramowania sieciowego NET-2 Linuxa. Rozwinęly
się dwie różne szkoły, jedna, której ideą było "wpierw niech to
działa, później niech będzie to lepsze" i druga z ideą "niech wpierw
to będzie lepsze". Ostatecznie wmieszał się w to Linus, oferując swoje
wsparcie Alanowi w jego wysiłkach włączając jego kod do standardowej
dystrybucji jadra Linuxa. To postawiło Freda w bardzo trudnej
pozycji. Został pozbawiony ogromnej rzeszy użytkowników aktywnie
testujących i eksperymentujących z jego oprogramowaniem sieciowym, co
oznaczało, że jego dalszy rozwój byłby trudny i powolny. Fred
ontynuował przez którki czas swoje prace, ostatecznie rezygnując i
pozstawiając Alana jako nowego lidera w wysiłkach nad udoskonaleniem
oprogramowania sieciowego Linuxa.
Wktrótce swoje talenty w tematyce ujawnił Donald Becker
<becker@cesdis.gsfc.nasa.gov> i stworzył ogroną liczbę
sterowików kart sieciowych ethernet, niemal wszystkich dostępnych w
obecnych wersjach jądra. Byli również inni, których wkład w tej
dziedzinie był znaczący, lecz praca Donalda była tak płodna, że wymaga
osobnej uwagi.
Alan kontynuował pracę nad szlifowaniem oprogramowania NET-2-D,
równocześnie starając się zająć problemami określonymi jako 'do
zrobienia' (TODO). Gdy jądro Linuxa rozwinęło się na tyle by osiągnąć
wersję 1.3.*, jego część dotycząca obsługi sieci składała się
niemal z wersji NET-3, na której bazyją aktualne wersje. Alan pracował
nad wieloma aspektami i funkcjami sieciowymi otrzymując wsparcie od
wielu utalentowanych ludzi należących do internetowej społeczności
Linuxa. Dzięki temu oprogramowanie rozrastało się jednocześnie w wielu
kierunkach. Alan opracował dynamiczne strowniki urządzeń i pierwsze
implementacje standardów AX.25 i IPX. Kontynuował pracę , powoli
restruturyzując i wprowadzając upleszenia, aż usyskał obecną postać.
Obsługa PPP została zaimplementowana przez Michaela Callahana
<callahan@maths.ox.ac.uk> i Ala Longyeara
<longyear@netcom.com>. Miało to ogromne znaczenie i ogromnie
zwiększyło libczę osób aktywnie wykorzystujących Linuxa w
zastosowaniach sieciowych.
Jonathon Naylor <jsn@cs.nott.ac.uk> znacznie usprawnił
początkowy kod Alana obsługi protokołu AX.25. Wprowdził obsługę
protokołu NetRom. Obsługa AX.25/NetRom jest ogromnie ważna, ponieważ
żaden inny system operacyjny nie posiada w standardowej dystrybycji
obsługi tych protokołów.
Były również ogromne rzesze innych ludzi, którzy w zanaczący sposób przyczynili się do rozwoju oprogramowania sieciowego Linuxa. Wiele z tych nazwisk znajdziesz później w częściach omawiających poszczególne technologie. Inni przyczynili się do rozwoju bądź opracowując róznych modułów oprogramowania, bądź przysyłająć poprawki usuwające różne błędy, bądź oferując sugestie, raporty z testów lub choćby wsparcie moralne dla aktywnych twórców. Każdy z nich może twierdzić, że brał w tyn udział i oferowałtyle ile mógł. Kod jądra linuxa przeznaczony do obsługi sieci jest świetnym przykładem rezultaów jakie można osiągnąć pracując w tak anarchiczny sposób, jaki to miało miejsce w tym przypadku. Jeśli się to jescze nie zadziwiło, to pamiętaj o jednym: prace rozwojowe nadal trwają.
Istnieje kilka miejsc, gdzie można znaleźć dobre informacje na temat sieciowych zastosowań Linuxa.
Alan Cox, aktualny opiekun i lider oprogramowania sieciowego Linuxa, prowadzi stronę internetową zawierającą najciekawsze i najważniejsze informacje na temat aktualnego rozwoju sieci w Linuxe: www.uk.linux.org.
Innym znakomitym miejscem jest książka napisana przez Olafa Kircha pod
tytułem Poradnik dla administratorów sieci. Powstała w ramach
Projektu dokumentacji Linuxa
i jest dostępna tutaj:
Poradnik dla administratorów sieci - wersja HTML
lub w innych formatach tutaj
archiwum ftp sunsite.unc.edu LDP. Książka Olafa jest
całkiem wyczerpująca i dostarcza dobrego, stojacego na wysokim
poziomie przeglądowego spojrzenia na konfigurację sieci pod Linuxem.
Istnieje specjalna grupa dyskusyjna (angielsko języczna), poświęcona sieci i podobnym problemom: comp.os.linux.networking
Instnieje angielsko języczna lista dyskusyjna, na którą możesz się zapisać i gdzie możesz zadawać pytania odnoszące się do funkcji sieciowych Linuxa. Aby się zapisać musisz wysłać następujący list:
To: majordomo@vger.rutgers.edu
Subject: anything at all
Message:
subscribe linux-net
W większości serwerów IRC istnieją zwykle kanały #linux, na
których obecni tam ludzie będą potrafili odpowiedzieć na pytania
dotyczące sieci pod Linuxem.
Pamiętaj, że zgłaszając jakikolwiek problem należy podawać jak najwięcej dotyczących go szczegółów. Koniecznie należy podać wersje używanego oprogramowania, sczególnie wersję jądra (uname -a), wersję takich narzędzi jak pppd lub dip i dokładną naturę problemu na który napotkałeś. To znaczy dokładnie zanotowane komunikaty systemowe jakie otrzymałeś i dokładny opis składni wydawanych poleceń.
Jeśli szukasz podstawowych informacji o tcp/ip, polecam zapozananie się z następującymi dokumentami:
dostępne w wersji tekstowej i postscriptowej.
dostępne w wersji textowej i postscriptowej.
Jeśłi poszukujesz dokładniejszych informacji na temat sieci tcp/ip mocno polecam:
"Internetworking with TCP/IP"
by Douglas E. Comer
ISBN 0-13-474321-0
Prentice Hall publications.
Jeśli chcesz się nauczyć w jaki sposób budować programy sieciowe w środowiskach zgodnych z systemem UNIX, mocno polecam:
"Unix Network Programming"
by W. Richard Stevens
ISBN 0-13-949876-1
Prentice Hall publications.
Możesz również skorzystać z grupy dyskusyjnej comp.protocols.tcp-ip.
Istotnym źródłem konkretnych informacji technicznych związanych z Internetem i protokołem tcp/ip są dokumenty RFC. RFC to skrót od "Request For Comments", jest to standardowy sposób ogłaszania i dokumentowania obowiązujących standardów internetowych. Istnieje wiele miejsc skąd można poprać dokumenty RFC. Większość z nich to archiwa ftp, część udostępnia dokumenty RFC również przez interfejs WWW dostarczając jednocześnie możliwość przeszukiwania wszystkich dokumentów w poszukiwaniu słów kluczowych.
Jednym z archimum dokumntów RFC jest: baza danych Nexor RFC.