eigenes Betriebssystem: Netzwerkfähigkeit

Ich programmier schon länger an einem eigenen Betriebssystem
nun wollt ich ihm Netzwerkfähigkeit verleihen

aber ich finde im Internet und in Büchern einfach keine Anleitung dafür, wie man eine Netzwerkkarte programmiert
die 1. und 2. Schicht des OSI-Modells übernimmt ja die Netzwerkkarte selber
wie man über die nun Pakete verschicken kann weiß ich

aber wie man nun die anderen Schichten Softwareseitig strukturieren muss nicht
als erstes braucht man ja mal IP für die Vermittlungsschicht und dann kommt Tcp usw.

nur woher bekomme ich dazu Infos?
überall gibts nur theoretische Erklärungen wie das ganze funktioniert
 
Original von Nick H.
als erstes braucht man ja mal IP für die Vermittlungsschicht und dann kommt Tcp usw.
nur woher bekomme ich dazu Infos?
überall gibts nur theoretische Erklärungen wie das ganze funktioniert

ueberall gibts auch source code von tcp/ip stacks. z.b. der von linux und der von *bsd. wenn du etwas geld investieren willst lohnt sich vielleicht auch der stevens "tcp/ip illustrated, vol.2". das enthaelt den bsd stack samt erklaerungen. nicht mehr ganz frisch glaube, aber vielleicht auch ganz gut, weil es dadurch uebersichtlicher ist. musst nur drauf achten, dass du nicht die ganzen fehler in alten implementationen auch wieder machst (land, teardrop und wie sie alle heissen).
auf dem chaos congress hat jemand einen in python geschriebenen tcp/ip stack vorgestellt. der eignet sich prima zum lernen, experimentieren und testen. http://kybkreis.org/wiki/MuXTCP
 
das is ne gute Idee, ich hab noch gar nicht daran gedacht einfach in einen Sourcecode zu gucken
kennt jemand vielleicht noch einen guten kommentierten TCP/IP Stack?
(am besten kostenlos, muss aber nicht)

nur Phyton is n'bisschen unpraktisch am besten wär C
und das ganze sollte möglichst nicht so viel unterstützen, damit das ganze erstmal übersichtlich bleibt, immo will ich igentlich erstmal Http zum laufen bringen
(Http is mein lieblings Protokoll, darauf basieren die meißten einfachen Netzwerk-Systeme)
 
http: gehört schon zur Anwendungsschicht, d.h. du musst nur dafür sorgen, dass Tcp/ip funktioniert, um http kümmern sich die Programme wie Browser.
 
@Lesco

nur^^

das meint ich ja eigentlich, selber dann Programme wie Server mit dem Http-Protokoll zu machen, find ich lustig
deswegen will ich unbedingt so einen Tcp/Ip-Stack machen

@soox das sieht schonmal interessant aus
 
0_o Wieso gleich Netzwerkfähigkeit?
Multithreading wäre doch erst mal c00l... ;)
Ich meine was bringt es dir Pakete zu versenden wenn keine Anwendung die Netzwerkfähigkeit nutzen kann? (es gibt ja nur einen Thread)


MfG, BattleMaker
 
Ich meine was bringt es dir Pakete zu versenden wenn keine Anwendung die Netzwerkfähigkeit nutzen kann? (es gibt ja nur einen Thread)

Threads != Prozesse.
Man braucht sie nicht um ein System laufen zu lassen, welches multitasking beherrschen soll.

Wie ist denn der Stand deines Projekts, was hast du denn schon fertig?

mfg
 
was soll denn da in 2 Tagen passiert sein?
ich such immernoch Infos über Tcp/Ip-Implementierung

@ Battlemaker

das is ja wohl der totale Schwachsinn ;)
natürlich kann man auch bei einem nicht Multithreading System
Funktionen eines anderen Programms nutzen

Multithreading zu machen hab ich keine Lust
ich werd das System nie auf Multithreading umstellen
(ok, vielleicht in ein paar Jahren mal, aber vorgesehen ist das nicht)

@The Dude:

welches Tcp/Ip illustrated meinst du?
das hier http://www.amazon.de/exec/obidos/AS...8-3/ref=sr_8_xs_ap_i3_xgl/302-8223764-5408022 ?
 
was soll denn da in 2 Tagen passiert sein?
ich such immernoch Infos über Tcp/Ip-Implementierung

Du arbeitest 2 Tage an deinem OS und beliest dich schon über Netzwerkfähigkeit?
Du bist sehr schnell.
Arbeitet dein OS im Real oder Protected-Mode?

//EDIT: Ok, oben steht "längere Zeit". Ich glaube Gulliver meinte den Stand deines ganzen Projekts. ;)
 
Original von Nick H.
Multithreading zu machen hab ich keine Lust
ich werd das System nie auf Multithreading umstellen
(ok, vielleicht in ein paar Jahren mal, aber vorgesehen ist das nicht)
Naja - entweder von Anfang an oder gar nicht. Wenn dein Design nicht ausserordentlich gut ist, dann wird es alles andere als angenehm, dass nachher noch einzubauen.
Davon mal abgesehen ist es natürlich richtig, dass Multithreading nicht nötig ist, wenn bereits Multitasking mit Prozessen vorhanden ist - allerdings ist Multithreading für den Anwendungsentwickler deutlich einfacher als immer mehrere Prozesse verwenden zu müssen, wenn man mal Nebenläufigkeiten braucht. Liegt zum einen an der einfacheren Kommunikation zwischen den Threads und zum anderen an der Tatsache, dass ein Prozess sehr viel einfacher zu debuggen ist, als viele verschiedene auf einemal. ;)

(Und zusätzlich können Threads bei geeigneter Implementation und Nutzung auch noch deutliche Performance-Vorteile haben, aber das betrifft in der Regel eher User-Level-Threads)
 
naja, bis jetzt ist das ganze mehr eine ansammlung an spielereien und kein Betriebssystem
aber zB eine grafische Oberfläche lohnt sich einfach nicht,
mir geht es nur darum mehrere Sachen auszuprobieren
später werd ich dann wenn genug Schnittstellen vorhanden sind, das ganze zusammenfügen und zu einem richtigen Betriebssystem machen

das ganze läuft im Real-Mode, ich brauch ja im moment keine großartige Geschwindigkteit
also wär Protected Mode verschwendung

erstmal will ich Http zum laufen bringen und dann guck ich wahrscheinlich mal nach dem Dateissystem
eigentlich hab ich schon ein Dateissystem, aber das bringts nich
ich mach Fat unterstützung rein
und dann hab ich da noch haufenweiße andere Sachen in Planung...

aber mal zurück zum Thema:

kennt vielleicht jemand noch mehr Tutorials oder Bücher über Tcp/Ip-Implementierung?
ich glaub allein durch Quellcode werd ich das nicht hinbekommen
oder gibts vielleicht von Tcp/Ip illustrated eine deutsche übersetzung?
(werd mir aber trotzdem die englische version kaufen, nur deutsch wär halt praktischer)

ich hab mir zB das Buch "Computernetzwerke" von Tanenbaum angeschaut
eigentlich ist das ja in Ordnung (mal abgesehen von der Übersetzung,
nach der sind Chips aus Silicon, statt Silizium und überhaupt die ganzen Sätze sind immer so abgehakt)
nur steht da hauptsächlich Theorie drin
zwar auch wie man das programmieren könnte, aber das ganze wird über Dummy-Funktionen gemacht
(also, nicht über echte Funktionen, sondern zB über eine send() Funktion die es gar nicht gibt, nur damit man es sich besser vorstellen kann)

und in "moderne Betriebssysteme" steht über Netzwerke fast gar nichts

bis jetzt hab ich ein Buch gefunden, das erklärt wie man rohe Pakete über die Netzwerkkarte verschickt, aber nicht wie man darauf Tcp/Ip aufbauen soll
 
erstmal will ich Http zum laufen bringen und dann guck ich wahrscheinlich mal nach dem Dateissystem

Kann es sein dass du nicht den geringsten Schimmer von dem hast, was du da erzaehlst?

Und falls du es doch noch ganz genau wissen willst:
"Internetworking with tcp/ip Volume II" von (Comer und Stevens (David L.)

Prentice Hall Internation editions
ISBN 0-13-465378-5

Dort findest du mehr oder weniger detailierte Darstellungen WIE stacks auf Karten implementiert werden. Mit gut 1/3 Code in dem Buch ist es perfekt zum studieren.

mfg
 
Zurück
Oben