アカウント名:
パスワード:
いろんなレイヤでの仮想化がありましたが、Cooperative Linux が近いんですかねVMwareCygwinMinGWBSD on Windows
・・・
個人的な理解ではcoLinux:Linux カーネルを Windows アプリとして動かすVMware:パソコン(PC/AT)のエミュレーションCygwin:Windows 用にコンパイルされた unix ツール群MinGW:シェル(bash)の移植。ターミナル含むBSD on Windows:こっちは良く知らないxen:ユーザランドで linux カーネルを動かす。カーネルサポートが必要って感じ。coLinux や xen は PC 丸ごとエミュでないので、非常に軽い。
今回の話だと「LinuxのシステムコールをリアルタイムにWindowsのシステムコールに変換する技術」だそうなので、バイナリ互換を目指しているのかも。と、すると上記のどれとも違う。
でも、ELF バイナリを動かすなら、単に Win32 API に Linux のシステムコールの皮をかぶせるだけでも十分な気もする。その方が開発も簡単だろうし。単にシェルやツール群が欲しいだけなら、すでに bash なんかはあるワケで。うーん。狙いがイマイチわからない。
むしろ、docker が windows 上で動くようになった(VirtualBox 不要)ってニュースの方がインパクトあるかも。(うろ覚え)
で、本題coLinux は 64 ビット化がうまく行かなくて停滞してしまったけど、Windwos 上で動くLinux 環境としてはベストの部類って評価は変わらない。とにかく軽い。本物の unix であり、Windows とのファイル共有もあったから、Linux 側のツールでWindows 上のファイルを処理するなんてことも簡単にできた。ネットワークだって 80 番と 22 番辺りがつながればたいていの開発で不自由はしないだろう。
仮に、だけど、ネットワークのデバイスドライバを後回しにして、qemu の様な nat だけでリリースするとかしてたら、今でも生きていたんだろうなぁ。
いや、今でもちゃんと動くけどね。Linux カーネルの API の範囲で動いているのだから。
BSD on WindowsはBSDのシステムコールをWindowsとDOSのシステムコールにリアルタイムで変換するものだったよ。
BOWはリアルタイムの変換というよりも単なるシステムコールのフック。
具体的にはBOW自身がシステムコールで使われるソフトウェア割り込み(int 80h)の割り込みベクタをフック。BSDのバイナリ実行時にcd 80でシステムコールが呼ばれると割り込み処理側でeaxに設定したファンクション番号に合わせて分岐という形。
そのフック関数の処理のことを「リアルタイムで変換」って一部メディアが表現してるんだよ。はっきり言って表現が悪いと思う。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
Cooperative Linux (スコア:2)
いろんなレイヤでの仮想化がありましたが、
Cooperative Linux が近いんですかね
VMware
Cygwin
MinGW
BSD on Windows
・・・
Re:Cooperative Linux (スコア:0)
個人的な理解では
coLinux:Linux カーネルを Windows アプリとして動かす
VMware:パソコン(PC/AT)のエミュレーション
Cygwin:Windows 用にコンパイルされた unix ツール群
MinGW:シェル(bash)の移植。ターミナル含む
BSD on Windows:こっちは良く知らない
xen:ユーザランドで linux カーネルを動かす。カーネルサポートが必要
って感じ。coLinux や xen は PC 丸ごとエミュでないので、非常に軽い。
今回の話だと「LinuxのシステムコールをリアルタイムにWindowsのシステムコールに変換する技術」
だそうなので、バイナリ互換を目指しているのかも。と、すると上記のどれとも違う。
でも、ELF バイナリを動かすなら、単に Win32 API に Linux のシステムコールの皮をかぶせるだけでも十分な気もする。
その方が開発も簡単だろうし。
単にシェルやツール群が欲しいだけなら、すでに bash なんかはあるワケで。
うーん。狙いがイマイチわからない。
むしろ、docker が windows 上で動くようになった(VirtualBox 不要)ってニュースの方がインパクトあるかも。
(うろ覚え)
で、本題
coLinux は 64 ビット化がうまく行かなくて停滞してしまったけど、Windwos 上で動く
Linux 環境としてはベストの部類って評価は変わらない。とにかく軽い。
本物の unix であり、Windows とのファイル共有もあったから、Linux 側のツールで
Windows 上のファイルを処理するなんてことも簡単にできた。
ネットワークだって 80 番と 22 番辺りがつながればたいていの開発で不自由はしないだろう。
仮に、だけど、ネットワークのデバイスドライバを後回しにして、
qemu の様な nat だけでリリースするとかしてたら、今でも生きていたんだろうなぁ。
いや、今でもちゃんと動くけどね。Linux カーネルの API の範囲で動いているのだから。
Re: (スコア:0)
BSD on WindowsはBSDのシステムコールをWindowsとDOSのシステムコールにリアルタイムで変換するものだったよ。
Re: (スコア:0)
BOWはリアルタイムの変換というよりも単なるシステムコールのフック。
具体的にはBOW自身がシステムコールで使われるソフトウェア割り込み(int 80h)の割り込みベクタをフック。
BSDのバイナリ実行時にcd 80でシステムコールが呼ばれると割り込み処理側でeaxに設定したファンクション番号に合わせて分岐という形。
Re: (スコア:0)
そのフック関数の処理のことを「リアルタイムで変換」って一部メディアが表現してるんだよ。はっきり言って表現が悪いと思う。