世界を動かす技術を、日本語で。

Git: Rustの導入とビルドシステムでの必須化の発表

2025年9月20日原文(lore.kernel.org)

概要

  • Anubis は、AI企業による ウェブスクレイピング 対策のために導入されたシステム
  • Proof-of-Work 方式で、アクセス負荷を分散
  • 一般ユーザーへの影響は最小限に抑制
  • ヘッドレスブラウザ の識別技術の開発が進行中
  • 一部の ブラウザ拡張機能 が正常動作を妨げる可能性

Anubisによるウェブ保護の仕組み

  • Anubis は、AI企業などによる 過度なスクレイピング からウェブサイトを守るための防御策
  • Proof-of-Work (PoW)方式を採用し、アクセス時に計算処理を要求
  • PoWの導入により、 大量アクセス を行う自動化ツールのコスト増大
  • 個人ユーザーにとっては 無視できる程度の負荷 に設計
  • サイト全体の ダウンタイム防止 とリソース保護

今後の対策と技術開発

  • Anubis は一時的な措置であり、将来的には ブラウザの指紋認証技術 へ移行予定
  • 例: フォントレンダリング の挙動で ヘッドレスブラウザ を識別
  • 正規ユーザーにはPoWページの表示を減らす方針

プラグインや拡張機能の影響

  • JShelter などの一部プラグインが Anubisの動作を妨げる 場合あり
  • JavaScript機能制限 が原因で、PoWページが正常に表示されない事例
  • 問題発生時は該当プラグインを 無効化 することで解決可能

利用者への注意事項

  • Anubis はウェブサイトの 安定運用 を目的としたシステム
  • ブラウザやプラグインの設定により、アクセスに 一時的な制限 がかかる場合あり
  • 問題が解決しない場合は、 管理者への連絡 を推奨

Hackerたちの意見

Rustの導入は、プラットフォームによっては不可能だったり、他のプラットフォームでは難しかったりする。誰か詳しく説明してくれないかな?

RustはCほど多くのCPUアーキテクチャをサポートしてないんだよね(SH4とか、もっといい例がたくさんあると思うけど)。これがGOTにとって、以前よりも面白いケースになるかもしれないね。 https://www.gameoftrees.org/

私の理解では、RustはLLVMをベースにしていてGCCじゃないから、LLVMをサポートしているOSに制限されるんだ。GCCはもっと多くのプラットフォームをサポートしてるよね。

Rustのコンパイラが一部のプラットフォーム(OS/アーキテクチャの組み合わせ)をサポートしてないから? RESFのメンバーは、プラットフォームがRustをサポートしてないって言うことが多いけど、実際にはプラットフォームをサポートするのはコンパイラなんだよね。

このページを見てみて [1]、特に「Tier 3」のプラットフォームに注目してね。 [1] https://doc.rust-lang.org/beta/rustc/platform-support.html

ベンダー提供のCコンパイラで構築されたGitをサポートする少なくとも1つのプロプライエタリプラットフォームがあるけど、公開されたドキュメントがないからLLVMのサポートは不可能なんだ。 https://lwn.net/Articles/998115/ で「NonStop」をCtrl+Fしてみて。

あなたは「不可能」の意味を追い求めているね。簡単だよ。開発者には二つのカテゴリーがある:

「プログラミングが好き」 「お金を稼ぐためにプログラムする」 もしあなたが後者に属しているなら、ちょっと優しく言うけど、そうじゃないと聞こえるかもしれないから、読み続けてね。例えば、大手銀行に雇われてNonstopでアプリを作る場合、「コンピュータ上で動くすべてのオープンソースコードを審査しなければならない」みたいなポリシーがあるかもしれない。だから、彼が好きなgitをNonstopでRustを使って構築するためには、llvmをポートする必要があるけど、それは不可能ではないよ。不可能なのは、llvmのコードを法務にレビューしてもらうことなんだ。彼らはそれをやらないから、「ダメだ。llvmはダメ。Nonstopを作っているHPがやればいいし、それは彼らの法的な問題だ」と言うだろう。私は不可能だとは言ってないよ。もう一人の人が不可能だと言っていて、私は彼にとってどう見えるかをルーブ・ゴールドバーグ的に示そうとしているんだ。あなたも私もプログラミングが好きだし、きっとどちらもちゃんと働いているけど、彼はプログラミングが好きじゃない。お金を稼ぐためのシステムにいる人の誠実さを嘲笑するのは許されるけど、ただプログラミングが好きなら、銀行で働くことはないよ。本当に退屈だから、基本的にプログラミングが好きな人はRustをポートするのが不可能だなんて言わないよ。分かる?難しいのは、Jane Streetの人たちやTwo Sigmaの人たちは、本当に若い子たちで、いい人たちなんだけど、あまり長くそこにいないから、まだプログラミングが好きなんだ!彼らは銀行のために働かなきゃいけないと感じているけど、実際はニューヨークに住んで毎晩カクテルを楽しむのが楽しくて誠実だと言えばいいのに。このフォーラムはメーリングリストと同じ問題を抱えていて、一見すると「gitでハッシュマップを使えること」についての話に見えるけど、実際は「銀行家」についての話なんだ。銀行家たちは、どこに行っても自分たちのライフスタイルを可能にしてくれる人たちに出会う。例えば、時間をボランティアしてくれるgitの開発者や、彼らが行くバーのバリスタの親たちが、バリスタの家賃を払っているわけで、銀行家たちはそういう人たちを嫌っている。そして、彼らは「自分以外が問題だ」と言う。まだ気づいていないんだ。

簡単に言うと、Linuxシステムでは、ライブラリはシステムライブラリじゃないと、本当のOSライブラリやAPIが存在しないってこと。RustはABIがないから、(本物の)共有ライブラリもない。Debian: https://www.debian.org/releases/trixie/release-notes/issues.... 長いコメントを書いたのに、うっかりタブを閉じちゃったよ。!!@@! Rustを含むパッケージを古いハードウェアで作ることをお勧めするけど、静的リンクのせいで頻繁に再ビルドしなきゃいけないことを忘れないでね。クリーンビルドをすることも大事だよ。必要な共有ライブラリを使って、楽にするのが期待されてるから。Rustの人たちは、こういう押し方をするとCよりも嫌われるかもしれないって考えてみるべきだと思う。安定したABIや共有ライブラリについての批判をそらそうとするのはやめた方がいいかも。Linux OSはそれを必要としてるし、君のためにOSアーキテクチャを変える人はいないからね。特に重要なソフトウェアアーキテクチャの部分では、もっと保守的であるべきだと思う。

これって、gitのユーザーとして私にどう役立つの?

私の予想では、私たち(私もgitのユーザーです)は、気づかないと思います。

Rustは、Cよりもソフトウェアを構築するためのツールとしてはずっと優れています。より良いツールでソフトウェアを作ると、たいていはより良いソフトウェアが得られます(少なくとも最終的には、長期的には、移行期間中は一時的に悪化することもあるけど)。

将来的にはもっと信頼性が高く、速くなるかもしれないし、機能も増えるかも。でも、効果が見えるのは10年くらい先だと思う。

Hacker Newsで議論の続きを見る