Att utveckla en helt ny implementering av TCP/IP protokollstacken i kärnan som skulle prestera lika bra som existerande implementeringar var inte en lätt uppgift. Valet att inte porta en av de existerande implementeringarna gjordes vid en tid då det rådde osäkerhet beträffande om de existerande implementeringarna kunde bli besvärade av restriktiva copyrights på grund av ett rättsfall av U.S.L och då det fanns mycket entusiasm för att göra det annorlunda och kanske till och med bättre än det redan hade gjorts.
Den första frivilliga att leda utvecklingen av nätverkskoden var
Ross Biro <biro@yggdrasil.com>
. Ross gjorde en enkel och inkomplett
men mestadels användbar implementering, som utökades med en Ethernet-drivrutin
för ett WD-8003 nätverkskort. Detta räckte för att få många personer att testa
och experimentera med koden och några klarade till och med av att ansluta maskiner
till Internet med denna implementering. Trycket på nätverksstöd
ökade i Linuxvärlden och till slut var kostnaden för orättvist tryck på Ross
större än vad han fick ut av projektet så han lade av som huvudutvecklare.
Ross ansträngningar för att få igång projektet och ta ansvar för att verkligen
producera någonting användbart under sådana kontroversiella omständigheter var
vad som drev på allt framtida arbete och var därför en viktig del av framgången
med den nuvarande produkten.
Orest Zborowski <obz@Kodak.COM>
producerade det första
programmeringsgränssnittet för BSD sockets till Linuxkärnan. Detta var ett stort steg framåt
eftersom det tillät många av de existerande nätverksapplikationerna att bli
portade till Linux utan omfattande modifiering.
Någon gång vid denna tid utvecklade
Laurence Culhane <loz@holmes.demon.co.uk>
de första drivrutinerna för
Linux som stödde SLIP-protokollet. Dessa gjorde det möjligt för många människor
som inte hade tillgång till Ethernet-nätverk att experimentera med den nya
nätverksmjukvaran. Återigen så tog några personer denna drivrutin och lyckades ansluta
sig till Internet. Detta gav många en smak av de möjligheter som kunde bli
realiserade om Linux hade fullt nätverksstöd och ökade antalet användare av
den existerande nätverksmjukvaran.
En av de som aktivt hade arbetat med uppgiften att implementera nätverksstöd
var Fred van Kempen <waltje@uwalt.nl.mugnet.org>
. Efter en tid av
osäkerhet efter Ross avhopp från positionen som huvudutvecklare så erbjöd Fred sin
tid och insats. Fred hade några ambitiösa planer för vart han ville leda Linux
nätverksmjukvara och han började framskrida i den riktningen. Fred producerade
en serie nätverkskod som kallades 'NET-2' kärnkod ('NET'-koden var Ross) som
många kunde använda ganska användbart. Fred's NET-2 kod användes av ett hyfsat
stort antal entusiaster, som ökade allt eftersom ryktet spred sig att koden
fungerade. Vid denna tid var nätverksmjukvaran fortfarande ett stort antal
patchar till standardversionen av kärnan och var inte inkluderad i den normala
versionen. NET-FAQ och NET-2-HOWTO beskrev då den ganska komplicerade rutinen
för att få allt att fungera. Freds mål var att utveckla nyheter till standard
implementeringen, och detta tog tid. Linuxvärlden väntade otåligt på något som
fungerade pålitligt och, precis som med Ross, så ökade trycket på Fred som
huvudutvecklare.
Alan Cox <iialan@www.uk.linux.org>
föreslog en lösning till problemet.
Han föreslog att han skulle ta Freds NET-2 kod och debugga den, göra den
pålitlig och stabil så att den skulle tillfredsställa de otåliga användarna och
samtidigt lätta på trycket på Fred så att han kunde fortsätta sitt jobb. Alan
började med detta, med viss framgång och hans första version av nätverkskod
kallades 'NET-2D(ebugged)'. Koden fungerade pålitligt i många typiska
konfigurationer och användarna var nöjda. Alan hade egna ideer och färdigheter
att bidra med till projektet vilket ledde till många diskussioner relaterade till riktningen på NET-2 koden. Det skapades två olika läger i Linuxvärlden, en
med filosofin 'få det att fungera, sen gör det bättre' och den andra 'gör det
bättre först'. Linus stödde Alans utveckling och inkluderade
Alans kod i standarddistributionen av kärnkoden. Detta placerade Fred i en svår
situation. Fortsatt utveckling skulle sakna användning och testning av den
stora användarskaran och detta skulle betyda att det skulle bli svårt och gå
långsamt. Fred fortsatte att arbeta en kort tid men lade till slut av och Alan
blev den nya ledaren för Linux nätverksutveckling.
Snart avslöjade Donald Becker <becker@cesdis.gsfc.nasa.gov>
sina
talanger i lågnivåaspekterna för nätverk och producerade en enorm mängd av
Ethernet-drivrutiner, nästan alla de som finns i nuvarande kärnor är
utvecklade av Donald. Det finns andra som har givit betydelsefulla bidrag, men
Donalds arbete är produktivt och kräver speciell uppmärksamhet.
Alan fortsatte att förfina NET-2-Debugged koden en tid samtidigt som han
arbetade på det som fanns på 'TODO'-listan. Då Linux 1.3.*
kärnkoden
hade växt till sig hade nätverkskoden gått över till NET-3 versionen som
nuvarande versioner grundar sig på. Alan arbetade på många olika aspekter på
nätverkskoden och med hjälp av en mängd talangfulla personer från Linuxvärlden
växte koden i alla möjliga riktningar. Alan producerade dynamiska
nätverksenheter och de första standard AX.25 och IPX implementeringarna. Alan
har fortsatt att meka med koden, långsamt strukturerat om och förbättrat den
till det tillstånd den är i idag.
PPP-stöd lades till av Michael Callahan <callahan@maths.ox.ac.uk>
och
Al Longyear <longyear@netcom.com>
, detta var också kritiskt för att
öka antalet personer som använde Linux för nätverk.
Jonathon Naylor <jsn@cs.nott.ac.uk>
har bidragit med att göra betydande
förbättringar av Alans AX.25 kod, lagt till stöd för NetRom och Rose protokoll.
AX.25/NetRom/Rose stödet i sig själv är ganska betydelsefullt, för att inget
annat operativsystem har inbyggt stöd för dessa protokoll förutom Linux.
Det finns naturligtvis hundratals andra personer som har givit betydelsefulla bidrag till utvecklingen av Linux nätverksmjukvara. Några av dessa kommer att nämnas senare i de teknikspecifika sektionerna, andra har bidragit med moduler, drivrutiner, buggfixar, förslag, testrapporter och moraliskt stöd. I alla dessa fall kan var och en säga att den varit del av utvecklingen. Linux nätverkskod är ett utmärkt exempel på de resultat som kan uppnås med Linux anarkistiska utvecklingsstil, om man inte är förvånad över detta än, så blir man det snart för utvecklingen har inte slutat än.
Det finns ett antal ställen där man kan hitta bra information om Linux nätverk.
Alan Cox, den nuvarande handhavaren av Linux nätrverkskod har en World Wide Web sida som innehåller höjdpunkter från utvecklingen av nätverkskoden: www.uk.linux.org.
Ett annat bra ställe är en bok, Network Administrators Guide
, skriven av
Olaf Kirch. Den tillhör
Linux Documentatation Project
och man kan läsa den online på
Network Administrators Guide HTML version
eller hämta den i olika format via ftp från
sunsite.unc.edu LDP ftp archive. Olafs bok är ganska omfattande och
ger en bra översikt av högnivåkonfiguration av nätverket i Linux.
Det finns en nyhetsgrupp i Linux nyhetshierarkin som är avsedd för nätverk och dess relaterade ämnen, den är: comp.os.linux.networking
Det finns en mailing-lista som man kan prenumerera på där man kan fråga frågor relaterade till Linux nätverk. För att prenumerera skall man skicka ett e-post meddelande:
To: majordomo@vger.rutgers.edu
Subject: anything at all
Message:
subscribe linux-net
På de olika IRC nätverken finns det ofta #linux
kanaler på vilka personer
kan svara på frågor om Linux nätverk.
Kom ihåg att när man rapporterar ett problem så skall man inkludera så mycket relevanta detaljer om problemet som man kan. Speciellt så bör man specificera vilka versioner av mjukvara man använder, särskilt kärnversionen, versionen på verktyg såsom pppd eller dip och den exakta karaktären av problemet som man upplever. Detta betyder bland annat att notera den exakta syntaxen på felmeddelanden som man får och alla kommandon som man använder.
Om man vill ha grundläggande information om TCP/IP nätverk, så kan jag rekommendera följande dokument:
detta dokument finns både som text version och som postscript version.
detta dokument finns både som text version och som postscript version.
Om man vill ha mer detaljerad information om TCP/IP nätverk så kan jag rekommendera:
"Internetworking with TCP/IP"
av Douglas E. Comer
ISBN 0-13-474321-0
Prentice Hall publications.
Man kan också prova nyhetsgruppen comp.protocols.tcp-ip.
En viktig informationskälla när man är ute efter teknisk information relaterad till Internet och TCP/IP protokollen är RFCs. RFC är en förkortning av 'Request For Comment' och är det standardiserade sättet att lämna ut och dokumentera protokollstandarder för Internet. Det finns många ställen att hämta RFCs från. Många av dessa är ftp-sajter och andra tillhandahåller World Wide Web sidor med sökmotorer där man kan kan söka i RFC databasen med nyckelord.
En möjlig källa för RFCs är: Nexor RFC database.