「Linux/OSS」カテゴリーアーカイブ

Azure Sphere IoTデバイス向けの総合的なセキュリティソリューション

情報源: Microsoft introduces Azure Sphere to enable highly secured IoT devices – MSPoweruser

RSAカンファレンスでMicrosoftがIoTのエッジデバイス向けの総合的なセキュリティソリューションとしてAzure Sphereを発表しました。

Azure Sphereは大きく以下の3つの要素から構成されていおり、専用のMCU(マクロコントロールユニット, ようはSoCチップ)と専用OS、AzureとMicrosoft 365に依存しています。IoTのエッジデバイスにこのMCUとOSを搭載する事でAzure, Microsoft 365をベースとしたIoTエッジデバイス向けの総合的なセキュリティ管理のプラットフォームを得ることができます。

Azure Sphere certified microcontrollers (MCUs)

マイクロソフトのセキュリティ技術と接続性を備えたリアルタイムプロセッサとアプリケーションプロセッサの両方を組み合わせた新しいクロスオーバークラスのMCUです。 各チップには、この新しいクラスのMCUとそのPowerを確保するために、Xboxの15年の経験と学習からインスパイアされたマイクロソフトのカスタムシリコンセキュリティテクノロジが含まれています。

Azure Sphere OS

このOSは、卓越したセキュリティと俊敏性を提供する目的で構築されています。 今日のMCUに共通するRTOSとは異なり、当社の多層防御IoT OSは複数のセキュリティ層を提供します。 Windowsで開発されたセキュリティ革新、セキュリティモニター、カスタムLinuxカーネルを組み合わせて、高度に保護されたソフトウェア環境と新しいIoTエクスペリエンスのための信頼できるプラットフォームを構築します。

Windows IoTのフットプリントの大きさから、搭載できるレベルのMCUに制限があった事から、より小さいパワーの無いMCUでも動作できるように新しいOSが開発された物と思われます。台湾のMediaTekは1チップ$10以下でこのMCUが提供できると考えているようです。(ただ個人的にはそれでも高いと思う)

Azure Sphere Security Service

すべてのAzure Sphereデバイスを保護するターンキーのクラウドサービス。 証明書ベースの認証によるデバイス間およびデバイス間の信頼関係の仲介、オンライン障害報告によるAzure Sphereエコシステム全体の新たなセキュリティ脅威の検出、ソフトウェア更新によるセキュリティの更新などが含まれます。 これは、マイクロソフトが何十年にもわたり、自社のデバイスとデータをクラウドからMCU搭載のデバイスに保護するという実績に裏付けされた厳密さとスケールをもたらします。

感想

MSはIoTに関してよりパワーのあるデバイスであるIoTゲートウェイを経由して、このAzure Shprerが対象とするようなデバイスアクセスのシナリオをAzureで提供してきましたが、今回はより踏み込んで本当のIoTデバイスを直接クラウドにつなげるとともにそれへのセキュリティと管理のための機能を提供する事にしたようです。ただ、MCUのコストが$10程度と言う事なので、IoTデバイスと言っても最終製品の単価が数百ドル以上の製品に限られてくると考えられます。また、メーカーサイドやソリューション提供側としてもセキュリティ・管理ソリューションの使用コストをどう回収するか、ビジネスモデルとしては難しい戦略が必要になります。

WSLへのLinuxディストリビューションのパッケージングとサイドローディングによるインストール

情報源: Open Sourcing a WSL Sample for Linux Distribution Maintainers and Sideloading Custom Linux Distributions – Windows Command Line Tools For Developers

サイドローディングと言う用語

Windows 10では基本的にMicrosoftストアストア経由でUWPアプリとしてLinuxディストリビューションをWSLにインストールしますが、Microsoftストアを経由せずにUWPアプリとしてパッケージングされたLinuxディストリビューションをWSLにインストールする事をサイドローディングとして呼称しています。

Linuxディストリビューションメンテナ向けのWSLサンプル

GitHubにてLinuxディストリビューションメンテナ向けのWSLディストリパッケージのサンプルが公開されています。

https://github.com/Microsoft/WSL-DistroLauncher

