ubuntuusers.de

🚧 Am Sonntag, 5. Mai, werden ab 16 Uhr die Server aktualisiert und eine neue Inyoka-Version veröffentlicht. Das Portal wird mehrmals nicht verfügbar sein.

10. November 2010

Gibt man unter Linux ein Verzeichnis writable = yes/read only = no frei, erlaubt es den Benutzern das “Schreiben” auf diesem Share. Logischerweise somit auch das “Löschen” von Dateien & Verzeichnissen! Aus diesem Grund passt man sicherheitshalber die smb.conf an, damit gelöschte Dateien & Verzeichnisse nur verschoben werden und diese dann je nach Alter von Hand gelöscht werden können. 8-)

Link: Tips & Tricks: Samba Trash

[share$]
   comment = share$
   path = /home/nico/Share
   guest ok = yes
   browseable = no
   read only = no
        vfs object = recycle
        recycle:repository = .deleted/%U
        recycle:keeptree = Yes
        recycle:touch = Yes
        recycle:versions = Yes
        recycle:maxsixe = 0
        recycle:exclude = *.tmp
        recycle:exclude_dir = tmp
        recycle:noversions = *.doc

Beispiel: Samba RecycleBin

# vfs modul 'Papierkorb' einbinden
vfs objects = recycle
# Verzeichnis fuer PK
recycle: repository = .deleted/%U
# Verzeichnisstruktur im PK mitsichern
recycle: keeptree = Yes
# sofort zu loeschende Dateitypen
recycle: exclude = *.tmp, *.temp, *.log, *.ldb
# sofort zu loeschende Verzeichnisse
recycle: exclude_dir = tmp
# PK Dateien versionieren
recycle: versions = Yes
# Ausnahmen fuer Versionierung
recycle: noversions = *.doc, *.xls, *.mdb, *.pdf

Dieses Wochenende, am 13. und 14. November 2010, findet in Oberhausen zum zweiten Mal die OpenRheinRuhr statt. Der Veranstaltungsort ist das Rheinische Industriemuseum und liegt damit direkt am Bahnhof. Verkehrstechnisch geht es also nicht besser.

Samstag und Sonntag werden die Pforten von 9:30 Uhr bis 18.00 Uhr für lappische 5€ (beide Tage zusammen) geöffnet sein und Samstag Abend gibt es natürlich den nicht wegzudenkenden Social Event mit Verpflegung in Form von Pizza. Das vielfältige Programm steht natürlich auch schon seit einiger Zeit und kann sich unter http://programm.openrheinruhr.de/2010/ angesehen werden.

Wer jetzt noch immer  keine Lust hat, sich am Wochenende ins wunderhübsche Ruhrgebiet aufzumachen, dem sei als Schmankerl noch gesagt, Ubuntu hat dort natürlich auch einen professionell betreuten Stand.  Also, was kann man bei dem Wetter schon besseres tun als ein paar alte und neue Gesichter zu sehen und sich inspirieren zu lassen?

Nachdem ich im Artikel “Ubuntu macht Werbung” schon einige Werbevideos gezeigt hatte, bin ich nun bei der Produktion von druckbaren Postern angelangt.

Entstehung

Eigentlich hatte ich ja zur Release Party vom 10.04 schon diverse Poster gemacht. Damals war aber die Layout-Strategie von Canonical gerade im Umbruch und ich musste raten wie das neue Layout aussehen wird. Jetzt ist aber die Layout-Definition von Canonical offiziell erschienen und ich konnte mich mit den ganzen Definitionen und Farbwerten auseinander setzen. Als Grundlage für den Inhalt der Poster hat mir das Werbevideo von Canonical geholfen. Der Kommentar von @burli hat mich auf das Video aufmerksam gemacht. Wer das Video noch nicht gesehen hat, der kann dies hier in einer dezenten oder rockigen Version nachholen.

Produktion

Die Poster wurden mit Inkscape erstellt. Ich finde Inkscape unter den OpenSoure Design-Programmen die ausgereifteste Applikation für solche Aufgaben. Zukunftsorientiert ist auch das SVG Datei-Format dass Inkscape wunderbar beherrscht. Das Layout der einzelnen Poster konnte ich gut erstellen. Die Objekte im Poster habe ich vom Video versucht ab-zu-zeichnen. Es sind mir nicht alle Objekte zu 100% gelungen, das muss aber auch nicht sein, denn ich arbeite ja nicht bei Canonical. Die Poster sind in einer ersten Version in der Original englischen Abschrift entstanden. Die Slogans sind übernommen und auf das Layout eingepasst worden.

Formate

Als Ausgabeformate wurden png Dateien erzeugt. Wer die Poster als Resourcen nutzen möchte, kann die SVG Dateien im Spreadubuntu downloaden. Im Moment stehen die Formate A5, A4 und A3 zur Verfügung. Man kann aber das Poster im A5 Format auch sehr gut auf Webseiten nutzen, wenn man das Bild etwas kleiner erscheinen lässt.

Slogans

Die Poster beinhalten folgende Slogans:

  1. Ubuntu, the ideal open-source operating system
  2. Ubuntu ist the world’s fastest gwowing linux-based operating system
  3. Ubuntu has millions of users
  4. Ubuntu has an internationaly active developer community
  5. Ubuntu is, and always will be, absolutely free
  6. Ubuntu is Fast
  7. Ubuntu is Safe
  8. Ubuntu is Open
  9. Ubuntu runs on desktops
  10. Ubuntu runs on servers
  11. Ubuntu runs in the cloud

Download

Die Poster können von meinem Webserver herunter geladen werden. Im Moment stehen nur die englischen Versionen zu Verfügung

Weitere Poster

Ich möchte die Poster noch gerne in Deutsch anbieten. Andere Sprachen würden auch in Frage kommen. Leider bin ich da aber auf den Input von Euch angewiesen.

Hat jemand Lust mir die Slogans in andere Sprachen zu übersetzen ?

Wenn ja dann meldet Euch einfach in diesem Blog.

PDF-Datei dieses Artikels erzeugen

Ähnliche Artikel

  • Keine ähnlichen Artikel vorhanden

9. November 2010

Heute möchte ich eine kurze Einführung geben, wie man Auktionsvorlagen (Templates) für SaleZ erstellen kann. Eine Auktionsvorlage für SaleZ ist nichts weiter als eine HTML Seite ohne <html>, <head> und <body> Tag. Dementsprechend einfach ist es auch eine solche Vorlage zu erstellen – entsprechende HTML/CSS Kenntnisse vorausgesetzt.

SaleZ nutzt die Tag IDs um z.B. den Titel oder den Untertitel in eine Vorlage einzufügen, deshalb müssen in jedem Template folgende IDs vergeben sein:

  • title – Für den Titel
  • subtitle – für den Untertitel
  • content – für die Beschreibung
  • image_1 bis image_10 – für die Bilder

Zu den Bildern sei noch folgendes gesagt: Die image_1 bis image_10 dürfen nicht einem <img> Tag vergeben werden, da SaleZ den <img> Tag selbst einfügt (in dieser Form: <img src=’imageURL’ style=’width: 100%’ />), d.h. am besten gibt man einem <div> die image ID und legt im <div> die Höhe/Breite des Bildes fest.

Die Standardvorlage in SaleZ ist folgendermaßen aufgebaut:

<div id="page" style="width: 90%; margin: auto auto; -webkit-border-radius: 10px; -webkit-box-shadow: 0 1px 5px grey; -moz-border-radius: 10px; -moz-box-shadow: 0 1px 5px grey; border: 2px solid grey; background-image: -webkit-gradient(linear, 0 0, 0 100, from(lightgrey), to(white)); background: -moz-linear-gradient(-90deg,lightgrey, white); -moz-background-size:100% 100px; background-position:top; background-repeat:no-repeat;">
 <h3 id="title" style="text-align: center;">Title</h3>
 <h4 id="subtitle" style="text-align: center;">Subtitle</h4>
 <div id="image_1" style='max-width: 500px; padding: 10px; margin: auto auto;'></div>
 <div id="content" style="padding: 10px;">Enter your description here</div>
 <div id="image_2" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_3" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_4" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_5" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_6" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_7" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_8" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_9" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div id="image_10" style='max-width: 300px; padding: 10px; float: left;'></div>
 <div style="clear: both; display: block;"> </div>
</div>

Der einzige Nachteil an jeder Vorlage für eBay Auktion ist, dass der CSS Code direkt in die Elemente eingefügt werden muss. Eine weitere Einschränkung ist, dass Grafiken, die man für sein Template verwenden will, über eine URL eingefunden werden sollten (d.h. die benötigten Grafiken irgendwo bei einem ImageHoster hochladen oder anderweitig verfügbar machen).

Hat man einmal den HTML/CSS Teil erledigt (index.html speichern), fehlt noch ein kleiner Schritt, damit SaleZ auch die Auktionsvorlage findet. Zu jedem Template gehört eine template.info Datei, welche im gleichen Verzeichnis, wie die Auktionsvorlage (index.html) liegen muss. Diese Datei enthält nur eine Zeile:

name=Meine Auktionsvorlage

Danach kopiert man diese beiden Dateien in .$HOME/.salez/templates/MyTemplate/. SaleZ sollte nun beim nächsten Start die Auktionsvorlage erkennen (ab Version 0.1-public4).

Ich freue mich über weitere Auktionsvorlagen für SaleZ :)

3 Kommentare

Dieser Blog-Post ist als Antwort auf die Frage "Nun würde mich mal interessieren, welche Tools euch zum Administrieren eines Linux Servers helfen und speziell auch welchen Taskmanager ihr verwendet.", aus dem folgendem Blog gedacht. -> infoblog.li/besserer-taskmanager-fuer-den-linux-server-htop/


1.) Überblick verschaffen

Wenn man nicht genau weiß, wo das Problem liegt, muss man sich erst-einmal einen groben Überblick über die Situation verschaffen, dabei helfen die folgenden Befehle:


1.1) top - CPU- und Arbeitsspeicher-Auslastung analysieren

top


1 -> zeigt die Auslastung der einzelnen CPUs an

b / B -> hebt die aktiven Prozesse hervor

z -> wie "b oder B" nur mit Farbe icon wink Linux Server analysieren debian

i -> zeigt nur aktive Prozesse an

M -> zeigt die Prozesse sortiert nach dem Speicherverbrauch an

P -> zeigt die Prozesse sortiert nach der CPU-Last an

d -> gibt die Aktualisierungszeit an

k -> kill - tötet einen Prozess


top 1 P 150x150 Linux Server analysieren debian top b 150x150 Linux Server analysieren debian top z 150x150 Linux Server analysieren debian top i 150x150 Linux Server analysieren debian top M 150x150 Linux Server analysieren debian top P 150x150 Linux Server analysieren debian top d 150x150 Linux Server analysieren debian top k 150x150 Linux Server analysieren debian df h 150x150 Linux Server analysieren debian lsof beispiel 150x150 Linux Server analysieren debian



1.2) df / du - Festplattenverbrauch analysieren

df -h

-h -> auch für Menschen lesbar (--human-readable)



df h 300x215 Linux Server analysieren debian

df -h


Wenn wir den Speicherverbrauch nun weiter analysieren müssen, weil z.B. ein Verzeichnis unter /var zu groß ist, können wir dies mit "du" machen.

du -h | grep "^[0-9,]*[MG]" | sort -hr | less


Erklärung: "du" gibt die Größe von Dateien und Verzeichnissen aus "-h" zeigt dies leserlich an, "|" der Pipe leitet die Ausgabe weiter, "grep" ist universal einsetzbar, um etwas (Dateien / Ausgaben...) zu durchsuchen und wir suchen alle Zeilen, in denen "^" am Anfang eine Zahl  "0 1 2 3 4 5 6 7 8 9" oder / und "," in beliebiger Häufigkeit "*" gefolgt von einem großen "M" oder einem "G". Diese Ausgabe wird per Pipe "|" an "sort" weitergegeben, wo diese Ausgabe nach sortiert wird und "|" schließlich mit "less" angezeigt wird. (mit q kann man less wieder beenden) Wer mehr über Reguläre Ausdrücken lernen möchte, kann sich dies hier antun icon wink Linux Server analysieren debian -> http://linuxwiki.de/


Wer will kann dich solche "Funktionen" einfach in die .bashrc eintragen...

alias du_suckup='du -h | grep "^[0-9,]*[MG]" | sort -hr | less'


1.3) lsof - Beziehung zwischen Dateien & Prozessen analysieren

Der Befehl "lsof" kann eingesetzt werden, um z.B. zu analysieren, welcher Prozess oder Anwender momentan eine bestimmte Datei verwendet oder auch welcher User, welchen Port offen hält + die dazugehörige PID (ProzessID)...

lsof -a -i -u www-data


lsof beispiel 300x215 Linux Server analysieren debian

lsof - Beispiel


Wer mehr zu dem Thema erfahren möchte, kann in einen alten Blog-Beitrag weiter lesen -> suckup.de/blog/2010/02/22/lsof-list-open-files


2.) Prozesse analysieren

Hier verweise ich einfach mal auf zwei alte Blog-Beiträge.:

2.1) der Befehl "ps", um bestimmte Prozesse aufzuspüren -> suckup.de/blog/2010/09/14/shell-ps-prozessstatus

2.2) und noch einige Programm, um den verbrauchten Arbeitsspeicher zu analysieren -> suckup.de/blog/2010/02/08/speicherverbrauch-anzeigen-lassen


3.) Hardware analysieren

Auch hier verweise ich auf einen alten Beitrag.:

3.1) hier noch eine Sammlung von Befehlen mit denen man z.B. die Festplatte auf Fehler prüfen kann ->  http://suckup.de/blog/2010/02/08/systeminfos-anzeigen-lassen/


4.) Netzwerk analysieren

Und auch hier verweise ich auf ein paar alte Beiträge.:

4.1) mit "TCPdump" kannst du den Netztraffik analysieren (sniffen) ähnlich wie Wireshark, nur auf der Konsole. icon smile Linux Server analysieren debian -> suckup.de/blog/2010/08/02/tcpdump-howto

4.2) offene Ports analysieren mit "nmap" + "fuser" -> suckup.de/blog/2010/03/28/offene-ports-analysieren


weitere Schritte

Mit Hilfe dieser Befehl sollte man einige Problem bereits eingrenzen können, ich würde parallel unter /var/log/ nachschauen, ob irgendetwas auffälliges in den Logfiles steht ...

ls -altr /var/log/

-> Dateien rekursiv nach ihrer letzten Änderung anzeigen (neuste Datei steht nun unten)

tail -f test.log

-> das Logfile wird nun kontinuierlich mit-gelesen, so dass man neu auftretende Fehler bemerkt

Wonach wurde gesucht?

Ähnliche Blog-Einträge

Vor einigen Tagen ist eine neue Ausgabe von freiesMagazin erschienen. Mit dabei war ein Artikel über Zentyal. Dabei handelt es sich um eine auf Linux basierende Alternative zum Windows Small Business Server. So kann Zentyal als Gateway zum Internet, als DNS oder DHCP Server und für vieles mehr benutzt werden. Wer jetzt neugierig geworden ist, der sollte den Artikel lesen :) Die entsprechende Software kann unter http://www.zentyal.org/ bezogen werden.

Weitere Informationen gibt es unter:
http://www.freiesmagazin.de
http://de.wikipedia.org/wiki/Zentyal
http://de.wikipedia.org/wiki/Windows_Small_Business_Server

Vor einigen Tagen ist eine neue Ausgabe von freiesMagazin erschienen. Mit dabei war ein Artikel über Zentyal. Dabei handelt es sich um eine auf Linux basierende Alternative zum Windows Small Business Server. So kann Zentyal als Gateway zum Internet, als DNS oder DHCP Server und für vieles mehr benutzt werden. Wer jetzt neugierig geworden ist, der sollte den Artikel lesen :-) Die entsprechende Software kann unter http://www.zentyal.org/ bezogen werden.

Weitere Informationen gibt es unter:
http://www.freiesmagazin.de
http://de.wikipedia.org/wiki/Zentyal
http://de.wikipedia.org/wiki/Windows_Small_Business_Server
Die Modern Perl Ubuntu 10.10 Desktop Live DVD ist erschienen und kann bei Sourceforge heruntergeladen werden.

Ich kopiere mal frech die Feature-Liste von dem Ankündigungsartikel. Mehr Informationen zu den einzelnen Features findet Ihr dort.

