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":
- Bezogen auf 2008 gezahlte Gehälter würde eine Linux-Distribution etwa 10,8 Milliarden US-Dollar kosten.
- Das sind etwa 204,5 Millionen Zeilen Quellcode.
- Das entspricht einem Aufwand von ca. 60.000 Personenjahren.
- Für etwa 6,8 Millionen Zeilen Code des Kernels wäre das ein Wert von 1,4 Milliarden US-Dollar.
- Darin steckten 7.500 Personenjahre Arbeit.
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?
Abonnieren Posts [Atom]
Kommentar veröffentlichen