Linux – Umstieg auf ein freies Betriebssystem Teil 6

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!

19 Replies to “Linux – Umstieg auf ein freies Betriebssystem Teil 6”

  1. 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 🙂

  2. 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”);
    }

  3. 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.

  4. @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;
    }

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

  6. 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ß

  7. 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

  8. 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.

  9. 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…

  10. 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.

  11. 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.

Comments are closed.