• Perl 5.10.1 und mehr als 2.600 CPAN Module vorinstalliert
• Modern Perl Module wie Catalyst, DBIx::Class und Moose bereits installiert
• Zahlreiche Editoren wie Padre, Eclipse mit EPIC-Plugin, Vim, Emacs, Geany, jEdit
• Zahlreiche Bibliotheken und Header-Dateien bereits installiert - vereinfacht die Installation weiterer CPAN-Module erheblich
• Softwareversionierung cvs, svn, hg, git und bzr inkl. graphischer Tools bereits installiert
• In Perl geschriebene Bildbearbeitungssoftware: Shutter
• Weitere Software kann mit den Standardwerkzeugen apt-get, Synaptic oder dem Software-Center einfach installiert werden.

Dass Shutter in Perl geschrieben wurde, wusste ich gar nicht.

8. November 2010

Es war wohl neben dem Elementary Theme das Projekt, dass die meiste Aufmerksamkeit bekommen hat: Elementary-Nautilus. Wie man aber heute bei OMG Ubuntu nachlesen kann wollen die Leute vom Elementary Project ihre Variante des Nautilus nicht weiter entwickeln. Diesen Schritt finde ich ziemlich schade, da ich diese Version des Datei-Browsers wirklich nett fand und gerne verwendet habe, bzw. aktuell auch noch installiert habe. Eingestellt wird das ganze, weil man sich nun der Entwicklung von “Marlin”, einem eigenen Datei-Browser, kümmern möchte:

The elementary team are instead turning their attention towards creating a file browser that does everything they want it to, and it’s called Marlin.

Okay, der Screenshot, der bei OMG Ubuntu zu finden ist schaut schon recht nett aus. Aber wie ich dort schon kommentiert habe finde ich es schade, dass etwas angefangen und dann fallen gelassen wird um etwas anderes zu machen. Mit Postler arbeiten sie auch noch an einem alternativen E-Mail-Client der sehr vielversprechend aussieht. Auch ein einer Elementary-Version von Rhythmbox bastelt man scheinbar.

Aber warum sollte ich eine dieser Versionen ausprobieren, wenn ich nicht weiß, ob diese nicht auch in ein paar Monaten noch betreut, bzw. entwickelt werden? Ich finde auch (oder gerade) Open Source Projekte brauchen eine gewisse Kontinuität um das Vertauen der Nutzer zu bekommen. Oder wie seht ihr das?

Gloobus Preview ist Apples’ Quicklook unter Linux, Ubuntu. Ein Programm, das Nautilus(-Elementary) um eine tolle Funktion ergänzt. Mithilfe eines Shortcuts (standardmäßig Super + Leertaste) kann man sich im Nautilus-Browser für zahlreiche Dateien eine Vorschau anzeigen lassen. So muss man nicht erst die Textbearbeitung oder den PDF-Viewer öffnen, um sich den Inhalt der Datei anzeigen zu lassen. Mithilfe des Shortcuts einfach QuickLook aktivieren: einfach und schnell. Gloobus-Preview unterstütz derzeit folgende Formate:

Bilder: jpeg / png / icns / bmp / svg / gif / psd / xcf
Dokumente: pdf / cbr / cbz / doc / xls / odf / ods / odp / ppt
Code: c++ / c# / java / javascript / php / xml / log / sh / python
Audio: mp3 / ogg / midi / 3gp / wav
Video: mpg /avi / ogg / 3gp / mkv / flv
Andere: Ordner / ttf / srt / plain-text

Das “Coverflow” für den Dateibrowser bekommt ihr mit Nautilus-Elementary. Clutterflow war ursprünglich ein Coverflow-Plugin für Banshee, siehe hier. Es ist richtig praktisch und hübsch damit durch die Ordner zu navigieren. Mit der Taste F4 kann man Clutterflow ein- und ausblenden lassen.

!! ACHTUNG: Gloobus-Preview funktioniert nur unter NAUTILUS-ELEMENTARY) einwandfrei !! D.h. ihr müsst keine Tastaturkombinationen für die Preview-Funktion anlegen.
Eine Anleitung zum Einrichten von Gloobus-Preview für den Standard-Nautilus gibts hier bei webupd8.

Installation:

sudo add-apt-repository ppa:gloobus-dev/gloobus-preview
sudo apt-get update

sudo apt-get install gloobus-preview
sudo apt-get upgrade
nautilus -q

23 Kommentare | Kommentar schreiben | Gloobus-Preview – Apples’ Quicklook für Linux, Ubuntu

Der neu fertiggestellte Kernel 2.6.36 und die angelaufene Entwicklung des Nachfolgers sind Themen dieses Kernelrückblicks. Dieser ist, neben vielen anderen interessanten Themen, in der aktuellen Ausgabe von freiesMagazin enthalten.

Zwei Vorabversionen waren noch notwendig, bevor Torvalds den Kernel 2.6.36 endgültig veröffentlichen konnte. Der -rc7 [1] brachte außer dem Hoffnungsschimmer eines baldigen finalen Releases hauptsächlich kleinere Korrekturen, zum Teil im Bereich der Grafik-Komponente DRM (Direct Rendering Manager [2]), jedoch auch am Dateisystem xfs.

Mit dem -rc8 [3] bekam der neue Kernel dann auch seinen Namen „Flesh-Eating Bats with Fangs“ (Fleischfressende Fledermäuse mit Reißzähnen). Anscheinend hatte eine Fledermaus mit siebeneinhalb Zentimeter langen Zähnen („three-inch-long fangs“), die sich in sein Haus verirrt hatte, Torvalds entsprechend beeindruckt, um ein eigenes Kernel-Release gewidmet zu bekommen [4]. Außer Aktualisierungen der Dokumentation für den Treiber e1000e und dessen älteren Bruder e1000 finden sich kleinere Korrekturen quer durch den ganzen Kernel. Der Schritt zu 2.6.36 war ebenfalls in erster Linie von letzten, kleinen Korrekturen begleitet [5].

Die erste neue Funktion von 2.6.36 wurde gleich wieder deaktiviert. „fanotify“ stellt eine Schnittstelle bereit, die Benachrichtigungen über Änderungen am Dateisystem an Anwendungen und Prozesse versenden kann (siehe „Der August im Kernelrückblick“, freiesMagazin 09/2010 [6]) und langfristig das seit fünf Jahren erprobte „inotify“ ersetzen soll. Allerdings dauern die Diskussionen unter den Entwicklern über die letztendliche Ausgestaltung der ABI [7] noch an, weshalb man sich letztlich dazu entschloss, diese Funktion vorerst ruhen zu lassen.

Nicht abgeschaltet wurden dagegen die Verbesserungen an „Workqueue“. Diese Funktion verwaltet Funktionsaufrufe für den Kernel und stellt sie zur späteren Ausführung in eine Warteschlange. Die bisherige Gestaltung von Workqueue erzeugte durch eine fehlende Kontrollfunktion teilweise mehr Warteschlangen als Prozessoren oder Kerne im System zur Verfügung stehen und führte dazu, dass sich deren Prozesse gegenseitig im Weg standen. Ein neuer Pool-Manager soll dies künftig verhindern und gleichzeitig Codeteile ablösen, die für Spezialfälle entwickelt wurden, die durch die alte Workqueue-Implementierung nicht behandelt werden konnten.

Eine eigentlich ungeliebte Komponente ist der „Out-Of-Memory-Killer“ (OOM). Anders als der martialische Name vermuten lässt, handelt es sich hierbei jedoch nicht um ein wahllos marodierendes Unterprogramm, sondern mehr um eine meist still im Hintergrund wartende Komponente, die im Falle eines vollständig belegten virtuellen Speichers Prozesse beendet, um den fortlaufenden Betrieb des Systems zu gewährleisten. Hin und wieder trifft OOM eine schlechte Wahl und opfert eigentlich hilfreiche Prozesse, sodass der durchgehende Betrieb mit Einschränkungen oder gar Instabilität erkauft wird. Die Algorithmen zur Auswahl der zu opfernden Prozesse wurden von dem bei Google beschäftigten Entwickler David Rientjes verfeinert, der seine Änderungen nun nach mehreren Anläufen in den stabilen Kernel-Zweig einbringen konnte. Ebenfalls auf Situationen mit Speicherengpässen ausgerichtet ist eine weitere Verbesserung: Steht nur noch wenig Speicher zur Verfügung und es erfolgen gleichzeitig Schreibzugriffe auf ein sehr langsames Medium wie z.B. eine langsame USB-Festplatte, kann es zum völligen Stillstand des Systems aus Anwendersicht kommen. Der Intel-Entwickler Wu Fengguang führte eine Überprüfung ein, ob scheinbar belegte Speicherbereiche in einer solchen Situation bereinigt werden können ohne die Tätigkeit des Kernel Swap Deamon (kswapd) zu behindern, und verringert dadurch die Wahrscheinlichkeit, dass solche Fälle auftreten.

