Header
Aug 21 2011

Linux – Umstieg auf ein freies Betriebssystem Teil 6

posted by J0hn.X3r Tutorials

Hallo,

heute folgt (nach langer Pause) Teil sechs meiner “Tutorialreihe”, in diesem Teil werde ich euch zeigen, wie man unter Linux “spielen” und “programmieren” kann. Dieser Teil wird nicht besonders lange ausfallen, weil ich bereits am Anfang schon erwaehnte, dass Zocker auf Linux nicht viel zu suchen haben.

Spiele unter Linux
Die meisten aktuellen Spiele unterstuetzen oft (neben Konsolen) ausschließlich Windows, ein Beispiel von vielen dafuer ist GTA IV, welches an “Windows Live” gebunden ist. Doch woran liegt das?

In erster Linie liegt das an den Herstellern, weil die Zielgruppe der Zocker nunmal hauptsaechlich auf Windows setzt und es sich (aus ihrer Sicht) nicht “rentiert” – ich nenns mal “plattformunabhaengige” – Spiele zu entwickeln. Das ist einerseits nachvollziehbar und andererseits aber auch nicht gut fuer Linux Nutzer. Es gibt einfach zu wenig “Linux Zocker”. Steam zum Beispiel moechte keine Linux Edition rausbringen, obwohl es dafuer Geruechte gab – sie arbeiten lieber an einem Mac Client. Fuer Linux gibt es dann oftmals nur alte Spiele – aber was ist wenn man trotzdem unter Linux “zocken” moechte?

Man moege es ueber Wine probieren, mithilfe von Wine lassen sich Windows Anwendungen (sprich .exe Dateien) ueber Linux ausfuehren. Ich bin kein sonderlich großer Fan davon und hab es auch nicht installiert, weil jemand der auf Linux umsteigt und “Wine” als erstes installiert, sollte sich ueberlegen, ob Linux das richtige Betriebssystem ist.. aber ich schweif vom Thema ab.

Je nach Linux Distribution laesst es sich ziemlich einfach und oftmals aus den Repos installieren
auf Ubuntu / Debianarten:
(sudo) apt-get install wine

Danach die .exe Datei einfach mithilfe von Wine ausfuehren und testen, Steam laesst sich darueber zum Beispiel auch installieren und auch Counter-Strike Source sollte laufen, je nach Grafikkartentreiber macht das dann mehr oder weniger probleme – einige beobachten eine hoehrere FPS Anzahl bei Counter-Strike Source im Vergleich zu CSS auf Windows Systemen.. hab ich selber aber nicht getestet.

Aktuelle Spielen koennen funktionieren, aber das muss man dann erst testen (wie so einiges auf Linux 🙂 )

Das heißt jedoch nicht, dass es keine Games fuer Linux gibt. Es gibt auch viele Games die in einer plattformunabhaengigen Programmiersprache geschrieben wurden (und nicht Windows voraussetzen), ein ziemlich gutes Beispiel dafuer ist Minecraft (ein gaaaaanz tolles Spiel uebrigens 😀 ), das in Java geschrieben wurde und sowohl unter Windows & Mac, als auch Linux funktioniert.

Wenn wir nun schon beim Thema Programmieren sind, dann richtig..

Programmieren unter Linux

Wer unter Linux programmieren moechte, sollte sich plattformunabhaengige Sprachen anschauen – das heißt am besten Programmiersprachen wie C, C++, Java, ASM (…) und Scriptsprachen wie (HTML/CSS,) PHP, Perl, Python, Javascript, … – auf bekannten Sprachen wie Visual Basic (.NET), C# und Delphi sollte man verzichten.

Es gibt auch fuer Linux ganze Entwicklungsumgebungen (IDEs) zum Beispiel von Code::Blocks und anderen Herstellern, aber ich bleib oftmals bei einfachen Mitteln und anhand von diesen werd ich euch in C zeigen, wie man unter Linux “programmiert”. Ich werde euch nicht programmieren beibringen, sondern veranschaulichen, wie “einfach” es unter Linux gehen kann.

Was benoetigt man?
– Einen Editor wie vim / nano / gedit / emacs / was auch immer – am besten mit Syntax Highlighting
– Einen Compiler (gcc fuer C / g++ fuer C++)
– Linux Console/Terminal

Los gehts!
Ich werde vim verwenden, damit wir alles mit einem “Terminal” fenster machen.
Oeffnet euer Terminal, gibt ein “vim hello.c” – wer noch nie mit vim gearbeitet hat, drueckt einfach mal “i” damit unten links “INSERT” steht, nun gebt ihr folgendes ein:

#include <stdio.h>
 
int main()
{
  printf("Hello World!\n");
}

