Ubuntu on Windows

今MS社のプロジェクトがLinux界に大注目を
浴びています。

MS社が今年3月に発表したWSLです。
Windows Subsystem for Linux・・・
簡単に言うとWindows10上でLinuxを
動かしてしまう機能を搭載!?

別名がUbuntu on Windows であり、
一番人気のUbuntuにターゲットを絞って
いますが、カーネルレベルの機能なので
このポストでは単にLinuxとします。

眉に唾のお話であろうと、たいして気にも
止めていなかったのですが、なんと4月には
Windows10 Insider Preview(開発版)に
機能が搭載されてしまいました。
(自身でお試しはしません。@他力本願)

どぉせVirtualBoxみたいな仮想マシーン機能を
最初から搭載するくらいに思っていたのですが、
実際にはCygwinなどが採用しているSFU/SFAに
近いものでありました。

そして某Linux専門誌の7月号に特集が組まれ、
拙生クラス程度のLinux使いにも理解できるような
解説が記載されました。

要約すると

CygwinのようなSFU/SFAに近いものがあっても
決定的に違うところがある。
CygwinはLinuxコマンドをWindows用に移植する
ために、POSIXという規格に準拠したシステム
コールを使用するが、ライブラリやアプリは
Cygwin用に別途ビルドする必要がある。
Win32サブシステムのユーザーモードで稼働。

それに対しWSLはWindowsのシステムコールを
Linux用に変換するだけというシンプスなもの。
(.sysなのでデバイスドライバの一種らしい)
またLinux環境にはコンテナー技術として開発された
Drawbridgeを採用している。

*記事中にないDrawbridgeの説明を拙生流に解説

WindowsOSにおけるDrawbridgeとは、カーネルから
Win32k.sysを省いたコンテナ(ピコプロセス)により
最小限のWindowsOS(ライブラリOS)とします。
ただし省かれたWin32k.sysはアプリ側で持たなくては
なりませんけど。
これをLinux環境に採用し、Windows資源を使わずに
Linux独自のピコプロセスで稼働させるというように
解釈しております。

ついでに流れの解説も拙生流で

Windows10でLinuxアプリを起動させると、Linux環境の
ピコプロセスが呼びだされ、Windowsとは別物で稼働
してしまうので、その時点ではお互いのプロセスが
見えないのですが、LXcore/LXSSという機能がお互いの
プロセスを仲介してWSLが機能します。

結論
Linux上でWindows環境を作り出すWineの
逆バージョンであることが判明したわけです。
LinuxはWindowsと違いオープンソースなので
Wndows側が本気になればWineのような苦労を
せずともより優れたものができるはずです。
今の時点では大したことはできないし、不具合も
多いようですが、本チャンがリリースされるまで
どこまでブラッシュアップされるのか大注目です。

サワリだけ書きましたが進展や今後の状況など
随時ポストしてゆきます。

HOME

おすすめ