Service」が発表されました。今回はこのサービスの使い方と仕組みについて紹介します。Service」は,カーネルを再起動することなくセキュリティフィックスを適用するサービスです。サービスそのものの概要はTopicsを参照してください。LTSから有効化されたCONFIG_LIVEPATCHを使っています。カーネルのLivepatch機能とサービス側の都合により,このサービスを利用するにはいくつかの制約が存在します。Serviceのクライアントをsnapパッケージとして提供しているためです。このクライアントは,デーモンとして常駐し必要に応じてサーバーからパッチモジュールをダウンロードした上で,カーネルに取り込みます。Advantageの機能であり,システム管理ツールでもあるLandscapeの一部として提供されます。そのためクライアントのソースコードは公開されていません。Serviceから提供するカーネルモジュールのソースコード自体は公開されています。そのため,本サービスを使用しなくても個人のマシンで同等の機能を実現することは可能です(※1⁠)⁠。※1もちろんテストの量や安定性を考えると,サービスを利用したほうが安全です。Advantageを購入して少しでもCanonicalの懐を潤していただければ,Canonicalの開発リソースが増え,その結果としてコミュニティ側にも恩恵があるはずです。Serviceとは関係なく提供されます。upgrade」の組み合わせで最新のカーネルがインストールされますので,再起動してそのカーネルに切り替えてください。Serviceはあくまで,再起動することなくセキュリティパッチを適用できるというサービスです(※2⁠)⁠。※2Livepatchを利用できないパッチも存在しえます。カーネル以外のパッケージの更新によって再起動を要求する場合もあります。このためパッケージの更新時にまったく再起動が不要になるというわけではありません。Serviceをそのまま使ってみましょう。Advantageを購入しなくても利用できます。Serviceのサイトから,利用トークンを入手しておいてください。トークンが表示されるので控えておく次にsnapコマンドを使ってクライアントをインストールします。LTSから標準でインストールされるようになった,新しいパッケージフォーマットであるsnapを管理するためのコマンドです。snapフォーマットは,必要なソフトウェアをすべてそのパッケージに固めて提供するタイプのフォーマットであり,強制アクセス制御とシステムから独立したファイルツリーによるセキュリティ機構や,最近では言語ごとに存在するパッケージングシステムを流用しやすいパッケージングツールなどが特徴です。同様のアプリケーション配布システムとしてはFlatpakやAppImageが存在するものの,どちらかというとCoreOSやRHELのAtomicに近い仕組みを採用しています。snapでは最小限のルートファイルシステムをubuntu-coreとしてインストールします。個々のsnapパッケージはこのubuntu-coreの上にかぶせる形でルートファイルシステムを構築し,個々のコマンドを実行することになります。snapパッケージはすべて/snapディレクトリ以下に保存されます。livepatchcanonical-livepatchをインストールすると,canonical-livepatchdが立ち上がります。canonical-livepatchコマンドを使ってこのデーモンと通信することになります。ちなみに,どちらのコマンドもGo言語で作られているようです。