Der in 2.6.35 hinzugekommene Kernel-Debugger KDB lässt sich nun auch aus einer graphischen Umgebung heraus nutzen, indem mittels der Tastenkombination Sysreq-g [8] die KDB-Konsole aufgerufen wird. Hierzu wird Kernel Mode Setting (KMS) genutzt, jedoch derzeit nur für Grafik-Chipsätze von Intel.

Zu den bereits unterstützten Architekturen kommt nun die von Tilera entwickelte Tile64 [9] hinzu. Deren Prozessoren besitzen mehrere Kerne - nämlich 64 Stück - die in einer schachbrettartigen Struktur auf dem Prozessor-Die angeordnet sind, über eigene L1- und L2-Caches verfügen und sich zusammen verschiedene Schnittstellen wie Gigabit-Ethernet und PCIe sowie vier DDR2-Speichercontroller teilen. Obwohl die Prozessoren nur bis 900 MHz getaktet werden, soll dieser Aufbau eine sehr hohe Rechenleistung mit guter Energieeffizienz kombinieren.

Um die neuen Funktionen von Intels Core i3/i5-Reihe mit integrierter Grafik besser nutzen zu können, wurde „Intelligent Power Sharing“ implementiert. Hierbei wird die innerhalb der Leistungs- und Temperaturgrenzen der CPU maximal mögliche Leistung zwischen CPU und Grafik-Komponente so ausbalanciert, dass sich das Gesamtsystem innerhalb der TDP (Thermal Design Power), ein Grenzwert für die maximal mögliche Wärmeabfuhr eines Systems, bewegt.

Lange schon wird „AppArmor“, ein von einigen Distributoren bereits ausgiebig genutztes Werkzeug zur rollenbasierten Umsetzung von Zugriffbeschränkungen (Mandatory Access Control [10]) gepflegt und weiterentwickelt. Nun folgten die Kernel-Entwickler den Nutzern und nahmen AppArmor in den offiziellen Kernel auf.

Neben diesen Neuerungen wurden viele weitere Verbesserungen vorgenommen, so kann FS-Cache nun neben NFS und AFS auch auf das Netzwerk-Dateisystem CIFS aufsetzen und dessen Daten für schnellere Zugriffe zwischenspeichern. Verschiedene Treiber kamen hinzu und die Speicherverwaltung des Virtualisierungs-Werkzeugs KVM wurde überarbeitet. Wie immer liefert die englischsprachige Seite Kernel Newbies [11] einen ausführlichen Überblick.

Bereits am 1.November stellte Torvalds 2.6.37-rc1 [12] zur Verfügung. Er hebt hervor, dass nun die Kernkomponenten auf den Big Kernel Lock (BKL) verzichten, ein zunehmend ungeliebter Mechanismus zum Verhindern gleichzeitiger Zugriffe auf den Kernel. Es sei nun möglich, den Kernel selbst ohne Unterstützung für BKL zu kompilieren, trotzdem nutzen noch einige Treiber und Systeme diesen Locking-Mechanismus wie zum Beispiel die V4L-Umgebung, die für Video-Aufnahme und -Wiedergabe genutzt wird.

Die Freigabe der neuen Vorabversion nahm Torvalds vom aktuellen Linux Kernel Summit [13] in Cambridge vor, der sich die diesjährige Linux Plumbers Conference [14] direkt anschließt. Da viele der Hauptentwickler auf diesen beiden Veranstaltungen zu finden sind, dürften sich die Änderungen in dieser Woche in Grenzen halten. Absprachen, strategische Entscheidungen und auch die Koordinierung mit anderen Projekten und Komponenten rund um Linux stehen hier erst einmal im Vordergrund.


Quellen:
[1] http://lkml.org/lkml/2010/10/6/406
[2] http://de.wikipedia.org/wiki/Direct_Rendering_Manager
[3] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commi...
[4] http://torvalds-family.blogspot.com/2010/10/early-halloween-guest.html
[5] http://lkml.org/lkml/2010/10/20/409
[6] http://www.freiesmagazin.de/freiesMagazin-2010-09
[7] http://de.wikipedia.org/wiki/Binärschnittstelle
[8] http://de.wikipedia.org/wiki/Systemabfrage-Taste
[9] http://en.wikipedia.org/wiki/TILE64
[10] http://de.wikipedia.org/wiki/Mandatory_Access_Control
[11] http://kernelnewbies.org/Linux_2_6_36
[12] http://lkml.org/lkml/2010/11/1/82
[13] https://events.linuxfoundation.org/events/linux-kernel-summit
[14] http://www.linuxplumbersconf.org/2010/

 

Inkscape ist ja wohl die Killer-Applikation, wenn es um Vektrografiken geht. Daneben gibt es aber noch andere frei Grafikprogramme wie sK1. sK1 ist ein Fork von Skencil bzw. Sketch und wird seit dem Jahr 2003 entwickelt. Skencil setzte damals auf TK für die GUI und als die Version 0.6 gedropt wurde, weil man auf GTK+ umsattelte wurde das sK1-Projekt von Igor Novikov gestartet. Und so basiert auch heute sK1 noch in großen Teilen auf Tcl/Tk, daneben kommt Python und C zum Einsatz. Heute ist es anders herum, das sK1-Team unterstützt stark die Entwickler von Skencil bzw. die sK1-Entwickler bemühen sich um eine Revitalisierung von Skencil.
Die meisten der sK1-Entwickler kommen aus dem professionellem Printbereich und so ist klar, dass sich sK1 vollkommen auf die Bedürfnisse aus diesem Bereich konzentriert. So beherrscht sK1 zum Beispiel Multipage-Layout via Tabbing. Ausserdem hat natürlich sK1 dann CMYK-Unterstützung und unterstützt natürlich ein Farbmanagment. Der Name des Projektes leitet sich wie folgt daher, dass s stammt von Skencil/Sketch, dass K kommt von KDE weil man sich mit dem Layout der Applikation an das von KDE anlehnt (es bestehen aber keine Abhängikeiten zu KDE Bibliotheken) und die 1 steht für das Ziel, welches sich die Entwickler gesetzt haben, die Nummer 1 der Anwendungen in ihrem Bereich zu werden.
2006 begann das Team mit dem Reengneering von Corels CDR-Format und konnte 2007 auf dem LibreGraphicsMetting die erste funktionierende Version des CDR-Importer präsentieren, seit dem kann sich das Projekt rühmen die bester Unterstützung für dieses Format zu besitzen. Für das Reengeneering des CDR-Formats haben die Entwickler von sK1 den CDR-Explorer entwickelt, der auch heute noch entickelt wird. Für Importfunktion des WMF-Format wurde pymfvu entwickelt. Entstanden ist auch noch LinCuttor für die Arbeit mit PLT-Dateien, die von Schneidplottern verwendet werden. Ausserdem entwickelte man den Uniconverter ein Kommandozeilentool für die Formatkonvertierung, welches auch von Inkscape und Scribus genutzt wird.

Die Installation von sK1 ist nicht so trivial, auf der Seite des Projektes, werden nur Binärpakete der Entwicklungsversion 0.9.1 angeboten und zwar für Ubuntu 9.10/9.04 und openSUSE 10.2 (und andere Distributionen), die schon etwas älter sind. Für die eigentlich stabile Version gibt es nur ein Binärpaket für Mandriva 2008 und auch das nur für i586. Die Entwicklerversionen lassen sich aber auf Ubuntu 10.10 und openSUSE 11.3 problemlos installieren. Für openSUSE 11.3 existiert auch ein Paket im openSUSE Buildservice. Will man allerdings die stabile Version verwenden, so wird man um das Kompilieren nicht herumkommen.

Ich habe zum Testen sK1 installiert. Auf den ersten Blick wirkt sK1 sehr übersichtlich und spartanisch. Das bestimmte Dinge in “Skripte” ausgelagert sind, wie zum Beispiel das Füllen mit einem Verlauf ist erst einmal gewöhnungsbedürftig. Mir ist es auch nicht gelungen ein Objekt mit einem Farbverlauf zu füllen, obwohl stetig die Füllung des Objektes gemeint war hat er mit dem Gradient-Plugin immer den Rand gefärbt. Auch hat es mir beim Import eine SVG mit einer Verlaufsfüllung diese zerschossen. Das kann aber daran gelegen haben, dass ich die Entwicklerversion benutzt habe. Für mich persönlich, finde ich ist sK1 eher gewöhnungsbedürftig, interessiert haben mich vor allem die Möglichkeiten des PDF-Export und das Colormanagment. Die Handhabung ist mir aber zu gewöhnungsbedürftig, so dass ich dann doch bei Inkscape und meinem Worflow für den Printprozeß bleibe. Für Leute die allerdings in diesem Bereich arbeiten und sich eh dann in ein neues Werkzeug einarbeiten müßten, den kann man das Projket empfehlen. Allerdings macht mir der langsame Entwicklungsprozess Sorgen.

Martin hat bereits eine Erklärung zu den Unterschieden zwischen X und Wayland verfasst und dabei auch erklärt, was das schlussendlich bedeutet. Im Grunde gelungen, fand ich mich danach doch nach weiteren Erklärungen suchen. Ich fasse hier zusammen, was - soweit ich es verstanden habe, das hier ist nicht mein Gebiet - nun der Unterschied zwischen X und Wayland ist. Dafür stelle ich beide Modelle gegenüber und freue mich über Korrekturen.

Auf der Waylandseite findet sich eine gute Erklärung der Architektur, mit Diagrammen, die ich hierfür mal übernehme.

XServer jetzt

Das ist im Grunde nicht zu kompliziert. Das Diagramm zeigt, wie auf ein Input-Event (z.B. ein Mausklick) reagiert wird. Der XServer wird von evdev benachrichtigt, danach benachrichtigt der XServer die Clients (also die registrierten Programme, die das Event betrifft, also z.B. das Fenster, auf das geklickt wurde), um dann - und das ist der zusätzliche Schritt um den es geht! - den Compositor zu benachrichtigen, damit über ihn die Oberfläche neu gezeichnet wird, der dann nochmal unnötigerweise den XServer benachrichtigt.

Beim Compositor wird anders als bei X eine Textur statt einer pixmap erstellt. Hier entstehen ggf. die Effekte, wie man sie durch Compiz kennt, und dabei wird die Grafikkarte genutzt. Ein Compositor muss nicht selbst ein Fenstermanager sein - Compiz und Metacity sind beides, xcompmgr ist nur ein Compositor. Daher kann letzterer auch mit normalen Fenstermanagern wie Fluxbox oder IceWM kombiniert werden, wobei inzwischen wohl eher diese Nicht-Compositoren als Fenstermanager die Ausnahme sind.

Metacity und Compiz sind die Fenstermanager und Compositoren, die von Ubuntu genutzt werden, Metacity für keine und einfache Effekte, Compiz wenn man die erweiterten aktiviert (zumindest war das so, ich hoffe, hier hat mich nicht die Enwicklung überholt).

Wayland dann

Wayland ersetzt den XServer bzw - wichtiger - vielmehr das zugehörige Protokoll (Wayland ist kein echter XServer, auch wenn das bei Golem so steht!) und ist gleichzeitig selbst ein Compositor. Das input-Event geht zum Wayland-Compositor, zu den Clients, von denen zurück zum Wayland-Compositor. Das spart den Schritt, nach der Kommunikation zwischen Clients und Server nochmal den Compositor zwischenzuschalten.

Das muss so zwar nicht sein - aber es wäre denkbar, dass tatsächlich eine Art WaylandServer Standard wird, der dann von den Compositoren genutzt wird - oder dass die dessen Compositor ersetzen. Nach dieser Option sieht es derzeit aus, also dass der Compositor des WaylandServers von z.B. Compiz ausgetauscht wird (Danke, Martin). Wichtig wird es demnach sein, zwischen dem Protokoll Wayland und der Software Wayland (was ich hier mit dem unzutreffenden Begriff WaylandServer versucht habe) zu unterscheiden.

Denkbar ist nämlich auch, zumindest so wie die Architektur momentan erklärt wird, dass es den großen zentralen Server für alle Clients so nicht mehr geben wird - immerhin könnte auch Firefox (so das Beispiel des Compiz-Entwicklers) zum Compositor werden und sich selbst zeichnen. Das wäre eine fundamentale Abkehr vom zentralen Client-Server-Modell, wie wir es derzeit haben.

Also, der Unterschied zwischen heute und morgen wäre: Ersetzung der Software XServer und des Protokolls X Window System (=X11) durch das Protokoll Wayland, wobei bei Wayland der Compositor sein eigener Server ist (wie das dann praktisch aussieht wird sich zeigen).

XServer dann

Interessant ist noch die Frage, wie der Umstieg zustande kommt. Wahrscheinlich wird lange dieses Bild bestimmend sein, und das wäre wohl eher schade:

Der XServer, der Wayland-Events bekommt statt direkt Input-Events, würde all die Anwendungen verwalten, die noch X- statt Wayland-Clients sind.

Mir ist allerdings nicht ganz klar, was alles umgeschrieben werden müsste, um dieses Szenario zu vermeiden. Sicher alle Fenstermanager, alle Toolkits (wie GTK); aber auch Anwendungen können derzeit direkt XLib benutzen. Ich habe das z.B. mal bei einem Musikplayer getan, um damit global Tastenkombinationen abzufangen und ihn so zu steuern. Wie aufwändig der Umstieg für die Linuxwelt als Ganzes wäre hinge demnach davon ab, wie verbreitet solche Verhaltensweisen sind und wie gut und einfach die Möglichkeiten, diese Wayland-kompatibel zu ersetzen.

7. November 2010

Jetzt, wo Maverick Meerkat in den Startlöchern stand, habe ich mir mal die Zeit genommen mein System auf 10.04 (Lucid Lynx) LTS upzudaten.

Ich bin begeistert. NICHT!

Nützliche Kleinigkeiten sind verloren gegangen, was die Usability des Systems in meinen Augen stark einschränkt:

Desktop

  1. Der Lautstärkeregler sitzt horizontal.
  2. Die 60-Sekunden-Lösung aus 9.10 beim abmelden oder herunterfahren ist keine mehr, sondern einfach nur ein zusätzlicher Dialog. Das sorgte schon mehrfach dafür, dass mein Rechner länger an war, als er eigentlich sollte.
  3. Die Verknüpfung vom Logout und User-Info geht mir auf den Zeiger.
  4. Schriften wurden deinstalliert
  5. Das Taskbar-Widget von Rhythmbox ist für die Füße
    Es reichte bisher aus, mit dem Mausraus auf das Icon zu klicken um Play/Pause zu triggern und man konnte scrollen um die Lautstärke des Players zu regeln.
    Ausserdem brachte ein einzelner Klick das Programm in den und aus dem Tray. Nun öffnet sich ein beklopptes Menü

Server

  1. Die Apache-User-Home-Verzeichnisse haben standardmäßig keine PHP-Engine (auch wenn sie vorher vorhanden war).
  2. Das WLAN auf dem Server hat wieder nicht funktioniert. Erst die Installation der lucid-linux-modules-wireless-dingens und eine Umkonfiguration der RT2860STA.DAT schafften stabile Abhilfe.

Mit Jalbum kann man ganz einfach und unkompliziert Web-Galerien erstellen. Dank Java ist Jalbum unter fast jedem Betriebssystem lauffähig. JAlbum benötigt unter Ubuntu eine aktive Java-Laufzeitumgebung (JRE) von Sun,  um einwandfrei zu funktionieren. Das Programm hat eine sehr einfache GUI und ist selbsterklärend. Via Drag And Drop können Bilddateien oder auch ganze Ordner dem Projekt hinzugefügt werden. Die Software bietet 32 verschiedene Sprachen und unterstützt folgende Dateiformate:

avi mpg mpeg mpe mp4 mov wmv asf asx wvx 3gp divx xvid qt mp3 wma ram rm swf flv tiff psd zip arj sit rar xml pdf doc xls ppt mdb djvu djv odt ods odp odg odb

