ubuntuusers.de

Neueste Artikel

gestern

Die MZLA Technologies Corporation hat mit Thunderbird 115.10 ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 115.10.0

Mit dem Update auf Thunderbird 115.10.0 hat die MZLA Technologies Corporation ein planmäßiges Update für seinen Open Source E-Mail-Client veröffentlicht. Das Update bringt diverse Fehlerbehebungen und Verbesserungen unter der Haube, welche sich in den Release Notes (engl.) nachlesen lassen. Auch wurden diverse Sicherheitslücken geschlossen.

Neuerungen von Thunderbird 115.10.1

Mit Thunderbird 115.10.1 hat MZLA ein schnelles Update hinterhergeschoben, welches das Problem behebt, dass Thunderbird unter Umständen nicht korrekt beendet werden konnte.

Der Beitrag Thunderbird 115.10 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

18. April 2024

ChatGPT, Copilot & Co. verwenden Large Language Models (LLMs). Diese werden auf leistungsstarken Servern ausgeführt und als Cloud-Services angeboten. Das funktioniert wunderbar. Aber nicht jeder will Daten, Text und Code ständig in die Cloud hochladen. Kann man also — mit »gewöhnlicher« Hardware — LLMs auch lokal ausführen?

Tatsächlich ist das verblüffend einfach. Das Tool der Wahl heißt Ollama. Was Docker für Container ist, ist Ollama für LLMs!

Ollama kann ziemlich mühelos unter Linux, macOS und Windows installiert werden. Unter Windows und macOS starten Sie Ollama als Hintergrunddienst mit einer winzigen grafischen Oberfläche (im Prinzip nur ein Icon, das den Status anzeigt). Unter Linux richten Sie den Dienst mit systemctl ein:

systemctl enable --now ollama
Ollama läuft im Terminal, kann aber auch per API genutzt werden (z.B. zur Realisierung einer Web-Schnittstelle).

Ollama anwenden

Jetzt können Sie Ollama mit dem gleichnamigen Kommando im Terminal ausführen. Mit ollama run <llmname> installieren Sie eines der öffentlich verfügbaren Sprachmodelle (mehr dazu im nächsten Abschnitt) und können dann im Textmodus Kommandos ausführen:

ollama run llama2

>>> I need a regex to verify a date in US format. Can you help?

Of course! To match a date in the format of "MM/DD/YYYY" (month-day-year) 
or "MM/DD/YYYY HH:MM AM/PM", you can use the following regular expression:

\b(\d{1,2}/\d{1,2}/\d{4})|(\d{1,2}/\d{1,2}/\d{4} \d{0,2})?\b

Here's a breakdown of how this regex works:

* \b: Matches a word boundary (the start or end of a word) to ensure 
  we're matching the entire date field.

* (\d{1,2}/\d{1,2}/\d{4}): Matches the month/day/year format. The 
  (\d{1,2}) captures the month and day as individual digits (0-2 
  digits for the month and 1-2 digits for the day). The / separates 
  the date components.

* |: Or, used to match the alternative format.

* (\d{1,2}/\d{1,2}/\d{4} \d{0,2})?: Matches the month/day/year with 
  time format. The (\d{1,2}) captures the month and day as individual 
  digits (0-2 digits for the month and 1-2 digits for the day). The / 
  separates the date components. The \d{0,2} matches the time component 
  (0-2 digits representing the hour and minute).

* \b: Matches a word boundary to ensure we're matching the entire date field again.

Note that this regex will match both US and international dates in the 
"MM/DD/YYYY" format, as well as dates in the "MM/DD/YYYY HH:MM AM/PM" 
format. If you need a more specific format (e.g., only US dates), 
feel free to modify the regex accordingly.

Manche Sprachmodelle können auch Deutsch (nochmals llama2), wenngleich die sprachliche Qualität mitunter nur mittelmäßig ist.

>>> Was ist der Dopplereffekt?

Der Dopplereffekt ist ein physikalischer Effekt, der durch die Beugung von
Lichtwellen verursacht wird, wenn diese durch eine mediummässige Materie
passt. In einer bestimmten Umgebung oder Situation kann das Licht, das durch
eine bestimmte Fläche oder ein Objekt passt, sich "verlangsamen" und eine
Dopplereffekthelligkeit erzeugen.

Der Dopplereffekt ist ein spezifischer Effekt, der auf der Beugung von
Lichtwellen basiert. Wenn Licht durch ein Medium passt, wird es durch die Faser
des Mediums beugt und umgestaltet. Die Intensität des Lichts, das durch ein
Medium passt, kann sich durch den Dopplereffekt ändern.

Im Alltag können wir den Dopplereffekt beispielsweise bei der Anähnlichkeit von
Objekten in einer Ferne sehen. Wenn ein Auto oder eine andere Objekte in der
Ferne auf uns zukommt, wird es durch die Luft des Raumes beugt und erscheint
größer und weiter weg, als es tatsächlich ist.

Der Dopplereffekt kann auch in anderen Bereichen wie der Optik, Elektrotechnik
oder Medizin verwendet werden. Zum Beispiel können Dopplereffekte in der
Medizin verwendet werden, um die Blutungen in einem Körperteil zu bestimmen.

Es gibt verschiedene Arten von Dopplereffekten, darunter:

* LichtDopplereffekt: Der Effekt, den das Licht erzeugt, wenn es durch ein
  Medium passt.
* ZeitDopplereffekt: Der Effekt, den die Zeit erzeugt, wenn sie durch ein
  Objekt oder eine bestimmte Umgebung verändert wird.
* Räumliche Dopplereffekte: Der Effekt, den die räumliche Position von Objekten
  oder der Standort eines Beobachters auf die Erscheinung des Dopplereffekts
  ausübt.

Insgesamt ist der Dopplereffekt ein interessanter und wichtiger
physikalischerEffekt, der in vielen Bereichen der Wissenschaft und Technologie
Verwendung findet.

Ollama stellt seine Funktionen über eine REST-API zur Verfügung und kann somit lokal auch durch eigene Scripts und Editor-Plugins (z.B. Continue für VSCode) genutzt werden. Natürlich gibt es auch Module/Bibliotheken für diverse Sprachen, z.B. für Python.

Öffentliche Sprachmodelle

Die bekanntesten Sprachmodelle sind zur Zeit GPT-3.5 und GPT-4. Sie wurden von der Firma openAI entwickelt und sind die Basis für ChatGPT. Leider sind die aktellen GPT-Versionen nicht öffentlich erhältlich.

Zum Glück gibt es aber eine Menge anderer Sprachmodelle, die wie Open-Source-Software kostenlos heruntergeladen und von Ollama ausgeführt werden können. Gut geeignet für erste Experimente sind llama2, gemma und mistral. Einen Überblick über wichtige, Ollama-kompatible LLMs finden Sie hier:

https://ollama.com/library

Noch viel mehr LLMs finden Sie auf HuggingFace, einer öffentlichen Plattform für KI-Forscher und -Anwender:

https://huggingface.co/models

Viele Sprachmodelle stehen in unterschiedlicher Größe zur Verfügung. Die Größe wird in der Anzahl der Parameter gemessen (7b = 7 billions = 7 Milliarden). Die Formel »größer ist besser« gilt dabei nur mit Einschränkungen. Mehr Parameter versprechen eine bessere Qualität, das Modell ist dann aber langsamer in der Ausführung und braucht mehr Platz im Arbeitsspeicher. Die folgende Tabelle gilt für llama2, einem frei verfügbaren Sprachmodell der Firma Meta (Facebook & Co.).

Name.        Parameter     Größe
----------  ----------  --------
llama2           7 Mrd.     4 GB
llama2:13b      13 Mrd.     7 GB
llama2:70b      70 Mrd.    39 GB

Wenn Sie llama2:70b ausführen wollen, sollte Ihr Rechner über 64 GB RAM verfügen.

Update: Quasi zugleich mit diesem Artikel wurde llama3 fertiggestellt (Details und noch mehr Details). Aktuell gibt es zwei Größen, 8b (5 GB) und 80b (40 GB).

Bildverarbeitung