Die Leute die C koennen sehen was passiert, aber an die, die es nicht koennen, in Zeile 1 fuegen wir den Standard Input Output Header ein, d.h. in dieser Datei steht quasi drin, was Befehle wie “printf” machen sollen. Mit int main() { starten wir unser Hauptprogramm, printf gibt den text aus, welcher in den Anfuehrungszeichen steht, \n faengt eine neue Zeile an und das semikolon beendet den befehl, die } schließt unser “Hauptprogramm”. Danach drueckt man einfach escape und gibt “:wq” ein, was fuer “write” und “quit” steht, d.h. so viel wie “speichern und beenden”. Das kleine Programm sollte fuer unseren Test reichen, nun geben wir ein:

gcc hello.c -o hello

gcc – unser c-compiler
hello.c – unser dateiname
-o hello – name der “fertig” compilierten Datei (-o steht fuer output, mehr befehle kann man sich mit “man gcc” anschauen)

Wenn nun keine Fehlermeldung erscheint, dann ist alles fein, ansonsten steht in der Fehlermeldung, in welcher Zeile man sich vertippt bzw. einen Fehler gemacht hat.

Ausfuehren kann man Dateien unter Linux mit ./dateiname:
./hello

Wenn die Ausgabe so aussieht, ist alles fein:

[[email protected] ~]$ gcc hello.c -o hello
[[email protected] ~]$ ./hello
Hello World!
[[email protected] ~]$

Und das wars! Wir haben ein Programm in C geschrieben, compiliert und ausgefuehrt – so einfach und schnell geht das unter Linux 😀 Und das ohne Entwicklungsumgebungen und anderen Muell in einem einzigen Terminalfenster. Ich mein klar, wenn man groessere Projekte vor hat, koennen IDEs von großer Hilfe sein, aber das sollte erstmal zur “Demonstrierung” reichen, wie man unter Linux programmieren kann.

In anderen Sprachen wie PHP, Perl, etc geht das uebrigens genauso einfach, sie lassen ich mit “php dateiname.php” / “perl dateiname.pl” / “python dateiname.py” ausfuehren.

So viel erstmal zum Thema Spiele und Programmieren unter Linux, wer nun vielleicht Spaß an C gefunden hat ( wer weiß ^-^ ), kann sich die Sprache auch weiter anschauen, gibt einige OpenBooks und Tutorials im Internet, auch wenn C schon “uralt” (im Vergleich zu anderen Sprachen) ist, ist die Sprache nach wie vor maechtig und fast ueberall im Einsatz.

Die naechsten Teile werden jeweils Dualboot von Windows und Linux, Festplattenverschluesselung unter Linux, Installation von Ubuntu & Fedora und “die wichtigsten” Linux Commands beinhalten.

Bis zum naechsten Teil!


nuit at 21. August 2011, 22:47

du koenntest noch die shebang erwaehnen 😉 die fuer windows nutzer auch unbekannt sein sollte.
sonst ist fuer anfaenger nano ganz gut.

wer sich vim naeher anschauen will,sollte einfach mal “vimtutor” in die konsole eingeben 🙂

dav1d at 22. August 2011, 11:07

o.O, für wen schreibst du das eigentlich? Schon etwas lame und einem Umsteiger bringt das auch nix, weil er dabei nichts lernt…

Der C-Code ist auch falsch:
#include

int main(void) // void!
{
printf(“Hello World!\n”);
}

akiller47 at 22. August 2011, 11:19

C99 Flamer!

J0hn.X3r at 22. August 2011, 13:51

void hin oder her, hab schon laenger nichts mehr mit C gemacht, abgesehen davon ist es kein “How to” wie man C programmiert, sondern ein Beispiel.

bb at 22. August 2011, 22:22

@p0nny
Hättest ja auch durchaus IDEs wie Eclipse, oder KDevelop (<– richtig klasse) erwähnen können. Wer von Windows Visual Studio kennt und dann mit vim seine Sources schreibt ist denke ich vielleicht erst mal abgeschreckt… (nicht dass ich Visual Studio mögen würde… der MS C++ Compiler kennt "unsigned float"… ihhhh gitt!)

@dav1d
Der Code von p0nny ist absolut korrekt. Kein void in die Klammern heißt in C, dass beliebig viele Parameter übergeben werden können (siehe Code unten). Insofern macht es für mich durchaus Sinn, wenn man sagt, dass der Compiler es ja so einrichten könnte, dass main(int, char **) aufgerufen wird.
Das void in Klammern schließt aus, dass die Funktion Argumente erhält.
________________________________________
Anhang:
#include

void f() { /* nix */ }
void g(void) { /* wieder nix */ }

int main()
{
f(1, 2, 3);
g(1, 2, 3); // <– Fehler!
return 0;
}

fu at 23. August 2011, 13:20

Du schmierst heftig ab.
Selten einen derart SCHLECHTEN Beitrag gesehen

duda at 30. August 2011, 18:19

Wow, du hast ja schon Hater hier Oo

[email protected] at 30. August 2011, 18:50

Oh meine Güte, schlechter und lamer gehts echt nicht.

Alles falsch.

Speaker at 30. August 2011, 23:51

Echt nice dein Blog. Dein Beitrag hat mir auch gefallen.
Kannte aber schon alles =P Ubuntu for win

J0hn.X3r at 9. September 2011, 22:09

