Im Übrigen schafft Gentoo das recht gut mit den Paketsubversionen, wenn die parallel installierbar sind ists meistens geslottet, z.B. sys-boot/grub:0 und sys-boot/grub:2 – wobei letzteres mit USE="-multislot" dann auch DEPEND="!sys-boot/grub:0" hat (d.h. wenn das Useflag multislot nicht gesetzt ist, heißen die Binaries grub-* anstatt grub2-* und GRUB Legacy kann nicht mehr installiert werden).
Gentoo ist aber nicht direkt ein Kackboon-Desktop-System.
Und durch die ganzen eclasses sind die ebuilds bei einfachen Paketen auch einfach, z.B. für einfaches CMake, Autotools, setup.py gibts dann inherit autotools und wie das heißt und damit hat mans im Prinzip schon.
oreissig's Unix-Rant
-
-
Revisiting How We Put Together Linux Systems
Interessanter Blogpost der ebenfalls die problematische Aspekte des aktuellen Paketmanagement-Ansatz bespricht. Steht sehr viel ähnliches drin wie in diesem Thread. Er meint ebenfalls, dass der "Toolbox"-Ansatz, also Paket-Repositories, wo sich die User selber einen Werkzeugkkasten für ihre Verwendung zusammenstellen, der Realität nicht gerecht wird.
Grundthesen:
- Auf vielen Linux-Installationen in der Realität werden selten einzelne Pakete aktualisiert/installiert, sondern direkt gleiche ganze Builds ausgerollt (Workstation in Unternehmen/Schulen, Server, Embedded-Kisten).
- Benutzer wollen ein App-Model mit schnellen Releases, und nicht erst auf den nächsten Build/Release warten.
- Aktuelle Lösungsansätze (Ubuntu Apps, Docker, ChromeOS) lösen nur einzelne Teilprobleme.
Der Lösungsansatz der präsentiert wird ist dann relativ umfangreich und detailliert. Kern-Idee ist es aber das Dateisystem in Dateisystem-Images aufzuteilen, die dann einzeln kombiniert werden können.
Nebst Low-Level Dateisystem-Images von Distributionen soll es dann Framework-Images z.B. für GNOME geben. Und Vendors wie Mozilla können dann App-Images z.B. für Firefox bauen, die auf der GNOME-Runtime aufbauen, anstatt auf einer spezifischen Distribution.
Home-Verzeichnisse sollen auch so verwaltet werden. Es ist ein ziemlich umfangreicher Vorschlag, aber klingt definitiv interessant. Soll technisch auf btrfs aufbauen, benötigt also Mounting/Snapshotting/Subvoluming um den Sandbox-Ansatz umzusetzen. Und halt ordentliches IPC via kdbus, da das Dateisystem nicht mehr so einfach als Kommunikationsmittel missbraucht werden kann.
Trotzdem soll da ganze Legacy-kompatibel bleiben.
-
Auja, ich liebe solche Threads (den inkorrekten Apostroph im Thread-Titel hingegen nicht).
Ich beurteile das ganze aus der Sicht eines gewissen Liebhabers der Unix-Philosophie und zugegebenermaßen auch leicht bis mittelstark religiös anmutender Abneigung gegenüber Windows, das muss ich eingestehen.
Insbesondere möchte ich auf das Config-Chaos eingehen. Ansich finde ich es ja nett, dass man unter Unix (Begriff hier allgemein stellvertretend für unixoide Systeme oder Linux-Distributionen) jede Software auch jenseits ihrer selbst mit einem Editor konfigurieren kann. Das schafft eine gewisse Einheitlichkeit. Diese hört aber bereits dann auf, wenn man feststellt, dass Software A ihre Konfiguration als ~/.foo ablegt, Software B als ~/.foorc, Software C ein eigenes Directory erstellt und Software D lieber irgendwo unter ~/.config/… geht. Aber das ist ja noch nicht das Schlimste. Software A verwendet XML (z.B. Pidgin), Software B verwendet ein Variable=Wert-Paar und Software C benutzt C-ähnliche Syntax mit geschweiften Klammern (z.B. nginx). Als vierte Variante seien noch doppelpunktgetrennte Werte à la /etc/passwd oder /etc/group genannt.
Diese Uneinheitlichkeit setzt sich auch als Nebenwirkung der Unix-Philosophie innerhalb der Software selbst fort. An sich ist es ja löblich, dass jede Software einen eigenen Zweck hat und ausschließlich diesen verfolgt. Oftmals ist man dadurch aber gezwungen, Software mit unterschiedlicher, also uneinheitlicher Bedienung zu benutzen – von unterschiedlicher Handhabung von Kommandoparametern bis hin zu uneinheitlichen Keyboard-Shortcuts in curses-Anwendungen. Manchmal gibt es --parameter mit einer zusätzlichen Abkürzung -p, manchmal aber auch -parameter oder in Anlehnung an tar einfach nur einen einzigen Buchstaben. Manche curses-Anwendungen mögen einen Buchstabentastendruck, manche möchten über F-Tasten gesteuert werden und wieder andere wollen eine Strg-Kombination.
Zum Softwareverwaltungsproblem: Wer ist modularer? Windows speichert eine Software mit ihren Bestandteilen an einem zentralen Punkt unter C:\Program Files. Unix flechtet die Software ins System ein. Tatsächlich hat die Windows-Lösung einen gewissen Reiz: Gehe ich in ein Unterverzeichnis unter C:\Program Files, weiß ich ganz genau ›Ich bin genau dort, wo alles ist, was mit der Software zu tun hat‹ und sehe die einzelnen Bestandteile und kann auch die Größe der Software beurteilen. Der Unix-Ansatz macht einen Paketmanager (insbesondere in Zeiten von Shared Libraries) unabdingbar. Man kann ihn als Hilfsmittel zur Softwareverwaltung sehen, aber auch als Versuch, irgendwie den Überblick über die Bestandteile des Systems nicht zu verlieren, also genau das nachzubilden, was im Design eines Windows-Systems von Haus aus im Dateisystem implementiert ist. Ich weiß nicht, ob mein Paketmanager seinen Job so erledigt, wie ich das möchte. Ich hoffe einfach drauf. Genauso wie ich bei einer Deinstallation einer Software unter Windows darauf hoffe, dass wirklich alle Spuren an allen Stellen beseitigt sind, denn dort wiederum entstehen mitunter Hinterlassenschaften in der Registry, im Startmenü und vielleicht noch an anderen Orten. Also eigentlich nimmt sich da nicht viel, oder?
-
Revisiting How We Put Together Linux SystemsInteressanter Blogpost der ebenfalls die problematische Aspekte des aktuellen Paketmanagement-Ansatz bespricht.
Zusammenfassung von Golem ist jetzt Online: http://www.golem.de/news/lennart-p…409-108941.html
-
Zusammenfassung von Golem ist jetzt Online: http://www.golem.de/news/lennart-p…409-108941.html
Und noch mehr Unix-Grundprinzipien verhauen. Wenns so weitergeht, wechsle ich auf OpenBSD auf dem Desktop. Das hat ja inzwischen auch aktuelle Desktopumgebungen und macht son Scheiß nicht.
-
Und noch mehr Unix-Grundprinzipien verhauen.
warum sollten die gut sein? -
Revisiting How We Put Together Linux SystemsInteressanter Blogpost der ebenfalls die problematische Aspekte des aktuellen Paketmanagement-Ansatz bespricht.
Interessant auch, dass er RPM/dpkg als build-tools bezeichnet, die man zum initialen Erstellen der images verwendet. Das erscheint mir auch etwas zu sein, was sich von der Komplexität von klassischen Paketmanagern lösen lässt. -
ich hab immer mal noch über das thema nachgedacht und komme an einem punkt nicht ganz weiter: ein kernpunkt meiner argumentation war das dynamische linken. was passiert, wenn man das einfach nicht macht? klick wenn man ein ganz normales linux-system mit unaufgeräumtem FS und wilden dependencies hat, die vom paketmanager verwaltet werden. reicht statisches linken aus, um blöde nebeneffekte zu vermeiden, die das system mit der zeit immer kaputter machen?
das problem dass jede distro ihre pakete selbst verwaltet und es keine portabilität zwischen den distros gibt wird dadurch auch nicht gelöst, aber wenn ich einfach ohne nachzudenken updaten kann und das system damit über jahre weiterläuft, wär das schonmal nett
-
Beitrag von schoela (
7. September 2014 um 13:13 )Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
wow ich hab schoela heraufbeschworen
ein kernpunkt meiner argumentation war das dynamische linken. was passiert, wenn man das einfach nicht macht?
hab inzwischen mal noch die position von einem redhat-mitarbeiter gefunden:
Static Linking Considered Harmful- "fixes (either security or only bug) have to be applied to only one place: the new DSO(s). If various applications are linked statically, all of them would have to be relinked." das ist wiederum genau der punkt, der dazu führt, dass man niemals was anderes als minor fixes ausrollen kann.
"By the time the problem is discovered the sysadmin usually forgot which apps are built with the problematic library." halte ich für unfug, dafür gibts repo-basierte paketmanager. wer nur das updatet, wo er selbst mitbekommt, dass es dort eine offene lücke gibt, ist eh grob fahrlässig... - "Security measures like load address randomization cannot be used. [...] Fixed addresses (or even only fixed offsets) are the dreams of attackers." Das ist meiner Einschätzung nach ein valider Punkt, oder gibts da im Kernel inzwischen voodoo magic, die das trotzdem randomisiert? Prinzipiell hab ich ja nix gegen dynamisches linken, nur sollen sich Apps halt nicht gegenseitig in die quere kommen, wenn sie die selbe lib teilen.
- "more efficient use of physical memory" mag sein, da wärs mal interessant zu sehen wie viel das wirklich ausmacht. wenns jetzt irgendwie 50mb spart kann ich da auch drauf verzichten.
kernel same page merging könnte ggf. abhilfe schaffen, aber das ist standardmäßig sicher nicht aktiv, oder? - der Rest ist irgendwie zeugs, was mich als Nutzer nicht so richtig kümmert...
- "fixes (either security or only bug) have to be applied to only one place: the new DSO(s). If various applications are linked statically, all of them would have to be relinked." das ist wiederum genau der punkt, der dazu führt, dass man niemals was anderes als minor fixes ausrollen kann.
-
(Drepper und Poettering in einem Thread. Ich warte nur noch auf Ad Hominem :D)
ASLR und das limitiertere Tooling finde ich schon signifikante Nachteile. Die static linux Leute haben da natürlich ne andere Meinung zu: http://sta.li/faq
Die ganzen Steam-Spiele unter Linux machen ja eh den Kompromiss dass sie zwar dynamischen Linken, aber wie unter Windows einfach alle Bibliotheken selber mitbringen (gut, bei Spielen ist da eh häufig ein gepatchtes SDL mit dabei, von daher ist das nicht immer freiwillig).
Ich glaube auch nicht dass statisches Linken alle besprochenen Probleme löst, glaube da braucht es schon noch mehr Abkapselung.
Nachtrag: Same-Frame-Merging ist nicht standardmässig aktiv. Gibt da da auch Security-Bedenken, da es Sidechannel-Attacken erlaubt (man kann durch Timing-Attacken ziemlich zuverlässig rausfinden, ob bestimmte andere Binaries im RAM sind).
-
"more efficient use of physical memory" mag sein, da wärs mal interessant zu sehen wie viel das wirklich ausmacht. wenns jetzt irgendwie 50mb spart kann ich da auch drauf verzichten.
um gleich mal den punkt der embedded-fraktion zu entkräften: nein, darum gehts mir nicht. in embedded systems macht man eh keine softwareverwaltung, da wird einfach das komplette OS-image neu geflasht und gut. bei einer fritzbox updatet man das OpenSSL nicht einzeln.
damit wird software-verwaltung zu etwas, was einmal seitens des Herstellers gemacht wird (und der da auch ruhig hirnschmalz und arbeit reinstecken darf, damit das alles optimal zusammenpasst) und ist nix, was draußen beim Nutzer mit diversesten Systemkonfigurationen reibungslos laufen muss. -
Nachtrag: Same-Frame-Merging ist nicht standardmässig aktiv. Gibt da da auch Security-Bedenken, da es Sidechannel-Attacken erlaubt (man kann durch Timing-Attacken ziemlich zuverlässig rausfinden, ob bestimmte andere Binaries im RAM sind).
Hast du da ein Paper zu?
-
Hast du da ein Paper zu?
https://staff.aist.go.jp/c.artho/papers…2011-suzaki.pdfSie haben vom aus einem VM-Guest heraus via Copy-on-Write ziemlich zuverlässig herausfinden können, ob im anderen VM-Gast ein Apache oder Firefox-Binary geladen war.
-
https://staff.aist.go.jp/c.artho/papers…2011-suzaki.pdfSie haben vom aus einem VM-Guest heraus via Copy-on-Write ziemlich zuverlässig herausfinden können, ob im anderen VM-Gast ein Apache oder Firefox-Binary geladen war.
Danke! Schon krass.
-
wobei der anwendungsfall jetzt für ne installation ohne virtualisierung wurst ist, da kann das programm auch einfach ps ausführen um rauszufinden, welche executables geladen sind...
-
wobei der anwendungsfall jetzt für ne installation ohne virtualisierung wurst ist, da kann das programm auch einfach ps ausführen um rauszufinden, welche executables geladen sind...Offenbar nicht:
Code
Alles anzeigen[0 running job(s)] {history#1455} 14:32:14 2014-09-08 qsuscs@sculptor ~ % pstree ?───tmux─┬─zsh───htop └─3*[zsh] [0 running job(s)] {history#1456} 14:32:15 2014-09-08 qsuscs@sculptor ~ % ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND qsuscs 1412 0.0 0.0 137152 2152 pts/10 Ss Jul23 0:08 zsh qsuscs 3398 0.5 0.0 113320 2256 pts/10 S+ Aug05 270:11 htop qsuscs 8118 0.0 0.0 3944 292 ? S Jun05 0:00 multilog t s999999 n20 !/usr/bin/xz /home/qsuscs/var/log/git-daemon qsuscs 10270 0.0 0.0 3932 296 ? S Jun05 0:02 supervise git-daemon qsuscs 10271 0.0 0.0 3932 296 ? S Jun05 0:00 supervise log qsuscs 13011 0.0 0.0 137232 2268 pts/13 Ss+ Jul28 0:02 zsh qsuscs 14720 0.0 0.0 28228 3432 ? Ss Jul21 30:03 tmux qsuscs 14721 0.0 0.0 140068 2992 pts/8 Ss+ Jul21 0:05 zsh qsuscs 15976 0.0 0.0 161124 11928 ? S 08:00 0:00 /package/host/localhost/php-5.4.11/bin/php-cgi qsuscs 21306 0.0 0.0 4104 364 ? S Jun05 4:08 /command/svscan /home/qsuscs/service qsuscs 28273 0.0 0.0 139412 2412 pts/14 Ss+ Jul27 0:01 zsh qsuscs 29089 4.4 0.0 141900 3876 pts/15 Ss 14:32 0:00 -zsh qsuscs 30677 0.0 0.0 110240 1084 pts/15 R+ 14:32 0:00 ps aux qsuscs 32726 0.0 0.0 16312 592 ? S Jul27 0:00 /home/qsuscs/bin/git daemon --port=63913 --base-path=/home/qsuscs/git --listen=95.143.172.183 --listen=2001:1a50:11:0:5f:8f:acb7:d8 --verbose qsuscs 32729 0.0 0.0 15348 732 ? S Jul27 0:00 git-daemon --port=63913 --base-path=/home/qsuscs/git --listen=95.143.172.183 --listen=2001:1a50:11:0:5f:8f:acb7:d8 --verbose /home/qsuscs/git
Da sind definitiv noch andere Prozesse am laufen, die seh ich aber nicht. -
wobei der anwendungsfall jetzt für ne installation ohne virtualisierung wurst ist, da kann das programm auch einfach ps ausführen um rauszufinden, welche executables geladen sind...
In dem Paper präsentieren sie auch nen Experiment wo sie auch eine über HTTPS heruntergeladene Datei erkennen können.Prozess-Erkennung war das einfachste, weil sich das Mapping der Binaries auf Pages relativ deterministisch verhält, der Angriff lässt sich aber auch für andere Informations-Leaks nutzen. Theoretisch lassen sich Anwendungen knacken die darauf basieren dass Daten im nur im virtuellen Addressraum der Applikation lesbar sind, jedoch nicht von anderen Prozessen aus.
Nachtrag: Rein von der Angriffsidee her könnte ich mir sogar ein Experiment vorstellen wo man so eine Attacke via Javascript ausführt. In der Praxis vermutlich schwierig zu kontrollieren, aber wäre Prozess-Probing dann wieder ein ernsthaftes Problem.
-
das NixOS klingt zwar in der tat gut, aber ist wieder so ein obskures Nieschending wie PC-BSD, wo es eben nich die große breite Palette an aktueller Software gibt. Ist also auch keine fertige Lösung für den Desktopnutzer.
Je länger ich mich in Docker einlese, umso besser klingt das eigentlich. Ist zwar weder eine Lösung für den Endanwender noch eine Lösung für den Desktop, aber um serverkrams deployt zu bekommen ist das der heilige Gral. Isoliert, versioniert, reproduzierbar, leichtgewichtig und distributionsunabhängig. "Mein Service will Debian" fein dann kriegt er ein debian-userland, "dieser enterprise-foo läuft nur auf Redhat", okay nehm ich das von CentOS. So stell ich mir Linux-Software vor.
-
Etwas, was ich jetzt auf der Arbeit lieben gelernt habe, ist Alt+Verschieben bzw Alt+Resize im Xorg. Wenn es doch nur was in der Art unter Windows gäbe, was auch wirklich funktioniert... Alt ist nämlich schon doppelt und dreifach belegt.
RHEL 7 oder was es ist, läuft hier. Darauf verwende ich Cadence und Matlab.
-
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!