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

すべてアセンブリ言語で書かれたMenuetOS、ついにバージョン1.0となる」記事へのコメント

  • by Anonymous Coward on 2015年05月17日 13時09分 (#2815688)

    何か理由があってアセンブリ言語にこだわっているのか? プロセッサの処理能力もメモリもジャブジャブ有り余っていて、昔と比べてコンパイラも飛躍的に性能が良くなったのに..........

    • by Anonymous Coward on 2015年05月17日 13時18分 (#2815692)

      電力とか容積をジャブジャブ使えない環境を想定してるから

      親コメント
      • by Anonymous Coward

        アセンブリ言語ってことはX86のIA32とIA64が前提ですよね。
        Intel EdisonでGUI環境構築するとかがターゲットになる…のかな?
        ARMとかに移植可能な状態なら大量に出てるARMのPSoC組み込みで使えるけど、
        X86な組み込みってそこまでバリエーション無かったと思うんだよなぁ…

        古いPCでも近代的な機能が使えて軽いとかならメリットあるけど、
        Windowsとかと互換性ないと近代的な機能が使えるうちに入るか微妙だしうーん

      • by Anonymous Coward

        いやそれ、さんざん言われている幻想だから…。
        今時の、pipeliningやout-of-orderバリバリのプロセッサのアセンブリ言語で、コンパイラより効率の良いコードを書くなんて無理よ。
        今でも、ごく小さいコードについて人間が最適化するケースはあるけど、OS全体を手書きのアセンブラで書いて、コンパイラに勝つなんてありえない。
        コードサイズについても、コンパイルの設定で、余分なランタイムを一切使わないバイナリを生成することだってできるし、その場合手書きコードと比べて劣る点は一切ない。
        コードサイズについては、LinuxがCで書かれていることからも明らかでしょ。

        • by Anonymous Coward on 2015年05月18日 5時43分 (#2815963)

          LinuxがCで書かれてるのはコードサイズが小さいからじゃない。
          生産性とかパフォーマンスとか学習効率とかその他もろもろのバランスが良いから。
          参加者全員の知識とスキルが十分に高くて、時間が無限にあるならフルアセンブラで書かれてる。

          # 今時アセンブラでバリバリ最適化する人はコンパイラが吐く最適化済みのコードとか
          # コンパイラの最適化部分のソースとかも読んだ上で最適化を考えてるのでコンパイラに負ける事はない

          親コメント
          • by Anonymous Coward

            # 今時アセンブラでバリバリ最適化する人はコンパイラが吐く最適化済みのコードとか
            # コンパイラの最適化部分のソースとかも読んだ上で最適化を考えてるのでコンパイラに負ける事はない

            これ。人間はコンパイラの吐いたコードを参考にするが、逆はない。

          • by Anonymous Coward

            ああ、これ見てこの変な流れの理由が分かった気がする。
            元コメの人、とにかくアセンブラで書くだけで早くなるんだ!
            みたいな、汎用機上がりのおっさんにでも出会って、
            それがアセンブラ使いの全てと思い込んじゃってるんじゃないか?

            # 知識をアップデートしてないって時点で、自分が馬鹿にしてるアセンブラ使いと同じレベルなんだけど。

        • by Anonymous Coward

          手書きアセンブラの方が速いとか言っている人は、絶対に今どきのアセンブラの最適化をやったことがないよね。
          今どきのCPUの最適化って、ループのμopの数を数えて命令キャッシュに入るか確かめるとか、
          ALUの表を作ってパイプラインストールがないかチェックするとか、「こんなことはコンピュータがやれよ」と思うような作業ばっかりなんだけど、
          こういう人たちは、優秀なハッカーなら、映画かアニメみたいにすらすら完璧なコードを書けると思ってるんだろう。

          • by Anonymous Coward

            SSE/AVXのレジスタの割り当てとか、人間がやるほうが効率が良い場合もあるよ。
            SSE/AVXのロード・ストア命令もCPUによって最適な命令が違ったりするけどコンパイラはそんなこと考慮にしてくれないしね。

            • by Anonymous Coward

              元コメとは違うACだけど、

              元コメAC氏は「今でも、ごく小さいコードについて人間が最適化するケースはあるけど」とそういった事例は認めた上で、
              「OS全体を手書きのアセンブラで書いて、コンパイラに勝つなんてありえない。」と述べてるんですよ。

              • by Anonymous Coward

                「コードサイズについても、コンパイルの設定で、余分なランタイムを一切使わないバイナリを生成することだってできるし、その場合手書きコードと比べて劣る点は一切ない。」とも言ってますね。

              • by Anonymous Coward

                > 「OS全体を手書きのアセンブラで書いて、コンパイラに勝つなんてありえない。」
                人間のやる事ですから、なんでもあり。 その人のレベルによる。
                 
                アセンブラの方が早いって、Cからアセンブラしたけど、最適化がなくなった分、遅くなったとか。
                それをCに戻して、早くした事もあるし。
                 
                確かに、OS全体は今時、ありえないって思うが、世の中、化け物もいるって事。

              • by Anonymous Coward

                高級言語の場合はだいたいABIが決まっているからアセンブラのほうが有利だな

              • by Anonymous Coward

                irreducibleなグラフはコンパイラは最適化を諦めて保守的になるから、アセンブラのほうが有利だな

              • by Anonymous Coward

                アセンブラの方が早いって、Cからアセンブラしたけど、最適化がなくなった分、遅くなったとか。
                それをCに戻して、早くした事もあるし。

                「早くした」って、分かってなくてたまたまそうなっただけじゃね

          • by Anonymous Coward

            それ以前の話で、C言語とかでうまく仕様をコンパイラに伝えることができないからじゃないの?
            例えば、ローテイト命令、エンディアンの変換なんて、それをC言語で書いちゃうとかなり無駄なコードになってしまう。
            それを書かれた言語の意味が変わらない範囲でいくら最適化したところで無駄なコードができてしまう。
            そういった一般的によくある問題は、すでにアセンブラなど最適化された関数が用意されてるからいいもののないものに関してうまく伝えることができない。

          • by Anonymous Coward

            あなたは、C言語で書かれたものをコンパイラがアセンブリ言語にするか人がするかの比較しかしてない。
            仕様をC言語に直した時点で無駄が発生してるんです。

    • C言語でもC++でもRustでも、実用的な速度で動作するOSを作るならCPU別にアセンブリコードが必要になるから。
      x86/x64専用と割りきってアセンブリで書くのもいいと思うけど、x86/x64以外で動かすならQEMUという手もあるし。

      親コメント
    • by Anonymous Coward

      昔と比べてコンパイラも飛躍的に性能が良くなったのに..........

      でもまだ人手でasm書いたほうが速いし小さいじゃん

    • by Anonymous Coward

      人間てのは「あともう少し足りない」生物なんだなあと、いつも思ってる。
      「メモリが4Gから8Gになりました、わーい快適、めでたしめでたし」とはいかなくて
      「じゃあ今まで出来なかった事に挑戦だ → やっぱりあとちょっと足りないんだよなあ・・・」となる。
      いつもこうだ。
      ジャブジャブ有り余る時代なんてまだしばらく来ない。
      このOSみたいに100%ピュアasmにこだわるのは、ある程度は道楽だろうけど、ここから1byteを稼ぐアイデアが出てきて、コンパイラやメモリ管理モジュールにアイデアを反映できたりする事もあるんだろう。

    • by Anonymous Coward

      拘りではなく、それしか出来ないってこともありますよね。

    • by Anonymous Coward

      低レベル言語作成に因るプログラミング作業量から見ても、単身作業の限界から見ても、機能が他のOSに劣るのは当然として、信頼性はどうなんだろうか?
      他人が作ったツール・ライブラリ類の使用が極小なのだけど。

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

処理中...