Die ersten beiden Situationen werden auf clevere Weise behandelt.
Eines der interessanten Features ist die Deduplizierungsunterstützung für Inhalte in Snap-Paketen. Snaps werden automatisch von gemeinsamen Dateien dedupliziert, die zwischen Snaps basierend auf ihren Datei-Hashes geteilt werden. Es würde eine Deduplizierung auf der Dateisystemebene, eine Deduplizierung bei Snap-Downloads (mit Serverunterstützung) und möglicherweise eine Deduplizierung von zugeordneten Bibliotheken vom Linker geben. Die Deduplizierung ist ein großes Arbeitselement und wird wahrscheinlich eine Weile dauern, bis sie vollständig implementiert ist, aber es ist dennoch ein interessantes Ziel.
Quelle: http://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Snappy-Deduplication
Die dritte Situation ähnelt in etwa den von Ihnen genannten Laufzeiten:
Eine Snappy-Maschine besteht aus drei Ebenen: der von Canonical bereitgestellten Systemebene, einer Ebene von Frameworks, die das von Anbietern in Zusammenarbeit mit Canonical erstellte Basissystem erweitern, und einer Reihe von Snappy-Anwendungen, die direkt von Anbietern bereitgestellt werden. Wenn Sie ein Teil aktualisieren, müssen Sie nur die neue Version eines schreibgeschützten Bildes verwenden. Das Zurücksetzen auf eine frühere Version ist genauso einfach.
Quelle: http://www.ubuntu.com/cloud/snappy
Es gibt noch keine gute Dokumentation, die Frameworks beschreibt, vor allem, weil sie immer noch an den Grenzen eines Frameworks zu arbeiten scheinen. Hier ist ein Auszug aus ihrer Mailing-Liste, der zur Klärung beitragen könnte.
Ich experimentiere mit Frameworks, um das Snappy-Basissystem im Wesentlichen um Software und Services zu erweitern, die viele Snaps erfordern, aber aufgrund von Aktualisierungsproblemen und -größen nicht in jedem einzelnen Snap enthalten sein sollten. Das beste Beispiel, das ich dafür habe, ist die OpenSSL-Binärdatei. Viele Snaps benötigen dies, um Schlüssel und Zertifikate zu generieren und zu validieren.
Das andere Problem, das mit einem Framework gelöst werden muss, ist der Zugriff auf systemweite Ressourcen, insbesondere auf Ports. Beispielsweise würde ein Webserver-Framework anderen Snapps Möglichkeiten bieten, ihre Webdienst-API und Endpunkte über einen Reverse-Proxy in das Framework zu injizieren, in dem der Webserver ausgeführt wird.
Mir wurde im IRC gesagt, dass ich das Framework-Konzept missbrauche, aber diese beiden Probleme tauchen immer noch häufig auf meinem Schreibtisch auf.
Quelle: https://lists.ubuntu.com/archives/snappy-app-devel/2015-November/000442.html