Treiber Programmierung

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Treiber Programmierung

Beitrag von cloidnerux » Di Okt 07, 2008 2:52 pm

IChhabe für das Aerisprojekt mal die Frage wegen den Tereibern.
Was macht ein Treiber genau und wie Programmiert man einen.
ICh habe vor den KErnel als Microkernel laufen zu lassen, weil es dadurch stabiler ist.
Das heißt, die Treiber sind Ausgelagert und werden nur noch vom Kernel gestartet.BIN für vorschläge OFFEN
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 07, 2008 3:07 pm

Zu erst der Vorschlag: Schreibe zuerst einen Kernel, bevor du dir überlegst, wie man Treiber schreibt.

Wie die Treiber aussehen müssen hängt nämlich stark mit der Struktur deines Kernels zusammen.
Bevor du Treiber aber überhaupt laden kannst, muss dein Kernel erstmal in der Lage sein seinen Speicher zu verwalten, evtl mit Paging umzugehen und Module (von GRUB mitgeladene Codeteile) finden und starten zu können.

Hier auch mal wieder: Ohne GRUB bist du hier aufgeschmissen.
Dann musst du erst einen "Festplattentreiber" schreiben, den du fest in den Kernel integrierst und der in der Lage ist, vom jeweiligen Dateisystem Daten zu laden.
Ansonsten kannst du auf deine Treiber gar nicht zugreifen...

Den Treiber selber schreibst du eigntl wie den Kernel.
Der Treiber ist, je nach dem wie du ihn aufbauen willst, nur eine Ansammlung von Funktionen.
Wird der Treiber gebraucht (Festplattenzugriff, USB-Maus), dann wird er z.B. bei der Maus wohl am besten als Art InterruptHandler gesetzt.
Heißt immer wenn an der Maus was passiert, wird ein Interrupt ausgelöst, der dann Funktionen im Treiber aufruft, die dann wiederrum den gewünschten Effekt erzielen sollten.

:)
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Treiber Programmierung

Beitrag von Xin » Di Okt 07, 2008 3:07 pm

cloidnerux hat geschrieben:Was macht ein Treiber genau und wie Programmiert man einen.
Ein Treiber abstrahiert eine beliebige Hardware auf Basis einer wohldefinierten Schnittstelle. Das OS bedient damit lediglich die Schnittstelle, der Treiber übersetzt diese Befehle passend für die anzusteuernde Hardware.
cloidnerux hat geschrieben:ICh habe vor den KErnel als Microkernel laufen zu lassen, weil es dadurch stabiler ist.
Das heißt, die Treiber sind Ausgelagert und werden nur noch vom Kernel gestartet.BIN für vorschläge OFFEN
Da Du den Kernel schreibst, bestimmst Du auch, wie man treiber schreibt.

Sinnvoll wäre jedoch ein vorhandenes Treiberkonzept zunächst zu übernehmen, um auch Treiber einfach portieren zu können.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Di Okt 07, 2008 6:44 pm

Danke für Hilfe.
Ich will durch dises Forum nur Wissen was ich für Treiber benötige, um mienen kernel dementsprechend zu Programmieren.
Eine Frage hab ich noch:
Ich starte von einem Diskettenimage, muss ich dann einen Festplattentreiber bauen, oder einen Diskettentreiber?


____________________________________________________________________________
Aeris v0.1.1 komt bald raus
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Di Okt 07, 2008 7:05 pm

Wenn du Daten von einer Diskette lesen willst, dann brauchst du einen Treiber, um die Diskette ansprechen zu können.
Außerdem benötigst du "etwas", um mit dem Dateisystem (FAT16, wenn ich mich nicht irre) klar zu kommen.

So sieht's auch bei der Festplatte aus.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Mi Okt 08, 2008 9:49 am

Die Diskette hat etx2 (oder so änlich) weil ich das unter Linux gemacht habe.
Also muss ich den Disketten Treiber und die Dateisystemunterstützung in den Kernel einbauen.
Kann ich dann Später einen externen Disketten Treiber Laden, um den im Kernel abzuschalten, da das das nicht einen reinem Microkernel entspricht


__________________________________________________________________
Aeris v 0.1.1 Komt bald raus
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Do Okt 09, 2008 12:37 pm

cloidnerux hat geschrieben:Die Diskette hat etx2 (oder so änlich) weil ich das unter Linux gemacht habe.
Also muss ich den Disketten Treiber und die Dateisystemunterstützung in den Kernel einbauen.
Kann ich dann Später einen externen Disketten Treiber Laden, um den im Kernel abzuschalten, da das das nicht einen reinem Microkernel entspricht
Es ist FAT 12. Zumindest ist das bei mir auch so.
Diskette = FAT 12.

"Kann ich dann" leitet eigntl eine Frage ein, die ich dir auch gerne beantworten würde, aber ich sehe keine Frage. :)

Was hast du eigntl gegen GRUB?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Do Okt 09, 2008 2:27 pm

Ich hab nichts gegen GRUB. Es ist nur so,das ich es Blöd finde wenn alles was zu einem Betreibsystem dazugehört schon in einem fertigen Produckt ist. Das wäre fast so wie ein OS-Builder2008 wo man nur die GUI anpasst und ein eigenes OS hat.
Aber bei mir ist das Dateisystem ext2fs, sagt grub und ich ahbs so formatiert. Fat12 ist nicht immer da, weil das Unabhängig ist. Du könntet auch eine Festplatte mit FAT12 Formatieren.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Treiber Programmierung

Beitrag von Dirty Oerti » Do Okt 09, 2008 2:37 pm

Ich weiß nur, dass alle meine Disketten FAT12 sind.

GRUB ist auf keinem Fall alles, was zu einem Betriebssystem dazu gehört.
Im Endeffekt lädt GRUB deinen Kernel nur in eine Protected Mode Umgebung.
Wenn du willst, lädt dir GRUB auch noch weitere Dateien und sagt dir, wo sie im Speicher liegen.
Mehr tut GRUB nicht. (Es kann dir noch Informationen über den Computer geben wie z.B. Speichergröße ..auch SEHR nützlich)

Dann beginnt die eigentliche Arbeit des Kernels erst.
In den Protected Mode zu wechseln ist ja nun nicht gerade Grundaufgabe eines Kernels..
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Treiber Programmierung

Beitrag von cloidnerux » Do Okt 09, 2008 2:42 pm

Vielleicht nicht, es ist aber besser mal sowass gemcht zu haben, denn ich will ja lehrnen.
Und ich habe nur Diskettenimages, die wurden künstlich erstellt, desshalb ext2fs.
Ich besitze noch nicht mal mehr ein FDD oder LPT1 anschluss.
Desswegen sind diene Disketten Fat12, weil das Windows lesen kann

Frage: Wie schafe ich ein system shutdown/restart mit C zu Realisiren.
Darüber steht nirgenswo was im Internet.
Hilfe erwünscht!
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten