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

Linuxカーネルのコード行数、1000万行を上回る 55

ストーリー by hylom
増えることはあっても減ることはないんでしょうか、 部門より

あるAnonymous Coward 曰く、

最新のLinuxカーネルのコード行数が1000万行を超えたとのこと(本家/.より)。

およそ90日ごとにリリースされるバージョンごとに行数は目に見えて増えていっているが、この数値はGitチェックによる簡易的な数値であり、空行やコメントやテキストファイルなどが含まれている。SLOCCountツールを使ったより正確な分析によると、純粋なコードは6,399,191行であり、96.4%がCで書かれており、3.3%がアセンブリ言語となっているそうだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • *BSD (スコア:5, 興味深い)

    by wd-nara (25864) on 2008年10月24日 23時20分 (#1443927) 日記

    せっかくなので。

    find /usr/src/sys \! -path '*/CVS/*' -type f | xargs cat | wc

    NetBSD
    5118866 19424633 157789140
    FreeBSD
    3262017 11736451 105307527
    OpenBSD
    2834386 10710877 83981778
    DragonFly BSD
    2049399 7743173 63842191

    いずれも -current です。

  • by strict_ansi (2886) on 2008年10月24日 20時29分 (#1443841)
    カーネルなのに、C言語でもアセンブリ言語でも無いという、
    残りの 0.3% が何なのか気になって眠れません。
    0.3% っていっても 19,000 行以上あるんですよ。
    • by strict_ansi (2886) on 2008年10月24日 20時55分 (#1443863)
      探してみたら、本家記事からリンクされているところ [heise-online.co.uk]に詳しいのがありました。

      ansic:    6168175 (96.39%)
      asm:       212699 (3.32%)
      perl:        6672 (0.10%)
      cpp:         3302 (0.05%)
      yacc:        2954 (0.05%)
      sh:          2715 (0.04%)
      lex:         1820 (0.03%)
      python:       424 (0.01%)
      lisp:         218 (0.00%)
      pascal:       116 (0.00%)
      awk:           96 (0.00%)

      残念ながら COBOL は無いようですね...
      親コメント
      • うそつきー (スコア:3, すばらしい洞察)

        by albireo (7374) on 2008年10月24日 22時56分 (#1443915) 日記
        >ansic: 6168175 (96.39%)

        これはないだろ。gcc依存コードてんこ盛りなんだから。
        --
        うじゃうじゃ
        親コメント
        • by Anonymous Coward on 2008年10月25日 2時36分 (#1444001)
          行数にしたら結構なもんになるでしょうが、割合だとどれくらいなんでしょうね。

          iccでLinux kernelをコンパイルしてる人とか結構いるので(実用してるかどうかは相当怪しいですが)、
          ググってみたらこんなんが。

          http://software.intel.com/file/6390 [intel.com]

          intelの中の人がこんなもん出してるとは。
          iccでLinux kernelをコンパイルした際にn行修正が必要でした、って資料を見た覚えもありますが失念。。。
          親コメント
          • by albireo (7374) on 2008年10月26日 4時01分 (#1444432) 日記
            たまたま見つけた去年の関西オープンフォーラムでのLinuxをDSPに移植する苦労話の動画 [cliplife.jp]ですが、18分あたりに出てくるパッチサイズが

            ・DSPへ移植:13K行
            ・デバイスドライバ:14K行
            ・移植性の問題:90K行

            最後の「移植性の問題」ってのがgcc依存コード(以外も含む)などの修正だそうです。
            動画を通して見ると、単純にテキスト置換では済まない「gccでしか通らないコード」の例がいろいろ出てきます。
            --
            うじゃうじゃ
            親コメント
          • by bero (5057) on 2008年10月27日 1時13分 (#1444651) 日記
            それはiccがgcc拡張に対応している [intel.com]という話であって、ansicの話ではありません
            iccはlinux版はgcc互換、windows版はVisual C++互換
            親コメント
          • by Anonymous Coward
            Intel のコンパイラーが ANSI に遵守してないコードをはじくわけじゃない。
            一般的に、厳密に ANSI 準拠だと通らないコードの方が多いような気がします。
      • by mokusatsu (25839) on 2008年10月24日 21時39分 (#1443886) 日記
        ものすごい少ないPascalっていったい何なのか気になる。。。 Pythsonとかlispみたいなスクリプトはわからんでもないがコンパイラを使うPascalって。
        親コメント
        • by Anonymous Coward on 2008年10月25日 15時16分 (#1444188)
          リンク先に書いてあるよ。
          http://www.heise-online.co.uk/open/Kernel-Log-More-than-10-million-lin... [heise-online.co.uk]
          SLOCCount also claims to have found 116 lines of Pascal code – but that could well be a misinterpretation by SLOCCount.
          SLOCCountの解析ミスだとさ。
          親コメント
        • by Anonymous Coward on 2008年10月24日 22時57分 (#1443916)
          ムシャクシャしたのでlinux-2.6.27.3のソースを持ってきて実行してみた。

          sloccount --details .|grep pascal
          41    pascal    arch    /home/sidux/linux-2.6.27.3/arch/frv/kernel/head.inc
          75    pascal    include    /home/sidux/linux-2.6.27.3/include/asm-mn10300/frame.inc
          どちらもアセンブラっぽいのですが。。。
          head.Sで#includeされてるし。。。
          親コメント
          • by Anonymous Coward
            *.incなのでpascalにされたとか?

            一行目にasmと書いてあったりしますが。
        • by Anonymous Coward on 2008年10月25日 0時27分 (#1443958)
          それよりも,たった116行のPascalコードや,たった96行のawkコードって何に使ってるんだ?
          C/C++に書き直しても大した手間ではないだろうに
          親コメント
          • by hiroc-han (23419) on 2008年10月25日 1時59分 (#1443990)
            遺伝子の中にあるDNAと同じ。ほとんどががらくた(と言われています)。
            必要なのはごくわずか。

            昔は必要だった。
            必要なくなったので消しても良いのだけれど、動かなくなる部分が出ると怖いので残しておいた。
            無事動作したので、後で修正しようと思い放置しておいた。
            結果的に忘れられてしまい。コードの中に化石として残された。
            親コメント
          • by naruaki (2658) on 2008年10月25日 0時51分 (#1443975) 日記
            「本家記事からリンクされているところ」によると、arch の下らしいから、 担当者の単なる趣味なのかもしれない。
            関係のない arch なんて、ほとんど見る事ないだろうし。
            親コメント
        • by saitoh (10803) on 2008年10月25日 8時49分 (#1444041)
          SLOCCount というツールにコードの種類を自動判別させて行数を数えさせた結果がこれだというだけですから、 単にSLOCCount がアセンブリ言語のファイルなんかをpascalに誤分類しただけでしょう。
          親コメント
    • by MISSION (13232) on 2008年10月24日 20時42分 (#1443849) 日記
       コメントとかマクロとかcopyleftとかでは?
      --
      ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
      親コメント
    • by TarZ (28055) on 2008年10月24日 20時43分 (#1443851) 日記
      Makefile じゃないかしら。
      親コメント
    • by Anonymous Coward
      元記事にもある通り、単純に空行やコメントなどの類じゃないんですか。
      純粋にPCへ機能を与える言語として意味のある記述が99.7%だというわけで。
      • Re:残りの0.3%は? (スコア:4, すばらしい洞察)

        by Anonymous Coward on 2008年10月24日 22時03分 (#1443895)
        いや, 空行とかコメント含めるんだったら, 0.3%ですむわけないでしょ.
        1000行につき空行コメント合わせて3行ってどんだけ嫌がらせだよ...
        親コメント
    • by Anonymous Coward
      Whitespaceで書かれているとか。
    • by Anonymous Coward
      > 20時29分
      > ~気になって眠れません。
      ずいぶん寝るのが早いですね。
  • そろそろ (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2008年10月24日 21時08分 (#1443870)
    "Ancient UNIX"ならぬ"Ancient LINUX"が必要とされる時期ですかね。
  • by niratama (2175) on 2008年10月25日 23時03分 (#1444368) ホームページ 日記
    XXXと書いてあるコメントは何行くらいあるんだろう・・・
  • でかいなぁ (スコア:1, すばらしい洞察)

    by Anonymous Coward on 2008年10月26日 2時02分 (#1444417)
    こんなに巨大だとメンテナンス大変だよ。

    かといって既に多くの人が使っているので、
    重複した内容の個別の関数を片っ端から共通化する大鉈は振ることができないよな。
    そんな広範囲に渡った変更を、いったい誰がテストするんだ? なんてことになってさ。

    プロプライエタリなソフトウェアと同じ悪循環に入ってしまっていると思う。
    • Re:でかいなぁ (スコア:2, 参考になる)

      by mkosaki (13560) on 2008年10月27日 16時37分 (#1444938) ホームページ 日記
      Linuxのすごいところはこの状況で大鉈を振るいまくっている所にあるんだよ。
      今年の前半にAlan Coxがやってたttyのリファクタリングなんて「クリーンアップしたよ。てへ」とかいいながら100パッチ1万行オーバーのメールボムとして投稿されてくる。
      実際に今問題になってるのはx86のヘンテコハードがらみだね。ハードがバグってるんだけど今までたまたま動いてたのがリファクタリングで動かなくなっちゃう。でもオープンソースの品質ってレビューにかなりの割合依存しているので開発者に何とかしろって言っても限界があるんだよね。

      親コメント
  • by Anonymous Coward on 2008年10月24日 20時25分 (#1443835)
    フロッピーディッスク一枚に入ってた頃が懐かしい.
    • by Anonymous Coward on 2008年10月25日 3時42分 (#1444014)
      いまならフロッピー36枚ぐらい。

      カーネル3ダーs(ry
      親コメント
    • by spaceyamada (19465) on 2008年10月24日 22時45分 (#1443908)
      肥えたという印象があります。
      コードを1から作り直したらどのぐらいダイエットできるだろうか
      親コメント
      • by Anonymous Coward
        対応デバイスを削るとか、メイン言語を変えるとかしない限り劇的に減ることは無いんじゃないかな。
        • ドライバを全部モジュール化すれば、とりあえずカーネルは小さくなるのでは。

          親コメント
          • by Anonymous Coward
            モジュール化は現状でも結構進んでると思います。

            以下、Debian/Etch の例:
            user@host:/boot$ ls -l
            合計 7156
            -rw-r--r-- 1 root root 882565 2008-10-13 18:00 System.map-2.6.24-etchnhalf.1-686
            -rw-r--r-- 1 root root 86418 2008-10-13 18:00 config-2.6.24-etchnhalf.1-686
            drwxr-xr-x 2 root root 4096 2008-10-23 22:59 grub
            -rw-r--r-- 1 root root 4863229 2008-10-26 02:46 initrd.img-2.6.24-etchnhalf.1-686
            -rw-r--r-- 1 root root 1455672 2008-10-13 17:59 vmlinuz-2.6.24-etchnhalf.1-686

            user@host:/boot$ grep "=m$" config-2.6.24-etchnhalf.1-6
          • by Anonymous Coward
            いやドライバもソースツリーの中に入っちゃってるんだから「ソースコードの行数」をふくらませてるのはドライバでしょ。
            カーネル自体はそんなやたらに肥大化させようったってできない。
      • by Anonymous Coward
        Linuxカーネルだといくら肥えても叩かれないし、これからもさらに肥えていくんじゃないですか
      • by Anonymous Coward
        どうりで起動時間が年々長くなるわけです
        • by Anonymous Coward
          起動なんて、年に何回かのことでしょう。起動時間なんて誤差。
          • by Anonymous Coward
            >> 起動なんて、年に何回かのことでしょう。

            なるほど,デスクトップ用途への進出は諦めたという宣言ですか.
            • by Anonymous Coward on 2008年10月25日 2時15分 (#1443994)
              WindowsもLinuxも, デスクトップ用途ではもう再起動かけることは少ないじゃないかな.
              むしろモバイルや組み込みの方が軌道時間が長いと困る.

              ただディストリ配布のカーネルが起動時間長いのは, あらゆるハードでブートできるようにしている
              ためで, 自分で機能厳選して再構成してやれば驚くほど早くなる. 面倒くさいからふつうやんないけど.
              だからカスタムカーネルが当たり前の組み込みではブート時間が問題になることは少ないと思う.
              親コメント
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...