31 März 2006

LOS! Start(e) mich neu!

Jeder Windows-Benutzer hat einen solchen Dialog in irgendeiner Form schonmal gesehen. Windows hat eine Angewohnheit bei jedem Furz neu starten zu wollen. Ich kann mich daran erinnern, dass Windows 98 nach dem Anzeigen der Netzwerkeinstellungen, ohne etwas verändert zu haben, einen Neustart forderte. Zugegeben, es ist bei Windows XP nicht mehr so schlimm, wie bei Windows 9x, aber für einen Linux-User ist es selbst bei XP unbegreiflich, warum das System bei manchen Änderungen nach einem Reboot schreit.
Unter Linux gibt es nur eine einzige Situation, bei der ein Reboot nötig ist, und das ist ein Kernel-Update. Wenn ich mir beispielsweise einen neue Version von Apache installiere, dann starte ich nur dieses Programm neu, aber nicht das ganze System. Selbst wenn die grafische Oberfläche mal stecken bleibt, besteht immer die Möglichkeit den X-Server abzuschießen und neu zu starten. Sogar bei einem neuen Gerätetreiber muss man unter Linux das System nicht neu booten, er kann im laufenden Betrieb als Modul in den Kernel eingebunden werden.
Bei Windows sieht das ganze anders aus. Viele Programme erfordern einen Neustart, nachdem man sie installiert oder eine neuere Version installiert hat (hier ist es nicht mehr so schlimm, wie früher). Stürzt bei Windows die grafische Oberfläche ab (ja, sowas soll schonmal vorgekommen sein) muss das System neu gestartet werden, weil Windows nicht nur nicht die Oberfläche vom Konsolenmodus trennt, sondern gar keinen reinen Konsolenmodus mehr bietet. Bei neuen Gerätetreibern muss man, nach wie vor, neu starten, obwohl das eigentlich unbegreiflich ist, es müsste doch möglich sein die neuen Treiber einfach ins laufende System zu integrieren. Ein reines "Kernelupdate" wie unter Linux, gibt es bei Windows nicht, weswegen man es entweder mit einem neuen Service-Pack vergleichen müsste (obwohl hier nicht unbedingt der Kern ausgetauscht wird) oder sogar mit einem Update auf eine neue Windows-Version. Hier kann sich man allerdings glücklich schätzen, wenn man mit einem Neustart auskommt (zumindest beim kompletten Update kommt man dabei bei weitem nicht hin).
Linux-Software-Updates, außer der Kernel selbst, kommen prinzipiell, wie schon gesagt, ohne einen Reboot aus, obwohl es bei einigen Programmen durchaus einen Sinn ergibt, wenn man freiwillig neu startet (z.B. beim Gerätedateimanager udev). Hier hat man als User aber immer die Wahl, ob man das wirklich will. Selbst beim Kernel-Update zwingt einen das System nicht zum reboot. Es läuft einfach mit dem alten Kernel solange weiter, bis das System neu gestartet wird und bootet dann (hoffentlich) den neuen Kernel.
Fairerweise muss ich sagen, dass Windows-Systeme, zumindest augenscheinlich, sehr viel schneller booten, als Linux-Systeme, wobei es sicher viele Ausnahmen gibt, die mich eigentlich dazu zwingen sollten das nicht so pauschal zu sagen. Fakt ist jedoch, das ein Linux-System, nachdem man sich an der Oberfläche angemeldet hat und die Session-Daten wiederhergestellt wurden, sofort bedienbereit ist. Windows muss oft noch sehr viele Prozesse im Hintergrund starten, bevor man mit der Arbeit beginnen kann (ich habe schon erlebt, das ich über 1 Minute warten musste, bevor ich nach dem Erscheinen der Taskleiste auf Start klicken konnte).
Ich persönlich unterziehe mein Linux-System zur Zeit einem kleinen Härtetest und habe seit über 28 Tagen keinen Reboot gemacht und das wäre mit Windows, egal in welcher Version, undenkbar, weil man in 4 Wochen immer mal irgendwas macht, was das System zum Reboot zwingt und das muss noch nichtmal ein Systemabsturz sein!

20 März 2006

Digitale Epidemien

Seit es Computer gibt, gibt es Menschen, die schädliche Software programmieren. Okay, ganz so schlimm ist es nicht gewesen, die ersten Computerviren wurden erst Ende der 80er bzw. Anfang der 90er entwickelt (siehe Eintrag in Wikipedia). Die Art und die Zielsetzungen und vor allem die Verbreitungswege dieser digitalen Bedrohungen haben sich allerdings mit der Zeit geändert. In den 90ern bestand die Bedrohung aus Viren, die sich über Datenträger und über LANs verbreitet haben. Sie haben andere Dateien infiziert und Dinge mit dem Computer angestellt, die nicht im Interesse des Benutzers waren. Dies reichte von harmlosem Schabernak bis zum kompletten Datenverlust. Es gab sogar Viren, die Harware zerstören konnte (z.B. den Monitor mit extremen Signalen zur Implosion bringen). Mit der Zeit wurden PCs mit Windows (damals 95) immer beliebter und viele Leute kauften sich einen. Damit und mit der Verbreitung des Internets wurde ein gewaltiger Nährboden für Würmer, Trojaner und andere Malware geschaffen.
Würmer sind Viren insoweit überlegen, weil sie sich selbst verbreiten können (z.B. per E-mail oder durch Sicherheitslücken in Software). Sie haben ähnliche Funktionen, aber oft andere Ziele. Die meißten Würmer und Viren heutzutage sind daran interessiert sich vor dem Benutzer und vor Antiviren Software zu verbergen, sich selbst zu verbreiten und die Kontrolle über das System zu erlangen um beispielsweise DDOS-Attacken zu starten. Würmer und Viren sind nicht das Einzige, wovor vor allem Windowsbenutzer Angst haben müssen. Trojanische Pferde, die als nützliche Software getarnt sind, können unbemerkt beliebige Malware auf dem Rechner installieren. Besonders gefährlich sind Backdoors und Keylogger, weil diese Programme einem Angreifer direkte Kontrolle über das System geben bzw. die Tastatureingaben mitschreiben und somit möglicherweise geheime Daten, wie Kreditkartennummern oder Passwörter auszuspionieren.
Besonders Heimtückisch sind die sogenannten Rootkits, die es sowohl für Unix/Linux, als auch neuerdings für Windows gibt. Auf Linux-Systemen werden sie benutzt, um einem Hacker, der eine Sicherheitslücke in einer Serversoftware (z.B. einem Webserver) ausgenutzt hat um Root-Rechte zu erlangen diese auch weiterhin zu erhalten und vor dem Serveradministrator zu verbergen. Desktop-Linuxnutzer, die keine Serversoftware laufen lassen brauchen sich darüber nicht den Kopf zu zerbrechen, aber für Webmaster, die einen eigenen Server betreiben stellt dies ein sehr ernstes Problem dar.
Unter Windows sind Rootkits deswegen so gefährlich, weil man sie sich als normaler Benutzer bereits einfangen kann, wenn man sich nur eine original-CD kauft und abspielen möchte. Dies ist bei diversen Sony-CDs bereits geschehen (siehe hier). Rootkits unter Windows verstecken z.B. Gerätetreiber und Programme vor dem Benutzer und werden im Verborgenen aktiv und können nur mit erhöhtem technischem Aufwand und einem sehr großen Know-How aufgespürt werden, was den meißten Benutzern fehlen dürfte (siehe Link weiter oben, über den Sony-Vorfall). Antiviren-Software hat mit Rootkits die größten Probleme, da sie eben sehr schwer aufzuspüren sind.
Hat man eine Malware aufgespürt macht sie einem das Löschen oft nicht gerade einfach, da sie selbst dem Administrator die Zugriffsrechte entzihen können, der sie sich dann erstmal wiederbeschaffen muss um die Löschung vorzunehmen. Hinzu kommt eine der häßlichsten Windows-Eigenarten überhaupt, das Verbot des Löschens von Dateien, die in Verwendung sind! Malware, die gerade ausgeführt wird und sich nicht beenden lässt (ja auch das ist unter Windows möglich) kann nur dann gelöscht werden, wenn auf die Datei nicht zugegriffen wird. Ich habe einmal eine derartig hartnäckige Spyware entfernen müssen, die dies nur mit der Wiederherstellungskonsole auf der Setup-CD zugelassen hat, da sie selbst im abgesicherten Modus ausgeführt wurde.
Der abgedrehteste Fall, über den ich glücklicherweise nur gelesen habe, war der von einem Virus, der persönliche Daten in eine mit Passwort geschützte ZIP-Datei packt und vom Benutzer Geld erpresst um ans Passwort zu gelangen! Das Passwort ist glücklicherweise geknackt worden.
Die Hauptschuld trägt zwar Windows, aber auch die unerfahrenen Benutzer, die auf die Tricks der Entwickler hereinfallen. Zusätzlich machen über 90% (grobe Schätzung) der Anwender den Fehler und benutzen ihr System ausschließlich als Administrator (das ist übrigens Microsofts Standard-Einstellung, Komfort über Sicherheit!). Ich muss zugeben, dass ich selbst auch mal auf einen Backdoor-Trojaner hereingefallen bin und dass ich auch keinen eingeschränkten Benutzer-Account unter Windows hatte, aber damals gehörte ich auch noch zu den unerfahrenen Benutzern. Fakt ist, vor digitalen Epidemien kann und sollte man sich schützen, ein Paketfilter (besser bekannt als Firewall) und ein Anti-Virenprogramm sind Pflicht, wobei beides keinen optimalen Schutz bieten kann. Mit gesundem Menschenverstand, einem eingeschränkten Benutzerkonto und den beiden Software-Produkten sollte aber ein vernünftiger Schutz gewährleistet sein.
Ich persönlich bevorzuge allerdings den für mich besten Schutz und benutze einfach kein Windows. Das heißt nicht, das ich 100%tig geschützt bin, aber ich sehe das so, bevor sich ein Hacker die Mühe macht mein System zu hacken, wird er sich vorher an unzähligen armen Windows-Usern vergreifen, die alle ein viel einfacheres und somit verlockenderes Ziel darstellen.

14 März 2006

Teile und Herrsche

Im letzten Artikel ging es um Dateisysteme, und welche besser sind. Diesmal befasse ich mich mit der sinnvollen und effizienten Aufteilung von Festplatten. Natürlich ist vieles hiervon Geschmackssache, und ich werde den Teufel tun zu behaupten, die Lösungen, die ich jetzt vorstelle, seien optimal.
Grundsätzlich kann eine Festplatte in vier Bereiche unterschiedlicher Größe eingeteilt werden. Diese Partitionen werden auch als "primäre Partitionen" bezeichnet. Eine dieser Partitionen darf eine sogenannte "erweiterte Partition" sein. Erweiterte Partitionen können ihrerseits in beliebig viele Bereiche geteilt werden ("logische Partitionen" oder "logische Laufwerke"). Jede primäre und jede logische Partition werden unter Windows als Laufwerke angezeigt.
Der worst-case stellt eine einzige Festplatte mit nur einer Partition dar. Leider werden fast alle PCs, die heute verkauft werden mit einer riesigen Festplatte, die eine Partition enthält ausgeliefert. Da viele unerfahrene Anwender keine Neuinstallation wollen (es ist ja alles so schön eingerichtet) wird es so hingenommen. Das diese Vorgehensweise sehr ineffizient ist weiss man als Neuling einfach nicht.
Unter Windows benötigt man für gewöhnlich weniger Partitionen, als unter Linux. Bei einer Festplatte empfiehlt es sich einen kleinen Teil (je nach Größe der Festplatte 10 - 20 GB) für die erste Partition zu reservieren. Der Rest kann dann für die zweite verwendet werden. Die Auslagerungsdatei sollte man bei dieser Konstellation auf der ersten Partition belassen (keine Änderung nötig). Wer es effizienter mag, kann sich für die Auslagerungsdatei eine extra-Partition schaffen (bis 1 GB) und sie dorthin verlagern. Das hat auch den Vorteil, dass sie bei der Defragmentierung nicht im Weg ist oder selber fragmentiert. Diese Partition sollte als zweites kommen, wenn nicht sogar als erste (was aber etwas komplizierter zu bewerkstelligen wäre). Die Auslagerungsdatei sollte auf jeden Fall in ihrer Größe fixiert werden.
Bei zwei oder mehreren Platten sieht es schon anders aus. Hier bietet sich die Möglichkeit die Auslagerungsdatei auf eine Festplatte zu verlagern, auf die im Normalbetrieb weniger Zugriff erfolgt (Also nicht die Platte auf der Windows und die Programme installiert ist).
Bei Windows-Systemen ist der große Nachteil, dass es umso unübersichtlicher wird, je mehr Partitionen im Spiel sind, weil jede Partition ihren eigenen Laufwerksbuchstaben zugeteilt bekommt. Das NTFS-System bietet, wie im letzten Bericht bereits erwähnt, die Möglichkeit Partitionen in eine Verzeichnis-Struktur einzubinden. Da ich das nicht getestet habe (mir waren zu meinen Windows-Zeiten die Vorteile nicht bewusst) weiss ich nicht, in wieweit das permanent ist (ein Kommentar zu diesem Thema wäre großartig).
Linux-Systeme erfordern normalerweise mehr Partitionen, als Windows-Systeme. Beide kommen theoretisch mit einer Partition aus, aber bei beiden ist es nicht ratsam. Linux-Systeme kennen keine Auslagerungsdatei, sondern erfordern eine Auslagerungs-Partition (es können auch mehrere oder gar keine sein). Diese sogenannte Swap-Partition sollte an den Anfang der Festplatte gesetzt werden, weil dort die Zugriffszeiten kürzer sind. Linux-Setup-Programme bieten normalerweise immer die Möglichkeit der Partitionierung.
Ich werde jetzt zunächst auf ein reines Linux-System eingehen. Besitzt man nur eine Festplatte ist es ratsam, sie geschickt zu partitionieren. Linux kennt keine Laufwerke, das ganze System wird in einem Verzeichnisbaum dargestellt, und die Partitionen können an beliebigen Stellen eingehängt werden. Die Root-Partition (sie wird im Stammverzeichnis eingehängt) sollte die zweite oder die dritte Partition sein. Wenn man das Verzeichnis "/boot" (hier kommt der Kernel und der Bootloader rein) in einer extra-Partition haben möchte sollte dies die zweite sein (<50 MB ext2). Das hat den Vorteil, dass diese kritischen Daten im laufenden System nur dann eingehängt sein müssen, wenn man Änderungen an ihnen vornimmt (z.B. ein Kernel-Update). Der Nachteil ist, dass man jedes mal daran denken muss es zu mounten, wenn man daran etwas ändern möchte. Das "/home"-Verzeichnis sollte auf jeden Fall eine eigene Partition erhalten. Auf diese Weise kann man Benutzereinstellungen und persönliche Daten ganz einfach mit einer eventuell anderen Linux-Version verwenden (z.B. wenn man die Distribution wechselt). Daneben können "/usr" (Programme im Userspace) und "/var" (Log-Dateien und temporäre Dateien) eigene Partitionen erhalten. Gentoo-User sollten für "/usr/portage" eine eigene Partition in Erwägung ziehen und diese mit reiserfs formatieren, da der Portage-Tree äußerst viele sehr kleine Dateien enthält.
Bei zwei Festplatten kann man sehr viel flexibler partitionieren. Die erste Platte könnte z.B. alles außer das Home-Verzeichnis enthalten, oder man erzeugt auf jeder Platte einen Swap-Bereich. Die Möglichkeiten sind nahezu grenzenlos.
Bei gemischten Systemen (Windows und Linux) wird es richtig interessant. Zu beachten ist, das Linux (je nach Kernel) alles lesen kann, aber auf NTFS nicht bzw. nur eingeschränkt schreiben kann. Windows kann Linux-Partitionen grundsätzlich nicht lesen, obwohl es dafür auch Treiber und Tools gibt (wie Lothar in seinem Blog in diesem und vor allem diesem Artikel schreibt).
Am einfachsten formatiert man eine Partition im FAT32-Format um eine Austausch-Partition zu haben (die kann aber nur Dateien unter 2 GB aufnehmen). Es empfiehlt sich Windows auf die erste Platte zu werfen und Linux von der zweiten zu booten (der Rest kann sein, wo man will). Zu beachten ist, dass man zuerst Windows und dann Linux installiert. Genauer gesagt zuerst Windows und dann den Linux-Boot-Loader, weil Windows die böse Angewohnheit hat den MBR ungefragt zu überschreiben.
Um jetzt noch einen abschließenden Vergleich zu ziehen, beide Betriebssysteme sollten partitionierte Festplatten benutzen, Linux im Besonderen. Wer sich einen neuen Rechner zulegt sollte seine einzige Partition verkleinern und eine zweite, wenn nicht sogar mehrere erzeugen, je nach Geschmack. Am besten ist es das Betriebssystem eines neuen Systems selbst zu installieren und die Partitionierung gleich zu Beginn richtig zu machen.

10 März 2006

Dateien mit System

Daten werden ja bekanntermaßen meißtens auf Festplatten gespeichert. Egal, ob es nun eine, oder mehrere im Raid sind, sie müssen in geordneter Form gesichert werden, damit man sie wiederfindet. Wir Menschen sortieren unsere Dateien in Verzeichnisse bzw. Ordner ein. Auf der Ebene des Betriebssystems werden Dateien in einem Dateisystem abgeleg. Windows kennt, grob gesagt zwei Dateisysteme, FAT und NTFS. Das FAT-Dateisystem ist recht antiquiert, wird aber auf Speicherkarten und sonstigen Medien mit eingebautem Speicher immer noch verwendet. Da es nicht über ein Journal verfügt, geht bei der Formatierung von kleinen Medien kein kostbarer Speicherplatz verloren. Bei einem Systemabsturz kann es aber sein, dass Daten vernichtet werden (verlorene Cluster). Das FAT-System ist recht ineffizient, weil es sehr schnell fragmentiert und der Schreib-Lese-Kopf bei Zugriffen auf große Dateien sehr häufig zwischen Dateizuordnungstabelle und Datenbereich hin und her springen muss. Um das im Rahmen zu halten sollte ein FAT-System in regelmäßigen Abständen defragmentiert werden, weil sonst die Systemleistung extrem leidet. Hinzu kommt, das eine FAT32-Partition höchstens 32 GB groß sein darf und die maximale Dateigröße 2 GB beträgt. NTFS ist für ein reines Windows-System die klügere Wahl, weil hier nicht nur diese Beschränkungen stark erhöht sind (ich kenne die genauen Zahlen jetzt nicht, aber sie sind jeweils im Terabyte-Bereich), sondern das Dateisystem auch über ein Journal verfügt, was die Datenintegrität (nicht unbedingt die Daten selbst) bei einem Systemabsturz sichert. Die Zuordnungstabellen arbeiten effizienter, wenn auch nicht optimal, und es verfügt über diverse Funktionen, die beim FAT-System fehlen. NTFS kann transparent (der Zugriff erfolgt, wie auf eine normale Partition) komprimiert und/oder verschlüsselt werden. Hinzu kommen die Benutzer- und Gruppenspezifischen Zugriffsbeschränkungen, die sogar noch leistungsfähiger sind, als bei Linux-Systemen, weil man einer Datei explizit sagen kann, welche Gruppe und welcher Benutzer wie auf sie zugreifen kann. Wie bei Linux-Systemen können NTFS-Partitionen auch in den Verzeichnisbaum gemountet werden (erscheinen dann nicht als Laufwerk), aber dies ist, soweit ich informiert bin, statisch und lässt sich, wenn überhaupt, nur sehr schwer ändern. NTFS neigt leider auch zur Fragmentierung und das Defragmentierungsprogramm, welches bei WindowsXP beiliegt behebt den Zustand zwar, aber nicht mehr so effizient, wie sein Vorgänger bei Windows 9x. Es entstehen relativ kleine Lücken zwischen den Datenblöcken, wodurch im zukünftigen Betrieb die Fragmentierung beschleunigt wird. Hierfür gibt es allerdings von Drittherstellern bessere Tools, wie zum Beispiel das Defragmentierungsprogramm, der Norton-Utilities.

Linux-User können zwischen mehreren wirklich guten Dateisystemen wählen. Ich werde jetzt hier nicht alle erklären, aber ich werde kurz auf die, meiner Meinung nach, wichtigsten eingehen.
Auch wenn ReiserFS mitlerweile von einigen Distributionen als Standard verwendet wird, möchte ich mit Ext2 bzw. Ext3 beginnen. Ext2 kann man mit dem FAT-System von Windows vergleichen, da es nicht über ein Journal verfügt. Allerdings unterliegt es nicht den Grenzen von FAT. Je nach Inode- (Block-)Größe (1KB bis 4KB) sind auf PCs Partitionsgrößen von 2TB bis 16 TB möglich und Dateien dürfen maximal 16 GB bis 2 TB groß sein. Das Ext3-System erweitert Ext2 um die Journaling-Funktion, und wird deswegen neben ReiserFS of als Dateisystem für Linux verwendet. Beide Ext-Systeme sind so konzipiert, das sie sehr schwer fragmentieren, und selbst bei einer Fragmentierung der Schreib-Lesekopf sich effizienter bewegt, als bei den Windows-Systemen, was nicht nur die Geschwindigkeit erhöht, sondern auch die Platte leiser laufen lässt (was eine persönliche Beobachtung von mir ist). Bemerkenswert ist, das Ext3-Dateisysteme, wenn das Journal sauber ist, auch als Ext2 gemountet werden können, ohne, dass die Datenintegrität verloren geht. Das ist z.B. praktisch, wenn man bei einem Kernelwechsel den Ext3-Support vergessen hat.
ReiserFS verwendet zur Speicherung von Dateien anstatt Tabellen, Bäume, die im Endeffekt mit der Verzeichnisstruktur übereinstimmen. Der Dateizugriff erfolgt, vor allem bei kleineren Dateien, sehr viel schneller, als bei den Ext-Systemen.
Zu erwähnen wären da noch XFS und JFS, die beide vorzugsweise in Server-Systemen verwendung finden. Ich habe beide nicht getestet und kann deswegen nur sehr wenig darüber sagen. JFS ist ein sehr schnelles Dateisystem, was vor allem daran liegt, das alle Datenträger zugriffe so spät wie möglich erfolgen und alles gecached wird. Das hat allerdings den Nachteil, das bei einem Stromausfall mehr Daten verloren gehen, als beispielsweise bei ReiserFS.
Zu XFS kann ich noch weniger sagen, außer, dass es die höchste Partitionsgröße, der hier vorgestellten Dateisysteme bietet (18 Exabyte) und sehr robust sein soll. So wie es sich anhört ist es für den normalen Anwender etwas "overpowered", obwohl mich für diese Aussage sicher einige Leute hassen werden ;-)
Einige Konzepte vereinen alle Linux-Dateisysteme in sich und die werde ich jetzt zum Schluß noch vorstellen.
Alle Systeme bieten die Unix-typischen Nutzerrechte. Jede Datei hat für den Benutzer, die Gruppe und für alle anderen die Attribute "lesen", "schreiben" und "ausführen". Jede Datei hat einen Besitzer und wird einer Gruppe zugeordnet, wobei beides änderbar ist. Diese Attribute können alle vom Besitzer der Datei oder vom superuser (root) manipuliert werden. Verzeichnisse besitzen die selben Attribute, wobei sie hier etwas anders zu verstehen sind. "Ausführbar" bedeutet, dass man in dieses Verzeichnis wechseln darf, "lesen" bedeutet, dass man sich den Inhalt auflisten lassen darf und "schreiben", dass man eigene Dateien hinzufügen darf. Mit diesen Mitteln lassen sich recht komplexe Zugriffs-Strukturen erzeugen, die denen von Windows (mit NTFS) allerdings etwas unterlegen sind, wobei sie einfacher zu verstehen und umzusetzen sind.
Der größte Vorteil gegenüber der Windows-Systeme ist das Konzept der Links. Man unterscheidet zwei Arten von Links, die Softlinks und die Hardlinks. Hardlinks sind zusätzliche einträge im Dateisystem und können daher nur auf der selben Partition existieren. Streng genommen ist der einzige Eintrag einer Datei im System auch ein Hardlink. Eine Datei wird erst dann gelöscht (der belegte speicher freigegeben), wenn der letzte Eintrag (Hardlink) entfernt wurde. Softlinks sind da etwas flexibler, weil sie Partitionsübergreifend erzeugt werden können. Sie haben aber keinerlei Einfluß auf die original-Datei. Man kann sie in etwa mit den Verknüpfungen bei Windows vergleichen. Anders als bei Windows werden sie aber als Vollwertige Dateien bzw. Verzeichnisse betrachtet und können den Verzeichnisbaum dynamischer gestalten (z.B. ein symbolischer Link im eigenen Home-Verzeichnis auf /mnt). Löscht man einen symbolischen Link, wird nur der Link gelöscht, und die Datei bzw. das Verzeichnis bleibt unberührt. Löscht man allerdings die Datei, zeigt der Link immer noch auf sie und wird somit ungültig, aber er kann nicht automatisch gelöscht werden, da in einer Datei nicht gespeichert wird, ob und wo Softlinks auf sie existieren.
Zusammenfassend kann gesagt werden, dass Linux-User (mal wieder) die größere und vor allem bessere Auswahl haben. Windows-User sollten nur dann ein FAT32-System wählen, wenn sie Daten mit einem Linux-System tauschen wollen. Linux kann zwar NTFS lesen, aber der Schreibzugriff sollte mit Vorsicht genossen werden. Mit FAT hat Linux keine Probleme.
Ich arbeite sowohl mit Ext3, als auch mit ReiserFS. Wie genau meine Partitionierung aussieht, werde ich in einem anderen Artikel genauer beschreiben.

09 März 2006

Die Qual der Wahl

Linux Systeme zeichnen sich vor allem dadurch aus, dass der Benutzer, in der Regel, sehr viel Entscheidungsfreiheit hat, wie er sein System einrichten möchte. Dies ist für erfahrene Anwender ein Segen, aber kann für (Linux-)Neulinge ein Fluch sein.
Am gravierensten trifft dies auf die Installation zu. Eine Windows Installation läuft immer nach dem selben Schema ab, der Benutzer muss kaum Angaben machen und nach 30 bis 60 Minuten hat er ein Standard-System, welches noch angepasst werden muss. Dann folgt der schwierigere Teil des Treiber nachinstallierens und dann läuft das System in der Regel ziemlich bald. Bei Linux-Installationen sieht das etwas anders aus. Muss man sich bei Windows lediglich um das Laufwerk kümmern auf das es installiert werden soll, wird man von Linux-Setup-Programmen aufgefordert eine Festplattenpartitionierung durchzuführen. Bei einem nackten Rechner ist das ja kein großer Akt, aber wenn sich bereits ein Betriebssystem auf dem Rechner befindet, ist es selbst für erfahrene Anwender ein sehr verwirrendes und gefährliches Unternehmen und so manche Windows-Installation verabschieded sich, wenn man hier etwas falsch macht.
Die Softwareauswahl, die bei Windows dabei ist, beschränkt sich auf wenige Standard-Programme, wie z.B. MSPaint. Hier bieten Linux-Distributionen eine sehr viel größere Auswahl, weil eine Distribution nicht nur das Kern-System enthält, sondern sehr viel optionale Software, die in der Regel zu Paketen zusammengefasst ist. Diese Pakete sind in komplexer Weise voneinander abhängig und diese Abhängigkeit wird normalerweise beim Aus bzw. Abwählen berücksichtigt. Eine Ausnahme bildet hier LFS (Linux from Scratch) welches für Normalanwender denkbar ungeeignet ist, da man das komplette System selbst baut und auch selber die Abhängigkeiten kennen muss. Diese Zusatzsoftware ist natürlich auch der Grund, warum Linux-Distributionen auf mehreren CDs bzw. auf einer DVD ausgeliefert werden.
Bei Linux hat man die Wahl, ob man eine Desktop-Installation haben möchte oder nicht. Das bedeutet, das Linux auch ohne eine grafische Oberfläche arbeiten kann (im Server-Bereich ist das, neben dem Preis, der größte Vorteil gegenüber Windows), was aber für Umsteiger völlig uninteressant ist. Viel interessanter und für Windows-Umsteiger sehr ungewöhnlich, ist die Tatsache, dass die Oberfläche zum einen als "normales" Programm angesehen wird und das man sich seine Oberfläche selber aussuchen kann. Für Umsteiger sind sowohl Gnome, als auch KDE interessant, und viele Distributionen installieren beide standardmäßig, damit man als Benutzer die Wahl nach seinem persönlichen Geschmack treffen kann. Es ist auf jeden Fall empfehlenswert, wenn man sich für eine entschieden hat, zumindest die Kernbibliotheken der anderen zu haben, damit gewisse Programme, die für eine von beiden konzipiert wurden, auf beiden lauffähig sind (Beispiel: Gimp unter KDE).
Ein Windows-Desktop sieht immer gleich aus. Zumindest seit XP kann man zwischen dem klassischen und dem bunten XP-Stil wählen. Alle grafischen Oberflächen, die Linux bietet sind äußerst anpassungsfähig, was das Design und sogar die Verteilung der Fenster-Steuerelemente angeht. Man kann das Desktop sogar so einstellen, dass es genauso aussieht, wie Windows oder eben, so wie man es gerne hätte, die Möglichkeiten sind fast grenzenlos. Das hat natürlich zur Folge, dass viele Linux-Desktops derart unterschiedlich sind, dass ein Windows-User kaum oder garnicht damit zurecht kommt. Mit Linspire wurde allerdings eine kostengünstige Distribution geschaffen, die sehr nah ans Windows-Layout angelehnt ist und für Umsteiger gedacht ist.
Die Distribution mit der größten Wahlmöglichkeit (und somit der kompliziertesten Installation) ist Gentoo-Linux. Es ist nach LFS die komplizierteste Art Linux zu betreiben, aber auch die interessanteste. Bei Gentoo wird das komplette System aus dem Quelltext übersetzt, wie bei LFS, aber es enthält auch Paketabhängigkeiten, wie andere Distributionen. Für die Installation sollte man allerdings ein paar Tage einplanen, da manche Dinge sehr lange kompiliert werden müssen.
Als Letztes möchte ich mich in diesem Artikel mit dem Kernel beschäftigen. Der Kernel ist das Herzstück eines jeden Linux-Systems. Er ist die einzige Instanz, die direkt mit der Hardware kommuniziert und über ihn läuft im System einfach alles. Er ist nicht nur der wichtigste Teil des Systems, sondern auch der anpassungsfähigste. Hardwaretreiber können entweder direkt in den Kernel kompiliert werden oder als sogenannte Module während des Betriebes dynamisch eingefügt werden. Was man fest integriert und was man als Modul kompiliert hängt vom persönlichen Geschmack ab, aber es ist ratsam viele Dinge als Modul zu kompilieren, weil der Kernel selbst kleiner bleibt und die Module bei Bedarf eingesetzt oder entfernt werden können. Die Module kann man mit den Hardware-Treibern von Windows vergleichen, wobei man bei Windows nicht die Möglichkeit hat sie in den Systemkern fest zu integrieren. Hardware-Treiber, die für Linux direkt vom Hersteller kommen werden als Kernel-Module geliefert und deren Installation ist nicht immer ganz leicht.
Viele Distributionen benutzen vorkompilierte Standard-Kernel, die den Großteil der Hardware abdecken und in der Regel für viele Leute ausreichend sind. Allerdings kann man mit einem spezialisierten Kernel sehr viel Systemleistung herausholen, die normalerweise nicht verfügbar wäre. Aber einen eigenen Kernel einzurichten ist für Laien der schwierigste Prozess, mit dem er sich bei Linux herumschlagen kann (aber heute nicht mehr muss).
Zusammenfassend kann man sagen, das ein Linux-Benutzer viel mehr Wahlfreiheit hat, als ein Windows-Benutzer, deswegen allerdings auch mit einer viel komplizierteren Installation rechnen muss. Man kann grob sagen, je mehr Wahlfreiheit besteht, desto komplizierter ist die Installation. Microsoft sammelt also unter anderem deswegen soviele Pluspunkte, weil sie ihre Kunden kaum entscheiden lassen, wie ihr Computer denn nun aussehen oder sich verhalten soll.

05 März 2006

Teufelskreis

Windows ist das Standard-Betriebssystem im privaten und auch im geschäftlichen Bereich. Obwohl Linux in fast allen Bereichen überlegen ist, lässt sich Windows von den Desktops der Mehrheit nicht verbannen. Die Vorzüge von Linux würden den Rahmen dieses Artikels sprengen, weswegen ich sie im Einzelnen in einer späteren Artikelreihe behandeln möchte. Hier geht es einzig und allein um Windows und warum sich viele von uns einfach nicht davon trennen können oder wollen.
Das fängt schonmal bei der Hardware an, viele Hersteller programmieren ihre Treiber ausschließlich für Windows. Die Kosten wären höher als der Gewinn, der sich durch den zusätzlichen Verkauf der Hardware an Linux-User erzielen ließe, zumindest aus der Sicht der Hersteller. Es gibt glücklicherweise ausreichend viel Hardware, die unter Linux mit Standard-Treibern lauffähig ist, obwohl es die wenigsten Hersteller für nötig halten ihre kompatiblen Produkte als solche zu kennzeichnen. Zumindest bei denen die ein "Designed for Microsoft-Windows" Emblem tragen kann man davon ausgehen, das der Grund eine Finanzspritze aus Redmond ist. Um festzustellen, ob der eigene PC Linux-Kompatibel ist empfiehlt es sich eine Knoppix-CD zu booten.
Das zweite und größere Hauptproblem ist die Software, die es für Windows und nicht für Linux gibt. Für die meißten alltäglichen Aufgaben gibt es in der Open-Source-Welt von Linux angemessene oder bessere alternativen zu Windows-Programmen. Allen voran ist natürlich die Open-Office-Suite zu nennen. Benutzer, die aber auf Spezialsoftware angewiesen sind, schauen bei Linux einfach in die Röhre. Diese, in der Regel verdammt teuren Programme werden aus dem selben Grund nicht für Linux entwickelt, wie die oben beschriebenen Treiber. Hier gibt es zwar schon Lösungsansätze in Form von Wine und Crossover Office (basierend auf Wine), aber mit ihnen laufen die Programme, wenn überhaupt, erheblich langsamer als unter Windows (Manche Programme sollen schneller laufen, siehe Kommentare) und es ist für den Normalanwender recht kompliziert.
Das Argument des Spielens ist zwar für viele Anwender ein sehr wichtiges, aber darüber habe ich mich ja bereits in einem früheren Artikel ausgelassen. Die Spieleentwickler entwickeln aus dem selben Grund, wie die Software-Hersteller und die Treiberprogrammierer nur für Windows.
Im Endeffekt haben wir hier, wie der Titel schon sagt, einen Teufelskreis. Kaum einer macht etwas für Linux, weil es nur von wenigen als Desktop-System genutzt wird. Auf der anderen Seite nutzt es kaum einer als solches, weil viele Programme und Spiele nicht oder nicht so ohne weiteres unter Linux lauffähig sind.
Hinzu kommt die Angst der potenziellen Anwender, mit der Administration des Systems überfordert zu sein, weil es ja überall heißt, das Linux so kompliziert sei. Dieses Argument bekommt man oft von Leuten zu hören, die unfähig sind, Dateien per Drag and Drop zu kopieren, und wenn man es ihnen dann versucht zu erklären nicht mal wissen, was ein Fenster ist.
Eines muss man Microsoft zu Gute heißen, sie haben es geschafft ein System zu schaffen und zu verbreiten, welches selbst von blutigen Anfängern problemlos bedienbar ist. Dies geht jedoch auf Kosten der Sicherheit und der Effizienz, worauf ich aber in der bereits oben erwähnten Artikelreihe eingehen werde.

02 März 2006

Ich und der Internetz-Erkunder

Man soll es kaum glauben, aber ich war mal ein überzeugter Windows-Anwender und habe sogar mal den Internet Explorer benutzt. Aber da war lediglich die Version 3.0 aktuell und der damalige Netscape Navigator war ihm um Längen voraus! Der IE konnte damals noch nicht mal Framesets darstellen, das muss man sich mal vorstellen!
Ich bin durch den freundlichen Tipp eines AOL(!)-Mitarbeiters auf Netscape aufmerksam gemacht worden (damals gehörte Netscape noch nicht zu AOL).
Zu der Zeit nutze ich eines der zahlreichen AOL-CD-Angebote, die ja heute noch angepriesen werden, allerdings ist es heute nicht mehr so leicht aus dem Vertrag bei AOL auszusteigen, aber das gehört nicht hierher. Ich war ich stolz darauf ein Netscape-Anwender zu sein und das änderte sich auch nicht, als der IE diesen überrundete, was ja seit Version 4.5 kaum zu bremsen war! Damals waren die Seiten noch für Netscape optimiert, ich traf sogar auf einige, die das layer-Tag verwendeten (welches heutzutage nicht mehr verwendet wird, weil es der IE noch nie unterstützt hat und Netscape/Mozilla es seit der Gecko-Engine nicht mehr darstellen). Dieser Trend änderte sich aber mit Version 6 des IEs. Dieser bat so viele neue Features, die auch gerne von vielen Websites genutz wurden, dass man mit Netscape einfach nicht mehr auf sie zugreifen konnte, weil es entweder Darstellungsfehler gab oder die Seiten den Netscape ausfilterten mit dem Vermerk "laden sie sich gefälligst einen neuen Browser runter". Rettung versprach Netscape 6, welches zum ersten mal auf Gecko setzte, aber alles andere als Stabil war. Ich hasste Netscape 6 so sehr, dass ich trotzdem bei Netscape 4.7 (das war glaube ich die letzte Version der 4er-Reihe) blieb. Ich musste immer häufiger zum IE greifen, obwohl ich diesen noch weniger leiden konnte als Netscape 6. Wenn der IE abgeschmiert war, und das trat sehr häufig auf, ging auch gleich das ganze Betriebssystem (Windows 98 damals) den Bach mit runter. Ich probierte sogar die Alternative "Opera" aus, aber diesem Browser, auch wenn er noch so gut sein soll, konnte ich nie etwas abgewinnen! Es war eine echte Erleichterung als Mozilla auf den Markt kam! Ich habe mich sofort darin verliebt und benutze es ungefähr seit Version 0.8. Seit Mozilla musste ich immer weniger auf den IE zurückgreifen, was mich sehr zufrieden stellte und meine Systemsicherheit verbesserte. Ich muss dazu sagen, dass ich auch schon immer den Mail-Client von Netscape benutzt habe und genau das wusste ich auch an Mozilla zu schätzen. Daran konnten selbst Firebird und Thunderbird, als sie herauskamen, nichts ändern. Diese Meinung hat sich allerdings vor kurzem geändert! Firefox, wie Firebird schon seit längerem genannt wird, ist mitlerweile zu meinem Standart-Browser geworden, Das liegt nicht zuletzt daran, das er mit Extensions erweitert werden kann und somit den Browser um einige Funktionen erweitert, die es bei Mozilla nicht gab.
Übrigens, das Zahnradglobus-Logo gehört zum Browser "Konqueror" welcher Bestandteil von KDE (eine grafische Oberfläche für Linux) ist. Er ist zwar ein ganz netter Browser, aber mit einem Firefox kann er nicht wirklich mirhalten, obwohl es einige Funktionen gibt, die Firefox, zumindest ohne Extensions, nicht beherrscht (z.B. Das Vortäuschen einer falschen Browser-Identität). Seit dem ich Linux benutze ist der IE natürlich von meiner Festplatte verschwunden, und irgendwie vermisse ich nichts ;-)