Programmieren unter Linux

14/10/2009 - 20:46 von Jan C. Faerber | Report spam
Hab leider keine weitgreifenden Programmierkenntnisse.
Und auch nicht die Zeit jetzt gemütlich Tutorials durchzuackern mit
weiterführenden Beispielen.
Mich würds nur prinzipiell interessieren - vielleicht kommt zumindest
mal ein kleines Applet heraus dabei:

Wie geht man unter Linux generell vor, wenn man ein Programm schreibt,
dass im Idealfall schlußendlich Hardware steuert - also etwa ein
Treiber sein kann - weil es soetwas für Linux z.B. nicht gibt?
Kann man da Unix und Linux vermantschen - also einsmachen? (Wobei ich
Unix überhaupt nicht kenne - außer Linux.)

Gibts da eine Checkliste?:

C/C++ muß es unbedingt sein oder Perl oder Java???
Dann die USB Protokoll / Spezifikationen studieren.
Die Hardware genau mit Bauplànen unter die Lupe nehmen oder mit so
einer Art Portscann bombardieren? Ich weiß, der Vergleich ist
unangebracht - aber irgendwie muß man wohl herausfinden, welche
"Hebel" in einer Hardware stecken, die man dran-pluggen will.

Ich frag nur, weil ich mir denk, dass ich mit einer Zielvorstellung,
eine konkrete Sache zu tippseln, besser auch ein Argument finden kann,
mir entsprechende Informationen zu Gemüte zu führen.

Das soll jetzt kein duftendes Stück Kàse in einer Mausefalle sein -
Ist eher so eine Frage von mir "Was ich schon immer wissen wollte."
 

Lesen sie die antworten

#1 Jan Kandziora
14/10/2009 - 22:50 | Warnen spam
Jan C. Faerber schrieb:

Wie geht man unter Linux generell vor, wenn man ein Programm schreibt,
dass im Idealfall schlußendlich Hardware steuert - also etwa ein
Treiber sein kann - weil es soetwas für Linux z.B. nicht gibt?



Dafür gibt es keine allgemeingültige Antwort, weil es zu viele verschiedene
Geràteklassen gibt.

Alles was auf dem Mainboard drauf ist braucht üblicherweise einen
Kerneltreiber (es gibt inzwischen aber auch einen Kernel-Helper dafür) und
wird in C programmiert -- kein C++, nur C und evtl. Assembler.

Für alles andere kannst du Treiber auch im Userspace machen, da bist du in
der Wahl der Programmiersprache völlig frei. Üblicherweise gibt es aber
schon bestimmte Frameworks für die Geràteklasse z.B. libusb für USB-Geràte
oder SANE für Scanner. Man sollte das Rad also nicht neu erfinden, sondern
diese existierende Software erweitern. Dann nimmt man logischerweise eine
Programmiersprache, bei der man das existierende Framework leicht benutzen
kann.


Kann man da Unix und Linux vermantschen - also einsmachen? (Wobei ich
Unix überhaupt nicht kenne - außer Linux.)



Das ist nicht OS-abhàngig, sondern von den existierenden Treiberframeworks.


Dann die USB Protokoll / Spezifikationen studieren.



Unnütz. Es sei denn, du hast genau die Protokollstruktur von dem Geràt
vorliegen. Wenn es eine Standard-USB-Geràteklasse ist, gibt es dafür schon
einen Treiber. Im anderen Fall muss du die Kommunikation des
MS-Windows-Treibers mithorchen und daraus das Protokoll zurückentwickeln.
Ist was für Leute mit harten Nerven.


Die Hardware genau mit Bauplànen unter die Lupe nehmen



Bringt auch nichts, denn man bekommt keine Bauplàne und in den fast allen
Geràten stecken heutzutage nur Customchips, zu denen man ebenfalls keine
Infos bekommt.



Ich frag nur, weil ich mir denk, dass ich mit einer Zielvorstellung,
eine konkrete Sache zu tippseln, besser auch ein Argument finden kann,
mir entsprechende Informationen zu Gemüte zu führen.



Wenn du nicht programmieren kannst ist die Erstellung von Geràtetreibern das
letzte, zu dem du dich berufen fühlen solltest. Obwohl, für MS-Windows
macht das ja auch fasst immer der Praktikant. Anders sind die üblichen
hirnlosen Protokolle, übelsten Bugs und sonstigen Designschwàchen
kommerzieller Treibersoftware kaum zu erklàren.

Mit freundlichem Gruß

Jan

Ähnliche fragen