web-dev-qa-db-ja.com

スナップは他のUNIX(macOSの例)間で移植可能ですか?

スナップの背後にあるアイデアが大好きで、Ubuntu VMでそれを試しました。

Snapcraftの概要

Snapcraftは、ソフトウェアをスナップとしてパッケージ化するのに役立つビルドおよびパッケージ化ツールです。さまざまなソースのコンポーネントを簡単に組み込み、テクノロジーやソリューションを構築できます。キーコンセプト

Ubuntu Coreシステムの.snapパッケージには、すべての依存関係が含まれています。これには、従来のdebまたはrpmベースの依存関係処理に比べていくつかの利点があります。最も重要なのは、開発者がアプリの下のシステムへの変更によって引き起こされるリグレッションがないことを常に保証できることです。

Snapcraftは、snapcraft.yamlファイルで「パーツ」として指定できるようにすることで、これらの依存関係を簡単にバンドルします。スナッピー

Snappy Ubuntu Coreは、トランザクションアップデートを備えたUbuntuの新しいレンディションです。現在のUbuntuと同じライブラリを備えた最小限のサーバーイメージですが、アプリケーションはよりシンプルなメカニズムで提供されます。

SnappyアプリとUbuntu Core自体をアトミックにアップグレードし、必要に応じてロールバックできます。アプリは、データとシステムを保護するために厳しく制限され、サンドボックス化されています。

IoT›アプリの構築

スナップベースのテクノロジーは何ですか?アーキテクチャとツールキットはどのように見えますか?スナップはLinuxカーネル機能に依存していますか?

将来、macOSでも同じスナップパッケージを使用できるようになるかどうか疑問に思っているので、お願いします。

最初のコメントの後の明確化:

MacOSとUbuntuはバイナリ互換ではないことを知っています。再コンパイルが必要です。 Homebrew でmacOSに利用可能なほとんどすべてのオープンソースがあります。開発者はmacOSで開発し、snapが(将来)macOSで利用可能になるとUbuntuに展開できます。

10
Ivanov

はい、Linux syscallインターフェースの安定性のおかげで、これは可能です。

Linuxユーザーに対するLinus Torvaldsの大きなコミットメントの1つは、カーネルが提供する一連のインターフェイスが安定していることです。多くの人々は、この価値、またはそのコミットメントを達成するためのオープンプロジェクトのリーダーとしての挑戦がどれほど難しいかを評価していません。たとえば、GNOME APIの予測不可能な変更が対照的であることを考えてください! Linusがメーリングリストで激しくなっていると聞いたとき、それはほとんどの場合、カーネルのコミッターが「より良いアイデアを持っていたから」そのようなインターフェイスを変更することを決めたからです。 Linusによれば、カーネル内で大々的に革新することができますが、既存のシステムコールに依存する「ユーザースペース」アプリを壊さないでください。

その安定性の結果として、他のカーネルが同じsyscallを提供し、Linux上で構築されたアプリがそれらの他のカーネルで実行できるようにすることが可能です。

その一例は、SmartOS(IllumOSの子孫、Solarisの子孫)のコンテナでLinux互換のシステムコールを提供するJoyent Tritonプロジェクトです。

より広く知られている例は、新しい WindowsのLinuxサブシステム です。

もちろん、いくつのsyscallが提供され、それらがどの程度バグと互換性があるかが本当の問題です。少なくとも今のところ、スナップが使用するものは比較的新しく、カーネルが管理するものについて考える方法が深いため、必要なすべてのsyscallが配置されている別の環境はありません。

しかし、それらは時間内に確実に来るので、スナップは広範囲のコンテキストで使用できると思います。

これは非常にクールです、パッチは大歓迎です:)

19