パスワードを忘れた? アカウント作成
7348 story

Cooperative Linuxプロジェクト 30

ストーリー by wakatono
Linux-runs-on-everywhere 部門より

LKMLのメールによると、 Windows上で動くLinuxカーネルと、周辺のコマンドセットとかを組み合わせたdistroであるCooperative Linuxの開発が進んでいる。ちなみにスポンサーは産業技術総合研究所
現在、プロジェクトとしてリリースしているものはソースコードとビルド方法が記述されたドキュメント類。まずはこれらからなんとかしてくれということだろうが、非常に楽しそうだ。なお、現在Windows上でのビルドの方法が示されているが、ReactOS上へのポートも作業中のようだ(Project Home Pageより)。
類似のProjectであるUML for Win32がどうも進展ないだけに、こちらの方にも注目したい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2004年01月26日 22時14分 (#481497)
    トップページの適当な翻訳。誰かちゃんと直して。

    coLinuxとは何か

    ... "Linuxが全てのアーキテクチャ上で動作するなら、別のオペレーティングシステム上でも動作すべきでないか?"...

    Cooperative LinuxはMicorsoft Windows上でネイティブにLinuxを最適に実行できる最初の動作するフリーでオープン
    ソースな手法です。より一般的には、Cooperative Linux(略称coLinux)はLinux kernelの移植の一つで、一つのマシン上で
    別のオペレーティングシステムとともに協調的に動作するようにします。例えば、VMwareのような商用のPC仮想化ソフト
    なしに、Windows 2000/XP上でLinuxを自由に実行でき、汎用PC仮想化ソフトを使用するよりより効率的に実行できます。
    現在の状況は、KNOPPIX 日本語版をWindows上で実行できます(スクリーンショットを参照)。

    動作手法

    UML(や前述のVMware)等の他のLinux仮想化手法と異なり、ホストオペレーティングシステム上で特別なドライバソフトを
    使って、coLinux kernelを特権モードで実行します(リング0やスーパバイザモードとして知られている)

    ホストOSの状態とcoLinux kernelの状態間でマシンの状態を定期的に切り換えることにより、coLinuxは自身の特別に割り
    当てられたアドレス空間内で物理マシンのMMUの完全な制御(つまり、ページングや保護)を提供し、ネイティブカーネルの
    ように振る舞うことが可能で、同じマシンのスタンドアロン状態で実行する通常のLinuxから期待されるのとほぼ同じ
    性能や機能を獲得しています。

    coLinuxはユーザスペース実行可能プログラムにネイティブLinuxと同じバイナリフォーマットを使用しているので、
    coLinuxはホストOSと同時に既存の無改変のLinuxディストリビューションを読み込み、実行できます。

    ハードウェア仮想化

    ホストオペレーティングシステムとハードウェアを協同的に共有するために、coLinuxはI/Oデバイスを直接アクセスしません。
    代わりに、ホストOS内のcoLinuxドライバが提供するエミュレーションデバイスと接続します。例えば、Windows内の通常の
    ファイルがcoLinux内ではブロックデバイスとして使用できます。全ての実ハードウェア割り込みは透過的に透過的にホスト
    OSに送られ、そのため、ホストOSが実際のハードウェアを制御する方法は妨害されず、それゆえスムーズに実行を続けます。

    移植性

    User Mode Linuxと異なり、coLinuxは全てのLinuxプロセスに対して常にホストOSで単一のプロセスになり、ホストOSに実装
    されている方法とは独立した手法で、独自にスケジューリングやリソース、フォールトを管理します。実は、coLinuxは動作
    するためにホストOSカーネルから共通してエクスポートされるプリミティブの大変小さなセットのみ必要とし、それゆえ、
    SolarisやLinux自身など他のどのオペレーティングシステム下で動作するようにかなり簡単に移植できます。

    coLinuxはオープンソースWindowsクローンReactOS下で動作するよう移植されています。
    • ん、WinNTにおける Win32サブシステムのような感じで
      ReactOS上で linuxサブシステムを実装している... とは
      違うのかな。

      ReactOSカーネル上でカーネル? むむぅ..
    • つまり,ドライバに渡った制御を利用してLinuxカーネルを実行するイメージではないかな。
      (Winの)カーネルドライバとして実行されれば、特権モードで任意のコードを実行することが出来る=カーネルも動くしMMUも触れる、
  • by keita (844) on 2004年01月26日 19時36分 (#481359) 日記
    > 類似のProjectであるUML for Win32がどうも進展ないだけに、こちらの方にも注目したい。

    というか、 開発者のDan Aloni氏は元々 UML を cygwin に移植しようとしてた人みたいですね。 Development Team Members [colinux.org] の説明に書いてあります。

    最近 windows をさわる時間が長いので、こういう試みはとても楽しみです。
  • by magicME (10732) on 2004年01月26日 20時57分 (#481435)
    Cygwinや逆で言えばwineなどと同じようなものなのでしょうか?
    少しはググったのですが素人な私にはちょっと違いがわからなくて・・・
    無知を承知での質問ですが識者の方からお教え頂ければと思います。

    (質問の方向性からしてぜんぜんはずれてたらゴメン)
    • by Anonymous Coward on 2004年01月26日 21時34分 (#481467)
      Cygwin = Windows上に用意した変換DLL (cygwin1.dll) を通して Linux API (主に POSIX) を間接的に利用できるように目指しているもの。
      coLinux = Windows上に用意したデバイスドライバを利用して Linux カーネル自身をエミュレーションするもの。
      VMware/bochs = x86環境そのものをエミュレーションするもの。
      wine = Windows API をエミュレーションするもの。
      ということになります(coLinuxだけはドキュメントからの情報)。

      Cygwinはソースコードレベルでの互換性しかなく、ネイティブLinuxでコンパイルされたバイナリは動作できないのに対して、coLinuxは同一のバイナリが動作するとのことです。
      また、VMware/bochs はx86環境そのものをエミュレーションするため何らかの方法でインストラクションコードを変換する必要がありますが、coLinux は単にLinuxのAPIとシステムコールをエミュレーションするだけのようです。

      あくまでも推測ですので間違ってたら修正お願いします。
      親コメント
      • by Anonymous Coward on 2004年01月26日 21時51分 (#481477)
        VMwareは基本的にネイティブCPUをそのまま使ってコードを実行します。
        bochsはCPUもエミュレートします。
        親コメント
      • by Anonymous Coward on 2004年01月27日 0時52分 (#481609)
        #481467> Cygwin = Windows上に用意した変換DLL (cygwin1.dll) を通して Linux API (POSIX) を間接的に利用できるように目指しているもの。

        「Linux API を利用できるようにする」という言い方だと *BSD の Linux Emulation のような実装を指すのではないでしょうか。

        まだ「POSIX 風 API を間接的に利用できるようにする」といったほうが良いかと思います。
        (Windows と UNIX の機能の差から、POSIX で規定されているいくつかの関数がかつての Cygwin では実装できてなかった記憶があります)

        比較的近い実装は Services for UNIX 2.0 についてきた MKS Toolkit だと思います。
        (SFU 3.0 の Interix サブシステムは Windows NT Micro Kernel のフェイスとして実装されているので、ちょっと違うでしょう。Interix サブシステムと同じような実装で Linux API を直接解釈できるサブシステムを作ることができると思いますが、かなり実現は難しいと思います)

        親コメント
        • ええと、LINE [sourceforge.net]とはどう違うのでしょう?
          • LINEはアプリケーションレベルのLinux API(システムコール)エミュレータだと思います。

            #481467の例にならってまとめるとこんな感じになるのでしょうか。
            (一応、より低いレベルでエミュレーションを行っているものから順に並べたつもりです)

            • VMware/bochs
              アプリケーションレベル(user mode)でPCそのもののエミュレーションをおこなう。
              (VMwareでは安全なコードをそのままCPUに実行させて速度を稼いでいるが、bochsはCPUのエミュレーションも行っているため遅い)
              要、ゲストOS。
              VMware/bochs上で動いているプログラムはホストOS(Windows)上から個別に認識できない(←あたりまえ)。
  • by yosshy (3545) on 2004年01月26日 23時40分 (#481557) 日記
    Service for UNIX が無料になった [srad.jp]のは、これが原因か…?
  • by Anonymous Coward on 2004年01月26日 19時07分 (#481327)
    aistがスポンサーになっているというのは
    webにも書いてあったんだけど
    どういう風なスポンサーなのか書いてないなぁ..

    そして、どういう風な経緯で英語圏の人が
    わざわざ日本語版のKnoppixをベースにやることになったんだろ?
    ひょっとして、aistの研究員の人?
  • by Anonymous Coward on 2004年01月26日 20時00分 (#481385)
    経済産業研究所
    産業技術総合研究所
    他にも似たようなものってあるのかな?
  • by Anonymous Coward on 2004年01月26日 21時49分 (#481475)
    希望。KDEがまともな速度で動作しますか?
    • Re:レポート (スコア:2, 参考になる)

      by keita (844) on 2004年01月26日 22時30分 (#481514) 日記
      doc/building を読んでカーネルを作成しようと思ったんですが、そのドキュメントに出てくる conf/kernel-config というファイルがなくって困ってます。
      make oldconfig して適当に設定して make してみたんですが、make dep でエラーになって先に進めません。
      そんなわけで現在私はとりあえずここで詰まってます。

      うーん、やっぱりドキュメントが早く充実して欲しいものです。
      親コメント
      • by Anonymous Coward
        make menuconfig でそれなりにお茶を濁して保存して
        make vmlinux じゃ駄目ですか?

        by な@ac
        • by Anonymous Coward
          適当なことを書いてないでダウンロードしてやってみました。

          同じく駄目でした。

          by な@ac
      • by Anonymous Coward
        公開されているtarballには問題があって
        次のリリースから可能になるらしい。

        次のリリースって事は、
        tarballを作る時の失敗じゃなくて、致命的な何かがあったんでしょうね。

        ---
        by な@ac
        • by Anonymous Coward
          バイナリがリリースされたのでインストールしてみました。
          起動時にread onlyでfsckを促されたままプロンプトが出て
          そのまま動いてはいますが...。コマンド打てば結果が返って
          はきますし。

          NTFSなCドライブにdebian 1gbのイメージを置いたのがいけない
          のでしょうか NTFSへの書き込みはlinuxのサポート外?
          • by Anonymous Coward
            自己レスです。NTFSなCドライブでも書き込みできました。 /をrwでremountしてスクリプト rootcheck.shを 設定しなおせばOKでした。 ネットワークはまだ未設定ですが....。
    • by Anonymous Coward

      X ServerみたいなものはWin32ネイティヴで走らせてもよろしかと。 スクリーンショット例ではCygwinのXFree86使ってたけど。

      # AstecX使おうと思い立ったときはいつも試用版どまりだったのでAC

  • by Anonymous Coward on 2004年01月26日 22時02分 (#481488)
    本家 [slashdot.org]
typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...