パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

iPodでLinux」記事へのコメント

  • 対応機種の多さを誇るNetBSDですが、あれはそもそも、MMUによる
    メモリ保護(プロテクトモード)のないCPUで動くようなものなんでしょうか。

    # というか、多分動かない(W
    # H8マイコンでも動かせるLinuxはあるが、NetBSDは無いでしょ。
    # SH-2 以下で動くNetBSDも聞いた事がない。

    μCLinuxってのは基本的にfork()(プロセス)じゃなくて、clone()(スレッド)だけで
    プログラムを並列動作させています。
    (だからサーバとかのプログラムは多くの場合、書き換え必須)

    プロセスを廃し、全部スレッドで扱うから、MMUがなくても大丈夫、
    全て共有メモ
    • uClinux H8/300版をハックしてます。
      なんか誤解がある様なので。

      >μCLinuxってのは基本的にfork()(プロセス)じゃなくて、clone()(スレッド)だけで
      >プログラムを並列動作させています。
      >(だからサーバとかのプログラムは多くの場合、書き換え必須)
      >
      >プロセスを廃し、全部スレッドで扱うから、MMUがなくても大丈夫、
      >全て共有メモリ空間で動くから問題ないというシロモノだったはず。
      >要するに、アドレス変換&メモリ保護の機能がないので…。

      プロセスもちゃんとあります。
      親子が同じメモリ空間を共有する事は出来ないのでvforkしか実装されていま
      • よく理解できていないので、教えてください。

        fork は MMU が無いと きちんと実現できない、
        vfork は fork が無くても、 clone を使って実現できる。

        だから

        > 「μCLinuxは本家のLinuxともかなり動作が違っていて特殊である」

        > forkして複数の要求を処理する事は不可能なので、そういったプログラ
        • by Anonymous Coward on 2003年02月05日 17時06分 (#251672)
          細工すれば、MMU がなくても fork できます。

          しかしながら、MMU がないマシンで fork しようと思うと、
          すべてのアドレスをリロケート可能な形で保持する必要があるので、
          コンパイラのサポートが必要になります。

          # データポインタが動的にリロケートされるので、
          # PIC 程度では足りません。
          # デマンドページングなんて贅沢なことは言わないので、
          # 原始的な MMU でもあれば違うんですけどね。
          # (セグメントレジスタ程度でよい)

          vfork の場合、子が execve するまでは親の動作がブロックするので、
          その隙に子がすぐに execve してしまえば、そこで新しいメモリマップが
          生成されるため、静的なリロケーションか PIC で十分です。

          ただ、vfork を用意するくらいなら、最初から spawn システムコールを
          用意したほうがよい、という話もあります。
          親コメント

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...