私はスナップの背後にあるアイデアが大好きで、UbuntuVMでそれを試してみました。
Snapcraftの概要
Snapcraftは、ソフトウェアをスナップとしてパッケージ化するのに役立つビルドおよびパッケージ化ツールです。
さまざまなソースからのコンポーネントを簡単に組み込み、テクノロジーやソリューションを構築できます。重要な概念Ubuntu Coreシステムの.snapパッケージには、すべての
依存関係が含まれています。これには、従来のdebまたは
rpmベースの依存関係処理に比べていくつかの利点があります。最も重要なのは、
開発者は、下のシステムの変更によって引き起こされるリグレッションがないことを常に保証できることです。
彼らのアプリ。Snapcraftを使用すると、snapcraft.yamlファイルでこれらの依存関係を「パーツ」として
指定できるため、これらの依存関係を簡単にバンドルできます。スナッピーSnappy Ubuntu Coreは、トランザクション更新を備えたUbuntuの新しいレンディションです。
今日のUbuntuと同じライブラリを備えた最小限のサーバーイメージですが、アプリケーションはよりシンプルなメカニズムで提供されます。SnappyアプリとUbuntuCore自体はアトミックにアップグレードでき、
必要に応じてロールバックできます。また、アプリはデータとシステムを保護するために
厳密に制限およびサンドボックス化されています。
IoT›アプリの構築
スナップベースのテクノロジーは何ですか?アーキテクチャとツールキットはどのように見えますか?スナップはLinuxカーネルの機能に依存しますか?
将来、macOSでも同じスナップパッケージを使用できるようになるかどうか疑問に思っているので、質問します。
最初のコメントの後の明確化:
macOSとUbuntuはバイナリ互換ではないことを私は知っています。再コンパイルが必要です。 Homebrewを使用したmacOSですでに利用可能なほとんどすべてのオープンソースがあります。開発者はmacOSで開発し、スナップが(将来)macOSで利用可能になるときにUbuntuにデプロイすることができます。
承認された回答:
はい、Linux syscallインターフェースの安定性のおかげで、これは可能です。
Linuxユーザーに対するLinusTorvaldsの大きな取り組みの1つは、カーネルが提供する一連のインターフェースが安定していることです。多くの人々は、これの価値、またはそのコミットメントを達成するためのオープンプロジェクトのリーダーとしての挑戦がいかに難しいかを理解していません。たとえば、GNOMEAPIの予測できない変更が対照的にどれほどあるかを考えてみてください。 Linusがメーリングリストで熱狂していると聞いたとき、それはほとんどの場合、カーネルの一部のコミッターが「より良いアイデアを持っていたため」そのようなインターフェースを変更することを決定したためです。 Linusによると、カーネル内で大幅に革新できるとのことですが、既存のsyscallに依存する「ユーザースペース」アプリを壊さないでください。
関連:Python 3.1にnumpyをインストールする方法は?その安定性の結果として、他のカーネルが同じsyscallを提供することが可能になり、Linux上に構築されたアプリがそれらの他のカーネル上で実行できるようになります。
その一例がJoyentTritonプロジェクトで、SmartOS(IllumOSの子孫、Solarisの子孫)のコンテナーでLinux互換のsyscallを提供します。
より広く知られている例は、Windowsの新しいLinuxサブシステムです。
もちろん、提供されているsyscallの数と、それらがバグに対してどの程度互換性があるかが本当の問題です。少なくとも今のところ、必要なすべてのsyscallが配置されている別の環境はありません。スナップが使用するものは比較的新しく、カーネルが管理するものについて考える方法が深いためです。
しかし、それらは確実に間に合うようになるので、スナップはさまざまな状況で使用できると思います。
これはとてもクールです、パッチは大歓迎です🙂