Es werden auch sehr viele hübsche und professionelle Skins zum Download angeboten. Mithilfe der Kommentarfunktion kann man seinen Fotos, Videos und Audiodateien ganz einfach einen Untertitel verpassen. Erstellte Webalben können entweder über einen kostenlosen jalbum.net-Webspace oder auf einen eigenen Webspace via FTP hochgeladen werden.

Die aktuellste Version kann als .deb-Paket von der Herstellerseite runtergeladen werden.

1 Kommentar | Kommentar schreiben | Jalbum – kostenlos professionelle Web-Galerien erstellen
Ein Dienst auf Linux- und Unixsystemen, der fast in Vergessenheit geraten ist, ist atd. Die man-Page ist von November 1996, was aber der Nützlichkeit des Programms keinen Abbruch tut.

Mit at können Programme oder Skripte oder Kommandos, anders als bei Cron, einmalig zu einer bestimmten Zeit ausgeführt werden. Bei Ubuntu muss dazu das Paket "at" installiert sein.

Die Syntax ist sehr einfach, echo "/sbin/shutdown -h now" | at 12:00, es wird also ein Befehl von der Standard-Eingabe gelesen und zur angegebenen Zeit von /bin/sh (Achtung: Bei Ubuntu ist das ein Link auf /bin/dash) ausgeführt.

Mittels atq kann man sich alle eigenen Befehle ausgeben lassen, die derzeit in der Warteschlange sind, root kann die Befehle aller User sehen:
23 Sun Nov 7 12:00:00 2010 a dirk
Der Job mit der ID 23 wird am Sonntag um zwölf Uhr ausgeführt. Er gehört zur Queue (Warteschlange) "a" und dem User "dirk".

atrm 23 löscht den Job wieder.

Das at-Kommando versteht unterschiedlichste Zeit und Datumsangaben, auf der Wikiseite bei ubuntuusers.de sind einige davon ausgeführt. Ich möchte hier auf eine weitere Möglichkeit hinweisen, man kann mit -t ein Datum im Format [[CC]YY]MMDDhhmm[.ss] übergeben, wobei CC für das Jahrhundert, YY für das Jahr, MM für den Monat, DD für den Tag, hh für die Stunde, mm für die Minute und ss für die Sekunde steht.

Ein weiteres schönes Kommando zur Benutzung von atd ist das Kommando batch, es fügt ein Programm zur Warteschlange hinzu und das wird erst ausgeführt, wenn die Last (load) des Systems unter 1.5 sinkt (dieser Wert kann beim Start des at-Daemons angegeben und verändert werden).

Man sieht solche Bilder recht häufig: Sie sind schwarz-weiß im Gesamten, allerdings ist ein bestimmtes Element in der orginalen (meist in einer bestimmten, sehr knalligen) Farbe.

Diese Bilder sind sehr wirkungsvoll und sehen Elegant und professionell aus. Und das beste: sie sind vergleichsweise einfach zu erstellen. Im folgenden wird eine Möglichkeit aufgezeigt, derartige Bilder mit dem freien Bildbearbeitungsprogramm GIMP zu erstellen.

Die Ausgangssituation

Zunächst benötigt man ein Foto, das für die Bearbeitung geeignet ist. Populär sind z.B. Bilder mit einer Rose oder einer anderen Blume, da durch dieses Kunstmittel deren Farben besonders hervorgehoben werden. Welche Bilder sich weiterhin dazu eignen hängt vom Auge des Betrachters ab. Der eigenen Kreativität sind keine Grenzen gesetzt. In meinem Beispiel greife ich auf dieses Flickr-Bild zurück:

Die Vorgehensweise

Es wird mit zwei Ebenen gearbeitet, die jeweils das Bild zeigen: Die obere beider Ebenen wird entfärbt, die untere bleibt farbig. Mit Hilfe einer Ebenenmaske werden wir systematisch die später farbigen Stellen des Bildes „ausblenden“. Der Vorteil bei dieser Methode: Es können leicht Korrekturen vorgenommen werden, falls eine falsche Stelle des Bildes entfärbt wurde, obwohl sie es nicht sein dürfte. Weiterhin können Farbton und Sättigung der Farbpassagen komplett unabhängig von den Graupassagen bearbeitet werden.

Die Umsetzung

Zunächst lädt man das Bild in GIMP. Da man bei dieser Methode mit Ebenen arbeitet, lohnt es sich (wenn noch nicht geschehen) den Ebenendialog einzublenden: Fenster → Andockbare Dialoge → Ebenen. Mit diesem Dialog kann man auch gleich die Ebene duplizieren: Rechtsklick auf die Ebene → Ebene duplizieren.

Die neu entstandene Ebene (die obere) wird nun komplett entfärbt: Farben → Entsättigen → OK. Das gesamte Bild sollte nun schwarz-weiß angezeigt werden.

Farben des Bildes entsättigen

Jetzt beginnt die eigentliche Arbeit:

Für die entfärbe Ebene wird eine Ebenenmaske eingefügt. Dazu klickt man im Ebenendialog auf die obere Ebene mit der rechten Maustaste und wählt „Ebenenmaske hinzufügen“ sowie im daraufhin erscheinenden Fenster „weiß (volle Deckkraft)“, bestätigen. Es dürfte sich (planmäßig) nichts am Gesamtbild geändert haben.

Jetzt wählt man die Ebenenmaske als Bearbeitungsebene aus. Dazu genügt ein Klick auf sie im Ebenendialog (siehe Screenshot).

Man kann nun mit den Malwerkzeugen (Pinsel, Stift etc.) in Grautönen auf die Ebenenmaske malen. Dabei bedeutet: weiß deckt, schwarz ist durchsichtig. Das heißt, man malt nun alle Flächen, die später farbig im Endergebnis sein sollen, schwarz an. Dabei ist zu beachten, dass man die schwarze Farbe selbst nicht sieht, lediglich den Effekt kann man sehen:

Links ist die Ebenenmaske zu sehen, rechts der dazugehörige Effekt

Wenn man aus Versehen auch einen falschen Teil „einfärbt“, kann man mit weißer Farbe korrigieren. Wenn man sich die Ebenenmaske ansehen möchte, kann man sie sich per Rechtsklick auf die Ebene in Dialogfenster anzeigen lassen.

Wenn man sich zwischendurch das Originalbild ansehen möchte, kann man die schwarz-weiße Ebene mit einem Klick auf das Auge daneben im Ebenendialog ausblenden lassen.

Achtung beim Speichern: Wird das Bild als JPG oder in einem anderen Bildformat gespeichert wird, kann nach dem Schließen von GIMP keine weitere Bearbeitung mit der Ebenenmaske erfolgen. Dafür müsste man das Bild als XCF gespeichert werden.

Das fertige Bild

6. November 2010

Momentan gibt es im Linux Kernel 4 Sicherheitserweiterungen die alle mehr oder weniger eine MAC (Mandatory Access Control) nachrüsten. Diese sind:

  • SELinux
  • SMACK
  • TOMOYO
  • AppArmor

SELinux wird schon immer von Fedora/RedHat/CentOS verwendet, das sind auch die Leute welche hinter diesem System stehen. Die Anpassung ist natürlich bei diesen Distributionen am besten. SELinux benötigt einige Anpassungen im Userspace, was mich persönlich etwas stört.

SMACK habe ich mir bisher noch garnicht angesehen, ggf. hat jemand schon damit Erfahrungen gemacht. Soweit ich weis ist es aber auch bei keiner Distribution Standard, und auch SMACK benötigt einige Anpassungen im Userspace.

TOMOYO ist seit 2.6.30 im Kernel dabei, das ganze ist eine relativ junge Sicherheitserweiterung bei der noch einige Features fehlen. Der IMHO größte Vorteil von TOMOYO ist dass man einen schönen Live Editor (tomoyo-editpolicy) hat, mit diesem kann man den Learning Mode von TOMOYO prima überprüfen und auch neue Regeln eintragen sowie alte Löschen. Die Userspace Tools von TOMOYO sind relativ klein, so dass man fast nichts nachinstallieren muss.

