# [OT] Programmieren unter Linux

## CBarcley

Ich möchte unter Linux programmieren lernen.

Ich kann ziemlich gut PHP und Javascript.

Mein Ziel wäre es die serielle/paralelle/USB Schnittstelle anzusprechen. Ein grafisches Interface ist sekundär, soll aber später auch noch her.

Das ganze wären teilweise zeitkritische Anwendungen. 

Unter welcher Programmiersprache geht das am Besten/am Leichtesten?

Kann mir jemand dazu Bücher empfehlen?

Vielen Dank

Calvin Barcley

----------

## spitzwegerich

Zum Programmieren bist du unter Linux genau richtig.

Such dir eine beliebige Programmiersprache aus, es müsste schon eine ziemliche Exoten-Sprache (also z.B. von Microsoft) sein, dass du keinen Kompiler unter Linux dazu findest.

Für systemnahe/zeitkritische Sachen ist wohl nach wie vor C eine gute Wahl.

Ansonsten empfehle ich dir, dass du *vernünftig* Programmieren lernst, also nicht PHP oder Javascript, sondern eher Python oder Java.

----------

## CBarcley

Ok C wäre auch meine Wahl gewesen, außerdem ist PHP relativ C ähnlich.

Aber welches Buch gibt es dazu?

Bis jetzt habe ich nur Bücher gefunden wie:

"C++ in 21 Tagen" Nett aber leider nichts über Schnittstellenprogrammierung

"Windowsprogrammierung" nett, wenn man das braucht... 

"C für Dummies" wieder nur Allgemeines

Wo finde ich etwas zur Schnittstellenprogrammierung?

lg

Calvin Barcley

----------

## birnbaumtruhe

Zu diesem Thema gibt es bereits etliche Threads oder zumindest ähnliche Threads. Vielleicht findest du ja mehr zum Beispiel

[OT] Entscheidungshilfe - Programmieranfänger

https://forums.gentoo.org/viewtopic.php?t=127531

linux und c++

https://forums.gentoo.org/viewtopic.php?t=132123

[OT]C++ lohnt das?

https://forums.gentoo.org/viewtopic.php?t=149490

Help with programming language choice

https://forums.gentoo.org/viewtopic.php?t=168684

Der letzte ist gerade recht aktuell im Off the Wall. Als Literatur wird zum Beispiel recht gerne der Breymann aus dem Hanser Verlag (C++ - Einführung und professionelle Programmierung) empfohlen. Neulich hab ich mir C++ in a Nutshell gekauft, ist als Referenz, wie die meisten Nutshell Bücher, sehr gut.

Falls du eine Frage zur passenden IDE hast, empfiehlt es sich die Suchfunktion zu benutzen da mehrere Duplikate existieren. Zum Thema ansteuern von seriellen, parallelen Schnittstellen gibt es diverse Howtos im Netz. Das fängt bei der Kaffeemaschine an und geht über LCD Displays per USB, etc...

----------

## birnbaumtruhe

 *CBarcley wrote:*   

> 
> 
> Wo finde ich etwas zur Schnittstellenprogrammierung?
> 
> 

 

Möglicherweise hier

http://www.oreilly.de/catalog/belinuxsys/

http://www.oreilly.de/catalog/linuxdrive2/

http://www.oreilly.de/catalog/linuxkernel2/

Als Basisknowhow ...

----------

## rblock

Wenn es um C++ geht, kommt man eigentlich um "Die C++ Programmiersprache" vom Erfinder von C++, Bjarne Stroustrup, nicht herum. Weiterhin wären da "Objektorientiertes Programmieren in C++" von Nicolai Josuttis und "C++" von Stanley B. Lippman. Alle drei im Addison-Wesley Verlag erschienen.

Benötigst Du Algorithmen, empfiehlt sich "Algorithmen in C++" von Robert Sedgewick, auch Addison-Wesley.

Willst Du mit Qt arbeiten, wären da "Das Qt Buch" von Helmut Herold, SuSE Press. Hat aber sonst nichts mit SuSE zu tun.   :Wink: 

Zur GUI-Programmierung mit Qt gibt es "GUI-Programmierung mit Qt" von Olaf Borkner-Delcarlo, Hanser Verlag, und das offiziell von Trolltech autorisierte Buch "C++ GUI Programming with Qt 3" von Jasmin Blanchette und Mark Summerfield aus dem Prentice Hall Verlag. Ist aber in Englisch.

Englische Bücher bekommt man übrigens, wenn man nicht in den USA oder England kaufen möchte, bei http://www.bsb.de relativ preisgünstig. Zumindest günstiger als bei Amazon.de. Sie zeigen sogar zum Vergleich immer den Amazon.de-Preis mit an.   :Wink: 

HTH

Informative Grüße

----------

## CBarcley

Danke für die vielseitigen Rückmeldungen.

Vorallem http://www.oreilly.de/catalog/linuxdrive2/

sieht ziemlich gut aus. 

Werde mich wieder melden wenn ich noch fragen habe oder alle Bücher gelesen hab.  :Wink: 

lg

Calvin Barcley

Danke

----------

## rblock

Ja, aber Linux Device Drivers bezieht sich auf Kernel 2.4. Vor einer Bestellung würde ich mich erkundigen, ob sich unter Kernel 2.6 etwas geändert hat, ansonsten wäre es ggf. nur rausgeschmissenes Geld.  :Smile: 

.

Verschwenderische Grüße

----------

## Deever

 *CBarcley wrote:*   

> Ok C wäre auch meine Wahl gewesen, außerdem ist PHP relativ C ähnlich.

 

Nein, C und PHP haben ausser der ähnlichen Syntax überhaupt gar nix gemeinsam. Das wirst du spätestens bei verketteten Listen und (Binär)bäumen merken!  :Wink: 

 *rblock wrote:*   

> Ja, aber Linux Device Drivers bezieht sich auf Kernel 2.4. Vor einer Bestellung würde ich mich erkundigen, ob sich unter Kernel 2.6 etwas geändert hat, ansonsten wäre es ggf. nur rausgeschmissenes Geld. 

 

An dieser Stelle möcht ich die Serie "Kern-Technik" im Linux-Magazin erwähnen. War bis jetzt immer sehr brauchbar.

Gruß,

/dev

----------

## CBarcley

rausgeschmissenes Geld wegen "Linux-Gerätetreiber, 2. Auflage" ...?

grüße an das Linux Magazin:

http://www.linux-magazin.de/Service/Books/Buecher/HW-Treiber/book1.html

Calvin Barcley

----------

## rblock

Wenn ich mir das Inhaltsverzeichnis ansehe, sehe ich immer etwas zur Abwärtskompatibilität zu Kernel 2.2 und 2.0. Weiterhin, wenn ich mich richtig erinnere, hat sich im Task-Scheduling von Kernel 2.6 einiges geändert. Inwieweit betrifft dies die Device-Driver Programmierung?   :Rolling Eyes: 

Vielleicht kann man an den Autor eine E-Mail mit dieser Frage schicken und der kann einem schon etwas dazu sagen. Und vielleicht, falls es gravierende Änderungen gibt, ob es demnächst eine neue Auflage des Buches geben wird.  :Smile: 

Nachdenkliche Grüße

----------

## birnbaumtruhe

Ich denke man sollte einfach wissen was man tut. Wenn man jetzt ein RS232 Schnittstelle anspricht, dann wird sich hierzu nicht viel geändert haben, der Lerneffekt wird nach wie vor bestehen. Ich hab mir damals Understanding the Linux Kernel gekauft, da war 2.4 schon eingeführt und man behandelte es so nebenbei - trotzdem habe ich einiges gelernt. Es wird mit 2.4 und 2.6 eben nicht anders sein. 

Was für dich noch interessant sein könnte ist diese Seite hier:

http://www.kernelnewbies.org

und ganz besonders

http://www.kernelnewbies.org/documents/

Gruß Michael

----------

## CBarcley

Danke

Werde ich mir ansehen

lg

Calvin

----------

## rblock

Hat eigentlich schon jemand das O'REILLY Buch "Linux Gerätetreiber"?

Ich habe hier einen tollen Canon 9900F USB 2.0 Scanner und kann ihn nicht nutzen.   :Sad:   Ich habe allerdings auf der entsprechenden Website gelesen, dass es, zumindest bei den besseren Scannern, nicht soooo schwierig sein soll den Treiber zu programmieren.

Vielleicht bin ich ja mit meinen gut zwanzig Jahren Programmiererfahrung, davon gut sieben in der Systemprogrammierung, in der Lage einen Treiber zu schreiben. Allerdings hätte ich nichts gegen ein vernünftiges Nachschlagewerk, dass auch diese Thematik anschneidet.  :Wink: 

Nachhakende Grüße

----------

## rblock

Ich habe gerade bei http://www.bsb.de folgendes gefunden:

 *Quote:*   

> 
> 
> Quade, Jürgen; Kunst, Eva-Katharina: Linux-Treiber entwickeln
> 
> Eine systematische Einführung in Gerätetreiber für den Kernel 2.6. 2004. 350 S.. Kartoniert. 
> ...

 

Dazu ist bei Amazon folgendes zu lesen:

 *Quote:*   

> 
> 
> Kurzbeschreibung
> 
> Treiber unter Linux sind im Vergleich zu anderen Betriebssystemen einfach und schnell zu realisieren. In diesem Buch werden die dafür wesentlichen Grundkonzepte beschrieben und mit zahlreichen, einfach nachzuvollziehenden und funktionstüchtigen Code-Beispielen illustriert. 
> ...

 

Leider ist der Titel noch nicht erschienen, befasst sich aber mit Kernel 2.6. und wichtigen Änderungen von 2.4 auf 2.6.   :Smile: 

Und das O'REILLY Buch "Linux Gerätetreiber" ist auch als Onlinebuch unter http://www.ora.de/german/freebooks/linuxdrive2ger/book1.html zu lesen.  :Smile: 

Nachforschende Grüße

----------

