Treiber machen

Status
Für weitere Antworten geschlossen.
hm ok. also wenn ich nun ein bit in den usermode-gemappten bereich schreibe.
liegt das geschriebene bit dann im RAM oder im Video-RAM?

um mal bei wikipedia zu bleiben
Das Schreiben in den Speicherbereich bewirkt einen indirekten Schreibzugriff bezüglich der Datei.

"indirekter schreibzugriff" ... darunter verstehe ich dann letztendlich eine "direkte datenübertragung".
 
Zuletzt bearbeitet:
DonnyDepp schrieb:
das ist das "heutige treibermodell"?
wird nicht http://en.wikipedia.org/wiki/Windows_Driver_Foundation benutzt, wo user-mode-driver erlaubt sind?


Die Usermode-Treiber haben trotzdem keinen Hardwarezugriff. Das sind i.d.R. USB-Treiber. Die können nur über USB senden und empfangen um so das Gerät zu steuern (wie etwa über ein Netzwerk). Aber Zugriff auf die Gerätesteuerung vom USB haben die Treiber trotzdem nicht.
Ergänzung ()

DonnyDepp schrieb:
um mal bei wikipedia zu bleiben


"indirekter schreibzugriff" ... darunter verstehe ich dann letztendlich eine "direkte datenübertragung".

Wikipedia hat mit Korrektheit und Vollständigkeit wenig am Hut. Der Artikel ist unvollständig und stellt die Dinge falsch dar. Eigentlich gehört der Artikel gelöscht.

Besser ist http://en.wikipedia.org/wiki/Memory-mapped_I/O .
MMIO beschreibt aber den _physischen_ Speicher. Alle modernen Systeme verwenden virtuellen Speicher, d.h. ein beliebiges N:M Mapping von (virtuellen) Speicheradressen auf physische Adressen. Soll ein bestimmter physischer Speicherbereich (z.B. ein MMIO-Block) für ein normales Usermode-Programm "sichtbar" sein, so muss (bei 32-bit Windows) ein Memory Mapping für den Block auf eine virtuelle Adresse zwischen 0 und 0x7fffffff erstellt werden mit entsprechenden permissions. Dann - und nur dann - kannst du Hardware aus dem Usermode per MMIO direkt steuern.
 
Zuletzt bearbeitet:
wo gibts ne anleitung für assabler sprache? wo ich wirklich von 0 bei der sprache anfangen kan und diese auch lernen???

und bitte sagt mir nicht wie lange ich zum lernen brauche will nur ne anleitung;)
danke euch

(nice jungs so viel geschrieben und ich verstehe ca. die hälfte oder vieleicht etwas mehr xD hehe nur man sollte wissen wer bei der ganzen diskusion recht hat xD da kan ich nicht alles glauben xD)
 
Wenn du noch keine Hochsprache beherrschen solltest, würde ich mich nicht direkt mit Assembler beschäftigen. Assembler ist sehr abstrakt und findet in der Praxis heutzutage kaum noch Anwendung. Außerdem benötigt man ein wenig Wissen über die Architektur des zu programmierenden Prozessors. Im Studium wird Assembler zum Beispiel nur gelert, damit die Studenten die Arbeitsweise eines Prozessors besser nachvollziehen können.
Falls du mal irgendwelche sinnvollen Anwendungen schreiben möchtest, dann kauf dir ein C oder C++ Buch und acker das durch. Etwas einsteigerfreundlicher wäre noch Java. Und löse dich von dem Gedanken, dass du in näherer Zukunft irgendwelche Treiber schreiben wirst.
 
Lyrion, dein vorhaben ist total naiv bis zu absolut größenwahnsinnig ;)
Nicht weil es unmöglich ist, sondern weil du scheinbar nicht ansatzweise die nötigen Kenntnisse hast.
Es ist nicht so, dass du zu allem eine Anleitung findest und die auf jedes x-beliebige Problem anwenden kannst, Programme wollen entwickelt werden, da bedarf es jeder Menge Skill und Erfahrung ;)

Wenn dich das Thema interessiert und du Spaß daran hast, dann solltest du zunächst mal mit den Basics anfangen, z.B. wie du mit irgendwelchen .NET Klassen auf Systemressourcen zugreifen kannst, oder z.B. was DLLs sind.
Um das überhaupt verstehen zu können musst du auch das Prinzip der objektorientierten Programmierung kennen, das ist Grundvoraussetzung ....

Gruß
 
estre schrieb:
Um das überhaupt verstehen zu können musst du auch das Prinzip der objektorientierten Programmierung kennen, das ist Grundvoraussetzung ....

OOP is the buzzword of the moment.
It will solve all of your programming problems,
give you unlimited wealth,
and make you irresistible of the opposite sex.

--David Thielen

