Nästa Föregående Innehållsförteckning

4. Generell Information om Linux Nätverk.

4.1 En kort historia om utvecklingen av Linux Nätverkskärna.

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.

4.2 Var man hittar ytterligare information om Linux nätverk.

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.

4.3 Var man hittar generell nätverksinformation (icke Linux-specifik)

Om man vill ha grundläggande information om TCP/IP nätverk, så kan jag rekommendera följande dokument:

tcp/ip introduction

detta dokument finns både som text version och som postscript version.

tcp/ip administration

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.


Nästa Föregående Innehållsförteckning