AppArmor ist ein etwas älterer bekannter, welcher mit Kernel 2.6.36 auch endlich Einzug in den Standardkernel erhält. Unschön an AppArmor finde ich dass die Userspace Tools etwas fett sind, dies fällt einem aber erst auf wenn man sie zum Beispiel unter Arch installiert und massig Abhängigkeiten nachinstalliert werden.

Problematisch finde ich eigentlich nur das viele Distributionen unterschiedliche Sicherheitserweiterungen installieren. Ohne einen Standard werden viele Leute sowas einfach nicht einrichten wollen, da man es für jede Distribution neu lernen darf. Ubuntu hat z.B. AppArmor, Fedora SELinux und Arch kann TOMOYO und AppArmor, openSuSE wiederum verwendet auch AppArmor, usw...

Wenn jetzt noch GRSecurity in den Kernel kommt haben wir alle Sicherheitserweiterungen die mir bekannt sind im Kernel, doch keine einzige die irgendwie ein Standard wäre. Schade eigentlich, da geht viel Potential verloren... :-/

Gerade für Serverdienste wäre das erstmal wichtiger als Unity, Themes oder Wallpapers!

Momentan gibt es im Linux Kernel 4 Sicherheitserweiterungen die alle mehr oder weniger eine MAC (Mandatory Access Control) nachrüsten. Diese sind:

  • SELinux
  • SMACK
  • TOMOYO
  • AppArmor

SELinux wird schon immer von Fedora/RedHat/CentOS verwendet, das sind auch die Leute welche hinter diesem System stehen. Die Anpassung ist natürlich bei diesen Distributionen am besten. SELinux benötigt einige Anpassungen im Userspace, was mich persönlich etwas stört.

SMACK habe ich mir bisher noch garnicht angesehen, ggf. hat jemand schon damit Erfahrungen gemacht. Soweit ich weis ist es aber auch bei keiner Distribution Standard, und auch SMACK benötigt einige Anpassungen im Userspace.

TOMOYO ist seit 2.6.30 im Kernel dabei, das ganze ist eine relativ junge Sicherheitserweiterung bei der noch einige Features fehlen. Der IMHO größte Vorteil von TOMOYO ist dass man einen schönen Live Editor (tomoyo-editpolicy) hat, mit diesem kann man den Learning Mode von TOMOYO prima überprüfen und auch neue Regeln eintragen sowie alte Löschen. Die Userspace Tools von TOMOYO sind relativ klein, so dass man fast nichts nachinstallieren muss.

AppArmor ist ein etwas älterer bekannter, welcher mit Kernel 2.6.36 auch endlich Einzug in den Standardkernel erhält. Unschön an AppArmor finde ich dass die Userspace Tools etwas fett sind, dies fällt einem aber erst auf wenn man sie zum Beispiel unter Arch installiert und massig Abhängigkeiten nachinstalliert werden.

Problematisch finde ich eigentlich nur das viele Distributionen unterschiedliche Sicherheitserweiterungen installieren. Ohne einen Standard werden viele Leute sowas einfach nicht einrichten wollen, da man es für jede Distribution neu lernen darf. Ubuntu hat z.B. AppArmor, Fedora SELinux und Arch kann TOMOYO und AppArmor, openSuSE wiederum verwendet auch AppArmor, usw...

Wenn jetzt noch GRSecurity in den Kernel kommt haben wir alle Sicherheitserweiterungen die mir bekannt sind im Kernel, doch keine einzige die irgendwie ein Standard wäre. Schade eigentlich, da geht viel Potential verloren... :-/

Gerade für Serverdienste wäre das erstmal wichtiger als Unity, Themes oder Wallpapers!

Während der Entwicklung von SaleZ stand ich vor dem Problem, dass ich Werte aus dem Document Object Model (DOM) auslesen wollte. In Webkit gibt es zwar die Funktion get_dom_document, allerdings ist sie noch nicht in der Version von Webkit enthalten, welche mit Ubuntu 10.04 mitgeliefert wird. Nach einiger Suche im Netz habe ich dann eine Lösung für das Problem gefunden.

Mit Hilfe des folgenden Codes kann man sich den Inhalt eines bestimmten Elements ausgeben:

import jswebkit

ctx = jswebkit.JSContext(webView.get_main_frame().get_global_context())
text = ctx.EvaluateScript("document.getElementById("fooBar").innerHTML")

Möchte man hingegen das DOM manipulieren, kann man die  execute_script Funktion eines WebViews nutzen:

webView.execute_script('document.getElementById("foobar").innerHTML = "foo bar"')

4 Kommentare

Mark Shuttleworth hat in einem Blog Post geschrieben, dass Ubuntu eine der ersten Distributionen sein wird, die Wayland verwendet, was einiges an medialem Echo hervorgerufen hat. Persönlich hat mich der Blogpost überrascht, da auf dem Ubuntu Developer Summit für mich nicht ersichtlich wurde, dass Wayland schon zur Diskussion steht. Nur in einer Sitzung zu OpenGL ES in Composited Window Managers hatte ich Mark eine Frage zu Wayland stellen hören und war etwas verwundert. Für mich auch Anlass mal wieder in die Commit Historie zu schauen und ich habe erfreut festgestellt, dass die Entwicklung an Wayland aktiver geworden ist.

Nun was ist Wayland überhaupt? Wayland ist im Prinzip der Nachfolger des X-Servers, jedoch bedeutend schlanker. Wayland ist nur noch ein sehr dünner Display Manager mit eingebautem Compositor, der die Fenster zeichnet. Damit das ganze funktioniert braucht es viele der Technologien, die in den letzten Jahren Einzug erhalten haben, wie KMS und GEM. Genau hab ich mich auch noch nicht mit Wayland auseinandergesetzt, da es meiner Meinung nach, noch viel zu weit in der Zukunft ist. Jedoch sollte ich mich langsam aber sicher, damit beschäftigen, denn sonst steht KDE am Ende ohne Compositor dar (KWin als X WindowManager ist natürlich in einem X freien System nicht wirklich sinnvoll) ;-)

Warum sollte man X überhaupt ersetzen? X11 ist älter als ich, xlib ist nicht gerade die schönste API um mit zu arbeiten – nicht überraschend bei einem Alter von fast 30 Jahren. X11 ist entwickelt für die Ansprüche der Rechner aus den 80er Jahren. Xlib enthält also einiges was man heute nicht mehr braucht: Farbverwaltung, Zeichnung, etc. und so ziemlich alles was man heute mit OpenGL machen sollte. Heutige Anwendungen nutzen die primitiven Funktionen von X zum Zeichnen nicht mehr, so ziemlich jedes Toolkit hat dafür bessere Methoden. So bietet Qt an komplett auf der CPU zu zeichnen, statt native Aufrufe zu verwenden und ist dabei bedeutend performanter. Das ganze führte so weit, dass Bereiche von X über Jahre kaputt waren ohne dass es irgendjemand aufgefallen ist.

Die X Entwickler um Keith Packard kennen auch die Probleme und haben immer wieder neue Lösungen angebracht. So zum Beispiel XCB – ein etwas schönerer Ersatz um nicht auf Xlib aufsetzen zu müssen. Nur hat das erst mal niemanden interessiert – KWin zum Beispiel verwendet immer noch XLib und nicht XCB. Genauso die Toolkits: mittlerweile hat man die Erfahrung an den Problemen von X herumzuprogrammieren und warum sollte man etwas neu programmieren, wenn es funktioniert? Ein anderer Bereich ist die Erweiterung des Protokolls durch Erweiterungen wie XFixes – welche wie der Name sagt Fehler im X Protokoll behebt.

Warum sollte aber ein Display Manager eine bessere Lösung sein? Dazu kann man sich anschauen wie aktuell Fenster auf den Bildschirm kommen. Das Fenster wird zuerst gemappt – erhält also einen Bereich auf dem Bildschirm. Der X Server sorgt dafür, dass nur die nicht überlappten Bereiche gezeichnet werden. Die Anwendung zeichnet in der Regel in Pixmaps als Buffers und diese werden von X dann auf den Screen geblittet. Der X Server ist also zuständig dafür zu sorgen, dass die Inhalte aktualisiert werden. Wenn man also ein Fenster über einem anderen verschiebt, werden ständig beide neu gezeichnet. Nun schalten wir die XComposite Erweiterung dazu und betrachten uns das neue Verhalten. X leitet die Ausgabe der Fenster in eine off-screen Pixmap um (Moment? Die Anwendung zeichnet selbst doch auch schon in eine Pixmap…) und benachrichtigt einen externen Client (in der Regel den Fenstermanager) über die XDamage Erweiterung wann sich die off-screen Pixmap verändert. Das geschieht schön asynchron und in klitze kleinen Häppchen (man kann sich vorstellen, was passiert, wenn der Compositor nicht alle Änderungen mibekommt). Der Fenstermanager (oder auch Compositor) nutzt nun die GLX Erweiterung Texture from Pixmap um aus der Pixmap eine Textur zu erstellen und mittels OpenGL diese auf den Bildschirm zu zeichnen. Der ganze "legacy" Bereich des X Servers wird nun nicht mehr benötigt. Man muss keine Zeichenoperationen unterstützen, keine Fenster verschieben können und so weiter und so fort.

