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

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して複数の要求を処理する事は不可能なので、そういったプログラ
        • >kernel/fork.c あたりを読めば解るんでしょうけど、時間が…

          このへんの理解はマニュアルでもかなり得られますよ。
          man vfork してみて下さい。

          >vfork は fork が無くても、 clone を使って実現できる。

          vfork()ってのは、実行した親プロセスが子プロセスの終了まで
          停止するんです…。

          clone()の特殊な場合だと書かれていますが、要するに
          シングルタスクのMSDOSで、子プロセスを作ってるみたいな感じ。

          これは本来、fork()してすぐexec()するプログラムの
          パフォーマンスを上げるために用いていた手法です。

          Linuxのマニュアルを引けばわかりますが、
          この関数は「過去の亡霊」とまで言われています…。
          親コメント

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

処理中...