パスワードを忘れた? アカウント作成
12943640 story
プログラミング

systemdの不具合について、「安全ではない言語を使っている」のが原因との指摘 98

ストーリー by hylom
Linuxもアウトでは 部門より
あるAnonymous Coward曰く、

先日、systemdにバグがあることが発見され、誰でも比較的簡単にLinuxシステムをクラッシュさせることができることが発覚した。この問題を指摘したAndrew Ayer氏によれば、systemdには設計上の欠陥があるという。バグのないソフトウェアを書くことは非常に困難だが、良いプログラマはバグの可能性を最小にするか、その影響を低減させる方向へソフトウェアを設計することの重要性を理解している。しかしsystemdの開発者たちはこれを理解していないと主張。不必要な複雑性を膨大に詰め込むことを決定し、メモリを安全ではない言語で記述したと非難している(Andrew AyeriWire)。

また、TechCrunchの記事では、安全ではない言語がキーポイントだとし、メモリ管理が安全でない言語を使って安全なコードを書くことを期待するのは現実的ではないと指摘している。一方でAndrew Ayer氏は希望はあるとして「GoとRustはこれまでCで書かれていたようなシステムソフトウェアを書くための注目すべき安全な言語だ」としている(Slashdot)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2016年10月06日 19時21分 (#3092661)

    Linuxカーネル「せやな」

  • by Anonymous Coward on 2016年10月06日 17時47分 (#3092603)

    本当に安全性を高めるなら定理証明系言語使わないと
    C に証明を付与する Frama-C とか ATS2 とか使って欲しい

  • by Anonymous Coward on 2016年10月06日 22時35分 (#3092772)

    実際に使えるinitを書いてみて証明すればいいんじゃないかな
    証明をせずにできるというのはどの言語でも可能だし

  • by Anonymous Coward on 2016年10月06日 17時59分 (#3092608)

    素人に金槌を持たせたら指を叩く(玄人でも稀には怪我する)というだけの単純な話なのに、工具が危険という一般論に置き換えてる。

    まあ systemd は、そんなこと以前に設計図的な部分が大問題なのだけど。

    • by Anonymous Coward

      金槌を使えないようなレベルの人間が
      一人前の大工だと言い張って家を建てる時代になったということかもしれません
      そのうち金槌を知らない世代に人数で負ける時代になります

      まあ「memory-unsafe language」なんて表現をする時点で
      GoとRustにかなり肩入れしている感じはしますが

      • by Anonymous Coward

        >そのうち金槌を知らない世代に人数で負ける時代になります

        この発言もタイトル通り。
        小学校で図工の授業をやっている限り、そんな時代は来ませんね。

        • by Anonymous Coward

          「金槌を知らない」というのが見たことも聞いたこともないという意味にしか解釈できないなら日本語を知らないということですね

    • by Anonymous Coward

      Agile開発に設計図なんて存在しませんよ?

      • by Anonymous Coward

        金槌を使うのに設計図が必要なのかよ

        • by Anonymous Coward

          金槌を使うのに専用機械が必要な運痴は確かにいます。
          専用機械の制作には、一般に設計図が必要です。

          原付程度でも大抵設計図が必要ですが、無しで作ってしまう人もたまにはいるかも知れません。
          それが飛行機規模となると、もっと設計図無しでは困難になります。

    • by Anonymous Coward

      安全な Rust で書かないのが悪いというだけの単純な話。

      • by Anonymous Coward on 2016年10月06日 18時29分 (#3092629)

        「不必要な複雑性を膨大に詰め込むことを決定し、メモリを安全ではない言語で記述したと非難している」
        問題なのは前半の部分なのに、我田引水のために後半の話題にすりかえてる。
        本気で init を書くのに Rust が必要と考えてるのか?

        親コメント
        • by Anonymous Coward on 2016年10月06日 19時09分 (#3092656)

          問題は、メモリを記述できる言語が果たしてあるのかどうかでは? VHDL?

          親コメント
          • by Anonymous Coward

            そら書けるが意味ちげぇwww

            • by Anonymous Coward

              その意味ならVHDLやVerilogでもメモリは書けないよ。物理設計で決めるから。
              なにか記憶できる領域が割り当たるという意味ならCでもおなじでしょ。

              • by Anonymous Coward

                > なにか記憶できる領域が割り当たるという意味ならCでもおなじでしょ。

                うまいっ!DRAMですね!

              • by Anonymous Coward

                うまいっ!DRAMですね!

                誰か解説して

              • by Anonymous Coward

                そのまんまだろ。!がCでどういう意味か考えてみたら…仮想記憶をサポートしたマシンなら極端な話DRAMなくてもいいよねっていう。

        • by Anonymous Coward

          言語レベルで多少なりとも安全性を担保できるのならそうしたほうがいいのは当然なわけで、結局行き着くところはinitを書くのにCが必用か?ということでは。

    • by Anonymous Coward

      ネイルガンのように金槌よりは安全な道具もありますしね。
      玄人でも金槌で指を打つとは言うがメモリ関連の脆弱性はそんなごく少数の例外ではないし組織の大小に関わらず致命的な問題になることが多いのでより安全な言語をつかつべきであるという主張はそれなりに説得力がありますよ。
      GoやRustがC並に早いならという前提付きで。まあメモリ管理を言語側で自動化してもメモリ管理機構に脆弱性が移るだけの話ですが。仕様でメモリの安全を確保するほうがいいよな。
      何が言いたいかって?喩え話はやめようねってのとJavaは悲しいけどだめだよねって話。

    • by Anonymous Coward

      「言い加減」

  • by Anonymous Coward on 2016年10月06日 18時29分 (#3092628)

    結局性能が出ないとか言って、高級アセンブラ(=C)で書き直すんでしょ?

    • by nim (10479) on 2016年10月06日 19時49分 (#3092681)

      systemd自体には性能は求められていないような。

      親コメント
    • by Anonymous Coward

      Cは高級アセンブラではないような。

      • by Anonymous Coward on 2016年10月06日 22時15分 (#3092760)

        高級アセンブラ [google.com]」はCの二つ名のようなものですよ。

        親コメント
        • by Anonymous Coward

          Cが高級アセンブラって言語の機能が素直に機械語に対応したPDPなんとかとかその頃の大昔の話でしょ。いまそんなこと言ってると笑われるよゲラゲラ

          • by Anonymous Coward

            君がね。

            • by Anonymous Coward

              PDPとかVAXまではアセンブラの延長にCがあった。
              それはコンパイラの開発を容易にする思想でアーキテクチャが作られてたから。
              いまどきCと似てるマシン語のアーキテクチャがあるなら教えて欲しい。

        • by Anonymous Coward

          検索結果見て言ってる?

          • by Anonymous Coward

            そちらこそちゃんと読んだ?

  • by Anonymous Coward on 2016年10月06日 19時15分 (#3092657)

    まともに動くようになるのは何年後?

    • by Anonymous Coward

      何年かあればできると思いますか?

      • by Anonymous Coward

        rust は、この前、firefox の一部機能が rust で書かれて、スピードが数十倍(だっけ?)になったとか書いてあったから、
        このまま順当に行けば、そのうち rust で書かれた browser が出てくるんじゃないの。

        ちなみに、この機能は、リリース版に取り込まれてる。

        ここまで書いて気づいたけど、元コメは、go & rust に対する不信感じゃなくて、
        「書き直して安定するまでに、また何年もかかるじゃん。」て意味か?

  • by Anonymous Coward on 2016年10月06日 21時07分 (#3092724)

    日本語でおk

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...