Ein kleiner Display Manager ist genau das was man will. Jede Anwendung wird automatisch und immer umgeleitet. Sie braucht also auch keine Informationen wo sie sich befindet. Interessant ist nur die Größe, ob sie aktiv ist oder nicht und vllt. ob sie sichtbar ist oder nicht (z.B. für Videoplayer um automatisch zu pausieren). Wenn man sich nun auch festlegt, dass Compositing generell über OpenGL erfolgt, kann man auch statt einer Pixmap direkt einen Buffer verwenden, der in OpenGL direkt benutzt werden kann. Der X Fenstermanager entfällt und kann nun durch einen viel schlankeren Compositor ersetzt werden.

Viele der heutigen Probleme im Compositing Stack von X sind vermutlich unlösbar. Ich denke da zum Beispiel an das Problem der "Löcher in Fenstern" oder die Tatsache, dass man keine Live Bilder von minimierten Anwendungen hat (was auch der Grund ist für das Stottern der de-minimier Animationen ist). Auch Lösungen um Live Bilder von Anwendungen auf anderen Desktops zu erhalten ist eigentlich nur ein riesiger Hack. Warum wird mein Bildschirm neu gezeichnet, wenn sich etwas auf einem anderen Desktop ändert? Bei einer Architektur, die sich primär auf Compositing ausrichtet, ist das natürlich viel einfacher.

Der Wechsel auf Wayland ist natürlich nichts, was schnell vollzogen werden kann und ich denke mal, dass es locker noch fünf Jahre dauern wird. Alle Toolkits müssen dazu die X Abhängigkeit verlieren, Desktop Shells müssen portiert werden – hier ist es vor allem wichtig gute Compositor zu erstellen, da sonst Funktionalität verloren geht und die wichtige Adaptierung von Wayland verhindern wird. Dies ist zum Beispiel bei KWin ein etwas schwieriges Unterfangen, da die Anwendung komplett X voraussetzt – nur die Effekte könnten fast komplett wiederverwendet werden (nach einer Portierung auf OpenGL ES 2). Es gibt sicherlich auch Anwendungen und Toolkits die niemals portiert werden – für diese wird es dann in Wayland auch einen eingebetteten X Server geben. Die Angst, dass geliebte Anwendungen durch die Transition verloren geht, besteht also nicht. Auch die Netzwerktransparenz von X bleibt somit erhalten.

Und was ist nun von der Canonical Ankündigung zu halten? Für mich klingt es danach, dass sie Unity so schreiben, dass es keine X Abhängigkeit erzwingt (wie zum Beispiel Plasma auch nicht) und dass sie wohl daran arbeiten werden Compiz als Compositor für Wayland fit zu machen. Dies wäre natürlich sehr interessant, da ich mich dort dann auch bedienen kann ;-) Bzw. dass man in den Bereichen zusammenarbeiten kann. Wir sind glücklicherweise so weit, dass wir grundlagen Technologie nicht mehr getrennt entwickeln. Vorerst bedeutet das wohl, dass Compiz auf OpenGL ES portiert werden muss – genauso wie KWin. Abgesehen davon wird wohl nicht viel passieren. Die Anwendungen werden weiter X verwenden.

Natürlich ist das jetzt auch nichts unglaublich herausragendes von Canonical in dem Bereich früh dabei zu sein. Sie werden es wohl auch nicht schaffen als erste Wayland einzusetzen, da MeeGo auch daran arbeitet (Kristian Høgsberg arbeitet für Intel) und gerade für Mobile Devices X nicht die beste Technologie ist. Außer Maemo setzt aktuell kein Linux Handy OS auf X. Um es ganz klar zu sagen: alle Distributionen werden so schnell wie möglich ein etwas funktionierendes Wayland ausliefern, um den Entwicklern eine Basis zum Portieren geben zu können.

Ich persönlich begrüße die Entwicklung, auch wenn es gerade für meine Anwendung viel Arbeit bedeuten wird, auf Wayland zu portieren und ohne eine Vollzeit Stelle wird so etwas kaum machbar sein. Dass Ubuntu nun diese Ankündigung macht, ist wirklich nicht überraschend, aber man muss Mark gratulieren zum guten Marketing ;-)

=-=-=-=-=
Powered by Blogilo

Diese Woche war es mal wieder soweit und ich bin auf den Entwicklungszweig der kommenden Version 4.6 der KDE Plattform, KDE Plasma und KDE Anwendungen umgestiegen. Normalerweise wechsel ich erst zum ersten Beta Release, jedoch wurde der Wechsel bereits nun erforderlich. Auf Grund der schlechten Erfahrungen des letzten Entwicklungszyklus, hatte ich mein Entwicklungsmodell angepasst und hatte unter Plasma 4.5 immer den Fenstermanager KWin in der Entwicklungsversion (plus persönliche Anpassungen) eingesetzt. Ich hoffe dass dies hilft Probleme früher zu bemerken, als wenn die Nutzer mit dem Beta Release die ersten Tester sind.

Um KWin "trunk" fahren zu können, darf KWin natürlich keine Abhängigkeiten auf andere Komponenten aus trunk haben. Das einzige Problem war dabei bisher die Fensterdekoration Oxygen, welche mit dem Widget Style zusammen eine gemeinsame Bibliothek in kdebase/workspace hat. Da diese sich verändert, zerstört das eine Übersetzung (ich sage als immer, dass ich ein reicher Mann wäre, wenn ich für jedes Mal wenn mein KWin trunk nicht kompiliert wegen Oxygen, einen Cent bekäme). Meine Lösung war Oxygen einfach in der Build Datei zu deaktivieren. KWin lädt dann einfach Oxygen von 4.5 (dank binärkompatibilität der Fensterdekorationen möglich) und das Problem ist umschifft. Und ich bin stolz, dass ich mehrere Monate entwickelt habe ohne jemals Oxygen durch ein git commit -a && git svn dcommit deaktiviert zu haben ;-)

Letztes Wochenende wurden nun Änderungen für die "Activities" eingespielt, welche auch eine weitere trunk-Abhängigkeit haben. Da diese Änderungen nicht mit einem Kommentar in CMakeLists rückgängig gemacht werden können, stand ich vor einem kleinen Problem: zurück auf 4.5 und test Account zur Entwicklung oder kompletter Wechsel. Das ganze verbunden mit dem Zeitdruck des aufkommenden Feature Freeze. Also einmal trunk neu durchkompiliert und auf 4.6 als primärer System gewechselt. Hat mich leider einen Abend gekostet, an dem ich eigentlich noch wichtige Features für 4.6 einbauen wollte :-(

Für mich war es das erste mal seit Wochen, dass ich 4.6 neugebaut habe und es war für mich auch spannend, zu sehen woran die anderen Entwickler gearbeitet hatten und noch erfreulicher war, festzustellen, dass man nach Änderungen regelrecht suchen muss. Ein klares Zeichen dafür, dass KDE Plasma mittlerweile sehr ausgereift ist und die größten Änderungen weiter unten im Stack sind – so wie die Optimierungen in KWin.

Sehr erfreulich ist auch bereits die Stabilität von 4.6. Bisher ist mir noch keine Anwendung abgestürzt, obwohl wir gerade in der Phase sind, die wohl die instabilste überhaupt ist: zwischen soft feature freeze und hard feature freeze. Der klassische Zeitraum für "it compiles, ship it". Ich freue mich, dass wir in 4.6 den Nutzern wohl ein noch besseres Produkt liefern werden können als wir bereits in 4.5 konnten.

=-=-=-=-=
Powered by Blogilo