Seite 3 von 5 « Erste 12345 Letzte »
Ergebnis 41 bis 60 von 97

[Ubuntu & GNU/Linux #32] - SystemD ist ein tolles Betriebssystem, es fehlt nur ein brauchbares Init

  1. #41 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.009
    Dann empfehle ich, mit temporären Dateien zu arbeiten. Zuerst zerlegst du die Quelle in die einzelnen YAML-Blöcke (alles zwischen zwei „---” in eine neue Datei). Dann ist es ein einfacher Test mit grep, ob „foo: bar” enthalten ist. Wenn ja, wird die Datei (aka der Block) ausgegeben.

    In etwa so:

    Code:
    #!/bin/sh
    #
    
    TMP=/tmp/x
    
    mkdir -p "$TMP"
    cd "$TMP"
    
    awk '/^---$/ {filename=NR".txt"}; {print >filename}'
    
    for f in *; do
      grep -q -e '^foo:[[:blank:]]*bar$' "$f" && {
        grep -v -e '^---$' "$f"
        echo "---"
      }
    done
    
    rm -rf "$TMP"
    Die Ausgabe erfolgt via „grep -v”, damit wir die überflüssigen Block-Trenner weg kriegen. Die werden ja durch das Skript neu gesetzt.

    Eingabe via stdin, Ausgabe via stdout.

    EDIT: Wenn die Datei nicht, wie von dir vorgegeben, mit einem Block-Trenner anfängt, kann awk einen Fehler auswerfen. Dann muss man das Skript etwas anpassen. Alternativ kann man csplit verwenden.
    foobar ist gerade online Geändert von foobar (29.09.2020 um 20:13 Uhr)

  2. #42 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Hm, da bringst du mich auf eine Idee. Das werd ich morgen mal ausprobieren. Danke.
    Lookbehind ist offline

  3. #43 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Ok, ich hab mich doch für die python-Variante entschieden, weil diese tatsächlich das YAML parst und mir das ein bisschen mehr Sicherheit vor False-Positives gibt. Mal sehen, vielleicht kann man das auf andere Weise über die Requirements auf die Systeme bekommen, statt durch das Projekt selbst. War mir dann aber doch sicherer so.

    Die andere Idee, die ich gestern hatte, dass stammt ja eigentlich alles schon aus individuellen Files die dann zusammengerendert werden, man könnte die ja auch direkt durchsuchen. Leider werden dann aber auch viele heran gezogen, die für den konkreten Fall irrelevant sind, was jede Menge False-Positives verursacht. Klar kann man dazu auch eine Logik bauen, aber ... die gibts ja eigentlich schon, rendert nur eben mehr raus als nur die gesuchten Dokumente. Also warum das Rad neu erfinden?

    Danke jedenfalls.
    Lookbehind ist offline

  4. #44 Zitieren
    Provinzheld Avatar von Taomon
    Registriert seit
    Dec 2010
    Ort
    Digiworld
    Beiträge
    248
    Wie kann ich in ubuntu 20.04 oder debian stretch die wlan verbindung mit meinen Playstation konsole teilen?
    Hintergrund ist das die PS4 konsole sieht das Signal von meinem Gast_account nicht (zu schwach), und daher kann ich mich nicht direkt verbinden.

    Code:
    alex@Guilmon:~$ nmcli device wifi list | grep -i gast
    *       7E:FF:4D:48:CD:B6  Gastzugang_oben    Infra  1     195 Mbit/s  42      ▂▄__  WPA2      
    alex@Guilmon:~$
    Keiner kann alles. Bitte gelegentliche Rechtschreibfehler übersehen. Ich habe ADHS
    Taomon ist offline

  5. #45 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Ethernet-Verbindung zwischen deinem Rechner und der Playstation aufbauen, und dann entweder an deinem Rechner das WLAN und das Ethernet-Interface in eine Bridge legen, wobei das je nach Router evtl mal nicht funktionieren kann, oder Routing aktivieren, NAT einrichten und (sofern die Playstation keine statische IP-Config ermöglicht) einen DHCP-Server auf den Ethernet-Port legen.

    Jetzt weiß ich nur nicht wie detailliert du die Beschreibung dazu brauchst. (Und ich hab jetzt gerade nicht die Zeit die zu schreiben.)

    Wobei es in der GUI von Ubuntu meine ich auch eine einfach "Klick mich" Lösung gab, frag mich aber nicht wo.
    Lookbehind ist offline

  6. #46 Zitieren
    Provinzheld Avatar von Taomon
    Registriert seit
    Dec 2010
    Ort
    Digiworld
    Beiträge
    248
    Uff das klingt ziemlich kompliziert.
    Keiner kann alles. Bitte gelegentliche Rechtschreibfehler übersehen. Ich habe ADHS
    Taomon ist offline

  7. #47 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Zitat Zitat von Taomon Beitrag anzeigen
    Uff das klingt ziemlich kompliziert.
    Scheint auch einfacher zu gehen:

    Zitat Zitat von https://wiki.ubuntuusers.de/Internetverbindungsfreigabe/
    WLAN auf LAN

    (gilt auch für UMTS/GPRS- oder Bluetooth-Verbindungen auf LAN)

    Eine bestehende WLAN-Verbindung, welche über einen Router die Verbindung zum Internet herstellt, wird über die freie LAN-Schnittstelle anderen Rechnern (Clients) zur Verfügung gestellt. Soll nur ein einziger Rechner ohne Netzwerk-Switch direkt angeschlossen werden, muss möglicherweise ein Crosskabel für die Verbindung verwendet werden. Weitere Hinweise dazu in PC-Direktverbindung per Netzwerk-Kabel.

    Über einen Rechtsklick rechte Maustaste auf das Network-Manager-Icon und "Verbindungen bearbeiten" oder direkt über das Menü "System → Einstellungen → Netzwerkverbindungen" wird hier die gewünschte Schnittstelle konfiguriert. Im Beispiel wird über wlan0 die Internetverbindung hergestellt und über eth0 an nachfolgende Rechner durchgereicht.

    Der vielleicht schon bestehende Eintrag für Auto eth0 kann bearbeitet werden. Ansonsten einen neuen Eintrag mit Namen "ICS WLAN (wlan0) auf LAN (eth0)" als eindeutige Beschreibung hinzufügen. Unter "IPv4 Einstellungen" muss wieder "Gemeinsam mit anderen Rechnern" ausgewählt und die Änderungen übernommen werden.

    Das Kontrollkästchen "Automatisch verbinden" muss bei allen vorhandenen Profilen unter "Kabelgebunden" entfernt werden, ansonsten wird u.U. automatisch das falsche Profil gewählt. Das gewünschte Profil kann nun manuell über das Network-Manager-Applet im Panel aktiviert werden.

    Ein oder auch mehrere Rechner können jetzt direkt oder auch über einen Netzwerk-Switch an die Schnittstelle angeschlossen werden. Die Zuweisung einer IP-Adresse erfolgt automatisch über DHCP.

    IPv4-Einstellungen:

    Auf dem Host:

    WLAN - "Automatisch DHCP" (Verbindung zum Internet über WLAN-Router/UMTS-Modem/Bluetooth)

    LAN - "Gemeinsam mit anderen Rechnern" (muss manuell eingestellt werden)

    Auf den Clients:

    LAN - "Automatisch DHCP"
    Die Anleitung scheint etwas älter zu sein, aber zumindest konnte ich, mit ein wenig mitdenken, die Punkte noch im Network-Manager eines Debian Buster (aktueller Stable-Release) nachvollziehen. Auch wenn ich sie nicht zur Anwendung gebracht habe, weil bei mir dann das Netzwerk nicht mehr funktioniert hätte.
    Lookbehind ist offline

  8. #48 Zitieren
    Provinzheld Avatar von Taomon
    Registriert seit
    Dec 2010
    Ort
    Digiworld
    Beiträge
    248
    Ich hab das mal zwischen ubuntu und buster probiert und bin gescheitert.

    Code:
    sudo cat /etc/NetworkManager/system-connections/Kabelgebundene\ Verbindung\ 1.nmconnection.bak 
    [sudo] password for alex: 
    [connection]
    id=Debian-Buster
    uuid=a7c5f8d7-58e7-32b3-a795-559eaa30f779
    type=ethernet
    autoconnect-priority=-999
    interface-name=eth0
    permissions=
    timestamp=1580039474
    
    [ethernet]
    mac-address-blacklist=
    
    [ipv4]
    dns-search=
    method=auto
    
    [ipv6]
    addr-gen-mode=stable-privacy
    dns-search=
    ip6-privacy=0
    method=auto
    
    [proxy]
    alex@Guilmon:~$
    Netzwerk ist so gar nicht meins. Besser ich pack meine Konsole und geh zum Nachbarn für Spiele updates. Beim der 1. Inbetriebname konnte ich mich verbinden und alles was ich an Spiele Installiert hatte updaten samt Firmware. Aber seit einigen Wochen will es nicht mehr.
    Keiner kann alles. Bitte gelegentliche Rechtschreibfehler übersehen. Ich habe ADHS
    Taomon ist offline

  9. #49 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.009
    Beleben wir den Thread mal wieder mit unserem heutigen Usability-Rätsel zum Thema „Client Side Decorations”, die unglücklicherweise der letzte Schrei bei vielen Desktops sind.

    Die Frage lautet: Wie schließt man dieses Fenster?

    Spoiler:(zum lesen bitte Text markieren)


    Und nein, das Drei-Punkte-Menü ist nicht die richtige Antwort.
    foobar ist gerade online

  10. #50 Zitieren
    So weit die Füße tragen.. Avatar von Almalexia
    Registriert seit
    Aug 2018
    Ort
    Gramfeste
    Beiträge
    12.292
    Gar nicht?
    Reise einer Aschländerin | Tagebuch einer Hochelfin | Hünentochter
    Intel Core i7 10700KF@HR-2 Macho - Stock | Gigabyte Z590 Aorus Pro AX | Corsair 32GB Vengenance 3200 - G.Skill AEGIS 32GB DDR4-3200 = 64GB DDR4-3200 | ASUS AMD Radeon 6800 XT TUF Gaming OC+
    Samsung SSD 970 Evo Plus 1000GB@Windows 10 Pro | Crucial MX500 1TB | Hitachi HDS723020BLA642 2000GB | Hitachi HDS721075KLA330@Hot Plug 750GB | WDC WD40EZRZ 4000GB | WDC WD40EFZX 4000GB
    Seasonic FOCUS GX650 650W | Fractal Design Define 7 TGL | Externer DVD-Brenner | SATA-Wechselrahmen für 3.5 HDD | Windows 10 Pro
    Gaius Julius Caesar did nothing wrong!
    'Cause no one said that freedom's free

    Almalexia ist offline

  11. #51 Zitieren
    Springshield  Avatar von Homerclon
    Registriert seit
    Aug 2004
    Ort
    Erde
    Beiträge
    18.496
    Indem man etwas de-/installiert?
    Mittels Shortcut?

    - Keine verdammte Hechtrolle zum ausweichen in Kämpfe!
    - 01100100 00100111 01101111 01101000 00100001
    Homerclon ist offline

  12. #52 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Zwei mögliche Erklärungen:

    Das ist ein Gnome Desktop, bloß die Anwendung kommt von wo anders. Die Gnome-Devs haben sich ja schon vor einer Weile dazu entschieden, dass es keine Titelleiste mehr braucht und die üblichen Buttons direkt in das Programm-Fenster integriert. Entsprechend gibt es keine klassischen Window-Decorations mehr. Blöd wenn dann Anwendungen kommen, die noch darauf setzen, dass die Window-Decorations noch vorhanden sind und die Funktion nicht selber implementieren. Bisher gab es da zwar immer einen Fallback für, aber ich könnte mir vorstellen, dass der in neueren Versionen auch den Rationalisierungsmaßnahmen zum Opfer gefallen ist.

    Oder, das ist als Mobile-OS ausgelegt und auf Touch-Gesten optimiert. In dem Fall vielleicht mal versuchen das Fenster nach oben aus dem Bild zu schieben? Wobei das ja meistens ne Geste ist, die von unterhalb des Bildschirms starten sollte ...
    Lookbehind ist offline

  13. #53 Zitieren
    Legende Avatar von jabu
    Registriert seit
    Jul 2011
    Beiträge
    7.328
    Der ultimative Spickzettel, das Weltnetz, sagt mir (weiß aber nicht, ob es funktioniert):


    Mit einem GUI-Tool zum Konfigurieren:

    Für Ubuntu u. Debian:
    $ sudo apt install gnome-tweaks -y

    Für CentOS, RHEL u. Fedora:
    $ sudo yum -y install gnome-tweak-tool


    Ohne GUI-Tool:

    Für Rechtsoben-Ausrichtung:
    gsettings set org.gnome.desktop.wm.preferences button-layout ":minimize,maximize,close"

    Für Linksoben-Ausrichtung:
    gsettings set org.gnome.desktop.wm.preferences button-layout "close,minimize,maximize:"


    Was mache ich ohne schlaue Tipps aus dem Weltnetz? Ein dummes Gesicht!
    Ich weiß nicht wirklich, ob das hier passt, ist bloß abgeguckt. Sonst: Meckern!

    Irgendwie erinnert mich dieses Vorenthalten von Wesentlichem an Windows.
    Für Windows braucht man auch obskure Tweaks, um es benutzbar zu machen.
    jabu ist offline Geändert von jabu (23.11.2021 um 23:22 Uhr)

  14. #54 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.009
    Tja, ich muss leider sagen, dass niemand hier gewonnen hat. Die Antwort lautet offenbar: xkill.

    Es handelt sich übrigens nicht um Gnome, sondern um Manjaro Linux mit dem LxQt-Desktop, welches ich mal in einer VM ausprobieren wollte. Nachdem ich die nicht schließbaren Fenster entdeckte, war ich aber auch schon wieder davon geheilt.
    foobar ist gerade online

  15. #55 Zitieren
    Legende Avatar von jabu
    Registriert seit
    Jul 2011
    Beiträge
    7.328
    Ich dachte mir so, dass das schlechte Beispiel von Gnome wohl so abschreckend sein sollte, dass es niemand freiwillig wiederholt (funktioniert auch andersherum), sodass man doch nicht wirklich xkill brauchen sollte.

    Meine Tendenz dazu, die Menschheit zu überschätzen, ist bei mir chronifiziert. Ich bitte um Nachsicht und hoffe, es irgendwann noch zu lernen. Es verbleibt mir noch die Resthoffnung, dass das unfreiwillig wiederholt wurde, z.B. wegen gemeinsamer Komponenten und zu viel Aufwand, um da eben etwas dranzuflicken. Aber dann sind doch die Defaults völlig daneben.

    Ich weiß nicht, wie das unter diesen Baukästen, die auf Linux aufsetzen, im Detail läuft.

    Unter Windows (kein Baukasten) läuft das, nur ganz grob, ungefähr so:
    Die Anwendung legt den Fensterstil fest und übergibt ihn zusammen mit anderen Daten an eine Funktion, die das Fenster registriert, und dann wird der von Windows in der Regel auch respektiert. Das funktioniert auch mindestens unter Windows 98, ME, 2000, XP, Vista, 7, 8, 8.1 und 10 (vermutlich auch unter 11, fehlt mir aber zum Testen) bei Programmen, die für Windows 95 geschrieben wurden. Das Programm kann die Kommandos auch auf anderem Weg erhalten, müssen also nicht aus der Titelleiste kommen. Das Programm reagiert in einem von ihm implementierten Window-Callback darauf, wobei prinzipiell jedes Fenster seinen eigenen haben kann (ist aber doch, für Flexibilität, etwas komplizierter).
    Sich darauf zu verlassen, dass der Benutzer die Kommandos auch absetzen kann, wäre zu wenig, da das Programm bekanntlich von der Anwesenheit der eingeplanten Steuerelemente abhängt, weswegen es ein sinnvolles Konzept ist, beim Registrieren eines Fensters auch gleich mit anzugeben, dass diese gefordert sind. Es ist viel sinnvoller, als sich darauf zu verlassen, dass eine, wie auch immer geartete, Umgebung die Steuerelemente schon passend bereitstellen würde. Denn welche das sein sollen, müsste erst mal bekannt sein.

    Vielleicht liegt hier ein kleiner "Designfehler" von Linux-Desktops vor (vielleicht, indem nicht angegeben wird, welche Steuerelemente gebraucht werden)? Ein historisch gewachsener, weil "Unsere Modularität sieht das nicht vor, und so was brauchen wird nicht!" ?

    Es sollte doch, wenn es nicht dynamisch geht (wäre besser, wenn es dynamisch ginge), wenigstens ein brauchbarer Workaround möglich sein, z.B. indem man bei neuen Programmen Metainformationen anhängt, etwa so nach der Methode, dass man entweder für alle Fenster und Kindfenster die Standarddekorationen festlegt und das dann im Einzelnen überschreibbar macht. Das dürfte nicht jeden Fall perfekt abdecken, aber die allermeisten. Ein Vorteil wäre, dass man die Programme nicht neu kompilieren müsste. Es würde genügen, eine Ressource einzubinden (z.B. ein Stück XML). Ein weiterer Vorteil wäre leichtes Herstellen von Kompatibilität in beide Richtungen. Ein Loader, der die Ressource nicht kennt, ließe sie links liegen. Wo die Ressource fehlt, würden volle Dekorationen gelten. Was dagegen spricht, weiß ich nicht. Das könnte vielleicht jemand beantworten, der sich mit Linux und dem Gemüsegarten drumherum besser auskennt. Für mich ist erst mal nur ersichtlich, dass das keine perfekte Lösung ist und dass man sich solche Sachen, da man sie fortan mitschleppen muss, gut überlegt haben will.

    Edit: Mit einigen Verrenkungen müsste es auch dynamisch nachträglich und beiderseitig kompatibel gehen, aber das würde unsaubere Systemerweiterungen erfordern. Bei allen sauberen Ansätzen, die mir auf die Schnelle einfallen, liefe neue Software dann nicht auf alten Systemen, aber das muss sie bei hypermodernem GUI-Kram vielleicht nicht. Das wären im Wesentlichen einfach neue Schnittstellen. Aber das ist nur so vom Trockenschwimmen her, da ich die spezifischen Probleme von Linux-Distributionen nicht kenne. Hier hätte man wenigstens die Möglichkeit, eine Lösung, die jahrzehntelang halten könnte, zu finden.

    PS
    Ich habe hier, bezüglich Windows, manches (was dicht beieinander liegt) in einen Topf geworfen (nicht wirklich, aber es könnte sich so lesen lassen), aber das Prinzip sollte stimmen. Um das auszudifferenzieren, hätte ich weiter ausholen müssen, wäre dann zu lang geworden.
    jabu ist offline Geändert von jabu (25.11.2021 um 20:02 Uhr)

  16. #56 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.009
    Zitat Zitat von jabu Beitrag anzeigen
    Ich dachte mir so, dass das schlechte Beispiel von Gnome wohl so abschreckend sein sollte, dass es niemand freiwillig wiederholt (funktioniert auch andersherum), sodass man doch nicht wirklich xkill brauchen sollte.
    Hehe. Das Gegentum ist der Fall. Das Ganze nennt sich Client Side Decorations (CSD) und bedeutet, dass es der Anwendung überlassen bleibt, wie sie ihre Fensterdekorationen malen will (oder ob überhaupt). Klassischerweise war das ja Aufgabe des Fenstermanagers. Und ich kann mir im Einzelfall durchaus sinnvolle Anwendungen dafür vorstellen. Zum Beispiel beim Browser, bei welchem man die Titelleiste weglässt, um mehr nutzbare Fläche zu erhalten. Aber in der Masse halte ich es für eine schlechte Idee, weil dann genau solche Dinge passieren und es außerdem zu Wildwuchs führt, wenn jede Anwendung (oder wahrscheinlicher: jedes Toolkit) sein eigenes Süppchen kocht.

    Leider scheint das eine Seuche zu sein, die um sich greift. Die meisten GTK-basierten Desktops sind bereits infiziert. Bei GNOME ist sowieso Hopfen und Schmalz verloren, aber auch alle anderen Desktops sind entweder schon gewechselt oder wollen noch. Cinnamon, XFCE, Mate... alle betroffen. Offenbar hat es auch mit der Umstellungen auf Wayland zu tun, welches CSD auch als Standard haben will.

    LxQt hatte ich mir angucken wollen, in der Hoffnung, es wäre besser (da nicht GTK-basiert), wurde aber eines besseren belehrt. Nur KDE scheint noch nicht von den Römern besetzt und bietet nach wie vor beides an. Allerdings ist der Desktop auch etwas... schwergewichtig.

    *seufz* Vielleicht lernen die Entwickler ja irgendwann, das Feature mit Augenmaß und Sachverstand einzusetzen. Aktuell nervt es allerdings, wenn jedes Toolkit (und teilweise jedes Programm) anders zu bedienen ist.


    Spoiler:(zum lesen bitte Text markieren)



    Meine Tendenz dazu, die Menschheit zu überschätzen, ist bei mir chronifiziert.
    Du bist halt noch jung und naiv, Grashüpfer.
    foobar ist gerade online

  17. #57 Zitieren
    Legende Avatar von jabu
    Registriert seit
    Jul 2011
    Beiträge
    7.328
    @foobar

    Lasse mich raten. Dann haben alte Programme nach wie vor ihre Titelleiste, wogegen neue oder aktualisierte Programme auf diesen "modernen" Stil umgestellt sind, weil alles einheitlich aussehen soll, was dann mehr und mehr zum Problem wird, wenn die Anwendungsprogrammierung nicht ganz astrein ist, z.B. weil die selbstgemachte Schließen-Schaltfläche fehlt oder weil mit der Logik oder mit dem Threading oder mit sonst was nicht stimmt.

    Zudem ist nicht garantiert, dass einheitliche Kommandos verwendet werden bzw. dass die Auswertung benötigter Kommandos überhaupt implementiert ist. Das macht das xkill umso nötiger, was aber den Prozess hart beendet, weswegen die Anwendung selbst nichts mehr geordnet abschließen kann, z.B. das Wegschreiben von aktuellen Settings oder den letzten Nutzdaten, sodass man, mit etwas Pech, von vorne anfangen muss.

    So ungefähr?

    Hinzugefügt:
    Zitat Zitat von foobar Beitrag anzeigen
    Du bist halt noch jung und naiv, Grashüpfer.
    "Nur die Besten sterben jung!" erfährt dadurch eine neue Konnotation.
    jabu ist offline Geändert von jabu (25.11.2021 um 23:35 Uhr)

  18. #58 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.009
    Zitat Zitat von jabu Beitrag anzeigen
    [...]
    So ungefähr?
    So ungefähr. Jedenfalls ist das mein Verständnis. Ich bin mir sicher, wenn du die Entwickler fragst, sind CSDs das beste seit der Erfindung von geschnittenem Brot und absolut notwendig.

    Eine wesentliche Rolle scheint Wayland dabei zu spielen. Der alte X-Server ist schon länger recht unbeliebt. Der wurde halt ursprünglich mal in den 80ern für Mainframes und sowas entwickelt und arbeitet mehr oder weniger nach dem Prinzip, dass das Programm Zeichenbefehle an ihn schickt und der die dann ausführt. Male hier ein Rechteck und da eine Linie und dort den Text „foobar rocks” in Helvetica 12pt rot. Und so weiter. Das gab dann Oberflächen im Stile des alten TWM und sah in etwa so aus. Und das hat auch gereicht. Damals war ja alles kleiner, auch RAM und Speicherplatz. Farbige Grafik war unbezahlbar und unter hochauflösenden Monitoren verstand man solche mit dreistelliger Pixelzahl pro Achse.

    Als X11 entwickelt wurde, kannte Unix noch keine Shared Libraries. Damit nicht jedes Programm seine eigenen Routinen zum Rendern von GUIs statisch gelinkt einbinden musste, hat man sich halt entschieden, das alles in einem Server zu bündeln, welchem die Programme dann nur noch ihre Instruktionen schicken müssen. Als netter Bonus fiel Netzwerktransparenz dabei ab, also dass man die Grafikausgabe eines Programms auf eine andere Maschine umleiten kann, ohne dass die Anwendung es überhaupt mitkriegt.

    So arbeitet aber heute kaum noch was. Heutzutage hat man Shared Libraries und die Leute erwarten Farbverläufe und komplexe geometrische Formen mit Schatten und Pipapo. Und das alles in Zeichen-Instruktionen zu zerlegen, würde zu viel Leistung kosten. Statt dessen nutzen die Programme lokale Toolkits (GTK, Qt, etc). Die abstrahieren noch stärker als X11 und das Programm sagt nur noch: Hier einen Knopf und da ein Eingabefeld und dort eine Dropdown-Box und so weiter. Das Toolkit entscheidet dann, wie die auszusehen haben. Es rendert die gesamte GUI (stark vereinfacht) lokal und schickt dann nur noch das fertige Bitmap an den Server. Der hat zwar inzwischen auch ein paar Erweiterungen gekriegt, die dabei mithelfen, aber im Prinzip läuft es so ab.

    Und dann dachten sich die Leute halt: Es wird Zeit, den alten X-Server abzulösen. Vorhang auf für Wayland, welcher deutlich einfacher gestrickt ist und sich wirklich nur noch um das Darstellen von Bitmaps kümmert. Außerdem erledigt er noch das Compositing (z.B. für Schattenwurf und solchen Schnickschnack), was beim alten X11 auch nicht unkompliziert war. Der muss dazu ständig aufwendig mit dem Compositor Daten austauschen.

    Ich bin ja durchaus dafür zu haben, überflüssige Komplexität zu entfernen. Und das alte X11 hatte wirklich so seine Probleme, aber hier ist man IMHO einfach zu weit gegangen. So bliebt auch die Netzwerktransparenz bei Wayland auf der Strecke. Soll man halt Fernwartungsprotokolle wie VNC oder RDP benutzen, sagen die Entwickler. Auch wenn das natürlich kein echter Ersatz ist. Und Wayland erzwingt bei der Gelegenheit auch CSDs. Wenn die Anwendungen (über die Toolkits) eh alles lokal rendern, können sie das ja auch gleich für die Fenster-Dekos mit machen. Dass das für uneinheitlichen Wildwuchs sorgt und zu den bereits genannten Problemen führt, ist halt Pech.
    foobar ist gerade online Geändert von foobar (26.11.2021 um 13:49 Uhr) Grund: Ergänzung

  19. #59 Zitieren
    Legende Avatar von jabu
    Registriert seit
    Jul 2011
    Beiträge
    7.328
    Zitat Zitat von foobar Beitrag anzeigen
    So ungefähr. Jedenfalls ist das mein Verständnis. Ich bin mir sicher, wenn du die Entwickler fragst, sind CSDs das beste seit der Erfindung von geschnittenem Brot und absolut notwendig.

    Eine wesentliche Rolle scheint Wayland dabei zu spielen. Der alte X-Server ist schon länger recht unbeliebt. Der wurde halt ursprünglich mal in den 80ern für Mainframes und sowas entwickelt und arbeitet mehr oder weniger nach dem Prinzip, dass das Programm Zeichenbefehle an ihn schickt und der die dann ausführt. Male hier ein Rechteck und da eine Linie und dort den Text „foobar rocks” in Helvetica 12pt rot. Und so weiter. Das gab dann Oberflächen im Stile des alten TWM und sah in etwa so aus. Und das hat auch gereicht. Damals war ja alles kleiner, auch RAM und Speicherplatz. Farbige Grafik war unbezahlbar und unter hochauflösenden Monitoren verstand man solche mit dreistelliger Pixelzahl pro Achse.
    Letzten Sonntagvormittag musste ich die Thematik grob überfliegen (hast mich angefixt), für mich hilfreiche Links:
    https://www.x.org
    https://www.x.org/wiki/guide/
    https://www.x.org/wiki/guide/concepts/#xisclientserver
    https://www.x.org/releases/X11R7.7/d...1protocol.html
    https://en.wikipedia.org/wiki/Mesa_(computer_graphics)
    https://en.wikipedia.org/wiki/Waylan...rver_protocol)

    Als X11 entwickelt wurde, kannte Unix noch keine Shared Libraries. Damit nicht jedes Programm seine eigenen Routinen zum Rendern von GUIs statisch gelinkt einbinden musste, hat man sich halt entschieden, das alles in einem Server zu bündeln, welchem die Programme dann nur noch ihre Instruktionen schicken müssen.
    Das leuchtet ein.

    Rebasing, Relocation, PIC, MMU fallen nicht vom Himmel. Irgendeine Kombination von dem Kram wird man brauchen. Sobald man mehr als einen Prozess im RAM halten will, kann man etwas davon nötig haben, mit Shared Libraries eher mehr.

    Man kann zum Sparen von RAM herumtricksen, indem man solche statischen Datensegmente, deren Daten konstant sind (z.B.: .text, .rodata), nur einmal vorhält und solche, die schreibbar sind (z.B.: .data, .bss), je Prozess separat anlegt. Man kann das Einsparen von RAM noch mit Copy-on-write auf die Spitze treiben, indem man es, wo es "schon" eine MMU gibt, auf einen Page-fault ankommen lässt und erst daraufhin die nötige Kopie anlegt. Aber wegen Lags und u.U. auch Speicherfragmentierung ist das bei Prozessen, die sofort laufen sollen, eher ungünstig. Es eignet sich eher für viele ruhende Prozesse, die später mal aufgeweckt werden könnten.

    Schon wieder so ein verdammter, (vermeintlich!) realitätsferner, Exkurs. Könnte man vielleicht meinen, aber es ist ja z.B. bereits dann wichtig, wenn man ein Linkerskript überprüfen oder modifizieren muss oder wenn man doch mal wissen muss, was passiert, bevor die Funktion main aufgerufen wird. Den Assembler-Output würde man schlechter verstehen, wenn man keine Vorstellung davon hätte, welchen Sinn manche hinzuaddierten Offsets haben könnten. Viele Kniffe werden nicht nur bei Shared Libraries verwendet.

    Es scheint tatsächlich zu helfen, ein wenig die Historie zu beleuchten, z.B. wie man von einem Unix, bei dem noch der ruhende Prozess auf der Festplatte gespeichert sein musste, während der andere läuft (wie ich mal irgendwo gelesen habe, vermutlich weißt du mehr darüber, mehr als ich sowieso), schrittweise zu einem modernen Betriebssystem gekommen ist ("modern" natürlich nicht im Sinne von komischen UX-Experimenten zu verstehen).

    Als netter Bonus fiel Netzwerktransparenz dabei ab, also dass man die Grafikausgabe eines Programms auf eine andere Maschine umleiten kann, ohne dass die Anwendung es überhaupt mitkriegt.
    Not macht wohl erfinderisch.

    So arbeitet aber heute kaum noch was. Heutzutage hat man Shared Libraries und die Leute erwarten Farbverläufe und komplexe geometrische Formen mit Schatten und Pipapo. Und das alles in Zeichen-Instruktionen zu zerlegen, würde zu viel Leistung kosten. Statt dessen nutzen die Programme lokale Toolkits (GTK, Qt, etc). Die abstrahieren noch stärker als X11 und das Programm sagt nur noch: Hier einen Knopf und da ein Eingabefeld und dort eine Dropdown-Box und so weiter. Das Toolkit entscheidet dann, wie die auszusehen haben. Es rendert die gesamte GUI (stark vereinfacht) lokal und schickt dann nur noch das fertige Bitmap an den Server. Der hat zwar inzwischen auch ein paar Erweiterungen gekriegt, die dabei mithelfen, aber im Prinzip läuft es so ab.

    Und dann dachten sich die Leute halt: Es wird Zeit, den alten X-Server abzulösen. Vorhang auf für Wayland, welcher deutlich einfacher gestrickt ist und sich wirklich nur noch um das Darstellen von Bitmaps kümmert. Außerdem erledigt er noch das Compositing (z.B. für Schattenwurf und solchen Schnickschnack), was beim alten X11 auch nicht unkompliziert war. Der muss dazu ständig aufwendig mit dem Compositor Daten austauschen.
    Weg mit dem performancekillenden und verkomplizierenden Nadelöhr auf lokaler Ebene! Damit ist ein richtiges Desktopbetriebssystem entstanden, könnte man sagen.

    Ich bin ja durchaus dafür zu haben, überflüssige Komplexität zu entfernen. Und das alte X11 hatte wirklich so seine Probleme, aber hier ist man IMHO einfach zu weit gegangen. So bliebt auch die Netzwerktransparenz bei Wayland auf der Strecke. Soll man halt Fernwartungsprotokolle wie VNC oder RDP benutzen, sagen die Entwickler. Auch wenn das natürlich kein echter Ersatz ist. Und Wayland erzwingt bei der Gelegenheit auch CSDs. Wenn die Anwendungen (über die Toolkits) eh alles lokal rendern, können sie das ja auch gleich für die Fenster-Dekos mit machen. Dass das für uneinheitlichen Wildwuchs sorgt und zu den bereits genannten Problemen führt, ist halt Pech.
    So ganz verstehe ich noch nicht, was es bedeutet, dass Wayland CSDs erzwingt. Gibt es denn kein Messaging? Vielleicht D-Bus (nur geraten)? Dann müsste es doch, wie bei Windows, egal sein, woher die Messages kommen, solange das Programm richtig darauf reagiert.

    Es könnte z.B., falls nötig, die eintrudelnden Messages übersetzen, damit sie zum neuen System passen. Dann bräuchte man nur noch eine richtige Taskleiste oder brauchbare Tastatur-Shortcuts (wie z.B. Alt-F4 unter Windows), damit man ohne großen Aufwand Nachrichten an das Programm schicken kann.

    Also sind diese Linux-Distributionen, von denen gelegentlich Leute erzählen, doch noch keine richtigen Desktopbetriebssysteme?
    jabu ist offline

  20. #60 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.009
    Zitat Zitat von jabu Beitrag anzeigen
    So ganz verstehe ich noch nicht, was es bedeutet, dass Wayland CSDs erzwingt.
    Ich will nicht behaupten, der große Experte zu sein. Aber streng genommen ist es nicht Wayland, sondern dessen Referenzimplementierung eines Compositors namens „Weston”, der die CSDs erzwingt. Wayland selbst ist ja nur ein Protokoll und, ähnlich wie X11, in diesem Sinne agnostisch. Nur halt nicht mehr netzwerkfähig, weil warum nützliche Features behalten? Weston ist als Compositor und Fenster-Manager für die Fenster zuständig und sagt halt: „Fensterrahmen malen? Mach ich nüscht!

    Theoretisch könnte es andere Implementierungen geben, die weiterhin Server Side Decorations (SSD) anbieten. KWin macht das beispielsweise. Das Problem ist natürlich, dass die meisten Leute sich im Zweifel an die offizielle Referenz halten werden und Support für den Rest bestenfalls ein Nachgedanke wird. Wenn sowieso jedes Programm bzw. Toolkit seine eigenen Dekos haben muss, damit es auf Weston richtig läuft, warum dann noch den Aufwand treiben, ein zweites Design zu entwerfen, das mit den SSDs anderer Fenstermanager harmoniert und nicht aufgesetzt wirkt? KDE-Programme werden es können, aber der Rest?

    Das lustige ist halt, dass mir noch keiner einen vernünftigen Use-Case (abgesehen eben vom bereits angesprochenen Browserfenster) nennen konnte, in welchem CSDs tatsächlich einen Vorteil für die Nutzer bieten. Unter Windows können Fenster auch aussehen, wie sie wollen. Und wie wird es da genutzt? Um interessante und nützliche Bedienkonzepte umzusetzen? Nein, natürlich nicht. Sondern statt dessen, damit jede Anwendung ihr eigenes Corporate Design umsetzen kann. Und einheitliche Bedienkonzepte bleiben halt auf der Strecke. Warum das bei Linux nicht genauso enden soll, hat mir noch keiner erklären können.

    Die einzigen Vorteile von CSDs sind halt, dass nur das eine Bitmap gerendert werden muss (was dem User im Grunde egal sein kann), und dass schnieke Fenstereffekte (Rotieren, Wackeln, etc.) ohne Aliasing-Artefakte möglich sind (was man eh kaum sieht). Das haut mich natürlich vom Hocker.


    Also sind diese Linux-Distributionen, von denen gelegentlich Leute erzählen, doch noch keine richtigen Desktopbetriebssysteme?
    Er hat Jehova gesagt!
    foobar ist gerade online Geändert von foobar (02.12.2021 um 14:37 Uhr)

Seite 3 von 5 « Erste 12345 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •