Linuxpfad: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Einführung)
(Einstieg in die Linux programmierung: Die gröbsten sprachpatzer entfernt)
Zeile 23: Zeile 23:
  
 
==Einstieg in die Linux programmierung==
 
==Einstieg in die Linux programmierung==
Als erstes braucht man eine Distribution, einige wurden oben schon genannt.
+
Als Erstes braucht man eine Distribution, einige wurden oben schon genannt.
Man sollten den Grafikkartentreiber von dem Kartenhersteller installiert haben.
+
Man sollten den Grafikkartentreiber vom jeweiligen Kartenhersteller installiert haben.
 
Mit dem Grafiktreiber haben wir nun die Möglichkeit unsere OpenGL Befehle auf der GPU auszuführen, wenn die Grafikkartentreiber nicht installiet sind, dann läuft alles automatisch in Mesa.
 
Mit dem Grafiktreiber haben wir nun die Möglichkeit unsere OpenGL Befehle auf der GPU auszuführen, wenn die Grafikkartentreiber nicht installiet sind, dann läuft alles automatisch in Mesa.
Mesa ist ein Software Renderer, der eine volle OpenGL2.1 unterstützung auf der CPU realisiert.
+
Mesa ist ein Software Renderer, der eine volle OpenGL 2.1 Unterstützung auf der CPU realisiert.
Wenn man OpenGL programmiert, dann greift man auf die OpenGL32.dll oder auf die libGL.so file zu, diese wrappen dann die Funktionen auf Mesa(unter Linux) oder auf den Hardwaretreiber vom Grafikhersteller(nvogl32.dll /usr/lib/ati/libGL.so).
+
Wenn man OpenGL programmiert, dann greift man auf die OpenGL32.dll oder auf die libGL.so file zu. Diese wrappen dann die Funktionen auf Mesa(unter Linux) oder auf den Hardwaretreiber vom Grafikhersteller(nvogl32.dll /usr/lib/ati/libGL.so).
Wenn wir unter Linux programmieren, dann werden wir immer wieder auf den Buchstaben X oder auf X11 stossen, dieses ist der Desktop Manager.
+
Wenn wir unter Linux programmieren, dann werden wir immer wieder auf den Buchstaben X oder auf X11 stossen. X steht hier für den Desktop Manager, das X-Window-System.
Er stellt uns Fenster, RenderContext, Pixelformat, Maus und andere dinge zur verfügung.
+
Er stellt uns Fenster, RenderContext, Pixelformat, Maus und andere Dinge zur Verfügung.
 
In OpenGL gibt es wgl... für Windows basierte und glX... für X11(linux) basierte Befehle.
 
In OpenGL gibt es wgl... für Windows basierte und glX... für X11(linux) basierte Befehle.
Die wichtigsten X11 Befehle werde ich nun mal auflisten.
+
Die wichtigsten X11 Befehle sind:
 
*[[glXChooseVisual]]
 
*[[glXChooseVisual]]
 
*[[glXCreateContext]]
 
*[[glXCreateContext]]
Zeile 65: Zeile 65:
 
*[[XF86VidModeGetAllModeLines]]
 
*[[XF86VidModeGetAllModeLines]]
  
Zum Start mit OpenGL unter X11 braucht man gerademal ein Bruchteil der augelisteten Funktionen.
+
Zum Start mit OpenGL unter X11 braucht man gerademal einen Bruchteil der aufgelisteten Funktionen.
Wenn man ein eigenen Cursor oder garkein Cursor haben will, die Auflösung veränder möchte, Fenster verschieben, auf einen der Displays positionieren will, Überschrift oder Ausmaße des Fenster ändern will, dann hat man bereit alle Funktionen.
+
Wenn man einen eigenen Cursor oder garkeinen Cursor haben will, die Auflösung verändern möchte, Fenster positionieren, auf einen der Displays verschieben oder die Überschrift und Ausmaße des Fenster ändern will, dann hat man bereits alle Funktionen.
Die Befehle befinden sich in den Units x,glx,xlib,xutil und xf86vmode, welche alle mit Freepascal mit ausgeliefert werden.
+
Die Befehle befinden sich in den Units x,glx,xlib,xutil und xf86vmode, welche alle mit Freepascal ausgeliefert werden.
Da Delphi nur einen 32bit windows compiler hat, ist für Objekt Pascal entwickler Freepascal die beste Lösung für platformunabhängiges entwickeln. Für die C/C++ler gelten folgende Header includes <X11/Xlib.h>,<GL/glx.h> und <X11/extensions/xf86vmode.h>.<br>
+
Da Delphi nur einen 32bit windows compiler hat, ist für Objekt Pascal Entwickler Freepascal die beste Lösung für platformunabhängiges Entwickeln. Für die C/C++ler gelten folgende Header includes <X11/Xlib.h>,<GL/glx.h> und <X11/extensions/xf86vmode.h>.<br>
 
<br>
 
<br>
 
Nützliche Links:
 
Nützliche Links:

Version vom 14. Mai 2008, 11:04 Uhr