このサンプルを元にする事で、ディストリビューションメンテナがMicrostore用のWSLディストリパッケージを作成し、ソフトウェア開発者がサイドロード用のカスタムLinuxディストリビューションを作成する事ができます。

多くのLinuxディストリビューションはオープンソースソフトウェアに完全に依存していることがわかっているので、WSLをOSSコミュニティに近づけたいとMSは考えています。このプロジェクトをオープンソース化することでコミュニティの関与を促進し、お気に入りのディストリビューションをMicrosoft StoreにもたらすことをMicrosoftとしては願っているようです。

ライセンスはMIT。

カスタムLinuxディストリビューションパッケージのサイドロード

カスタムLinuxディストリビューションをパーソナルマシン上でサイドロードするアプリケーションとして作成することができます。配布管理者として提出しない限り、カスタムパッケージはMicrosoft Storeを通じて配布されませんのでご注意が必要です。

マシンをサイドロードするようにマシンを設定するには、 設定アプリの「開発者向け」の設定で、開発者モードを選択するかアプリのサイドローディングを選択します。

Linux ディストロメンテナの場合

作成したディストロパッケージをストアに提出するには、Microsoftと協力して出版承認を受ける必要があります。あなたが作成したディストリビューションをMicrosoft Storeに追加することに関心があるLinuxディストリビューターの場合は、wslpartners@microsoft.comまでご連絡して欲しいとの事です。

フィードバック

GitHubのissueを使用するほかに、#WSLのハッシュタグを付けて @tara_msftと@benhillisに、カスタムで作成したWSL向けディストリパッケージの使用方法や使用理由をフィードバックして欲しいとの事。

感想

MSから声がかかっていないディストリビューションの方々はどうやってWSL向けにパッケージングするんだという感じでしたが、一応これで自分たちでパッケージングする道が一応開けた事になります。ユーザーにサイドロードしてもらう事でMSストアを経由しない配布も事実上可能になりました。自力で何とかしてしまっている猛者がいる事は処置していますが、より多くのユーザーの手に届けるにはUWPとしてパッケージ化して、できればストアから配布されるのようにするのが良いと思います。

Debian GNU/LinuxがWSLにやって来る!ヤァ!ヤァ!ヤァ!

情報源: Debian GNU/Linux for WSL now available in the Windows Store – Windows Command Line Tools For Developers

全国のDebianファンの皆様おまっとさんでした。WSLにDebianが来ます!

他のディストリビューションと同じくWindowsストアからのインストールになりますが、まだ日本のStoreからのインストールは出来ないのですが、近いうちにやってくる物と思われます。

という事で、Fedoraは?ねぇFedoraは?

8:13:

ストアにDebianが来ていました。

WSLのディストリビューションとしてKali Linuxが選択可能に

情報源: Kali Linux for WSL now available in the Windows Store – Windows Command Line Tools For Developers

WSLのディストリビューションとしてKali Linuxが選択可能になりました。Ubuntu等と同様にストアよりインストールします。

ま、それは良いのですが、ねぇFedoraは?Fedoraはいつ来るんでしょうか。。。

PowerShell Core 6.0: Generally Available (GA) and Supported!

Automating the world one-liner at a time…

情報源: PowerShell Core 6.0: Generally Available (GA) and Supported! | PowerShell Team Blog

LinuxやMacでも使用できるようになったPowerShell 6.0(PowerShell Core)がGAしました。

入手方法等の詳細につきましては上情報源をご確認ください。

Installing PowerShell Core on Windows

Package installation instructions

大抵のLinuxディストリビューションではパッケージマネージャによるインストール・パッケージ管理が可能になっているようです。(msiダウンロードしろって言うWindowsより親切なんじゃ…)

それにしても誰なんです?この謎キャラ。

Windows Subsystem for Linuxでの複数ディストリビューションの管理

Reference listing and configuring multiple Linux distributions running on the Windows Subsystem for Linux.

情報源: Manage Linux Distributions

上に書いてあるとおりです。