Ollama kann aber auch KI-Modelle zur Bildverarbeitung ausführen, z.B. LLaVA (siehe https://ollama.com/blog/vision-models).

ollama run llava:13b

>>> describe this image: raspap3.jpg 

Added image 'raspap3.jpg' 

The image shows a small, single-board computer like the Raspberry Pi 3, which is 
known for its versatility and uses in various projects. It appears to be connected 
to an external device via what looks like a USB cable with a small, rectangular
module on the end, possibly an adapter or expansion board. This connection
suggests that the device might be used for communication purposes, such as
connecting it to a network using an antenna. The antenna is visible in the
upper part of the image and is connected to the single-board computer by a
cable, indicating that this setup could be used for Wi-Fi or other wireless
connectivity.

The environment seems to be an indoor setting with wooden flooring, providing a
simple and clean background for the electronic components. There's also a label
on the antenna, though it's not clear enough to read in this image. The setup
is likely part of an electronics project or demonstration, given the simplicity
and focus on the connectivity equipment rather than any additional peripherals
or complex arrangements.

Eigentlich eine ganz passable Beschreibung für das folgende Bild!

Auf dem Bild ist ein Raspberry Pi 3B+ mit angeschlossenem USB-WLAN-Adapter und Netzwerkkabel zu sehen. Der WLAN-Adapter ist über einen der USB-Ports verbunden, während das gelbe Ethernet-Kabel in den LAN-Port eingesteckt ist. Der Raspberry Pi wird zusätzlich über ein schwarzes Micro-USB-Kabel mit Strom versorgt.
Raspberry Pi 3B+ mit USB-WLAN-Adapter

Praktische Erfahrungen, Qualität

Es ist erstaunlich, wie rasch die Qualität kommerzieller KI-Tools — gerade noch als IT-Wunder gefeiert — zur Selbstverständlichkeit wird. Lokale LLMs funktionieren auch gut, können aber in vielerlei Hinsicht (noch) nicht mit den kommerziellen Modellen mithalten. Dafür gibt es mehrere Gründe:

  • Bei kommerziellen Modellen fließt mehr Geld und Mühe in das Fine-Tuning.
  • Auch das Budget für das Trainingsmaterial ist größer.

  • Kommerzielle Modelle sind oft größer und laufen auf besserer Hardware. Das eigene Notebook ist mit der Ausführung (ganz) großer Sprachmodelle überfordert. (Siehe auch den folgenden Abschnitt.)

Wodurch zeichnet sich die geringere Qualität im Vergleich zu ChatGPT oder Copilot aus?

  • Die Antworten sind weniger schlüssig und sprachlich nicht so ausgefeilt.
  • Wenn Sie LLMs zum Coding verwenden, passt der produzierte Code oft weniger gut zur Fragestellung.

  • Die Antworten werden je nach Hardware viel langsamer generiert. Der Rechner läuft dabei heiß.

  • Die meisten von mir getesteten Modelle funktionieren nur dann zufriedenstellend, wenn ich in englischer Sprache mit ihnen kommuniziere.

Die optimale Hardware für Ollama

Als Minimal-Benchmark haben Bernd Öggl und ich das folgende Ollama-Kommando auf diversen Rechnern ausgeführt:

ollama run  llama2 "write a python function to extract email addresses from a string" --verbose

Die Ergebnisse dieses Kommandos sehen immer ziemlich ähnlich aus, aber die erforderliche Wartezeit variiert beträchtlich!

Lenovo T16, Linux. 12th Gen Intel i5-1250P cores=12, 32 GiB RAM, Alder Lake-P Integrated Graphics Controller

total duration:       4m7.981004535s
load duration:        979.201µs
prompt eval count:    31 token(s)
prompt eval duration: 3.061771s
prompt eval rate:     10.12 tokens/s
eval count:           478 token(s)
eval duration:        4m4.913456s
eval rate:            1.95 tokens/s

Lenovo P1 (2018), Linux. Intel i8750H 6 cores / 12 threads, 32 GiB RAM, NVIDIA Quadro P1000

Die GPU wurde nicht genutzt.

total duration:       1m48.168754835s
load duration:        204.369µs
prompt eval duration: 146.12ms
prompt eval rate:     0.00 tokens/s
eval count:           629 token(s)
eval duration:        1m48.021933s
eval rate:            5.82 tokens/s 

MacBook Air 2020, M1, 8GiB RAM

total duration:       52.303529042s
load duration:        4.741221334s
prompt eval count:    31 token(s)
prompt eval duration: 331.908ms
prompt eval rate:     93.40 tokens/s
eval count:           567 token(s)
eval duration:        47.211456s
eval rate:            12.01 tokens/s

MacBook Air M2 2023, 24 GB

total duration:       35.853232792s
load duration:        5.297790333s
prompt eval count:    32 token(s)
prompt eval duration: 211.272ms
prompt eval rate:     151.46 tokens/s
eval count:           617 token(s)
eval duration:        30.343375s
eval rate:            20.33 tokens/s

MacBook Pro M3 Pro 2023, 36 GB

total duration:       28.392226667s
load duration:        5.532561667s
prompt eval count:    31 token(s)
prompt eval duration: 119.313ms
prompt eval rate:     259.82 tokens/s
eval count:           667 token(s)
eval duration:        22.740198s
eval rate:            29.33 tokens/s 

Bzw. mit llama3:8b: 26,6 tokens/s.

Grundsätzlich kann Ollama GPUs nutzen (siehe auch hier und hier). Im Detail hängt es wie immer vom spezifischen GPU-Modell, von den installierten Treibern usw. ab. Wenn Sie unter Linux mit einer NVIDIA-Grafikkarte arbeiten, müssen Sie auch CUDA-Treiber installieren und ollama-cuda ausführen. Beachten Sie auch, dass viele Sprachmodelle zu groß für den Speicher der Grafikkarte sind.

Apple-Rechner mit M1/M2/M3-CPUs sind für Ollama aus zweierlei Gründen ideal: Es gibt keinen Ärger mit Treibern, und der gemeinsame Speicher für CPU/GPU ist vorteilhaft. Die GPUs verfügen über so viel RAM wie der Rechner. Außerdem bleibt der Rechner lautlos, wenn Sie Ollama nicht ununterbrochen mit neuen Abfragen beschäftigen.

Zum Schluss noch eine Bitte: Falls Sie Ollama auf Ihrem Rechner installiert haben, posten Sie bitte Ihre Ergebnisse des Kommandos ollama run llama2 "write a python function to extract email addresses from a string" --verbose im Forum!

Quellen/Links

17. April 2024

Mozilla hat Firefox 125 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Weitere Verbesserungen von Firefox View

Die mit Firefox 106 eingeführte und mit Firefox 119 stark verbesserte Funktion Firefox View hatte mit Firefox 123 eine Suchfunktion sowie verbesserte Performance erhalten. Firefox 124 brachte die Möglichkeit, im Reiter der offenen Tabs diese wahlweise nach der neuesten Aktivität oder nach der Tab-Reihenfolge zu sortieren. Mit Firefox 125 folgen weitere Verbesserungen.

So werden ab sofort auch angeheftete Tabs im Reiter der offenen Tabs angezeigt. Darüber hinaus wurden diverse Indikatoren hinzugefügt. So lässt sich beispielsweise erkennen, ob ein Tab auch als Lesezeichen existiert oder ob in diesem gerade etwas wiedergegeben wird. Über das entsprechende Lautsprecher-Symbol lässt sich der Tab direkt stumm und wieder laut schalten. Auch ein Schließen-Button wurde an dieser Stelle ergänzt, um Tabs direkt aus Firefox View heraus mit einem Klick weniger schließen zu können.

Firefox 125

Einfacheres Navigieren zu URLs in Zwischenablage

Befindet sich eine URL in der Zwischenablage und die Adressleiste wird fokussiert, schlägt Firefox diese jetzt direkt vor. Wird die Seite nicht aufgerufen, schlägt Firefox diese beim nächsten Fokussieren aber nicht erneut vor, sodass nicht die ganze Zeit eine URL vorgeschlagen wird, die nicht besucht werden soll.

Firefox 125

Textstellen in PDF-Dateien hervorheben

Der PDF-Betrachter von Firefox wurde um eine Funktion erweitert, um Textstellen in PDF-Dateien farbig hervorheben zu können.

Firefox 125

Diese Neuerung wird schrittweise im Laufe der kommenden Wochen für alle Nutzer ausgerollt werden.

Sonstige Endnutzer-Neuerungen von Firefox 125

Die Einstellungen können wie bisher auch via about:preferences geöffnet werden, zusätzlich aber auch via about:settings, wie man es aus Chromium-basierten Browsern kennt.

Die lokale Übersetzungsfunktion funktioniert nun besser bei Textstellen mit unsichtbaren HTML-Elementen innerhalb von Sätzen.

Werden Tab-Umgebungen genutzt (beispielsweise über eine Erweiterung) lassen sich über die Adressleiste (Eingabe von „%”) jetzt auch Tabs in anderen Umgebungen durchsuchen.

Nutzern in den USA und Kanada bietet Firefox beim Absenden eines Adressformulars jetzt an, Adressen zu speichern, um diese dann zukünftig in Formularen vorzuschlagen.

Das Setzen von Firefox aus dem Microsoft Store als Standardbrowser für alle relevanten Dateitypen mit nur einem Klick wurde wieder aktiviert.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 125 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 125 daher für alle Nutzer dringend empfohlen.

Firefox blockiert jetzt standardmäßig alle Downloads, die über http:// anstelle von https:// erfolgen. Bisher war dies nur bei http://-Downloads auf https://-Websites der Fall. Wie gehabt kann der Nutzer nach expliziter Bestätigung den Download auf Wunsch durchführen.

Außerdem gab es weitere Verbesserungen des Schutzes vor IDN-Spoofing, bei dem bestimmte Zeichen in der Adressleiste vortäuschen, man würde sich auf einer vertrauenswürdigen Domain befinden.

Verbesserungen der Webplattform

Firefox unterstützt AV1 jetzt auch für Encrypted Media Extensions (EME), womit Anbieter von Streaming-Plattformen Gebrauch von diesem modernen Video-Codec machen können.

Die spannendste Ergänzung der Webplattform auf HTML-Ebene ist die Unterstützung des popover-Attributs.

In einer Gruppe von Radio-Buttons ohne aktive Auswahl erreicht die Tab-Taste jetzt genau wie bei einer Gruppe mit aktiver Auswahl nur noch die erste Option statt jede einzelne Option. Zwischen den einzelnen Optionen kann wie gehabt mit den Pfeiltasten navigiert werden.

In CSS funktioniert die Eigenschaft align-content jetzt auch für Block-Elemente und nicht länger nur in Flex- oder Grid-Elementen. Und transform-box unterstützt jetzt auch content-box und stroke-box als Werte.

JavaScript wurde um die Unterstützung für Intl.Segmenter sowie navigator.clipboard.readText() ergänzt.

WebAssembly-Module (Wasm-Module) können nun mehrere unabhängige Linearspeicher verwenden. Mehrere Speicher ermöglichen eine effizientere Interoperabilität zwischen Modulen und bessere Polyfills für kommende Wasm-Standards.

Weitere Neuerungen für Entwickler von Websites lassen sich in den MDN Web Docs nachlesen.

Firefox 125.0.1

Wegen eines Fehlers, der verursachte, dass Nutzer von Apple macOS ohne Administrator-Rechte Firefox nicht aktualisieren konnten, wurde Firefox 125.0 überspringen und durch Firefox 125.0.1 ersetzt, der diesen Fehler behoben hat.

Der Beitrag Mozilla veröffentlicht Firefox 125 erschien zuerst auf soeren-hentzschel.at.

15. April 2024

Diese Distribution richtet sich an Kreative, die ihr Betriebssystem, die Anwendungen und die Arbeitsergebnisse mit sich tragen möchten.

Es gibt eine Vielzahl von Linux-Distributionen, die auf bestimmte Aufgaben ausgerichtet sind. Es gibt Distributionen für Desktops, Server, Firewalls, Router, Spiele, Container, Dateiserver, Forensik, Penetrationstests und mehr. Es gibt auch Distributionen, die speziell dafür entwickelt wurden, Kreative bei ihrer Arbeit zu unterstützen. Eine dieser Distributionen ist Dynebolic, die vor einem Jahrzehnt an Popularität gewann, als sie gerade ihre Entwicklung einstellte. Jetzt gibt es sie wieder in der aktuellen Version 4.0 beta.

Zehn Jahre sind vergangen und heute sind wir zurück mit einem brandneuen Dynebolic 4.0, basierend auf Devuan 5 "Daedalus", Live-Boot und der Linux-Kernel 6.8 Serie.

Zehn Jahre sind in der IT-Branche eine lange Zeit, aber Rastasoft ist zuversichtlich, dass seine Distribution wieder in Form kommt. Mithilfe des KDE-Plasma-Desktops ist Dynebolic zu einem portablen, kreativen Betriebssystem geworden, das speziell auf die Multimedia-Produktion ausgerichtet ist und eine Fülle von Audio- und Video-Tools bietet, nämlich:

  • Ardour7 - Digital audio workstation
  • Audacity - Sound editor
  • Butt - Streaming tool
  • FFADO Mixer - FireWire audio mixer
  • HDSPConf - Hammerfall DSP control application
  • JAMin - JACK Audio Mastering interface
  • Kdenlive - Video editor
  • Mixxx - Digital DJ interface
  • OBS Studio - Streaming/recording
  • QJackCtl - JACK control
  • soundKonverter - Audio file converter, CD ripper, and Replay Gain tool
  • TiMidity++ - MIDI sequencer
  • VLC - Media player
  • Darktable - Virtual light table and darkroom
  • GIMP - Image editor
  • Inkscape - Vector graphics editor
  • Scribus - Page layout
  • Konqueror - Web browser
  • Thunderbird - Email

Nach dem Herunterladen der ISO-Datei und der Installation in der virtuellen Maschine GNOME-Boxes, präsentiert sich Dynebolic so hübsch, wie ihr es im Titelbild seht. Bei einer Distro, die sich dem Thema Kreativität widmet, hätte ich im Startmenü eine bessere Aufteilung erwartet:

Leider gibt es dort nur die beiden Themen-spezifischen Menüs Graphics und Multimedia. Diese Unterteilung halte ich für zu grob. Besser fände ich Menüs für Audio-Bearbeitung, Audio-Wiedergabe, Video-Bearbeitung, Video-Wiedergabe und Bild-Bearbeitung. Ausserdem fehlt Dynebolic eine Office-Suite.

Dahingegen legt Dynebolic Activities für verschiedene kreative Arbeiten an, was ist gut finde:

Ein wenig mehr Aufwand bei der Menüaufteilung hätte doch sicher noch drin gelegen.

Um ein paar Details zu testen, wollte ich im Webbrowser (Konqueror) ein Bild von Pixabay herunterladen, was mir nicht gelang. Vermutlich ist die Welt von KDE-Plasma eine, in der ich nicht funktioniere. Weder Download, noch Save as funktionierten. Zum Schluss habe ich mit wget ein Bild heruntergeladen, um die Funktionen zu prüfen, die Gimp in Dynebolic anbietet. Meine Erwartung war, dass die Distribution Gimp mit wichtigen Erweiterungen ausstattet, die man haben möchte, wie z. B. die Resynthesizer-Funktion.

Beim Speichern von neuen Dateien muss man aufpassen, dass nach einem Neustart nicht alles verloren ist, was standardmässig der Fall ist. Daher empfiehlt es sich, die eigenen Dateien auf ein externes Laufwerk oder einen Cloud-Speicher abzulegen. Auch da hätte ich von der Distribution mehr erwartet. Bei einem Live-System auf einem USB-Stick, ist es nämlich möglich, einen persistenten Bereich einzurichten, sodass die Dateien auf dem USB-Stick landen und beim Neustart nicht verloren sind. Damit hätten kreative Nutzer:innen tatsächlich ein portables System.

Fazit

Mit einem aktuellen Devuan (Debian ohne systemd), dem 6.8er Kernel und KDE-Plasma in Version 5.27.5 liefert Rastasoft nach 10 Jahren eine aktuelle Version ihres Live-Systems für Kreative ab. Die Distro ist schön gestaltet und erhält eine Vielzahl an installierten Anwendungen aus dem Media- und Kreativ-Segment.

Aus zwei Gründen verstehe ich das Gesamtkonzept einer portablen Distribution für Kreative nicht:

  1. Multimedia-Anwendungen und -Dateien sind tendenziell gross und entsprechend langsam beim Starten. Da bei einem Live-System alle Anwendungen von einem externen Speichermedium gestartet werden müssen, fühlt sich das Arbeiten damit ziemlich zähflüssig an.
  2. Gibt es diesen Anwendungsfall überhaupt? Alle möglichen Kreativ-Anwendungen in eine Distro zu packen, ist ja schön und gut. Die Künstlerin benötigt die Audio-App, der andere Kreative verwendet die Grafik-Apps. Vermutlich benötigt niemand alle Kreativ-Anwendungen, die Dynebolic vorinstalliert hat.
  3. Aus den Punkten 1 und 2 lassen sich Empfehlungen für Kreative ableiten:
    • Kein Live-System, sondern eine normale Installation auf einem Notebook (viel schneller und trotzdem portabel)
    • Nicht alle Kreativ-Anwendungen, sondern nur diejenigen installieren, die man wirklich benötigt (schlankeres System; kein Bloat)
    • Persistenz auf dem Notebook, statt der Gefahr, Dateien zu verlieren

Quelle: https://dyne.org/software/dynebolic/


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

14. April 2024

Solo ist ein Ende des vergangenen Jahres vom Mozilla Innovation Studio angekündigter Website-Builder, der auf Künstliche Intelligenz (KI) und einen maximal einfachen Erstellungsprozess setzt. Mittlerweile gibt es einige Neuerungen.

Im Rahmen der Innovation Week im Dezember 2023 hatte das Mozilla Innovation Studio Solo angekündigt. Dabei handelt es sich um einen sogenannten Website-Builder mit Fokus auf Selbständige, der auf generative Künstliche Intelligenz für einen maximal einfachen Erstellungsprozess setzt.

Jetzt Website-Builder Solo von Mozilla testen

Seit dem Start hat Mozilla einige Funktionen ergänzt, darunter das Hochladen eigener Bilder, eine optionale Verknüpfung mit Google Analytics, die Möglichkeit benutzerdefinierter Links im Header und Footer, Sitemap-Unterstützung für eine bessere Suchmaschinen-Sichtbarkeit, Formatierungsoptionen in weiteren Textbereichen, neue dunkle Themes, eine verbesserte Performance und noch mehr. Die vollständigen Release Notes seit der initialen Ankündigung:

0.8 (Jan 30, 2024)

  • Support for uploading your own images. JPG, GIF, PNG supported. 25 image limit per site. 15MB limit per image
  • Support for uploading a custom logo image
  • Connect a Google Analytics account for tracking website visitors
  • Added ability to zoom and crop images for the Intro and Services sections of the site
  • Fixed some color palette bugs
  • Added a What’s New link to the Account menu
  • Added support for custom header navigation links. Add external or in-page links
  • Added Solo sitemap support for improved Google SEO
  • Fixed numerous other smaller bugs

0.9 (Mar 1, 2024)

  • Rich text support in the Intro, Services and Text Banner sections. You can now add links, bullets, bold or otherwise customize the text in most sections of your site
  • New dark color themes per significant user request
  • Websites have been expanded to full width and simply look prettier
  • Improved page speed and less flickers
  • Image editor now available in the Services section
  • Select Spanish or French as the default language for the Contact form
  • Support for multiple image upload
  • Text banner and Services section now allow you to add buttons
  • Heading section links can now properly link to phone numbers
  • Scale the size of your custom logo
  • Squashed numerous other little bugs

0.91 (Apr 11, 2024)

  • Added support for custom links in the footer of your website
  • New websites generate substantially faster
  • Lots and lots of visual and minor bug fixes

Die Nutzung von Solo ist kostenlos. In Zukunft könnten gegen eine monatliche Gebühr aber auch zusätzliche Funktionen bereitgestellt werden.

Der Beitrag Viele neue Funktionen für Website-Builder Solo von Mozilla erschien zuerst auf soeren-hentzschel.at.

13. April 2024

Mozilla hat eine überraschende Korrektur einer erst kürzlich erfolgten Entscheidung vorgenommen: Mit Mozilla Social wird nun doch innerhalb von Mozilla weiter an einer eigenen Mastodon-App für Android gearbeitet.

Bereits seit Sommer des vergangenes Jahres arbeitet Mozilla mit Mozilla Social an einer Android-App für die dezentrale soziale Plattform Mastodon. Im Februar wurde in Zusammenhang mit einer internen Umstrukturierung innerhalb Mozillas beschlossen, die geplanten Mastodon-Apps für Android und iOS nicht fortzuführen. Aus Mozilla Social wurde Firefly – von den gleichen Entwicklern bereitgestellt, aber als privates Nebenprojekt und nicht länger als Teil von Mozillas Portfolio.

Nun scheint ein Umdenken stattgefunden zu haben. Denn die Mastodon-App wird wieder als Projekt von Mozilla fortgeführt. Die Änderungen, welche seit Februar innerhalb des Firefly-Projekts durchgeführt wurden, wurden abzüglich der Branding-Änderungen bereits in das wiedereröffnete Repository von Mozilla Social importiert.

Eine neue Version von Mozilla Social für Android zum Herunterladen gibt es aber noch nicht. Die letzte Version, welche via GitHub zum Download bereitgestellt wird, ist also noch auf dem Stand vom 13. Februar. Wann es neue Builds geben wird, ist zu diesem Zeitpunkt noch unklar. Die automatische Generierung neuer Builds ist aktuell noch deaktiviert.

Update 16.04.2024: Ab sofort gibt es wieder neue Builds auf GitHub.

Bezüglich einer Mastodon-App für iOS deutet sich momentan keine Änderung an. Die Arbeiten an einer ganz eigenen Mastodon-App waren nie so weit fortgeschritten wie bei Android und auch das Repository des Ice Cubes-Forks ist nach wie vor archiviert. Allerdings ist Mozilla auch Hauptinvestor der Mastodon-App Mammoth für iOS.

In eigener Sache: Dieser Blog auf Mastodon

Auch dieser Blog ist auf Mastodon vertreten. Wer mir folgen möchte, findet mich unter dem Namen @s_hentzschel@mozilla.social.

Der Beitrag Nun also doch: Mastodon-App Mozilla Social für Android wird weiterentwickelt erschien zuerst auf soeren-hentzschel.at.

12. April 2024

Der Raspberry Pi hat sich in den letzten Jahren von einem kleinen Minicomputer für Bastler und Nerds zu einem vollwertigen und verhältnismäßig leistungsfähigem Rechner entwickelt. Nicht wenige Anwender freuen sich darüber, für wenig Geld einen vollwertigen Miniserver zu bekommen. 

Beim Einsatz des Raspberry Pi für den produktiven Einsatz als Server ist zu beachten, dass auch die angeschlossene Hardware hierfür geeignet sein sollte. Ein Gehäuse, bei dem er Pi überhitzt, ist genau so schädlich wie eine SD-Karte als Festplatte, da diese nicht für den Dauerbetrieb geeignet ist.

Durch den Einsatz rund um die Uhr gibt es sehr viele Schreib- und Lesevorgänge auf der SD-Karte. Hierfür sind diese Karten aber nur bedingt geeignet. Bei den ersten Raspberry Pi Generationen hatte ich sehr häufig Datenverlust, weil die SD-Karte den Geist aufgegeben hat. 

Inzwischen läuft auf dem Pi bei mir eine Instanz von Home Assistant. Hier werden rund um die Uhr Daten aufgezeichnet und Automationen ausgeführt. Auch andere Dienste laufen hier, von denen ich keinen Ausfall erleiden möchte. 

Außerdem sind die Lese- und Schreibgeschwindigkeiten einer SD-Karte sehr limitiert. Eine moderne SSD ist um ein Vielfaches schneller. Das wird vor allem dann deutlich, wenn man in Home Assistant Datenmengen abfragt, z.B. Diagramme anzeigt. Ladezeiten von mehreren Sekunden sind dann keine Seltenheit.

Die Konsequenz daraus ist, dass ich den Raspberry von einer SD-Karte auf eine SSD-Karte umziehen möchte. Dadurch, dass hier ein Produktivsystem läuft, möchte ich alle Installationen, Daten und Einstellungen möglichst verlustfrei auf das neue Medium umziehen. Wie ich das gemacht habe, erfahrt hier in folgendem Tutorial.

Schritt 0: Geschwindigkeit testen (optional)

Um einen Geschwindigkeitsvorteil in messbare Größen zu fassen, kann man als Referenz einen Geschwindigkeitstest der SD-Karte machen. Mit dem folgenden Befehl werden Beispieldateien geschrieben. Der Befehl gibt aus, wie schnell die Geschwindigkeit dabei war. 

$ dd if=/dev/zero of=/tmp/speedtest1.img bs=20MB count=5
5+0 records in
5+0 records out
100000000 bytes (100MB, 95 MiB) copied, 11.9403 s, 8.4 MB/s

Wenn der Umzug fertig ist, kann man diesen Test wiederholen. Bei mir kam ich von ca. 8,4 MB/s Schreibgeschwindigkeit auf 168 MB/s. Das hat sich mal gelohnt!

Schritt 1: SSD erstmals anschließen

In meinem Fall handelt es sich um eine externe SSD, die über USB 3.0 angeschlossen wird. Nachdem ich sie angesteckt habe, prüfe ich ob sie rechtmäßig erkannt wird, indem ich den folgenden Befehl eingebe und in der Ausgabe nach der SSD suche.

$ lsblk

Schritt 2: Installation von RPi-clone

Auf Github gibt es ein kleines Projekt, das viele Funktionen beinhaltet. Das Programm kopiert den Inhalt der SD-Karte auf die SSD, sodass von ihr gebootet werden kann und alle Einstellungen vorhanden sind.

$ git clone https://github.com/billw2/rpi-clone.git
$ cd rpi-clone
$ sudo cp rpi-clone /usr/local/sbin/sys-clone
$ sudo cp rpi-clone-setup /usr/local/sbin/sys-clone-setup

Schritt 3: Services stoppen und Kopiervorgang starten

Am besten ist es, wenn kein Service mehr läuft und der Kopiervorgang ungestört durchlaufen kann. Daher erst prüfen, was alles läuft, danach einzeln beenden

$ sudo systemctl stop cron
$ sudo systemctl stop nginx
$ sudo systemctl stop docker usw.

Schritt 4: Kopiervorgang starten

Aus dem Check von Schritt 1 kennen wir bereits die Bezeichnung der Festplatte. Auf diese müssen wir nun verweisen mit dem Befehl:

$ rpi-clone sda

Der Wizard hält zunächst an und berichtet uns über den Zustand des Systems. Wenn alles korrekt ist, kann der Vorgang mit der Eingabe von „yes“ gestartet werden.

Schritt 5: Raspberry Pi herunterfahren und von SSD booten

Nach Ende des Kopiervorgangs fährt man den Raspberry Pi herunter.

$ sudo shutdown now

Anschließend von der Stromversorgung trennen, die SD-Karte entfernen, und die Spannungsversorgung wieder herstellen. Jetzt bootet der Raspberry von SSD und ist sehr viel schneller.

The post Raspberry Pi: Umzug von SD-Karte auf SSD in wenigen Schritten first appeared on bejonet - Linux | Smart Home | Technik.

10. April 2024

Formulaic ist das neueste Projekt vom Mozilla Innovation Studio. Dabei handelt es sich um eine Community-Plattform, auf der man sogenannte KI-Prompts zu bestimmten Themen finden und mit anderen Nutzern teilen kann.

Ob der KI-basierte Website-Builder Solo, innovative KI-Technologien wie llamafile oder MemoryCache, das Tagebuch-Projekt Didthis oder der Mozilla AI Guide – das Mozilla Innovation Studio hat in den letzten Monaten einige interessante Projekte gestartet. Das neueste Projekt ist Formulaic.

Formulaic ist eine Plattform, auf der Nutzer wiederverwendbare Skripte für die gängigsten generativen KI-Sprachmodelle erstellen und mit anderen Nutzern teilen können. Mozilla spricht hierbei von Formeln. Diese können auch direkt auf der Plattform ausgeführt werden. Die Verwendung von Eingabefeldern und Variablen macht die Verwendung für den Benutzer sehr einfach.

Mozilla Formulaic 

Sämtliche auf Formualic veröffentlichten Formeln stehen unter einer Creative Commons CC-BY-Lizenz und können damit sowohl in privaten als auch kommerziellen Anwendungen verwendet werden. Erklärtes Ziel von Mozilla ist es, Wissen und Kompatibilität zu fördern und Entwicklern das Vertrauen zu geben, sich für Open Source zu entscheiden.

Derzeit befindet sich das Projekt noch im Aufbau und ist als Beta-Version gekennzeichnet. Daher ist die Auswahl bereits bestehender Formeln auch noch sehr gering und die Anmeldung, welche sowohl zum Erstellen neuer als auch Ausführen bestehender Formeln notwendig ist, noch nicht offen. Interessierte Nutzer können sich aber auf eine Warteliste setzen lassen.

Mozilla Formulaic

Mozilla Formulaic

Mozilla Formulaic

Der Beitrag Formulaic: Mozilla arbeitet an Community-Plattform für KI-Prompts erschien zuerst auf soeren-hentzschel.at.

Seit 1,5 Jahren produziere ich den Podcast Risikozone, in dem es um Themen der IT-Sicherheit und Open-Source-Software geht. Die xz-Backdoor ist natürlich ein heißes Thema, weswegen es in der heute veröffentlichten Episode 45 genau darum geht.

Die knapp einstündige Podcastepisode ist für alle interessant, die nochmals einen technisch orientierten Überblick über die Geschehnisse suchen. Da die Thematik recht komplex ist und aus verschiedenen Blickwinkeln beobachtet werden kann, können weitere Podcastepisoden hierüber noch folgen. Ich möchte aber darauf eingehen, dass man diese Backdoor nicht nur auf den Code beschränken sollte. Es gibt es viele verschiedene Ebenen, die allesamt jeweils Beachtung finden sollten:

  • die technische "Exploit"-Ebene
  • die zwischenmenschliche Ebene
  • die Ökosystem-Ebene

Technisch ist der Exploit ausgeklügelt: Die Backdoor beschränkt sich nicht nur auf die bloße Möglichkeit einer Remote-Code-Execution, sondern verwendet darüber hinaus noch ein eigenes Protokoll, mit dem die Befehle signiert und verschlüsselt innerhalb des unscheinbaren N-Wertes im Zertifikat eines SSH-Handshakes übermittelt werden. Durch die Signatur können nur Befehle ausgeführt werden, die mit einem (wahrscheinlich nur dem Angreifer bekannten) ED448-Schlüssel signiert wurden. Die Verschlüsselung erfolgt zwar mit einem statischen Schlüssel, der aus dem ED448-PubKey abgeleitet wird, erfüllt jedoch trotzdem seinen Zweck: Obfuskierung. Mit anderen Worten: wäre die Lücke nie aufgefallen, hätte man sie in der freien Wildbahn nahezu unmöglich durch Traffic-Analysen finden können.

Das ist allerdings nur die erste von drei Ebenen: die Art und Weise, wie die Lücke hereingeschummelt wurde, weist Komponenten des Social Engineering auf. Die Mühe, über mehrere Jahre eine Identität in verschiedenen Projekten mit teils anfangs legitimen Beiträgen aufzubauen, zeugt auch von einem Plan und Ausdauer.

Schlussendlich sollte man auch nicht vergessen, dass hier eine besondere Konstellation im Ökosystem ausgenutzt wurde. Am einfachsten (und auffälligsten) wäre es, eine solche Lücke in OpenSSH unterzubringen. Es wurde aber auf eine deutlich unbeachtetere und einfacher zu infiltrierende Variante ausgewichen. Die xz-Bibliothek wurde zudem nicht zum Einfallstor, weil OpenSSH darauf zurückgreift (das tut es nämlich nicht), sondern weil einige Distros systemd-notify reinpatchen, was wiederum auf die xz-Lib zurückgreift. Außerdem rüttelt dieser Fall an einem Grundpfeiler der IT-Sicherheits-Praktiken: Updates. Diese Hintertür fand geradezu durch die (häufigen) Updates der Rolling-Release-Distros Einzug - die stabilen Versionen waren noch verschont geblieben. Ist also (zu) häufiges Updaten nun auch nicht mehr richtig? Bringen bald Updates mehr Lücken als sie schließen?

Das alles macht es vor allem noch schwieriger, solche Angriffe zuverlässig zu erkennen. Zudem ist davon auszugehen, dass die Angreifer sich die Verteidigungsstrategie jetzt ganz genau anschauen. Die zukünftige Diskussion sollte sich also darauf konzentrieren, wie man diese Art von Angriffen detektiert und frühzeitig eindämmt.

8. April 2024

Firefox besitzt eine Funktion für die vollständige Website-Übersetzung, welche im Gegensatz zu Cloud-Übersetzern wie Google Translate lokal arbeitet, die eingegebenen Texte also nicht an einen fremden Server sendet. Ab Firefox 126 wird es auch möglich sein, nur markierten Text zu übersetzen.

Firefox wird seit Version 118 standardmäßig mit einer lokalen Funktion zur maschinellen Übersetzung von Websites für den Browser ausgeliefert. Das bedeutet, dass die Übersetzung vollständig im Browser geschieht und keine zu übersetzenden Inhalte an einen Datenriesen wie Google oder Microsoft übermittelt werden müssen. Seit kurzem werden weitere Sprachen unterstützt.

Die nächste größere Verbesserung steht mit Firefox 126 an. Ab dann wird es nicht mehr nur möglich sein, Websites als Ganzes zu übersetzen, sondern nur markierte Textstellen.

Textauswahl-Übersetzung in Firefox 126

Ob die neue Funktion in der finalen Version von Firefox 126 standardmäßig aktiviert sein wird, ist zu diesem Zeitpunkt noch nicht bekannt. Zunächst wird die Funktion in Nightly- und frühen Beta-Versionen standardmäßig aktiviert werden. Eine manuelle Aktivierung ist über about:config möglich, indem der Schalter browser.translations.select.enable per Doppelklick auf true gesetzt wird. Anschließend steht nach dem Markieren von Text ein neuer Kontextmenüeintrag zum Übersetzen zur Verfügung.

Auch wenn der Schalter bereits in Firefox 124 existiert, funktioniert das Feature erst ab Firefox 126. Firefox 126 wird nach aktueller Planung am 14. Mai 2024 erscheinen. Nutzer einer Nightly-Version von Firefox können die Neuerung bereits jetzt testen.

Der Beitrag Firefox 126 kann markierten Text übersetzen erschien zuerst auf soeren-hentzschel.at.

Wie du UNIX V5 ganz einfach auf einem PDP-11 Emulator ausprobieren kannst. Eine kurze Führung durch UNIX V5.

Wenn du ein freies Betriebssystem wie GNU/Linux verwendest, hast du vermutlich schon mal von Unix gehört. GNU/Linux sowie viele andere Betriebssysteme stammen entweder von Unix ab (FreeBSD, OpenBSD, NetBSD) oder sind stark von Unix inspiriert (GNU/Linux, GNU/Hurd). In diesem Artikel möchte ich dir die Geschichte von UNIX V5 näherbringen und dir zeigen, wie du es heute auf deinem Computer ausprobieren kannst.

Die besondere Bedeutung von UNIX V5

Die ersten Computer haben nach dem Prinzip der Stapelverarbeitung (eng.: batch processing) funktioniert. Auf einem solchen Computer konnten Programme nur nacheinander und nicht gleichzeitig ausgeführt werden. Diese Computer waren extrem gross und teuer. Um Programme auszuführen, die zu diesem Zeitpunkt oft in der Form von tatsächlichen Stapeln mit Lochkarten kamen, benötigten diese Computer oft Stunden oder Tage.

Als Computer schneller und günstiger wurden, wurde es praktikabel mehrere Programme parallel auf einem Gerät laufen zu lassen. Dieses Konzept wurde unter dem Begriff Time-Sharing bekannt. In den 60er-Jahren arbeiteten Entwickler bei den Bell Labs, bei General Electric und dem MIT zusammen, um ein solches Time-Sharing System unter dem Namen Multics zu entwickeln. Multics selbst galt damals als ein äusserts komplexes System, bei dessen Entwicklung zahlreiche neue Ideen ausprobiert wurden.

Einige ehemalige Multics Entwickler, darunter Dennis Ritchie (links im Bild) und Ken Thompson (rechts im Bild), haben in den frühen 70ern bei Bell Labs die erste Version UNIX entwickelt. Dabei haben sie bewährte Konzepte von Multics, wie das hierarchische Filesystem, wiederverwendet.

UNIX Versionen 1 - 4 haben die Bell Labs zu ihrer Zeit nie verlassen. UNIX V5 war die erste Version, die an Bildungseinrichtungen herausgegeben wurde und so an die Öffentlichkeit gelangte.

UNIX V5 auf SimH ausprobieren

UNIX V5 wurde auf einer PDP-11 (im Bild) entwickelt. Eingaben wurden von einer Tastatur gelesen und Ausgaben auf eine Papierrolle gedruckt (im Bild). Das Betriebssystem selbst konnte man auf einer wechselbaren Festplatte mit etwa 2.5 MB Speicherplatz speichern.

Um UNIX V5 auszuprobieren, kannst du die Kopie einer solchen Festplatte im Internet herunterladen:

curl -LO http://simh.trailing-edge.com/kits/uv5swre.zip  
unzip uv5swre.zip

Dann benötigst du einen PDP-11 Emulator. Ich verwende dazu SimH. Das Package heist zumindest bei Debian, Arch Linux und NixOS/nixpkgs simh.

Um UNIX vom unix_v5_rk.dsk Disc Image zu starten, musst du SimH noch erklären, welche PDP-11 Version du verwenden möchtest und wie die Disc anzuhängen ist. Das Image ist von einer RK Disk und das UNIX darauf läuft auf einer PDP-11/45.

Du kannst die folgenden Zeilen im SimH pdp11 Prompt eingeben oder sie in ein File (z. B. unix_v5.ini) speichern, damit du sie nicht jedes Mal eingeben musst.

set cpu 11/45
attach rk0 unix_v5_rk.dsk
boot rk0

Dann kannst du den Emulator mit pdp11 unix_v5.ini starten. Manchmal heisst das Kommando auch simh-pdp11 (z.B. in Termux auf Android).

Falls alles geklappt hat, solltest du mit den folgenden Zeilen begrüsst werden:

PDP-11 simulator V3.11-1
Disabling XQ
@

SimH fragt dich hier, welchen Kernel du starten möchtest. Der UNIX Kernel auf dem Disk Image heisst passenderweise unix. Gib unix ein und drücke die Entertaste.

Unix startet sofort und begrüsst dich mit einer Log-in-Abfrage. Der Username ist root. Ein Passwort gibt es nicht.

Wenn du jetzt ein # siehst, hat alles funktioniert. Du bist jetzt in der UNIX V5 Shell (/bin/sh).

Wenn du dich über die spärlichen Ausgaben wunderst, denk daran, dass das gängige Ausgabegerät zu dieser Zeit ein Zeilendrucker war. Noch heute geben viele Kommandos keine Rückmeldung, wenn sie erfolgreich ausgeführt wurden.

Eine kurze Führung durch UNIX V5

Die UNIX V5 Shell fühlt sich vielleicht vertraut an. Sehr wahrscheinlich hast du noch heute einen fernen Nachkömmling davon auf deinem System. Viele bekannte Kommandos waren bereits auf diesem frühen Unix verfügbar.

Nach dem Log-in befindest du dich im Root Directory (/). Wenn du hier ls ausführst, siehst du das folgende:

# ls
bin
dev
etc
lib
mnt
tmp
unix
usr  

Das Unix File ist der Kernel, den wir vorhin gestartet haben.

Sieht alles ganz vertraut aus. Doch schnell stösst du auf erste Probleme:

# cd usr
cd: not found

Tatsächlich heisst das Kommando um das aktuelle Verzeichnis zu wechseln: chdir.

Der Zeileneditor

Mein Lieblingsverzeichnis ist /usr/source. Darin findest du den Source Code zu fast allen Programmen auf dem System. Ein Teil davon ist in PDP-11 Assembler und der Rest in einem uralten C Dialekt geschrieben. C wurde nämlich zusammen mit Unix entwickelt.

Um etwa den Code des ls Programms anzuschauen, könnten wir einen Befehl wie cat /usr/source/s1/ls.c verwenden. Da du aber sehr wahrscheinlich keine Papierrolle, sondern einen Bildschirm verwendest, wirst du vermutlich nur die letzten Zeilen der Datei sehen.

Für eine bessere Brauchbarkeit der Navigation im Source Code, würde ich das ed-Programm empfehlen. Dabei handelt es sich um einen zeilenbasierten Editor. Vielleicht hast du ed noch auf deinem System oder sonst zumindest sed. Mit dem ed /usr/source/s1/ls.c Befehl kannst du den ls Quellcode öffnen. Begrüsst wirst du mit einer Zahl: 7250. Das ist die Grösse von ls.c in Bytes.

Alle Kommandos in ed sind ein Buchstabe lang. Ein Kommando quittierst du, wie gewohnt, mit der Entertaste. Wenn du das = Kommando absetzt, siehst du wieder eine Zahl: 434. Das ist die Anzahl der Zeilen in der Datei.

Viele Kommandos können auf einer Zeile oder einem Bereich von Zeilen ausgeführt werden. Anfänglich befindet sich dein „Cursor“ auf der letzten Zeile. Mit 1 und der Entertaste holst du deinen Cursor auf die erste Zeile. Dann kannst du mit Enter Zeile für Zeile nach unten navigieren.

Mit /main/ kannst du nach der Signatur der Main-Funktion suchen und mit .,.+2p kannst du die aktuelle Zeile und die darauffolgenden zwei Zeilen ausgeben.

/main/
main(argc, argv)
.,.+2p
main(argc, argv)
char **argv;
{

Wie du siehst, ist das alles sehr Papier-schonend.

Wenn ed mit einer deinen Eingaben nichts anfangen kann, gibt er ein ? aus. Was genau du falsch gemacht hast, musst du dann selbst herausfinden.

Mit dem q-Kommando kannst du ed schliessen.

Ich empfehle folgendes kleines Programm zu schreiben (volle ed Sitzung):

# ed
a
main()
{
        printf("\033[2J\033[H");
}
.
w /usr/source/s1/clear.c
48
!cc /usr/source/s1/clear.c
!
!cp a.out /bin/clear
!
!rm a.out
q

Und hier nur die Eingaben ohne die Ausgaben von ed:

ed
a
main()
{
        printf("\033[2J\033[H");
}
.
w /usr/source/s1/clear.c
!cc /usr/source/s1/clear.c
!cp a.out /bin/clear
!rm a.out
q

Das Programm löscht den Bildschirminhalt. Du kannst es mit clear aufrufen.

Wenn du mehr über ed lernen möchtest, kannst du unter anderem die man-Page oder das Tutorial von Brian Kernighan lesen.

Spiele

UNIX V5 kommt auch mit einer kleinen Anzahl von Computerspielen. Diese findest du in /usr/games.

ttt : Ein rudimentäres Tic-Tac-Toe

wump : Ein Text-Adventure Spiel

Viel Spass beim Ausprobieren

Wenn du wissen möchtest, was es sonst noch für Programme gibt, kannst du mit ls /bin nachsehen, welche Programme auf dem System verfügbar sind. Ausserdem findest du eine Liste mit den Programmen und einer Beschreibung ihrer Funktion im UNIX PROGRAMMER'S MANUAL.

Ich wünsche dir viel Spass beim Ausprobieren und Entdecken.

Quellen:
Bild: https://www.bell-labs.com/usr/dmr/www/picture.html


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

7. April 2024

Wer noch X11 nutzt, braucht nicht unbedingt weiterlesen, da es bei diesem Artikel um ein Tool geht, dass nur unter Wayland nutzbar ist.

Vor ein paar Monaten bin ich wegen OSC52 von Terminator auf Alacritty umgestiegen. Danach wurde das Update auf KDE Plasma 6 anboten, welches bei mir dazu geführt hat, meine Rechner mit grafischer Oberfläche komplett auf Wayland umzustellen.

Aus einer Laune heraus habe ich dann auch den Terminal Emulator foot installiert. Dieser ist, wie bereits eingangs angemerkt, nur unter Wayland nutzbar. Laut dem Entwickler, der ausgehend von dem Repository, scheinbar eine ziemlich nette Person ist, ist foot schnell, leichtgewichtig und bietet aber trotzdem einige Funktionen. Wie eben OSC52 (ja mir sind die möglichen Risiken bekannt).

Also leichtgewichtig ist foot auf jeden Fall. Der Terminal Emulator an sich benötigt gerade mal 670.3 KB an Speicherplatz. Alacritty benötigt mindestens 8.5 MB. Gut, in der heutigen Zeit ist das im Grunde recht egal. Aber da ich weiterhin Zellij und dessen Funktionen nutze, kann ein Terminal Emulator meinetwegen gerne wenig Speicherplatz und Funktionen bieten. Von OSC52 abgesehen.

Ich nutze foot nun schon einige Zeit und kann nichts Negatives berichten. Ist foot nun besser als beispielsweise Alacritty? Nein. Dieses “X ist besser als Y” nervt mich sowieso. Jeder sollte die Werkzeuge nutzen, die ihm am meisten zusagen. Aber meiner Meinung nach sollte man auch ab und zu mal über den eigenen Tellerrand schauen und andere Tools testen. Wie eben foot. Oder Helix.

Vor ein paar Tagen wurde übrigens die Version 1.17.0 von foot veröffentlicht.

Bei der Vollverschlüsselung fragen andere Betriebssysteme als Linux die Anwender automatisch, ob ein Wiederherstellungsschlüssel in der Cloud (schlechte Idee!) oder als Ausdruck generiert werden soll. Bei Linux muss der Anwender das selbst übernehmen. Systemd-cryptenroll unterstützt die Erstellung eines Reocvery Keys.

Recovery Keys sind eigentlich nur besonders starke Passwörter, um im Notfall den Passwortschutz zu umgehen. Man kann darauf verzichten, wenn man der Meinung ist, dass niemand außer einem selbst an die Geräte kommen soll. Das ist aber oft nicht der Fall, sondern die meisten Menschen machen sich zu wenig Gedanken darüber, was passiert, wenn sie selbst nach einem schweren Unfall ihre Geräte nicht mehr entsperren können oder im Todesfall Angehörige an Daten kommen möchten. Früher war alles analog in Form von Ausdrucken vorhanden, aber wer im digitalen Zeitalter schon einmal einen Todesfall in der Familie hatte, weiß, dass gängige Verschlüsselungslösungen eine von niemandem gewollte Hürde darstellen. Wiederherstellungsschlüssel an einem sicheren Ort wie einem Safe oder Bankschließfach können für Angehörige den Zugang zu wichtigen Dokumenten oder Erinnerungsstücken wie Fotos erleichtern.

Für LUKS-Volumes kann man dazu einfach ein besonders starkes alphanumerisches Kennwort erstellen. Das hatte ich hier schon mal beschrieben. Die systemd-Entwickler lösen zum Glück diese alten unhandlichen Tools ab und denken an solche Schritte. Ich bearbeite meine LUKS-Schlüssel deshalb schon seit längerem primär mit systemd-cryptenroll und nicht dem alten unhandlichen cryptsetup. Mit folgendem Befehl lässt sich ein zufällig generierter sicherer Schlüssel erstellen:

# systemd-cryptenroll /dev/nvme0n1p3 --recovery-key ##Laufwerk anpassen

Anschließend wird in einem freien Key-Slot ein Recovery Key mit 71 Zeichen erstellt. Dieser wird angezeigt und muss natürlich kopiert und gespeichert werden. Alternativ wird ein QR-Code angezeigt, mit dem der Recovery Key eingescannt werden kann.

Nichts, was nicht bisher mit anderen Tools auch erreicht werden konnte, aber eine sinnvolle Erleichterung.

Der Artikel Recovery Key mit systemd-cryptenroll erzeugen erschien zuerst auf Curius

Mozilla arbeitet aktuell an zwei neuen und von Nutzern häufig gewünschten Funktionen zur Verwaltung von Tabs in Firefox: Tab-Gruppen sowie vertikale Tabs. Auch mit KI-Funktionen in Zusammenhang mit Tabs experimentiert Mozilla.

Vertikale Tabs in Firefox

Unter vertikalen Tabs in einem Browser versteht man, die Tabs seitlich untereinander anzuzeigen statt in einer Leiste am oberen Fensterrand. Vorteile sind zum einen eine bessere Nutzung des vorhandenen Platzes sowie, dass mehr Tabs auf einmal angezeigt werden können.

In den letzten Wochen hat Mozilla in einem separaten Projektzweig mit einer experimentellen Implementierung vertikaler Tabs in Firefox experimentiert. Was dort zu sehen ist, ist eine Leiste am linken Fensterrand, welche entweder eingeklappt oder ausgeklappt genutzt werden kann und darin die geöffneten Tabs anzeigt. Nach Installation von Mozillas Erweiterung Side View lassen sich Tabs neben der aktuell geöffneten Website zusätzlich in einer Sidebar anzeigen. Ganz unten gibt es Verknüpfungen zum Öffnen der Sidebars für Chronik, Lesezeichen, Downloads sowie Tabs von anderen Geräten.

Vertikale Tabs in Firefox

Vertikale Tabs in Firefox

KI-Funktionen für Tabs in Firefox

Eine Schaltfläche in der Seitenleiste für die vertikalen Tabs zeigt eine ganze Reihe von KI-Funktionen (Künstliche Intelligenz). Dabei geht es unter anderem um Funktionen zur Zusammenfassung von Seiten, um verwandte geöffnete Tabs zu finden, verwandte Suchanfragen vorzuschlagen oder erwähnte Menschen, Orte und Themen aufzulisten – jeweils in lokaler Ausführung und ohne diesen Zusatz.

Vertikale Tabs in Firefox

Nicht alle Funktionen werden übernommen

Wie der zuständige Produktmanager auf Reddit klargestellt hat, haben nicht alle Ideen, die in diesem Prototyp zu sehen sind, diesen „überlebt“. Welche das sind, wurde nicht näher erläutert. Ein Teil dieser Funktionen soll es aber in Firefox schaffen.

Tab-Gruppen in Firefox

Mittels Tab-Gruppen lassen sich geöffnete Tabs organisieren. Davon profitieren vor allem Nutzer vieler Tabs. Firefox war vor vielen Jahren der erste Browser, der Tab-Gruppen implementiert hatte. Aufgrund einer schlechten Implementierungsqualität und damals nur weniger Nutzer wurde die Funktion mit Firefox 45 schließlich entfernt. Mittlerweile sind Tab-Gruppen ein beliebtes Feature in anderen Browsern und auch Firefox soll wieder Tab-Gruppen erhalten.

Wie Mozillas neue CEO, Laura Chambers, bereits im März im offiziellen Community-Forum von Mozilla kommuniziert hat, arbeitet Mozilla auch einer Implementierung von Tab-Gruppen für Firefox. Auch darauf wurde in der bereits verlinkten Reddit-Diskussion noch einmal eingegangen und gesagt, dass diese Arbeit erst einmal für die traditionelle Tableiste umgesetzt wird und parallel zur Arbeit an den vertikalen Tabs stattfindet.

Weitere Details hierzu oder gar erste Spuren einer Implementierung sind noch keine bekannt. Laura Chambers sprach sich in der Diskussion aber positiv über den Vorschlag von KI-Funktion zur optionalen automatischen Gruppierung sowie Benennung aus.

Häufig gewünschte Firefox-Funktionen

Sowohl bei den Tab-Gruppen als auch bei den vertikalen Tabs handelt es sich um Funktionen, welche sich häufig von Firefox-Nutzern gewünscht worden sind. Tatsächlich befinden die Tab-Gruppen sogar auf Platz 1 in der Liste der Nutzerwünsche auf Mozillas Ideen-Plattform Mozilla Connect, die vertikalen Tabs sind auf Platz 3 aller Ideen.

Der Beitrag Firefox soll Tab-Gruppen und vertikale Tabs bekommen erschien zuerst auf soeren-hentzschel.at.

6. April 2024

Mozilla Hubs ist eine Plattform, um virtuelle Treffpunkte zu erstellen. Bevor Mozilla seine Server mit dem 31. Mai abschalten wird, hat Mozilla nun ein Backup-Tool veröffentlicht, um die Daten zu sichern.

Was ist Mozilla Hubs?

Mit dem Start von Mozilla Hubs im April 2018 ging eine Online-Plattform an den Start, welche es Nutzern ermöglicht, sich in sogenannten Räumen virtuell zu treffen. Das Besondere an Hubs: es spielt sich komplett im Web ab – keine geschlossene Plattform, keine Installation einer Anwendung, keine Abhängigkeit von einem bestimmten Gerät. Einfach eine URL teilen und miteinander treffen. Hubs funktioniert in jedem Browser, am Smartphone – und auch mit der VR-Brille, wo Hubs als virtuelle Plattform sein volles Potenzial entfaltet. Mozilla Hubs ist quasi eine Miniatur-Ausgabe eines Web-basierten „Metaverse“, aber Open Source und mit Fokus auf Datenschutz.

Mitte Februar hatte Mozilla angekündigt, im Rahmen einer Umstrukturierung die Weiterentwicklung von Mozilla Hubs einzustellen. Am 31. Mai 2024 sollen schließlich die Server abgeschaltet werden.

Mozilla Hubs Backup-Tool

Mozilla hat nun eine erste Version des angekündigten Backup-Tools veröffentlicht. Dieses steht für Windows, macOS sowie Linux zur Verfügung und kann sowohl für Mozillas Demo-Server unter hubs.mozilla.org verwendet werden als auch für Managed Hubs-Abonnenten sowie Nutzer der Hubs Cloud oder der selbst gehosteten Hubs Community Edition. Ein offizieller Blog-Artikel liefert viele Details zu den Daten, welche in der aktuellen Version des Backup-Tools heruntergeladen werden können.

Der Beitrag Mozilla Hubs Backup-Tool veröffentlicht erschien zuerst auf soeren-hentzschel.at.

4. April 2024

Mozilla hat Version 2.21 seiner VPN-Clients für das Mozilla VPN veröffentlicht. Dieser Artikel beschreibt die Neuerungen vom Mozilla VPN 2.21.

Mit dem Mozilla VPN bietet Mozilla in Zusammenarbeit mit Mullvad sein eigenes Virtual Private Network an und verspricht neben einer sehr einfachen Bedienung eine durch das moderne und schlanke WireGuard-Protokoll schnelle Performance, Sicherheit sowie Privatsphäre: Weder werden Nutzungsdaten geloggt noch mit einer externen Analysefirma zusammengearbeitet, um Nutzungsprofile zu erstellen.

Jetzt Mozilla VPN nutzen

Die Neuerungen vom Mozilla VPN 2.21

Mit dem Update auf das Mozilla VPN 2.21 hat Mozilla ein neues Onboarding für neue Nutzer direkt nach der Anmeldung eingeführt, über welches sich grundlegende Einstellungen konfigurieren lassen.

Mozilla VPN 2.21

Der Bereich „Tipps und Tricks“ in den Einstellungen wurde entfernt. Dafür gibt es in den einzelnen Bereichen jetzt jeweils ein Hilfe-Symbol, über welches Erklärungen eingeblendet werden können.

Mozilla VPN 2.21

Ersatzlos entfernt wurde der Geschwindigkeitstest innerhalb der App. Die Checkboxen in den Einstellungen wurden durch sogenannte „Toggle“-Buttons ersetzt. Ansonsten bringt das Update wie immer auch Fehlerbehebungen sowie weitere Verbesserungen unter der Haube.

Der Beitrag Mozilla VPN 2.21 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

2. April 2024

Mozilla hat Firefox 124.0.2 veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

Download Mozilla Firefox 124.0.2

Mit dem Update auf Firefox 124.0.2 behebt Mozilla das Problem, dass Lesezeichen-Backups nicht wiederhergestellt werden konnten, wenn das Backup mehr als 32.766 Lesezeichen beinhaltet.

Ein möglicher Absturz des GPU-Prozesses wurde behoben, der verursachte, dass Firefox-Fenster leer erschienen, während Videos auf manchen Seiten wie zum Beispiel Netflix abgespielt wurden.

Eine Kompatibilitäts-Anpassung wurde vorgenommen, damit die geänderte AppArmor-Konfiguration im kommenden Ubuntu-Update auf Version 24.04 nicht verursacht, dass keine Websites mehr geladen werden können, wenn Firefox über Mozillas .tar-Archiv installiert worden ist. Außerdem wurde ein Absturz behoben, der aufgetreten ist, wenn Linux auf einem System mit AArch64-CPU genutzt wird.

Darüber hinaus wurden zwei weitere mögliche Absturzursachen behoben, es wurden Verbesserungen für die Yelp-Integration in den USA vorgenommen und es wurde eine fehlerhafte Entwickler-Warnung in der Konsole behoben.

Der Beitrag Mozilla veröffentlicht Firefox 124.0.2 erschien zuerst auf soeren-hentzschel.at.

31. März 2024

Mozilla hat über seinen Risikokapitalfonds Mozilla Ventures in Holistic AI investiert.

Mozilla Ventures ist ein Ende 2022 gestarteter und mit anfänglich 35 Millionen USD ausgestatteter Risikokapitalfonds, über welchen Mozilla in Startups investiert, welche das Internet und die Tech-Industrie in eine bessere Richtung bringen. Nach der Investition in das deutsche KI-Startup Flower Labs hat Mozilla Ventures nun seine zweite Investition dieses Jahres bekannt gegeben.

Mit Holistic AI hat Mozilla Ventures in den nach Angaben von Mozilla weltweit führenden Anbieter von verantwortungsvoller KI investiert, welcher Fortune-500-Konzerne, kleine und mittlere Unternehmen, Regierungen und Aufsichtsbehörden unterstützt. Demnach bietet Holistic AI End-to-End-Lösungen für KI-Governance an, einschließlich KI-Vertrauen, Risiko, Sicherheit und Compliance, die es Unternehmen ermöglichen, Künstliche Intelligenz in großem Umfang einzuführen.

Alle Investitionen und Akquisitionen von Mozilla

Der Beitrag Mozilla Ventures investiert in Holistic AI erschien zuerst auf soeren-hentzschel.at.

Mein Heimserver ist seit Jahren über eine dynamische-DNS-Adresse von spDYN per SSH erreichbar. Da ich einer der letzten glücklichen kleinen Lichter bin, die noch eine echte IP4-Adresse erhalten (und keine genattete), kann ich mich so immer von überall auf meine Kiste einloggen.

Bislang habe ich meine aktuellen IP-Adressen mittels Script geupdatet. Im Zuge notwendiger Aktualisierungen bin ich über ddclient gestolpert und nutze es seit dem ausschließlich - mein Script ist in Rente gegangen.

ddclient

ddclient ist ein Perl-Client, der dynamische DNS-Einträge für Konten vieler dynamischer DNS-Dienste aktualisieren kann. Auf der Github-Seite steht eine Liste der kompatiblen Dienste bereit, viele weitere Dienste funktionieren aber ebenfalls, da sie die selben Protokolle verwenden.

Ich nutze ddclient mit folgenden freien DynDNS-Anbietern:

Da ich einen echten Dual-Stack habe, sollen IPv4 und IPv6 gleichzeitig aktualisiert werden.

Installation

ddclient kann installiert werden mittels:

# Ubuntu
sudo apt-get install ddclient

# Arch, btw
pacman -S ddclient

Konfiguration

systemd

Ich bereite mir ein Systemd-Skellet vor, so dass ich alle .conf-Dateien im Verzeichnis /etc/ddclient/ steuern kann.

sudo nano /etc/systemd/system/ddclient@.service

[Unit]
Documentation=man:ddclient(8)
Description=Update dynamic domain name service entries
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
Environment=daemon_interval=10m
EnvironmentFile=-/etc/default/ddclient
ExecStart=/sbin/ddclient -syslog -file /etc/ddclient/%I.conf -cache /var/cache/ddclient/%I.cache
Restart=on-failure

[Install]
WantedBy=multi-user.target

Jetzt müssen die Services neu geladen werden,…

sudo systemctl daemon-reload

…und schon kann es losgehen. Alle FOO.conf-Dateien im Verzeichnis /etc/ddclient lassen sich nun steuern mittels systemctl start ddclient@FOO (ohne .conf).

Dafür müssen wir aber diese Config-Dateien erstellen, und wir sollten wissen, wie wir unsere “echten” globalen IPv4 und IPv6-Adressen abrufen können.

IP-Adressen abrufen

ddclient kann die Adressen entweder über die Interfaceschnittstelle oder über das Web beziehen. Das führt bei mir allerdings zu Probleme:

  • über die Interface-Schnittstelle (z.B. eth0) finde ich nur meine lokal LAN-IP (weil ich hinter meiner FritzBox sitze)
  • über die web-Methode finde ich nur eine IPv6-Adresse, nicht aber meine IPv4.

Daher muss ich sicherstellen, dass für IPv4 wirklich die gültige IPv4 gefunden wird, und für IPv6 ebenso. Ich kann diese externen IP-Adressen mittels curl abrufen:

# externe IPv4
curl -s4 http://ifconfig.me/ip

# externe IPv6
curl -s6 http://ifconfig.me/ip

Dies mache ich mir in ddclient zu nutze, denn neben “Interface” und “Web” kann über den Parameter cmd=<PROGRAM> ein custom Script angegeben werden, welches die IP-Adressen ermittelt. Ich erzeuge mir diese Scripte jeweils für IPv4 und IPv6 direkt im Verzeichnis /etc/ddclient.

sudo nano /etc/ddclient/myipv4address.sh

curl -s4 http://ifconfig.me/ip

sudo nano /etc/ddclient/myipv6address.sh

curl -s6 http://ifconfig.me/ip

Die Scriptdateien müssen noch ausführbar gemacht werden: sudo chmod +x /etc/ddclient/myipv6address.sh /etc/ddclient/myipv4address.sh

ddclient für meinen Anbieter konfigurieren

Für jeden DynDNS-Dienst lege ich mir eine eigene Config-Datei an. So sieht z.B. meine Client-Config für DuckDNS aus:

sudo nano /etc/ddclient/duckdns.conf

daemon=300                       # check every 300 seconds
syslog=yes                       # log update msgs to syslog
pid=/var/run/ddclientduckdns.pid # record PID in file.
ssl=yes                          # use ssl-support.
debug=yes                        # write to journal log
verbose=yes                      # write to journal log
usev4=cmdv4, cmdv4=/etc/ddclient/myipv4address.sh # IPv4
usev6=cmdv6, cmdv6=/etc/ddclient/myipv6address.sh # IPv6

#### DUCKDNS.org ########
#------------------------
protocol=duckdns,    # Komma muss bleiben
password=9a5dc6a5-FUCK-AFD-bbaf-foobar # ersetze dein Token
YOURNAME.duckdns.org # deinen Namen ersetzen

Für Dynv6.com sieht diese so aus:

sudo nano /etc/ddclient/dynv6.conf

daemon=300                     # check every 300 seconds
syslog=yes                     # log update msgs to syslog
pid=/var/run/ddclientdynv6.pid # record PID in file.
ssl=yes                        # use ssl-support.
debug=yes                      # write to journal log
verbose=yes                    # write to journal log
usev4=cmdv4, cmdv4=/etc/ddclient/myipv4address.sh # für IPv4
usev6=cmdv6, cmdv6=/etc/ddclient/myipv6address.sh # für IPv6

#### DYNv6.com ##########
#------------------------
protocol=dyndns2
server=dynv6.com
password='sKx3hF_stPT_fuck_AfD_1rPmskxiTga' 
login=none
YOURNAME.dynv6.net

ddclient starten

Zunächst können die Einstellungen getestet werden, ohne Daten zum Server zu senden:

ddclient -daemon=0 -debug -verbose -noquiet -file /etc/ddclient/dynv6.conf

Sieht alles gut aus, können wir die Dienste wie folgt aktivieren:

# aktivieren und starten
sudo systemctl enable --now ddclient@duckdns
sudo systemctl enable --now ddclient@dynv6

# Logs ansehen
journalctl -u ddclient@duckdns -f
journalctl -u ddclient@dynv6 -f

Tolle Sache, funktioniert prima!

Weblinks


Diskussion per Matrix unter https://matrix.to/#/#produnis-blog:tchncs.de

 

30. März 2024

Als diese Meldung heute morgen über die Kanäle ging, musste ich mehrmals nachschauen, ob wir nicht den 1. April haben. Durch eine mutmaßlich bösartige Übernahme der Entwicklung wurde xz-utils gezielt kompromittiert. Betroffen sind die aktuellen Versionen 5.6.0 und 5.6.1 und wichtige Distributionen wie Debian, Fedora oder openSUSE.

Das Paket XZ-utils (früher als LZMA-Utils bekannt) ist eines dieser zentralen Hintergrundtools der freien Softwarewelt. Wer seine Paketverwaltung nicht genau im Blick hat, bemerkt diese kleinen zentralen Bausteine, auf denen die Distributionen fußen gar nicht mehr. Es handelt sich um einen Datenkompressionsalgorithmus (vergleichbar zu gzip). Diese Werkzeuge sind wichtig, aber chronisch wenig beachtet und damit ein ideales Einfallstor.

Die gute Nachricht vorweg: Da das Problem sehr schnell bekannt wurde, sind nur sehr aktuelle Distributionen betroffen, d.h. primär Rolling-Release-Distributionen und aktuelle Entwicklungszweige wie Fedora 40. In Ubuntu 24.04 konnte das Paket nicht erfolgreich platziert werden. Die gängigen Enterprise-Distributionen sind aufgrund der deutlich längeren Entwicklungszeit nicht betroffen. Hier erweisen sich stabile Distributionen mit langen Supportzeiträumen mal wieder als überlegen, weil neue Versionsstände dort erst nach mehreren Jahren Einzug halten. Das schützt nicht hundertprozentig vor solchen Fehlern, lässt aber mehr Zeit für die Entdeckung dieser Probleme. So wie das aktuell der Fall ist. Der Code ist gegenwärtig nicht öffentlich einsehbar, da das Quellcode-Repo auf GitHub nach Bekanntwerden des Problems durch Microsoft gesperrt wurde.

Die Schadsoftware öffnet eine Backdoor und lässt potenziell einen unbefugten Fernzugriff via SSH zu. Die Lücke ist kein Versehen, sondern wurde bewusst eingebaut und verschleiert. Der verantwortliche Entwickler hat offensiv versucht, die schadhafte Version in zentrale Distributionen zu bringen. Das zeigt der entsprechende Launchpad-Eintrag für Ubuntu. Um die Lücke auszunutzen ist eine Kette an Voraussetzen notwendig, wie z.B. eine x86-64 Architektur, die Verwendung von glibc und das Paketformat DEB oder RPM. Die Funktionsweise hat Viktor Garske in seinem Blog sehr anschaulich erklärt. Alles nicht besonders exotisch. Der aktuellen Informationsstand kann bei GitHub nachgelesen werden. Einige Fragen sind noch offen und müssen geklärt werden. Es ist gut möglich, dass noch andere Angriffsvektoren bekannt werden. Klar ist aber schon, dass das Bedrohungspotenzial immens ist.

Das Ziel der Angreifer war es vermutlich, unbemerkt einen zentralen Baustein der Linux-Distributionen anzugreifen. Die Fokussierung auf RPM- und DEB-basierte Distributionen legt den Schluss nahe, dass verbreitete Server-Distributionen das Ziel waren. Das ist keineswegs abwegig, denn wäre die Lücke nicht durch Performanceprobleme bei aktuellen Entwicklungsversionen aufgefallen, dann wäre sie mittelfristig in die Enterprise-Systeme eingeflossen. In wenigen Jahren wären diese Systeme dann angreifbar gewesen.

Der Angriff trifft die Open-Source-Entwicklung an einigen ihrer wunden Punkte. Viele Projekte werden von kleinen Teams oder sogar nur durch einzelne Entwickler gepflegt. Das liegt an der chronischen Unterfinanzierung der zentralen Projekte, an der mangelnden Attraktivität, sich in diesen Hintergrundprojekten zu engagieren und manchmal auch an den rauhbeinigen Maintainern, die nicht gerade zur Mitarbeit einladen. Hier scheint sich ein neuer Akteur über Jahre eine Reputation aufgebaut zu haben, den bis dahin zuständigen Maintainer mittels Druck an die Seite geschoben und erst dann den komplexen Schadcode eingebaut zu haben. Eine Überprüfung durch mehrere Augen scheint nicht stattgefunden zu haben. Der frühere Hauptentwickler ist derzeit nicht erreichbar, was aber wohl schon öfter vorgekommen ist. Ein weiteres Problem ist der Unterschied zwischen dem Code auf GitHub und den Release-Tarballs. Das passiert häufiger als man denkt. Der offen sichtbare Code hat dann keine Schwachstelle, der Code im Tarball aber schon. Reproduzierbarkeit ist deshalb seit vielen Jahren ein wichtiges Thema in der Linux-Gemeinschaft.

Das Problem darf nicht verharmlost werden und muss weiter aufgearbeitet werden. Die große Katastrophe blieb aus, weil der Schadcode nicht in die Enterprise-Versionen gelangte und schnell erkannt wurde. Der Vorfall legt aber einmal mehr den Finger in die offenen Wunden der Open-Source-Entwicklung. Prinzipiell lassen sich mit einem solchen Vorgehen viele Projekte mit recht hoher Erfolgswahrscheinlichkeit infiltrieren. Kleine Teams, wenig Kontrolle, unterschiedliche Code-Stände im Repostitorium und Release – alles bekannte Probleme. Durch seine große Bedeutung für die Infrastruktur ist Linux ein Hochwertziel, das solchen Aufwand für die Angreifer vermutlich rechtfertigt.

Der Artikel Kein Aprilscherz: XZ-utils gezielt kompromittiert erschien zuerst auf Curius

Die weitverbreiteten Datenkompressionswerkzeuge XZ Utils (früher LZMA Utils) enthalten in Version 5.6 eine Backdoor. Ziel der Backdoor ist nach aktuellem Kenntnisstand eine Kompromittierung von SSH-Servern. Dies wurde gestern auf der oss-security-Mailingliste von Andres Freund nebst einer umfangreichen Analyse des Sachverhalts bekannt gegeben. Durch den Einsatz der Werkzeuge in Linux-Distributionen haben wir hier einen Fall einer Supply-Chain-Attacke. Red Hat hat dem Vorfall die CVE-Nummer CVE-2024-3094 vergeben.

Vorab eine Liste mit weiteren Links:

Wirkungsweise

Dabei wird die Backdoor nur unter bestimmten Bedingungen ausgeführt, wie das FAQ beschreibt. Im Wesentlichen muss argv[0] auf /usr/sbin/sshd gesetzt sein und eine Reihe an Umgebungsvariablen entweder gesetzt oder nicht gesetzt sein. Normalerweise hängt OpenSSH nicht von liblzma ab. Einige Distributoren patchen OpenSSH allerdings so, dass systemd-Notifcations funktioniert, welches wiederum auf liblzma setzt und die Backdoor möglich macht. Technisch werden einige Checks durchgeführt und anschließend mittels IFUNC Bibliotheksaufrufe umgeleitet. Dies betrifft nach aktuellem Stand auch Aufrufe während der Kryptoroutinen bei der SSH-Authentifizierung.

Betroffenheit

Der Wirkungsweise der Payload ist noch nicht abschließend geklärt. Besonders auch aus diesem Grund wird ein unverzügliches Update angeraten. Im Folgenden einige unverbindliche Faktoren, die eine Verwundbarkeit wahrscheinlich machen. Auf diese Weise kann man priorisieren, welche Systeme zuerst aktualisiert werden sollten.

Versionierte Distros wie z. B. Debian oder RHEL sind nach aktuellem Kenntnisstand mit ihren stabilen Versionen nicht direkt betroffen, da die Versionen 5.6 noch keinen Einzug in das System gefunden haben. Die Testing-Versionen dieser Distros wie z. B. Debian Sid wurden allerdings aktualisiert und sind betroffen.

Rolling-Release-Distros sind naturgemäß auch betroffen, wenn sie schon Version 5.6 in ihre Pakete aufgenommen haben. Dies betrifft zum Beispiel Arch Linux oder Gentoo. Da allerdings einige Distributionen wie Arch Linux OpenSSH nicht gegen liblzma linken, wird die Bibliothek nicht direkt in die Ausführung der Komponenten eingebunden.

Nach aktuellem Stand wird eine Verwundbarkeit besonders kritisch, wenn auf dem betroffenen Host ein öffentlich erreichbarer SSH-Server läuft, da die oben beschriebenen Faktoren ein Laden der Payload auslösen können.

Wie kam es?

Aufgefallen ist die Backdoor nur durch Zufall durch das Debugging von Performanceproblemen, die durch die Backdoor verursacht wurden. Die Backdoor wurde obfuskiert im Rahmen von Buildskripten untergebracht, sodass aufgrund der Komplexität die Lücken noch nicht direkt aufgefallen sind.

Das Repository hinter xz kann als kompromittiert gesehen werden und ist auch auf GitHub schon gesperrt worden. Auffällig ist, dass die Backdoor in den Tarballs der Releases enthalten war, nicht jedoch im Repository-Dump selber. Auch personell gab es einige Auffälligkeiten, da es vor kurzem einen Maintainerwechsel beim Projekt gab und die Lücken vom neuen Maintainer, der seit 2 Jahren am Projekt mitarbeitet, zumindest begünstigt wurden. Die Art und Weise lässt auch auf ein koordiniertes, von langer Hand geplantes Vorgehen schließen.

Einfluss und Folgen

Das große Ganze ist ein Paradebeispiel von xkcd 2347 "Dependency". Wir sehen hier Live ein Beispiel einer Supply-Chain-Attacke. Ein kleines, scheinbar unbedeutendendes Projekt wird übernommen, nur um strategisch Commits zu platzieren, die automatisch "flussabwärts" ihren Weg in größere Distributionen finden, die allesamt auf das Projekt setzen. Alles passiert trotz Open Source. Besonders pikant: der Maintainer hat aktiv versucht, die Backdoor-begünstigenden Umgebungsfaktoren, konkret das Umbiegen von Bibliotheksaufrufen mittels ifunc, in Fuzzing-Projekten wie oss-fuzz, die aktiv nach sowas suchen, zu deaktivieren.

Software wird immer bedeutender und benötigt Vertrauen. Dabei ist jetzt schon klar, dass niemand selber solch komplexe Systeme von alleine bauen kann. Aber auch die Kontrolle der Quellen ist eine große Herausforderung. Neue Gesetzgebung wie der geplante Cyber Resilience Act in der EU versuchen in der Industrie Anreize zu schaffen, die Softwarequalität zu erhöhen.

Diese Attacke konnte einigermaßen abgewendet werden, sollte die umfassende Analyse der Payload keine belastenden Neuigkeiten hervorbringen. Eines ist aber auch klar: Die Angreifer studieren das Verhalten der Verteidiger und werden in Zukunft ihre Vorgehensweise dahingehend optimieren, nicht so einfach mehr gefunden zu werden. Es ist also möglich, Backdoors in so ein Ökosystem hineinzuschummeln. Umso besser müssen aber die Identifikations- und Abwehrmöglichkeiten werden, damit solche Angriffe wirksam verhindert werden können.

Ein wichtiger Unterschied zwischen Matomo und GoAccess ist, dass Matomo ein JavaScript-Tracking-Code erfordert, der in den Header der überwachten Website eingefügt werden muss. Dies wird dazu führen, dass Matomo-Daten durch Ad-Blocker oder ähnliche Tools blockiert werden, was die Genauigkeit der Analysen je nach Art der Webseite extrem beeinträchtigen kann. Ein Beispiel ist meine Site zockertown.de. Hier haben viele Besucher einen Informatik-, Linux Sachverstand und man kann annnehmen, dass hier nahezu Jeder einen Adblocker nutzt, oder javascript  blockt.

Im Gegensatz dazu analysiert GoAccess nur die Webserver-Logdateien direkt, ohne dass zusätzlicher Code in die Website eingefügt werden muss. Dies bedeutet, dass GoAccess nicht von Ad-Blockern oder ähnlichen Tools behindert wird und möglicherweise eine zuverlässigere Datenerfassung ermöglicht.

Ein konkretes Beispiel dazu.

Dieser Unterschied ist enorm. wenn man zwischen Matomo und GoAccess wählt. Wenn die Genauigkeit der Daten wichtig ist und man bereit ist, den zusätzlichen Aufwand für die Implementierung des JavaScript-Tracking-Codes in Kauf zu nehmen, könnte Matomo die bessere Wahl sein. Wenn man jedoch eine einfachere, unkomplizierte Lösung bevorzugt, die nicht von Ad-Blockern beeinflusst wird, könnte GoAccess für Ihre Anforderungen geeigneter sein.

Ein wichtiger Aspekt bei der Auswahl eines Analysetools sind Datenschutzbedenken.

Matomo, als selbstgehostete Lösung, ermöglicht  den Nutzer, die volle Kontrolle über die Daten zu behalten. Da Matomo auf eigenen Servern läuft, hat man die Möglichkeit, die Datenschutzrichtlinien und Sicherheitsmaßnahmen nach seienem eigenen Standards anzupassen.

Auf der anderen Seite analysiert GoAccess die Webserver-Logdateien direkt, ohne dass Daten an Dritte gesendet werden. Da keine Daten an externe Server übertragen werden, kann dies als datenschutzfreundlichere Option angesehen werden. Zusätzlich werden bei mir die Log sowieso anonymisiert, damit komme ich gar nicht in die Verlegenheit über DSGVO Konformität nachzudenken.

Wer Matomo verwendet, sollte den Besucher deutlich darauf hinweisen, dass hier ein Tracking erfolgt und auch ohne Cookies funktioniert. Wenn der Nutzer das Script aber blockiert, wird gar nichts aufgezeichnet, noch nicht einaml der Besuch sebst, es ist, wie in den Screenshots deutlich zu sehen, als wäre der Besucher gar nicht da gewesen. Das kann ja auch keine Lösung sein.

Aus meiner Sicht geht es gar nicht schlimmer. Matomo kann zwar auch das Webserver Logfile auswerten, aber das habe ich jetzt nicht mehr ausprobiert.

Die Datenschutzrichtlinien und -funktionen beider Tools sollte man sorgfältig zu prüfen, um sicherzustellen, das sie den geltenden Datenschutzbestimmungen entsprechen.

Matomo mag seine Berechtigung bei kommerziellen Websites haben, die Möglichkeiten sind beeindruckend, gegen die tracking Aspekte gibt es auch noch die Bilder Tracking Methode u.a.,

aber für mich kommt es gar nicht in Frage.

Ausserdem fiel mir auf, dass der Zugriff mit javascipt tracking erheblich länger dauerte.

Im hohen einstelligen Sekundenbereich

Also GoAccess!

29. März 2024

Mit Common Voice stellt Mozilla den weltweit größten öffentlichen Datensatz menschlicher Stimmen bereit – kostenlos und für jeden nutzbar. Mozilla hat Version 17.0 seines Datensatzes veröffentlicht.

Der Markt für Spracherkennung wird von den ganz großen Namen kommerzieller Anbieter dominiert: Amazon, Apple, Google, Microsoft. Darum hat Mozilla im Jahr 2017 das Projekt Common Voice gestartet. Mit Common Voice bietet Mozilla eine kostenlose Alternative an, zu der jeder beitragen kann und die jedem zur Verfügung steht. Damit möchte Mozilla Innovation und Wettbewerb in der Sprachtechnologie auf Basis von Maschinenlernen fördern.

Mit dem vor kurzem veröffentlichten Common Voice Corpus 17.0 wächst der deutschsprachige Datensatz von 1.403 auf 1.424 Stunden an. Wer bereits den Common Voice Corpus 16.1 besitzt, kann wie immer auch nur ein sogenanntes Delta Segment mit den Unterschieden zur Vorversion herunterladen. Für Deutsch würde das den Download von 33,4 GB auf 625 MB reduzieren.

Insgesamt deckt Mozilla Common Voice mit der neuen Version jetzt 124 Sprachen mit insgesamt 31.176 aufgenommenen Stunden ab, was Mozilla Common Voice zum vielfältigsten mehrsprachigen Sprachkorpus der Welt macht.

Zum Download der Mozilla Common Voice Datensätze

Der Beitrag Mozilla veröffentlicht Common Voice Corpus 17.0 erschien zuerst auf soeren-hentzschel.at.

27. März 2024

Erst im Februar hatte Mozilla in Zusammenarbeit mit Onerep Mozilla Monitor Plus in den USA gestartet. Diese Zusammenarbeit kommt nun zu einem unerwarteten Ende.

Das ist Mozilla Monitor (Plus)

Mozillas kostenfreier Dienst Mozilla Monitor zeigt nach Eingabe einer E-Mail-Adresse an, ob diese Teil eines bekannten Datendiebstahls in der Vergangenheit war. Neben dem Zeitpunkt des Diebstahls und dem Zeitpunkt des Bekanntwerdens wird auch angegeben, welche Daten gestohlen worden sind, zum Beispiel E-Mail-Adressen, Benutzernamen oder Passwörter. Darüber hinaus nennt Mozilla Monitor allgemeine Tipps, welche man in Betracht ziehen sollte, wenn man von einem Datendiebstahl betroffen ist.

Anfang Februar dieses Jahres ist Mozilla Monitor Plus gestartet, bisher nur in den USA. Damit können persönliche Informationen von über 190 Personen-Suchmaschinen entfernt werden – einer laut Mozilla 240 Milliarden Dollar schweren Industrie, welche mit der Bildung von Profilen und dem Verkauf dieser Daten Profit generiert. Hierfür arbeitet Mozilla mit dem Dienstleister Onerep zusammen.

Ende der Zusammenarbeit mit Onerep

Nach einem Bericht von Brian Krebs, Journalist und Betreiber des Sicherheits-Blogs Krebs on Security, hat der Gründer und CEO von Onerep, Dimitiri Shelest, seit 2010 selbst zahlreiche solcher Personen-Suchmaschinen ins Leben gerufen. In diese ist er größtenteils nicht mehr involviert, ist mit Nuwber allerdings nach wie vor an einer beteiligt.

Auch wenn für Nutzer von Mozilla Monitor Plus durch die Verbindung keine direkte Problematik entstand, hat Mozilla das Thema damit kommentiert, dass die finanziellen Interessen und Aktivitäten des CEOs von Onerep nicht den Werten von Mozilla entsprechen. Mozilla Monitor Plus wird es weiterhin geben, aber Mozilla soll an einem „Übergangsplan“ arbeiten, welcher „den Kunden eine nahtlose Erfahrung bietet und ihre Interessen weiterhin an die erste Stelle setzt“. Weitere Details wurden keine genannt. Denkbar wäre, dass Mozilla die gleiche Dienstleistung in Zukunft über einen anderen Anbieter abwickeln wird.

Der Beitrag Mozilla Monitor Plus: Mozilla beendet Zusammenarbeit mit Onerep erschien zuerst auf soeren-hentzschel.at.

26. März 2024

Unter Linux kommt es immer öfter vor, dass bestimmte Spiele, wie zum Beispiel CS:GO 2, Star Citizen oder The Finals abstürzen. Die Fehlermeldung könnte wie folgt aussehen.

1err:virtual:try_map_free_area mmap() error cannot allocate memory, range 0xf4f60000-0x8ad0000, unix_prot 0x3

Meist liegt es daran, dass vm.max_map_count einen zu niedrigen Wert hat.

Der Standardwert, welches fest im Kernel eingetragen ist, ist derzeit 65530. Was heutzutage für viele Spiele, aber auch für andere Anwendungen wie Elasticsearch oft zu wenig ist.

Valve hat auf dem Steam Deck den Wert bereits auf 2147483642 erhöht. Einige Distributionen wie Fedora oder Ubuntu haben den Wert ebenfalls erhöht. Allerdings hat man sich für einen deutlich geringeren Wert von 1048576 entschieden. Dieser sollte aber aktuell ausreichend sein.

Arch Linux ist aktuell noch eine der Distributionen die den Standardwert nutzen, sodass es zu besagten Abstürzen kommen kann. Die Entwickler von Arch besprechen aber aktuell eine Erhöhung. Eine manuelle Anpassung (nicht nur unter Arch Linux) ist aber auch kein Problem.

Hierfür erstellt man die Datei /etc/sysctl.d/10-map-count.conf. Wie man die Datei nennt, ist im Grunde egal, solange die mit 10 beginnt und mit .conf endet. Die 10 ist wichtig, da umso niedriger die Zahl ist umso früher werden die Konfigurationsdateien vom Betriebssystem berücksichtigt.

In dieser Datei trägt man nun zum Beispiel vm.max_map_count=1048576 ein und speichert die Datei. Nach einem Neustart oder nach dem Ausführen von sysctl -p sollte der neue Wert gültig sein. Prüfen kann man dies mit dem Befehl sysctl vm.max_map_count. Betroffene Spiele bzw. Programme sollten sich nun normal starten und nutzen lassen.

Aufgrund der aktuellen Diskussion wegen vm.max_map_count unter Arch Linux wurde den Kernel-Entwicklern vorgeschlagen den Wert offiziell zu erhöhen (https://lore.kernel.org/lkml/566168554.272637693.1710968734203.JavaMail.root@zimbra54-e10.priv.proxad.net/T/#u). Ob diese zustimmen steht derzeit noch nicht fest.