Autor Thema: Mal wieder die Treiber ;-)  (Gelesen 5997 mal)

ScAr_TeX

  • Beiträge: 25
    • Profil anzeigen
    • ScAr_TeX's Homepage
Gespeichert
« am: 19. June 2007, 10:00 »
Hi Leutz ...

ich komm' einfach nicht weiter. Mein OS lädt, dank Grub, die Treiber als Module. Das Problem ist, ich weiß nicht ob ich die Treiber als Binärdateien (mit eigenem Header), als ELF-Datei (mit Reloc's) oder als eigenständigen Prozess (boaaa *g) laden soll. Außerdem weiß ich noch nicht, wie die Treiber mit dem System kommunizieren sollen...

Könnt ihr mir weiter helfen ???

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #1 am: 19. June 2007, 13:28 »
Moin

Also das Dateiformat hat ja nix damit zu tun, wie du die Treiber in dein System einbinden willst. Du solltest dir halt mal Gedanken machen, wie das Design deines Kernels aussehen soll. Da wird eine der Ersten Fragen sein, welchen Kerneltyp du machen willst, ob Mikrokernel, oder eher einen Monolithen. Danach ist eigentlich auch Klar, was mit den Treibern geschieht, und auch schon in etwa, wie die Kommunikation aussehen soll.

ScAr_TeX

  • Beiträge: 25
    • Profil anzeigen
    • ScAr_TeX's Homepage
Gespeichert
« Antwort #2 am: 09. July 2007, 16:19 »
... Danach ist eigentlich auch Klar, was mit den Treibern geschieht, und auch schon in etwa, wie die Kommunikation aussehen soll.

Genau da, weiß ich nicht weiter. Ich weiß halt einfach nicht wie so ein simples Treibermanagement zu realisieren ist.

Ahhhhh...  :-D

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 am: 09. July 2007, 19:06 »
Was soll es denn werden? Microkernel? Monolithischer Kernel? Oder was ganz anderes?
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

ScAr_TeX

  • Beiträge: 25
    • Profil anzeigen
    • ScAr_TeX's Homepage
Gespeichert
« Antwort #4 am: 09. July 2007, 19:41 »
Was soll es denn werden? Microkernel? Monolithischer Kernel? Oder was ganz anderes?

Irgendwann soll es, hoffe ich mal, ein funktionierender Hybridkernel werden.

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #5 am: 10. July 2007, 17:41 »
hm, das macht es auch nicht grad einfacher :mrgreen:

Mir fallen spontan folgende Funktionen ein, die ein Treiber benötigt:
* besondere Speicherallokationen: zB. Speicher unter 1MB, 16MB, 4GB ( und evtl. dann auch noch physikalisch kontinuierlich) Der Treiber sollte auch die Möglichkeit haben die physikalische Adresse herauszufinden
* I/O Ports reservieren (mit den nötigen Rechten, also IOPL oder TSS I/O Permission Bitmap), benutzen & freigeben
* ein Standardinterface zu anderen Treibern oder in den kernel eingebaute Funktionen um,
     * den DMA Controller dazu zu bringen einen Transfer zu machen (wird zB gebraucht für floppy)
     * den PCI Konfigurationsraum zu lesen/schreiben (kann man natürlich auch abstrakter machen)
« Letzte Änderung: 10. July 2007, 17:42 von bluecode »
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

 

Einloggen