Linuxpfad

Einführung

Zuerst sollte man den Begriff Linux näher erläutern, denn dieser wird doch häufig falsch genutzt. Mit Linux ist die Kernel von Linus Torwald gemeint und nicht eine Distribution. Was ist der Unterschied zwischen einer Distribution und der Linux Kernel ? Die Linux Kernel ist das Herzstück, sie enthält alle Treiber und Module für das ansprechen und verwalten der Hardware. So enthält diese z.B. Scheduler für CPU und Festplatte, Speichermanger und sogar Dateisysteme wie ext2. Eine Distribution ist z.B. RedHat Server, Fedora, Ubuntu, BSD, Gentoo, myOS, SLAX ... . Diese bieten auf den Kernel aufbauende und vorgefertigte(teilweise vorkompiliert, vorkonfiguriert,gepatcht) Pakete. Die Distributionen unterscheiden sich in vielerlei hinsicht, einige wollen minimalistisch sein, andere wollen Windows von Microsoft nachäffen und andere wiederum bieten Serverlösungen an. Hinter Distributionen stecken oft Communities, einzelne Frickler oder im Falle von RedHat Server und Fedora größere Firmen. Fedora ist eine abspaltung vom ursprünglichem RedHat, welches sich in Fedora(Desktop System) und RedHat Server(Servers System) aufteilte. Fedora ist Offiziel ein eigenes Projekt und hat nichts mit der Firma RedHat zu tun. Diese Distributionen verwenden in der Regel unterschiedliche Packagemanagment Systeme(apt,emerge,...), unterschiedliche Bibliotheken und Desktop Systeme(xfc,gnome,kde,...). Eine der Goldenen Regeln der Distributionen ist "keine Packages, die nicht OpenSource sind" allerdings gibt es da 1-2 Distributionen die sich daran nicht halten und sich gerade deswegen viele zufriedene User erkämpfen konnte. Die rede ist hier von Ubuntu, welches binärtreiber für NV, ATI, WLan sowie einige Video,Bild und Ton Codecs mitliefert. Diese sind bei den anderen Distributionen nicht dabei und müssen von Hand installiert werden. Für Einsteiger ist dies oft schon zuviel erwartet und dann auch das ganze Rechtesystem mit root, usern und einiges mehr, Ubuntu hat in der richtung vieles vereinfacht und kann somit locken. Für erfahrende Linuxer ist Ubuntu mehr schlecht als recht, da diese dann einiges an Arbeit reinstecken müssen, um die Sicherheit und andere dinge wieder auf den Ursprünglichen Stand zurück zubiegen. Diese setzen dann je nach bedarf auf Distribution wie Fedora, Gentoo, Debian,... . Genug Worte über Distributionen, Kernel und Paketen, wer noch mehr wissen will, der kann man in diesem Link schauen und sich über die Suchmachine des Vertrauens weiter schlau machen.

Einstieg in die Linux programmierung

Als Erstes braucht man eine Distribution, einige wurden oben schon genannt. Man sollten den Grafikkartentreiber vom jeweiligen Kartenhersteller installiert haben. Mit dem Grafiktreiber haben wir nun die Möglichkeit unsere OpenGL Befehle auf der GPU auszuführen, wenn die Grafikkartentreiber nicht installiet sind, dann läuft alles automatisch in Mesa. Mesa ist ein Software Renderer, der eine volle OpenGL 2.1 Unterstützung auf der CPU realisiert. Wenn man OpenGL programmiert, dann greift man auf die OpenGL32.dll oder auf die libGL.so file zu. Diese wrappen dann die Funktionen auf Mesa(unter Linux) oder auf den Hardwaretreiber vom Grafikhersteller(nvogl32.dll /usr/lib/ati/libGL.so). Wenn wir unter Linux programmieren, dann werden wir immer wieder auf den Buchstaben X oder auf X11 stossen. X steht hier für den Desktop Manager, das X-Window-System. Er stellt uns Fenster, RenderContext, Pixelformat, Maus und andere Dinge zur Verfügung. In OpenGL gibt es wgl... für Windows basierte und glX... für X11(linux) basierte Befehle. Die wichtigsten X11 Befehle sind:



Zum Start mit OpenGL unter X11 braucht man gerademal einen Bruchteil der aufgelisteten Funktionen. Wenn man einen eigenen Cursor oder garkeinen Cursor haben will, die Auflösung verändern möchte, Fenster positionieren, auf einen der Displays verschieben oder die Überschrift und Ausmaße des Fenster ändern will, dann hat man bereits alle Funktionen. Die Befehle befinden sich in den Units x,glx,xlib,xutil und xf86vmode, welche alle mit Freepascal ausgeliefert werden. Da Delphi nur einen 32bit windows compiler hat, ist für Objekt Pascal Entwickler Freepascal die beste Lösung für platformunabhängiges Entwickeln. Für die C/C++ler gelten folgende Header includes <X11/Xlib.h>,<GL/glx.h> und <X11/extensions/xf86vmode.h>.

Nützliche Links: