Sonntag, 20. September 2009

 

Linux - ein kurzer Überblick

Linux oder oft auch GNU/Linux ist ein unix-ähnliches freies Betriebssystem, welches im Gegensatz zu Windows für viele Plattformen (x86, IA64, PPC, SPARC, Alpha, MIPS, ARM, PA-RISC, S/390, PowerPC uvam.) verfügbar ist.

Eigentlich ist Linux nur der Betriebssystemkern aber man kommt bei einer Distribution üblicherweise eine Menge anderer (System-)Software mitgeliefert, sodass man gleich nach der Installation alles hat, was man zum Arbeiten braucht. Bürosoftware, Kommunikation/Internet, Grafik, Entwicklung, Multimedia und Spiele - alles auf einmal installieren.

Die Software ist durchwegs frei, d.h. auch im Sourcecode verfügbar. Mittlerweile gibt es aber auch schon zahlreiche kommerzielle Programme für Linux.

Der m.E. größte Unterschied zu Windows ist eher eine philosophische:
Linux/Unix Software ist optimal für den Programmierer Malcolm designed, bei Windows ist es Tante Emma, die im Mittelpunkt steht.

Einführung in Linux

Linux ist ein UNIX System. Die folgenden Aussagen beziehen sich daher auf UNIX und Linux.
Die beiden Autoren von UNIX, Ken Thompson und Dennis Ritchie schreiben: Es ist vielleicht paradox, dass der Erfolg des UNIX Systems hauptsächlich darauf zurückgeht, dass es nicht entworfen wurde, um irgendwelche vordefinierten Ziele zu erfüllen.
Dem UNIX System liegt die Philosophie zugrunde, eine Computerumgebung zu schaffen, in der sie selbst (Anmerkung: die Autoren von UNIX) ihre eigene Arbeit in komfortabler und effektiver Weise weitertreiben konnten - Forschung auf dem Gebiet der Programmierung.

Die wichtigsten Maxime von UNIX sind:

1. Jedes Programm soll eine einzige Aufgabe gut erfüllen. Um eine neue Aufgabe zu erledigen, baue eher ein neues Werkzeug, als alte Programme durch Hinzufügen neuer Eigenschaften zu verkomplizieren.
2. Erwarte jederzeit, dass die Ausgabe eines Programmes zu einer Eingabe für ein anderes, vielleicht noch unbekanntes Programm wird.
3. Entwerfe und programmiere Software, sogar Betriebssysteme, so, dass sie früh, idealerweise innerhalb von Wochen, ausprobiert werden kann.
4. Benutze lieber Werkzeuge als unqualifizierte Hilfsmittel, um eine Programmieraufgabe zu erleichtern, auch wenn sich dadurch der Umweg ergibt, diese Werkzeuge erst bauen zu müssen. Erwarte auch, einige davon wegzuwerfen, nachdem sie nicht mehr gebraucht werden.
Die Philosophie von UNIX wurde nie explizit festgelegt, sondern äußert sich implizit in seinen Charakteristiken.

Charakteristiken von Unix

Modularität
Alle Aufgaben werden in Grundbestandteile zerlegt. In einem Programm wird, soweit möglich, eine und genau eine Grundfunktion realisert.
Soviel wie nötig, so wenig wie möglich
Wiederverwendbarkeit
Durch das Lösen von Grundaufgaben im Gegensatz zu aktuellen Spezialaufgaben wird Software in hohem Maß wiederverwendbar.
Generalität
Kombinierbarkeit
Wie sich die Bausteine aus einem Baukasten zu einem ganzen Bauwerk zusammenfügen lassen, so können die einzelnen Programme unter UNIX zu einem größeren Software-"Bauwerk" kombiniert werden.

Verständlichkeit
Aus dem relativ geringen Umfang der einzelnen Software-Bausteine ergibt sich eine erhöhte Verständlichkeit, da kleine Teile stets besser zu überblicken sind als große.
Flexibilität
Der Benutzer kann zwar die gebotenen Leistungen in Anspruch nehmen, vermag sich jedoch auch die Umgebung nach seinen eigenen Vorstellungen selbst zu gestalten.