Sorry, aber um programmieren zu können, muss man nicht gleich OOP beherrschen.
Man kann auch ohne OOP auf die Systembibliotheken greifen.
 
Whiz-zarD schrieb:
Komplettzitat entfernt *klick*

Hey,

Ich habe nicht geschrieben, dass man OOP beherrschen muss, sondern nur das Prinzip verstanden haben sollte (Was ist eine Klasse, Methode, Eigenschaft) :)

Wie kann man denn deiner Meinung nach ohne das Prinzip der OOP anzuwenden auf Systemdaten zugreifen ?

Gruß
 
Zuletzt bearbeitet von einem Moderator: (Komplettzitat entfernt. Bitte Regeln beachten.)
Wie kann man denn deiner Meinung nach ohne das Prinzip der OOP anzuwenden auf Systemdaten zugreifen ?

Selten so gut gelacht... :D

Aber zur Frage: Man nehme ein bißchen C, mixe es mit der Windows API, rührt einmal um, spricht ein Stoßgebet gen Himmel und siehe da, schon hast du den vollen Zugriff auf die Systemdaten. Was auch immer das in deinen Augen sein mag...
 
Zuletzt bearbeitet:
Rossibaer schrieb:
Selten so gut gelacht... :D

Wenn du sonst nichts zu lachen hast, dann tust du mir leid ;) .... ich habe die Frage gestellt weil ich es nicht weiß, also spar dir deinen nerdigen Sarkasmus .....
 
Die Win32-API ist eine reine C-API. Das sind alles Funktionen. Nichts mit Klassen, Methoden und dem ganzen Popanz.
Darum gibt es halt Schicht um Schicht (zum Teil objektorientierte) Wrapper. Zum Beispiel MFC für C++ und ganz neu dann .NET

€: Und Windows NT hat auch noch ein POSIX Subsystem, das ganz ohne Win32-API auskommt. Das OS/2 Subsystem
wurde meines Wissens nach mittlerweile weggeschmissen, gab es aber auch mal. Und selbstverständlich gibt es die
native NT-API unterhalb der ganzen Subsysteme (Also Win32 oder POSIX). Nichts davon ist von sich aus objektorientiert.

€2: Die Native API ist ganz interessant. Gibt auch einen Wikipediaartikel dazu: http://en.wikipedia.org/wiki/Native_API
 
Zuletzt bearbeitet:
estre schrieb:
Wenn du sonst nichts zu lachen hast, dann tust du mir leid ;) .... ich habe die Frage gestellt weil ich es nicht weiß, also spar dir deinen nerdigen Sarkasmus .....

estre schrieb:
Komplettzitat entfernt *klick*

Wenn man _keine_ Ahnung hat besser mal nichts dazu sagen. Treiberprogrammierung hat weder mit OOP was zu tun, noch etwa mit .NET. Damit hats schon 5x nix zu tun! Und mit DLLs hat es ebenfalls nichts zu tun. So viel Schmarn in einem Post lese ich selten.

Können wir den Thread endlich dicht machen?

[x] Vote for Close
 
Zuletzt bearbeitet von einem Moderator: (Komplettzitat entfernt. Bitte Regeln beachten.)
Der Thread hier war nach Post #9 erledigt. Dann wurde er mit Halbwissen und Wikipedia-Quotes "bereichert". Schade.

[x] Vote for close
 
estre: Es ist nicht das Thema, über das ich lachen musste, sondern die Überzeugung mit der du den Threadersteller völlig auf den Holzweg bringst und ihm aufzeigst, dass er noch viel lernen muss. Mal abgesehen davon das deine Empfehlungen dann auch noch in die völlig falsche Richtung gehen. Jemand der keine Ahnung hat, liest nun deinen Post und denkt sich, ok, ich muss also nur OOP und .Net beherrschen, dann schreib ich eigene Treiber. Bravo! So entstehen Gerüchte, die sich nicht mehr korrigieren lassen.

Die Sourcecodes von Treibern, die ich gesehen habe, waren alle in C (auch gern mit etwas Assembler gemixt) geschrieben. Aber das ist nur meine unbedeutende, subjektive Wahrnehmung...

Um das Ganze mit den Worten von IceMatrix zu beenden:

[X] Vote for close

PS: Wer kam eigentlich auf diese lustige Idee mit dem "[x] Vote for close" ???
 
Zuletzt bearbeitet:
Das "Vote for close" kann man sich auch sparen, denn wenn es zu einem Thema nichts mehr zu sagen gibt,
rutscht der Thread eh nach kurzer Zeit auf Seite 300 und das Ganze hat den selben Effekt.

Sorry, dass ich den Thread dafür jetzt hochgeholt habe, aber musste ich mal loswerden
 
Was´n das hier ?

Wenn einfache Fragen schwer zu beantworten sind... ?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben