Original-URL des Artikels: https://www.golem.de/0912/71568.html    Veröffentlicht: 01.12.2009 12:01    Kurz-URL: https://glm.io/71568

Ausprobiert: Chrome OS, Googles mobiles Linux

Googles Linux-Distribution als Betriebssystem-Killer?

Viel wurde über Googles neues Betriebssystem diskutiert. Golem.de hat sich angeschaut, inwieweit Chrome OS in seiner frühen Version dem Hype gerecht wird, und wie es heute ausprobiert und verändert werden kann.

Um Googles Chrome OS hat es viel Aufregung gegeben: Von einem Angriff auf Microsofts Windows war die Rede, gar von einer neuen Generation, die die gängige Vorstellung von Betriebssystemen ins Wanken bringen soll. Grund genug, Chrome OS nach Freigabe als Open Source in einer sehr frühen Entwicklerversion genauer unter die Lupe zu nehmen.

Sicherlich ist das letzte Wort über Chrome OS noch nicht gesprochen. Es handelt sich bei der soeben veröffentlichen Version um eine frühe Vorabvariante. Dennoch fällt zunächst der Linux-Unterbau auf. Chrome OS verwendet den fast kompletten Unterbau von Ubuntu, genauer Debian GNU/Linux.

Flicken von Google

Einige Pakete - allen voran der Linux-Kernel - werden speziell angepasst. Er basiert auf der 2.6.30er Reihe, wird aber speziell für Intels Menlow-Kernel kompiliert. Hinzu kommt eine abgespeckte Version des grafischen Xservers X.org. Auch hier kommt ein spezieller Treiber für Intels Grafikchipsätze zum Zuge, der zahlreiche Chipsätze der i8xx-, i9xx-, G- und Q-Reihe unterstützt. Ansonsten bringt diese Version noch alle weiteren aktuellen Grafiktreiber aus dem X.org-Paket mit, etwa auch die Treiber "nv" und "radeon" für Nvidia respektive die AMD/ATI-Chipsätze oder für die in der virtuellen Umgebung Vmware verwendete Hardware.

Um zwischen Hardware und Software zu kommunizieren, setzt Chrome OS auf die Schnittstellen Hardware Abstraction Layer (HAL) und Dbus. Die Google-Entwickler haben Chrome OS zudem dem Log-in-Manager mit Namen Slim ein eigenes Theme verpasst. Der Verbindungsmanager kommt aus Intels Moblin-Projekt. Die restlichen Pakete, die Google mit Flicken versehen hat, betreffen die Benutzeroberfläche und schließlich den Chrome-Browser.

Mobiles Google-Linux

Die Installation der aktuellen Entwicklerversion von Chrome OS auf einem USB-Stick erfolgt ähnlich der Installation von Ubuntu auf mobilen Datenträgern. Das Root-Dateisystem bekommt eine eigene Partition. Für Verzeichnisse oder Dateien, die zwingend während des Betriebs verändert werden müssen, legt der Installer eine zweite Partition an. Chrome OS sperrt im Livebetrieb das System komplett, in dem es als lesend eingebunden wird. Dies wird wohl eine Vorschau auf die kommenden Sicherheitsfunktionen sein, die Google dem Betriebssystem später spendieren will.

Denn derzeit können Veränderungen in der Root-Partition vorgenommen werden, wenn der USB-Stick unter einem anderen Linux-System angeschlossen wird. Diese blieben nach einem erneuten Start von Chrome OS bestehen. Künftig soll Chrome OS die Dateien beim Start auf Veränderungen überprüfen und bei Veränderungen neue Versionen aus dem Internet herunterladen. Dadurch soll Malware das Leben schwer gemacht werden. Auf der zweiten, als beschreibbar eingebundenen Partition liegen das Benutzerverzeichnis sowie der Ordner /var, in dem beispielsweise die Logdateien abgelegt werden.

Schlichte Oberfläche

Reduziert auf das Wesentliche startet Chrome OS von einem USB-Stick flink und lädt innerhalb weniger Sekunden das Anmeldefenster. Die Anmeldung in der Testversion erfolgt per Eingabe eines beliebigen Benutzernamens ohne Passwort oder per Google-Account-Name, um auf die Google-Dienste zurückzugreifen. Auch der Browser startete anschließend je nach verwendeter Hardware recht flink. Auf einem Laptop mit Intel-Chipsatz und Nvidia-Grafikkarte ließ er sich allerdings Zeit.

Der erste Eindruck des Google-Betriebssystems ist eine schlichte Oberfläche mit dem bereits bekannten Webbrowser Chrome. Ein Tab mit dem Suchfenster begrüßt den Anwender. In der Menüleiste oben rechts befinden sich drei Icons. Das erste listet erkannte WLAN-Access-Points auf, das zweite den Batteriestand. Unter dem dritten verbirgt sich ein Menü, über das ein Optionsmenü zu erreichen ist oder weitere Fenster geöffnet werden können. Ein Dateimanager fehlt, das Dateisystem lässt sich lesend im Browser mit der Eingabe "file:///" in der Adressleiste einsehen.

Im Optionsmenü können Einstellungen zur Lokalisierung oder zur Privatsphäre vorgenommen werden. Jedes Fenster wird von einer frischen Browserinstanz belegt, in der wiederum einzelne Tabs geöffnet werden können. Mit der F12-Taste öffnet sich eine Art Dateimanager, in dem einzelne Fenster als Vorschaubilder erscheinen. Per Mausklick wird zwischen geöffneten Fenstern gewechselt. Browserfenster können in einem sogenannten Sandbox-Modus geöffnet werden, Chronik oder eingegebene Passwörter werden beim Schließen gelöscht.

Browser im Mittelpunkt

Innerhalb eines Fensters nehmen Tabs wiederum fast sämtliche sogenannte Applikationen auf, die Chrome OS momentan bietet; sei es das Webfrontend zu Google Mail, Calendar oder Flash-Programme wie 3D-Chess. Lediglich Google Talk startet in einem kleineren Fenster, das standardmäßig rechts unten über den anderen Fenstern platziert ist. Damit scheint Chrome OS zumindest nicht brachial von herkömmlichen Benutzeroberflächen abweichen zu wollen.

In der Entwicklervariante lässt sich ein Terminalfenster per Tastenkombination Strg-Alt-T öffnen. Dort gelten die gängigen Linux-Befehlseingaben samt dem unter Ubuntu verwendeten Sudo-Befehl für Eingaben, die Administratorrechte benötigen. Per Tab-Taste wechselt der Nutzer zurück in das erste Browserfenster. Über den Taskmanager ist das Terminal dann wieder erreichbar. Spätestens im Terminal tritt der Linux-Unterbau deutlich hervor. Sämtliche Linux-Befehle sind dort ausführbar.

Chrome OS im Eigenbau

Eine Vorabversion des neuen Betriebssystems von Google Chrome OS zu erstellen, ist nicht ganz trivial. Die Anleitung auf den Entwicklerseiten des Projekts ist zwar ausführlich, aber über mehrere Webseiten verteilt.

Zunächst wird empfohlen, die Zusammenstellung unter Ubuntu 9.10 Karmic Koala vorzunehmen, denn viele benötigten Pakete kommen aus dieser Linux-Distribution. Wer eine andere Linux-Distribution verwenden will, etwa unter Opensuse oder Fedora, findet im Chromium-Wiki Tipps dazu. Dort stehen auch die für die Kompilierung unter Ubuntu benötigten Entwicklerpakete sowie ein Bash-Skript, das deren Installation automatisiert, zur Verfügung.

Um frische Quelldateien für Betriebssystem und Browser aus den Repositories zu holen, werden neben dem Paket "git-core" noch die von Google selbst bereitgestellten Depot-Tools benötigt, die im Pfad liegen müssen.

Ist die Entwicklungsumgebung soweit fertig eingerichtet, geht es an den Download des Quellcodes für das Betriebssystem. Es gibt zwei Möglichkeiten, an den Quellcode zu kommen, einmal über ein Git-Repository, in dem die neue Version des Quellcodes liegt, die aber nicht immer funktionieren muss. Die letzte stabile Version führt eher zu einer erfolgreichen Zusammenstellung. Dieses Tar.gz-Archiv liegt ebenfalls auf dem Server des Chrome-OS-Projekts zum Download bereit. Gegenwärtig beträgt die Versionsnummer 0.4.22.8. Dort liegen auch die Binärdateien für den Chrome-Browser, gegenwärtig chromium-chromiumos-r32516.zip. Diese sind bereits für die Verwendung in Chrome OS angepasst.

Die Anleitung im Internet empfiehlt, den Quellcode im Verzeichnis /usr/local/ abzulegen. Der entpackte Chrome-OS-Quellcode gehört zwingend in das Basisverzeichnis "trunk", das zunächst erstellt werden muss. Zu diesem Verzeichnis sollte dann die Verknüpfung "chromiumos" im Benutzerverzeichnis erstellt werden. Dort muss zusätzlich das Unterverzeichnis "src/build/x86/local_assets" angelegt werden, in dem die gepackten Binärdateien des Browsers unter dem Namen chrome-chromeos.zip liegen müssen.

Im Benutzerverzeichnis ~/chromiumos/src/scripts liegen fast alle benötigten Skripte. Die Skripte werden allesamt als normaler Benutzer gestartet. Benötigen interne Befehle Administratorrechte, ruft ein Skript intern "sudo" auf. Mit den heruntergeladenen Quelldateien an der richtigen Stelle wird zunächst mit ./make_local_repo.sh ein lokales Repository angelegt, aus dem später Pakete bezogen werden. Danach wird die Entwicklungsumgebung mit dem Befehl ./make_chroot.sh erstellt. Wer sich später nicht auf die Pakete im lokalen Repository beschränken will, verwendet hier den erweiterten Befehl "/make_chroot.sh --mirror=http://build.chromium.org/buildbot/packages --suite=chromeos_dev".

Nachdem die Entwicklungsumgebung erstellt wurde, wechselt der Befehl ./enter_chroot.sh dorthin. Dieser Befehl verlangt per sudo nach dem Benutzerpasswort. In der Entwicklungsumgebung empfiehlt es sich, einen lokalen Benutzer für Chrome OS zu erstellen. Damit lassen sich dort an der Konsole später Befehle, die sudo benötigen, ausführen. Im Verzeichnis platform/pam_google wird mit dem Befehl ./enable_localaccount.sh der Benutzer eingerichtet, zurück im Skriptverzeichnis mit ./set_shared_user_password.sh sein Passwort gesetzt.

Die Befehle ./build_platform_packages.sh und ./build_kernel.sh erstellen zunächst die Basispakete für Chrome OS und danach den Kernel. Eigene Anpassungen sind nun auch möglich, etwa weitere Pakete zu installieren oder Änderungen in Konfigurationsdateien vorzunehmen. Mit ./build_image.sh wird schließlich ein komplettes Dateisystem-Image erzeugt und die erstellten Chrome-OS-Pakete samt Kernel installiert.

Mit Exit wird die Chroot-Umgebung verlassen. Das Image kann nun wahlweise nochmals per Mount-Befehl eingebunden werden, um dort weitere Anpassungen vorzunehmen oder per ./image_to_usb.sh --to=/dev/USBKEYDEV auf einen USB-Stick transferiert werden.

Das Web als Plattform

Zusammen mit Hardwareherstellern will Google Chrome OS an einzelne Geräte anpassen, Kernel und Firmware sollen auf die Geräte zugeschnitten und diese von vornherein mit Chrome OS ausgeliefert werden. Das soll unter anderem den Startprozess beschleunigen.

Der Linux-Kernel dient hier nur als Unterbau, um die klassischen Funktionen eines Betriebssystems abzuwickeln - die Schnittstelle zwischen Hardware und Anwendungen. Alles andere läuft im Browser. Dabei ist eine Trennung von der klassischen Vorstellung von Webapplikationen nötig: Es geht nicht um Formulare, die abgesendet und ausschließlich serverseitig verarbeitet werden. Natürlich spielt die Anbindung an Googles Server-Cloud eine zentrale Rolle, aber Webapplikationen, wie sie sich Google vorstellt, laufen weitgehend im Browser ab und werden primär mit HTML, CSS und Javascript realisiert. Die eigentliche Webapplikation liegt im Browsercache vor, Daten speichert der Browser auf dem lokalen System und sichert sie zusätzlich in der Cloud, verarbeitet werden sie mit einer schnellen Javascript-Engine, mit Web Workern auch in verschiedenen parallel laufenden Threads. Video- und Audiodateien spielt der Browser direkt ohne Plug-ins auf, was heute in einigen Browsern schon möglich ist.

Wo diese Mittel an ihre Grenzen stoßen, kommen neue Techniken ins Spiel, die dem Web als Plattform neue Möglichkeiten eröffnen. Da wäre zum Beispiel WebGL zur Darstellung beschleunigter 3D-Grafik. Diese Schnittstelle wird derzeit von der auch für OpenGL verantwortlichen Khronos-Group entwickelt und setzt auf OpenGL ES 2.0 auf, das auf vielen Geräten unterstützt wird.

So soll sich das Web Stück für Stück weiterentwickeln und zu einer echten Alternative zu den heute existierenden Anwendungsplattformen werden. Chrome OS ist so etwas wie die Konsequenz aus dieser Entwicklung: Wenn die Anwendungen ins Web wandern, kann auf einigen Ballast verzichtet werden, den Betriebssysteme heute mitbringen. Das sollte zugleich die Sicherheit und Geschwindigkeit der Systeme positiv beeinflussen, denn Softwarekomponenten, die nicht vorhanden sind, können ein System nicht ausbremsen, Speicher belegen oder Sicherheitslücken aufweisen.

Doch es stellt sich die Frage, ob Nutzer Googles Vision ähnlich attraktiv finden. Denn es bleibt das Gefühl, mit Systemen wie Chrome OS eingeschränkt zu sein, obwohl die genutzte Hardware das gewohnte Windows ebenso verwenden könnte. Angesichts des Marktes für Netbooks gibt es bislang eine klare Entscheidung zugunsten von Windows und gegen Linux, obwohl sich all die Aufgaben, für die ein Netbook gedacht ist, auch mit angebotenen Linux-Distributionen bewerkstelligen lassen und die Geräte mit Linux ihr Debüt gegeben haben.

Noch ist das Web als Plattform nicht so weit, klassische Desktopbetriebssysteme zu ersetzen, doch die Entwicklung, die Googles Vision zugrunde liegt, ist schon heute deutlich erkennbar. Dabei soll Chrome OS erst Ende 2010 auf ersten Geräten ausgeliefert werden. Zudem steht Google mit seiner Idee des Web als Plattform nicht allein. Ob andere Browserentwickler oder Betreiber großer Onlineplattformen - ihnen allen ist daran gelegen, ihre Möglichkeiten im Web auszuweiten.

Fazit

Chrome OS ist in der aktuellen Form kein Ersatz für Windows, Mac OS X oder herkömmliche Linux-Distributionen. Während diese Systeme vielseitig einsetzbar sind, ist Chrome OS ein Betriebssystem für Geräte, die komplett auf das Web als Plattform setzen. Das mag aus heutiger Sicht nach einer erheblichen Einschränkung klingen, geht es aber nach Google, wird sich das in den nächsten Jahren ändern, und auch komplexe Applikationen werden ins Web wandern.

Dabei heißt Web nicht zwangsläufig online, denn dank moderner Browsertechnik ist es schon heute möglich, Webapplikationen komplett offline laufen zu lassen. Zudem wird an beschleunigter 3D-Grafik gearbeitet und mit dem Native Client will Google Entwicklern auch einen direkten Zugang zur CPU verschaffen, um auch anspruchsvollen Spielen ausreichend Rechenkapazität zur Verfügung zu stellen.

Chrome OS ist Googles Ansatz, ein schlankes, sicheres und aufs Wesentliche reduziertes Betriebssystem für diese neue Plattform Web zu entwickeln. So steht nicht Chrome OS in Konkurrenz zu Windows & Co, sondern das Web als Plattform. Chrome OS ist nur ein weiterer Ansatz, dieser Vision Nachdruck zu verleihen. [von Jörg Thoma und Jens Ihlenfeld]  (jt)


Verwandte Artikel:
Google: Chromebooks bekommen "Linux-VMs" und "Terminal"   
(27.02.2018, https://glm.io/133030 )
Google Chromebook: Patent zeigt automatisch öffnenden und anpassenden Deckel   
(28.11.2017, https://glm.io/131364 )
Google: Zweite Developer Preview von Android 8.1 ist da   
(28.11.2017, https://glm.io/131357 )
Google: Chrome wird künftig mit Clang statt Visual C++ entwickelt   
(06.03.2018, https://glm.io/133171 )
FTTH: Google Fiber hat seine Vision verloren   
(05.03.2018, https://glm.io/133146 )

© 1997–2019 Golem.de, https://www.golem.de/