Eventuell sollte der ein oder andere, der etwas “schlechtes” los laesst auch dazu schreiben, was genau er schlecht findet oder besser machen wuerde 🙂

koala at 11. September 2011, 19:04

Der C code ist alt und fehlerhaft und die Tutorial reihe ist auch copy and paste Shit

Basti at 12. September 2011, 14:25

Hi,

du solltest zum Thema Spielen unter Linux auf jedem Fall ein großes Augenmerk auf Wine legen, denn viele, viele Spiele die unter Mac laufen, laufen auch sehr gut unter Wine, auch aktuelle Titel (StarCraft 2; World of Warcraft). Meiner Ansicht nach führt unter Linux kein Weg an wine vorbei.

Notfalls einfach das Spiel mal bei winhq nachlesen:

http://appdb.winehq.org

Viel Spaß

feedback at 15. September 2011, 00:20

hi, deine seite ist verdammt lahm.Es braucht cirka 15sec~, bis alles fertig geladen hat.

0x3f at 16. September 2011, 13:39

Ich wollte mich erst zurückhalten und will auch nicht gleich einen ganzen Roman darüber schreiben.

Aber ich bin doch auch der Meinung das der Text geklaut ist.

Und dein C Code ist auch schrecklich.

Typisch Skriptkiddie

Don Quichotte at 18. September 2011, 04:07

Kann man Vorpostern nur zustimmen, die Seite ist letzter Zeit ziemlich langsam, früher war das nicht so.

und die Qualität hat ziemlich nachgelassen, was deine Einträgen betrifft.Der blog entwickelt sich immer mehr zu einem fail, sry.

J0hn.X3r at 19. September 2011, 16:32

Hallo,

dafuer das die Seite lahm ist kann ich in erster Linie nix fuer, da gibt es verschiedene Gruende. Ich werd aber schauen was sich machen laesst.

@ koala und andere: Dann sagt mir mal bitte woher der Text geklaut ist? Wenn das so ist brauch ich keinen langen Texte nich schreiben, ich hock oftmals ewig an einem Text und dann wird mir vorgeworfen ich klau ihn.. meine Texte sind qualitativ nicht anspruchsvoll – woher soll ich den dann bitte klauen?

Seid so gut und posted quellen woher ich meinen Text geklaut habt, haut jeden Satz in Google rein und zeigt mir dann die Quelle.

Und zum C-Code.. es geht nicht darum euch C beizubringen und einen “perfekten C-Code” vorzustellen, sondern den Leuten die noch an irgendwelchen Visual Studio Programmen “festhalten” zu zeigen, dass es unter Linux auch “einfach” gehen kann.

Aber fein, dann werde ich mich in Zukunft mit Source Codes zurueckhalten, wahrscheinlich ist es euch sowieso lieber, wenn ich dann nach Source Codes suche und diese Einfuege mit Quellen versehen, statt mir selber was zu ueberlegen, was dann sowieso “falsch” ist oder irgendwelchen Standards nicht entspricht – das es nur ein “Beispiel” war um den Compiler zu demonstrieren scheint sowieso niemanden zu interessieren…

gfxsdvfsd at 20. September 2011, 19:27

SUCH DIR NE FREUNDIN !!!!!!!!!!!!!!

Philosoph at 20. September 2011, 22:50

Alles was du gepostet hast, gibt es 10000x in google.Was soll man denn neues lernen?Und wieso versucht du dadurch leet darzustehen?ÖHÖH ich benutze linux und kein windows, ich hab skill und bin leet 11!!!

So kommt das vor.Die Neulinge lernen dadurch eh nichts, das sieht eher nach geltungsdrang aus, als ob du versucht dich zu beweisen, was durch mangeldem Selbstbewusstsein im real life zutun haben könnte.Du machst dich lächerlich!

Poste endlich mal was vernüftiges und GIB EINE QUELLE WENN DU KLAUST.

J0hn.X3r at 21. September 2011, 11:22

Wer sagt das ich kein Windows nutze? Steht das irgendwo?

Ich versuch euch ein “freies” Betriebssystem vorzustellen, ich hab in keinem der Tutorialreihe erwaehnt das man dadurch l33t ist und behaupte es auch nicht – ich weiß gar nicht wie manche auf so nen dummen Gedanken kommen.

Abgesehen davon hab ich im “real life” genug Selbstbewusstsein. Und ich klaue nichts, das ist nach wie vor eine dreiste Unterstellung. Das Linux nunmal Linux ist, ist halt so.

Wenn Winfuture ueber Nachrichten berichtet die es auch auf Heise oder Golem gibt ist das dann auch geklaut? Nein, weil der Text komplett neu geschrieben ist – es mag vom Sinn her der gleiche sein.

Aber hauptsache Behauptungen aufstellen.. aber man kanns sowieso nicht allen recht machen, von dem her reichts mir an Kommentaren zu diesem Artikel. Wenns euch nicht passt, dann sucht euch nen anderen Blog in dem ihr vorbeischauen moechtet.