Windows 10 Fall Creators Update(RS3)よりWindows Subsystem for Linuxで複数ディストリビューションを同時実行できるようになり、それに伴いディストリビューション管理用のコマンドが追加されているほか、コマンドが新しくなっています。

機能的には上にあるようにインストールされているディストリビューションの一覧、既定のディストリビューションの設定、登録されているディストリビューションの解除が行えます。

このようにディストリビューション名と既定(Default)であるかどうかが表示されます。

既定とそうでは無いものとの違いは、既定となっているディストリビューションはwsl.exe(従来のbash.exeに変わる物)もしくはbash.exe(将来的になくなる可能性有り)コマンドで呼び出されるディストリビューションとなります。また、既定でないディストリビューションを呼び出す場合には、ストタートメニューから該当するディストリビューションのアイコンをクリックするか、上のwslconfig /lコマンドで表示されるディストリビューション名をコマンドプロンプトもしくはPowerShellから起動します。

また、wsl.exeとディストリビューション名で呼び出したときの細かな違いとしては、wsl.exeの場合ログイン時のフォルダがWindows側のユーザーフォルダ(/mnt/(systemdrive)/users/(username))であるのに対して、ディストリビューション名で呼び出した場合には、Unixファイルシステム側のHOMEディレクトリ(~)になります。ただこのあたりの動作も今後RS4に向けて仕様が変わらないとも限りません。ユーザーフィードバック次第だと思います。

ということで、RS3以降追加されたコマンドや挙動もそれなりに変わっているので、上情報源等MSDNのドキュメントを今一度ご確認ください。また、リリースノート、開発陣のBlogを追いかけておくことも大事です。

リリースノート https://msdn.microsoft.com/ja-jp/commandline/wsl/release-notes

Windows Command Line Tools For DevelopersのBlog https://blogs.msdn.microsoft.com/commandline/

Windows Subsystem for LinuxチームのBlog https://blogs.msdn.microsoft.com/wsl/

混ぜるな危険 (msys2とCygwinとGit For Windowsを一緒に使ってはいけません)

まぁ上に書いたとおりです。今まで機会があるたびにお話しさせていただいていたりするのですが、いまだに1つの環境にGit for WindowsとMsys2/MnGW、もしくはGit for WindowsとCygwin、もしくはそれらの全部をインストールして環境が動かなくなった発言をtwitter他で見掛けますが、これらの環境を混在させない方が無難ですというか、混ぜるな危険です。

Msys2はCygwinからForkされた環境なので、ランタイムの内容がCygwinとは違います。Git For Windowsのツール類はMsys2のランタイム上で動いていますが、このGit For Windowsに付属しているMysy2ランタイムはGit For Windows用のMsys2ランタイムなので、本家のMsys2のランタイムとはソースレベルで異なります。つまりこれらの環境にはそれぞれ互換性が無いので同居させない方が良いし、ましてや全部の環境に対してPATHを通すようなことは絶対にしてはいけません。動かなくなります。

基本的に、Windows上で何らかのUnix互換環境が欲しい場合にはCygwinもしくはMsys2を選択し、GitもGit For Windowsではなく、それぞれの環境で用意されたGitの実行ファイルを使用してください。

どうしても混在させたい場合には、それぞれの環境を全部PATHに追加するようなことはしないで、個別の環境用の起動BATファイルなど用意し、PATHの中に複数の環境が混在しないような形で使用しましょう。

同様の理由でGit For Windows SDKの環境を直接PATHに追加することもおすすめしません。

また、Ruby On Railsの開発環境構築などで、RubyのToolkitをインストールすると、古いmsysのツールがインストールされ、PATHが追加されてしまう場合があるので、この場合にもGit For WindowsとRails開発環境のToolkitのPATHが混在しないように起動BATファイルで工夫するなどの処理が必要です。

以上で「お前は何を言っているんだ?」という感じで内容がわからない人は、Windows上にUnix互換環境を作るのは諦めていただいて、素直に仮想マシンにお気に入りのLinuxディストリビューションをインストールしていただくか、Windows Subsystem For Linuxをお使いください。

もう一度大事なことで書きますが、混ぜるな危険 (msys2とCygwinとGit For Windowsを一緒に使ってはいけません)