Besonderheiten von Linux

Linux bezeichnet eigentlich nur den Kernel und wird unter der GNU General Public License verteilt. Allerdings wird unter dem Begriff Linux meist die gesamte Betriebssystemumgebung gemeint, das ist also der Kernel und die Systemsoftware des GNU-Projekts. Korrekterweise müsste man also von GNU/Linux sprechen.
Genaueres zur GNU General Public License ist auf der Homepage des GNU-Projektes zu finden: www.gnu.org

Eigenschaften von UNIX/Linux

Die folgenden Aussagen gelten auch für Linux.
Hierarchisches Dateisystem – alles ist eine Datei.
Multitasking – mehrere Prozesse (laufende Programme) zur selben Zeit.
Multiuser – mehrere Benutzer zur selben Zeit.
Netzwerkfähigkeiten – TCP/IP und damit die Basis des Internets ist mit UNIX groß geworden, in UNIX ist die Netzwerkfähigkeit schon integriert.
Plattformunabhängigkeit – UNIX gibt's für praktisch jede Hardware.
Programmierplattform - UNIX wird von Haus aus mit einer Fülle von Softwarentwicklungs-Tools geliefert.
UNIX ist transparent – die gesamte Systemkonfiguration ist für den Administrator frei zugänglich (praktisch immer in Form von Textdateien).
UNIX ist automatisierbar – praktisch jede (Administrations-)Aufgabe ist automatisierbar.
Flexible Benutzerschnittstelle – es existiert eine Fülle an verschiedenen grafischen Oberflächen, KDE und Gnome sind die häufigsten.

(unvollständiger) Vergleich Windows - Linux KDE

Windows Linux/KDE
Doppelklick Einfachklick
\ als Verzeichnistrenner / als Verzeichnistrenner, / am Anfang eines Pfades ist das Wurzelverzeichnis (root directory)
Laufwerke Verzeichnisbaum, Einhängen (mount) von Wechseldatenträgern, Server-Verzeichnisse
„Eigene Dateien“ /home/$USER
Lizenz GPL (General Public License)
Große umfangreiche Programme Viele kleine Programme mit jeweils nur einem begrenzten Aufgabenumfang (es gibt schon große – OpenOffice)
Kommandozeile schlecht unterstützt – hauptsächlich graphische Oberfläche Gute Unterstützung für Kommandozeile – verschiedene Shells (Filename-Expansion, History, eigene Programmiersprache in Shell integriert)
Dateiendungen wichtig Dateiendungen nicht so wichtig
Registry für Einstellungen Einstellungen werden in „unsichtbare“ Textdateien gespeichert, viele kleine Dateien
ftp – eigenes Programm nötig ftp in konqueror integriert
Login/Shutdown - <ctrl>+<alt>+<del> Eigene Kommandos, Login direkt
Zugriffsrechtesystem (falls eingesetzt) feiner abstimmbar Rechte nur auf Eigentümer, Gruppe, andere
Anwendungssoftware muss extra erworben und installiert werden Die meisten Distributionen enthalten eine Menge freier Anwendungssoftware, die gleich bei der ersten Installation mit installiert werden kann
Programmierumgebungen müssen extra erworben und installiert werden Programmierumgebungen sind mit dabei
Viele Spiele Wenig Spiele
Viele Viren Keine Viren


Interessante Daten zu Linux

Folgende Informationen stammen aus dem Bericht "Estimating the Total Development Cost of a Linux Distribution":

Ähnliche Informationen zu Windows konnte ich leider nicht finden.

Fragen

1. Was ist Linux?
2. Erklären Sie die Philosophie, die hinter UNIX/Linux steckt!
3. Was sind die Charakteristiken von UNIX/Linux?
4. Welche Eigenschaften hat UNIX/Linux?
5. Vergleichen Sie Windows mit Linux!
6. Wo befinden sich Ihre Arbeitsdateien?
7. Wie werden Eigenschaften von Programmen (Konfiguration) gespeichert?

Labels: ,


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]