177abc2c2SAkira Yokosawa.. raw:: latex 277abc2c2SAkira Yokosawa 377abc2c2SAkira Yokosawa \kerneldocCJKoff 477abc2c2SAkira Yokosawa 5f0127338STsugikazu ShibataNOTE: 65fb94e9cSMauro Carvalho ChehabThis is a version of Documentation/process/howto.rst translated into Japanese. 7f0127338STsugikazu ShibataThis document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com> 8f0127338STsugikazu ShibataIf you find any difference between this document and the original file or 9f0127338STsugikazu Shibataa problem with the translation, please contact the maintainer of this file. 10f0127338STsugikazu Shibata 11f0127338STsugikazu ShibataPlease also note that the purpose of this file is to be easier to 12f0127338STsugikazu Shibataread for non English (read: Japanese) speakers and is not intended as 13f0127338STsugikazu Shibataa fork. So if you have any comments or updates for this file, please 14f0127338STsugikazu Shibatatry to update the original English file first. 15f0127338STsugikazu Shibata 16f0127338STsugikazu Shibata---------------------------------- 17f0127338STsugikazu Shibata 1877abc2c2SAkira Yokosawa.. raw:: latex 1977abc2c2SAkira Yokosawa 2077abc2c2SAkira Yokosawa \kerneldocCJKon 2177abc2c2SAkira Yokosawa 22f0127338STsugikazu Shibataこの文書は、 23f0127338STsugikazu ShibataDocumentation/process/howto.rst 24f0127338STsugikazu Shibataの和訳です。 25f0127338STsugikazu Shibata 26f0127338STsugikazu Shibata翻訳者: Tsugikazu Shibata <tshibata@ab.jp.nec.com> 27f0127338STsugikazu Shibata 28f0127338STsugikazu Shibata---------------------------------- 29f0127338STsugikazu Shibata 30f0127338STsugikazu ShibataLinux カーネル開発のやり方 31f0127338STsugikazu Shibata========================== 32f0127338STsugikazu Shibata 33f0127338STsugikazu Shibataこれは上のトピック( Linux カーネル開発のやり方)の重要な事柄を網羅した 34f0127338STsugikazu Shibataドキュメントです。ここには Linux カーネル開発者になるための方法とLinux 35f0127338STsugikazu Shibataカーネル開発コミュニティと共に活動するやり方を学ぶ方法が含まれています。 36f0127338STsugikazu Shibataカーネルプログラミングに関する技術的な項目に関することは何も含めないよ 37f0127338STsugikazu Shibataうにしていますが、カーネル開発者となるための正しい方向に向かう手助けに 38f0127338STsugikazu Shibataなります。 39f0127338STsugikazu Shibata 40f0127338STsugikazu Shibataもし、このドキュメントのどこかが古くなっていた場合には、このドキュメント 41f0127338STsugikazu Shibataの最後にリストしたメンテナにパッチを送ってください。 42f0127338STsugikazu Shibata 43f0127338STsugikazu Shibataはじめに 44f0127338STsugikazu Shibata--------- 45f0127338STsugikazu Shibata 46f0127338STsugikazu Shibataあなたは Linux カーネルの開発者になる方法を学びたいのでしょうか? そ 47f0127338STsugikazu Shibataれとも上司から「このデバイスの Linux ドライバを書くように」と言われた 48f0127338STsugikazu Shibataのかもしれません。この文書の目的は、あなたが踏むべき手順と、コミュニティ 49f0127338STsugikazu Shibataと一緒にうまく働くヒントを書き下すことで、あなたが知るべき全てのことを 50f0127338STsugikazu Shibata教えることです。また、このコミュニティがなぜ今うまくまわっているのかと 51f0127338STsugikazu Shibataいう理由も説明しようと試みています。 52f0127338STsugikazu Shibata 53f0127338STsugikazu Shibataカーネルは少量のアーキテクチャ依存部分がアセンブリ言語で書かれている以 54f0127338STsugikazu Shibata外の大部分は C 言語で書かれています。C言語をよく理解していることはカー 55f0127338STsugikazu Shibataネル開発に必要です。低レベルのアーキテクチャ開発をするのでなければ、 56f0127338STsugikazu Shibata(どんなアーキテクチャでも)アセンブリ(訳注: 言語)は必要ありません。以下 57f0127338STsugikazu Shibataの本は、C 言語の十分な知識や何年もの経験に取って代わるものではありませ 58f0127338STsugikazu Shibataんが、少なくともリファレンスとしては良い本です。 59f0127338STsugikazu Shibata 60f0127338STsugikazu Shibata - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall] 61f0127338STsugikazu Shibata - 『プログラミング言語C第2版』(B.W. カーニハン/D.M. リッチー著 石田晴久訳) [共立出版] 62f0127338STsugikazu Shibata - "Practical C Programming" by Steve Oualline [O'Reilly] 63f0127338STsugikazu Shibata - 『C実践プログラミング第3版』(Steve Oualline著 望月康司監訳 谷口功訳) [オライリージャパン] 64f0127338STsugikazu Shibata - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] 65f0127338STsugikazu Shibata - 『新・詳説 C 言語 H&S リファレンス』 (サミュエル P ハービソン/ガイ L スティール共著 斉藤 信男監訳)[ソフトバンク] 66f0127338STsugikazu Shibata 67f0127338STsugikazu Shibataカーネルは GNU C と GNU ツールチェインを使って書かれています。カーネル 682f3f53d6SAkira Yokosawaは ISO C11 仕様に準拠して書く一方で、標準には無い言語拡張を多く使って 69f0127338STsugikazu Shibataいます。カーネルは標準 C ライブラリに依存しない、C 言語非依存環境です。 70f0127338STsugikazu Shibataそのため、C の標準の中で使えないものもあります。特に任意の long long 71f0127338STsugikazu Shibataの除算や浮動小数点は使えません。カーネルがツールチェインや C 言語拡張 72f0127338STsugikazu Shibataに置いている前提がどうなっているのかわかりにくいことが時々あり、また、 73f0127338STsugikazu Shibata残念なことに決定的なリファレンスは存在しません。情報を得るには、gcc の 74f0127338STsugikazu Shibatainfo ページ( info gcc )を見てください。 75f0127338STsugikazu Shibata 76f0127338STsugikazu Shibataあなたは既存の開発コミュニティと一緒に作業する方法を学ぼうとしているこ 77f0127338STsugikazu Shibataとに思い出してください。そのコミュニティは、コーディング、スタイル、開 78f0127338STsugikazu Shibata発手順について高度な標準を持つ、多様な人の集まりです。地理的に分散した 79f0127338STsugikazu Shibata大規模なチームに対してもっともうまくいくとわかったことをベースにしなが 80f0127338STsugikazu Shibataら、これらの標準は長い時間をかけて築かれてきました。これらはきちんと文 81f0127338STsugikazu Shibata書化されていますから、事前にこれらの標準について事前にできるだけたくさ 82f0127338STsugikazu Shibataん学んでください。また皆があなたやあなたの会社のやり方に合わせてくれる 83f0127338STsugikazu Shibataと思わないでください。 84f0127338STsugikazu Shibata 85f0127338STsugikazu Shibata法的問題 86f0127338STsugikazu Shibata-------- 87f0127338STsugikazu Shibata 88f0127338STsugikazu ShibataLinux カーネルのソースコードは GPL ライセンスの下でリリースされていま 89dc8ab029SAkira Yokosawaす。ソースツリーのメインディレクトリにある COPYING のファイルを見てく 90dc8ab029SAkira Yokosawaださい。Linux カーネルのライセンスルールとソースコード内の 91dc8ab029SAkira Yokosawa`SPDX <https://spdx.org/>`_ 識別子の使い方は 92dc8ab029SAkira Yokosawa:ref:`Documentation/process/license-rules.rst <kernel_licensing>` 93dc8ab029SAkira Yokosawaに説明されています。 94dc8ab029SAkira Yokosawa 95dc8ab029SAkira Yokosawaもしライセンスについてさらに質問があれば、 96dc8ab029SAkira YokosawaLinux Kernel メーリングリストに質問するのではなく、どうぞ 97f0127338STsugikazu Shibata法律家に相談してください。メーリングリストの人達は法律家ではなく、法的 98f0127338STsugikazu Shibata問題については彼らの声明はあてにするべきではありません。 99f0127338STsugikazu Shibata 100f0127338STsugikazu ShibataGPL に関する共通の質問や回答については、以下を参照してください- 101f0127338STsugikazu Shibata 102f0127338STsugikazu Shibata https://www.gnu.org/licenses/gpl-faq.html 103f0127338STsugikazu Shibata 104f0127338STsugikazu Shibataドキュメント 105f0127338STsugikazu Shibata------------ 106f0127338STsugikazu Shibata 107f0127338STsugikazu ShibataLinux カーネルソースツリーは幅広い範囲のドキュメントを含んでおり、それ 108f0127338STsugikazu Shibataらはカーネルコミュニティと会話する方法を学ぶのに非常に貴重なものです。 109f0127338STsugikazu Shibata新しい機能がカーネルに追加される場合、その機能の使い方について説明した 110f0127338STsugikazu Shibata新しいドキュメントファイルも追加することを勧めます。 111f0127338STsugikazu Shibataカーネルの変更が、カーネルがユーザ空間に公開しているインターフェイスの 112f0127338STsugikazu Shibata変更を引き起こす場合、その変更を説明するマニュアルページのパッチや情報 113f0127338STsugikazu Shibataをマニュアルページのメンテナ mtk.manpages@gmail.com に送り、CC を 114f0127338STsugikazu Shibatalinux-api@vger.kernel.org に送ることを勧めます。 115f0127338STsugikazu Shibata 116f0127338STsugikazu Shibata以下はカーネルソースツリーに含まれている読んでおくべきファイルの一覧で 117f0127338STsugikazu Shibataす- 118f0127338STsugikazu Shibata 119dc8ab029SAkira Yokosawa :ref:`Documentation/admin-guide/README.rst <readme>` 120f0127338STsugikazu Shibata このファイルは Linuxカーネルの簡単な背景とカーネルを設定(訳注 121f0127338STsugikazu Shibata configure )し、生成(訳注 build )するために必要なことは何かが書かれ 122f0127338STsugikazu Shibata ています。 カーネルに関して初めての人はここからスタートすると良い 123f0127338STsugikazu Shibata でしょう。 124f0127338STsugikazu Shibata 1255fb94e9cSMauro Carvalho Chehab :ref:`Documentation/process/changes.rst <changes>` 126f0127338STsugikazu Shibata このファイルはカーネルをうまく生成(訳注 build )し、走らせるのに最 127f0127338STsugikazu Shibata 小限のレベルで必要な数々のソフトウェアパッケージの一覧を示してい 128f0127338STsugikazu Shibata ます。 129f0127338STsugikazu Shibata 130f0127338STsugikazu Shibata :ref:`Documentation/process/coding-style.rst <codingstyle>` 131f0127338STsugikazu Shibata これは Linux カーネルのコーディングスタイルと背景にある理由を記述 132f0127338STsugikazu Shibata しています。全ての新しいコードはこのドキュメントにあるガイドライン 133f0127338STsugikazu Shibata に従っていることを期待されています。大部分のメンテナはこれらのルー 134f0127338STsugikazu Shibata ルに従っているものだけを受け付け、多くの人は正しいスタイルのコード 135f0127338STsugikazu Shibata だけをレビューします。 136f0127338STsugikazu Shibata 137aa3b2a7fSLukas Bulwahn :ref:`Documentation/process/submitting-patches.rst <codingstyle>` 138aa3b2a7fSLukas Bulwahn このファイルには、どうやってうまくパッチを作って投稿するかにつ 139f0127338STsugikazu Shibata いて非常に詳しく書かれており、以下を含みます (これだけに限らない 140f0127338STsugikazu Shibata けれども) 141f0127338STsugikazu Shibata 142f0127338STsugikazu Shibata - Email に含むこと 143f0127338STsugikazu Shibata - Email の形式 144f0127338STsugikazu Shibata - だれに送るか 145f0127338STsugikazu Shibata 146f0127338STsugikazu Shibata これらのルールに従えばうまくいくことを保証することではありません 147f0127338STsugikazu Shibata が (すべてのパッチは内容とスタイルについて精査を受けるので)、 148f0127338STsugikazu Shibata ルールに従わなければ間違いなくうまくいかないでしょう。 149f0127338STsugikazu Shibata 150f0127338STsugikazu Shibata この他にパッチを作る方法についてのよくできた記述は- 151f0127338STsugikazu Shibata 152f0127338STsugikazu Shibata "The Perfect Patch" 153dc8ab029SAkira Yokosawa https://www.ozlabs.org/~akpm/stuff/tpp.txt 154dc8ab029SAkira Yokosawa 155f0127338STsugikazu Shibata "Linux kernel patch submission format" 1565aff7c46SJacob Huisman https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html 157f0127338STsugikazu Shibata 158f0127338STsugikazu Shibata :ref:`Documentation/process/stable-api-nonsense.rst <stable_api_nonsense>` 159f0127338STsugikazu Shibata このファイルはカーネルの中に不変の API を持たないことにした意識的 160f0127338STsugikazu Shibata な決断の背景にある理由について書かれています。以下のようなことを含 161f0127338STsugikazu Shibata んでいます- 162f0127338STsugikazu Shibata 163f0127338STsugikazu Shibata - サブシステムとの間に層を作ること(コンパチビリティのため?) 164f0127338STsugikazu Shibata - オペレーティングシステム間のドライバの移植性 165f0127338STsugikazu Shibata - カーネルソースツリーの素早い変更を遅らせる(もしくは素早い変更を妨げる) 166f0127338STsugikazu Shibata 167f0127338STsugikazu Shibata このドキュメントは Linux 開発の思想を理解するのに非常に重要です。 168f0127338STsugikazu Shibata そして、他のOSでの開発者が Linux に移る時にとても重要です。 169f0127338STsugikazu Shibata 170*44ac5abaSVegard Nossum :ref:`Documentation/process/security-bugs.rst <securitybugs>` 171f0127338STsugikazu Shibata もし Linux カーネルでセキュリティ問題を発見したように思ったら、こ 172f0127338STsugikazu Shibata のドキュメントのステップに従ってカーネル開発者に連絡し、問題解決を 173f0127338STsugikazu Shibata 支援してください。 174f0127338STsugikazu Shibata 175f0127338STsugikazu Shibata :ref:`Documentation/process/management-style.rst <managementstyle>` 176f0127338STsugikazu Shibata このドキュメントは Linux カーネルのメンテナ達がどう行動するか、 177f0127338STsugikazu Shibata 彼らの手法の背景にある共有されている精神について記述しています。こ 178f0127338STsugikazu Shibata れはカーネル開発の初心者なら(もしくは、単に興味があるだけの人でも) 179f0127338STsugikazu Shibata 重要です。なぜならこのドキュメントは、カーネルメンテナ達の独特な 180f0127338STsugikazu Shibata 行動についての多くの誤解や混乱を解消するからです。 181f0127338STsugikazu Shibata 182f0127338STsugikazu Shibata :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` 183f0127338STsugikazu Shibata このファイルはどのように stable カーネルのリリースが行われるかのルー 184f0127338STsugikazu Shibata ルが記述されています。そしてこれらのリリースの中のどこかで変更を取 185f0127338STsugikazu Shibata り入れてもらいたい場合に何をすれば良いかが示されています。 186f0127338STsugikazu Shibata 187f0127338STsugikazu Shibata :Ref:`Documentation/process/kernel-docs.rst <kernel_docs>` 188f0127338STsugikazu Shibata カーネル開発に付随する外部ドキュメントのリストです。もしあなたが探 189f0127338STsugikazu Shibata しているものがカーネル内のドキュメントでみつからなかった場合、この 190f0127338STsugikazu Shibata リストをあたってみてください。 191f0127338STsugikazu Shibata 192f0127338STsugikazu Shibata :ref:`Documentation/process/applying-patches.rst <applying_patches>` 193f0127338STsugikazu Shibata パッチとはなにか、パッチをどうやって様々なカーネルの開発ブランチに 194f0127338STsugikazu Shibata 適用するのかについて正確に記述した良い入門書です。 195f0127338STsugikazu Shibata 196f0127338STsugikazu Shibataカーネルはソースコードそのものや、このファイルのようなリストラクチャー 197f0127338STsugikazu Shibataドテキストマークアップ(ReST)から自動的に生成可能な多数のドキュメントを 198f0127338STsugikazu Shibataもっています。これにはカーネル内APIの完全な記述や、正しくロックをかけ 199f0127338STsugikazu Shibataるための規則などが含まれます。 200f0127338STsugikazu Shibata 201f0127338STsugikazu Shibataこれら全てのドキュメントを PDF や HTML で生成するには以下を実行します - :: 202f0127338STsugikazu Shibata 203f0127338STsugikazu Shibata make pdfdocs 204f0127338STsugikazu Shibata make htmldocs 205f0127338STsugikazu Shibata 206f0127338STsugikazu Shibataそれぞれメインカーネルのソースディレクトリから実行します。 207f0127338STsugikazu Shibata 208f0127338STsugikazu ShibataReSTマークアップを使ったドキュメントは Documentation/outputに生成され 209f0127338STsugikazu Shibataます。Latex とePub 形式で生成するには - :: 210f0127338STsugikazu Shibata 211f0127338STsugikazu Shibata make latexdocs 212f0127338STsugikazu Shibata make epubdocs 213f0127338STsugikazu Shibata 214f0127338STsugikazu Shibataカーネル開発者になるには 215f0127338STsugikazu Shibata------------------------ 216f0127338STsugikazu Shibata 217f0127338STsugikazu Shibataもしあなたが、Linux カーネル開発について何も知らないのならば、 218f0127338STsugikazu ShibataKernelNewbies プロジェクトを見るべきです 219f0127338STsugikazu Shibata 220f0127338STsugikazu Shibata https://kernelnewbies.org 221f0127338STsugikazu Shibata 222f0127338STsugikazu Shibataこのサイトには役に立つメーリングリストがあり、基本的なカーネル開発に関 223f0127338STsugikazu Shibataするほとんどどんな種類の質問もできます (既に回答されているようなことを 224f0127338STsugikazu Shibata聞く前にまずはアーカイブを調べてください)。またここには、リアルタイム 225f0127338STsugikazu Shibataで質問を聞くことができる IRC チャネルや、Linuxカーネルの開発に関して学 226f0127338STsugikazu Shibataぶのに便利なたくさんの役に立つドキュメントがあります。 227f0127338STsugikazu Shibata 228f0127338STsugikazu ShibataWeb サイトには、コードの構成、サブシステム、現在存在するプロジェクト 229f0127338STsugikazu Shibata(ツリーにあるもの無いものの両方)の基本的な管理情報があります。ここには、 230f0127338STsugikazu Shibataまた、カーネルのコンパイルのやり方やパッチの当て方などの間接的な基本情 231f0127338STsugikazu Shibata報も記述されています。 232f0127338STsugikazu Shibata 233f0127338STsugikazu Shibataあなたがどこからスタートして良いかわからないが、Linux カーネル開発コミュ 234f0127338STsugikazu Shibataニティに参加して何かすることをさがしているのであれば、Linux kernel 235f0127338STsugikazu ShibataJanitor's プロジェクトにいけば良いでしょう - 236f0127338STsugikazu Shibata 237f0127338STsugikazu Shibata https://kernelnewbies.org/KernelJanitors 238f0127338STsugikazu Shibata 239f0127338STsugikazu Shibataここはそのようなスタートをするのにうってつけの場所です。ここには、 240f0127338STsugikazu ShibataLinux カーネルソースツリーの中に含まれる、きれいにし、修正しなければな 241f0127338STsugikazu Shibataらない、単純な問題のリストが記述されています。このプロジェクトに関わる 242f0127338STsugikazu Shibata開発者と一緒に作業することで、あなたのパッチを Linuxカーネルツリーに入 243f0127338STsugikazu Shibataれるための基礎を学ぶことができ、そしてもしあなたがまだアイディアを持っ 244f0127338STsugikazu Shibataていない場合には、次にやる仕事の方向性が見えてくるかもしれません。 245f0127338STsugikazu Shibata 246f0127338STsugikazu Shibata実際に Linux カーネルのコードについて修正を加える前に、どうやってその 247f0127338STsugikazu Shibataコードが動作するのかを理解することが必要です。そのためには、特別なツー 248f0127338STsugikazu Shibataルの助けを借りてでも、それを直接よく読むことが最良の方法です(ほとんど 249f0127338STsugikazu Shibataのトリッキーな部分は十分にコメントしてありますから)。そういうツールで 250f0127338STsugikazu Shibata特におすすめなのは、Linux クロスリファレンスプロジェクトです。これは、 251f0127338STsugikazu Shibata自己参照方式で、索引がついた web 形式で、ソースコードを参照することが 252f0127338STsugikazu Shibataできます。この最新の素晴しいカーネルコードのリポジトリは以下で見つかり 253f0127338STsugikazu Shibataます - 254f0127338STsugikazu Shibata 25519c1d46dSJonathan Neuschäfer https://elixir.bootlin.com/ 256f0127338STsugikazu Shibata 257f0127338STsugikazu Shibata開発プロセス 258f0127338STsugikazu Shibata------------ 259f0127338STsugikazu Shibata 260f0127338STsugikazu ShibataLinux カーネルの開発プロセスは現在幾つかの異なるメインカーネル「ブラン 261f0127338STsugikazu Shibataチ」と多数のサブシステム毎のカーネルブランチから構成されます。これらの 262f0127338STsugikazu Shibataブランチとは - 263f0127338STsugikazu Shibata 2646548e96eSKosuke Fujimoto - Linus のメインラインツリー 2656548e96eSKosuke Fujimoto - メジャー番号をまたぐ数本の安定版ツリー 2666548e96eSKosuke Fujimoto - サブシステム毎のカーネルツリー 2676548e96eSKosuke Fujimoto - 統合テストのための linux-next カーネルツリー 268f0127338STsugikazu Shibata 2696548e96eSKosuke Fujimotoメインラインツリー 270f0127338STsugikazu Shibata~~~~~~~~~~~~~~~~~~ 271f0127338STsugikazu Shibata 2726548e96eSKosuke Fujimotoメインラインツリーは Linus Torvalds によってメンテナンスされ、 2736548e96eSKosuke Fujimotohttps://kernel.org のリポジトリに存在します。 274f0127338STsugikazu Shibataこの開発プロセスは以下のとおり - 275f0127338STsugikazu Shibata 276f0127338STsugikazu Shibata - 新しいカーネルがリリースされた直後に、2週間の特別期間が設けられ、 277f0127338STsugikazu Shibata この期間中に、メンテナ達は Linus に大きな差分を送ることができます。 2786548e96eSKosuke Fujimoto このような差分は通常 linux-next カーネルに数週間含まれてきたパッチです。 279f0127338STsugikazu Shibata 大きな変更は git(カーネルのソース管理ツール、詳細は 280f0127338STsugikazu Shibata http://git-scm.com/ 参照) を使って送るのが好ましいやり方ですが、パッ 281f0127338STsugikazu Shibata チファイルの形式のまま送るのでも十分です。 282dc8ab029SAkira Yokosawa - 2週間後 -rc1 カーネルがリリースされ、新しいカーネルを可能な限り堅牢に 283dc8ab029SAkira Yokosawa することに焦点が移ります。この期間のパッチのほとんどは退行を修正する 284dc8ab029SAkira Yokosawa ものとなります。以前から存在していたバグは退行には当たらないため、 285dc8ab029SAkira Yokosawa 送るのは重要な修正だけにしてください。 286dc8ab029SAkira Yokosawa 新しいドライバ (もしくはファイルシステム) のパッチは 287f0127338STsugikazu Shibata -rc1 の後で受け付けられることもあることを覚えておいてください。な 288f0127338STsugikazu Shibata ぜなら、変更が独立していて、追加されたコードの外の領域に影響を与え 289f0127338STsugikazu Shibata ない限り、退行のリスクは無いからです。-rc1 がリリースされた後、 290f0127338STsugikazu Shibata Linus へパッチを送付するのに git を使うこともできますが、パッチは 291f0127338STsugikazu Shibata レビューのために、パブリックなメーリングリストへも同時に送る必要が 292f0127338STsugikazu Shibata あります。 293f0127338STsugikazu Shibata - 新しい -rc は Linus が、最新の git ツリーがテスト目的であれば十分 294f0127338STsugikazu Shibata に安定した状態にあると判断したときにリリースされます。目標は毎週新 295f0127338STsugikazu Shibata しい -rc カーネルをリリースすることです。 296f0127338STsugikazu Shibata - このプロセスはカーネルが 「準備ができた」と考えられるまで継続しま 297f0127338STsugikazu Shibata す。このプロセスはだいたい 6週間継続します。 298f0127338STsugikazu Shibata 299f0127338STsugikazu ShibataAndrew Morton が Linux-kernel メーリングリストにカーネルリリースについ 300f0127338STsugikazu Shibataて書いたことをここで言っておくことは価値があります - 301f0127338STsugikazu Shibata 302f0127338STsugikazu Shibata *「カーネルがいつリリースされるかは誰も知りません。なぜなら、 303f0127338STsugikazu Shibata これは現実に認識されたバグの状況によりリリースされるのであり、 304f0127338STsugikazu Shibata 前もって決められた計画によってリリースされるものではないから 305f0127338STsugikazu Shibata です。」* 306f0127338STsugikazu Shibata 3076548e96eSKosuke Fujimotoメジャー番号をまたぐ数本の安定版ツリー 3086548e96eSKosuke Fujimoto~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309f0127338STsugikazu Shibata 310f0127338STsugikazu Shibataバージョン番号が3つの数字に分かれているカーネルは -stable カーネルです。 3116548e96eSKosuke Fujimotoこれには最初の2つのバージョン番号の数字に対応した、 312dc8ab029SAkira Yokosawaメジャーメインラインリリースで見つかったセキュリティ問題や 3136548e96eSKosuke Fujimoto重大な後戻りに対する比較的小さい重要な修正が含まれます。 314f0127338STsugikazu Shibata 315dc8ab029SAkira Yokosawaメジャー安定版シリーズのそれぞれのリリースは 316dc8ab029SAkira Yokosawaバージョン番号の3番目を増加させ、最初の2つの番号は同じ値を保ちます。 317dc8ab029SAkira Yokosawa 318f0127338STsugikazu Shibataこれは、開発/実験的バージョンのテストに協力することに興味が無く、最新 319f0127338STsugikazu Shibataの安定したカーネルを使いたいユーザに推奨するブランチです。 320f0127338STsugikazu Shibata 3216548e96eSKosuke Fujimoto安定版ツリーは"stable" チーム <stable@vger.kernel.org> でメンテされており、 322f0127338STsugikazu Shibata必要に応じてリリースされます。通常のリリース期間は 2週間毎ですが、差 323f0127338STsugikazu Shibataし迫った問題がなければもう少し長くなることもあります。セキュリティ関 324f0127338STsugikazu Shibata連の問題の場合はこれに対してだいたいの場合、すぐにリリースがされます。 325f0127338STsugikazu Shibata 326f0127338STsugikazu Shibataカーネルツリーに入っている、 327f0127338STsugikazu ShibataDocumentation/process/stable-kernel-rules.rst ファイルにはどのような種 328f0127338STsugikazu Shibata類の変更が -stable ツリーに受け入れ可能か、またリリースプロセスがどう 329f0127338STsugikazu Shibata動くかが記述されています。 330f0127338STsugikazu Shibata 3316548e96eSKosuke Fujimotoサブシステム毎のカーネルツリー 332f0127338STsugikazu Shibata~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333f0127338STsugikazu Shibata 334f0127338STsugikazu Shibataそれぞれのカーネルサブシステムのメンテナ達は --- そして多くのカーネル 335f0127338STsugikazu Shibataサブシステムの開発者達も --- 各自の最新の開発状況をソースリポジトリに 336f0127338STsugikazu Shibata公開しています。そのため、自分とは異なる領域のカーネルで何が起きている 337f0127338STsugikazu Shibataかを他の人が見られるようになっています。開発が早く進んでいる領域では、 338f0127338STsugikazu Shibata開発者は自身の投稿がどのサブシステムカーネルツリーを元にしているか質問 339f0127338STsugikazu Shibataされるので、その投稿とすでに進行中の他の作業との衝突が避けられます。 340f0127338STsugikazu Shibata 341f0127338STsugikazu Shibata大部分のこれらのリポジトリは git ツリーです。しかしその他の SCM や 342f0127338STsugikazu Shibataquilt シリーズとして公開されているパッチキューも使われています。これら 343f0127338STsugikazu Shibataのサブシステムリポジトリのアドレスは MAINTAINERS ファイルにリストされ 344f0127338STsugikazu Shibataています。これらの多くは https://git.kernel.org/ で参照することができま 345f0127338STsugikazu Shibataす。 346f0127338STsugikazu Shibata 347f0127338STsugikazu Shibata提案されたパッチがこのようなサブシステムツリーにコミットされる前に、メー 348f0127338STsugikazu Shibataリングリストで事前にレビューにかけられます(以下の対応するセクションを 349f0127338STsugikazu Shibata参照)。いくつかのカーネルサブシステムでは、このレビューは patchworkと 350f0127338STsugikazu Shibataいうツールによって追跡されます。Patchwork は web インターフェイスによっ 351f0127338STsugikazu Shibataてパッチ投稿の表示、パッチへのコメント付けや改訂などができ、そしてメン 352f0127338STsugikazu Shibataテナはパッチに対して、レビュー中、受付済み、拒否というようなマークをつ 353f0127338STsugikazu Shibataけることができます。大部分のこれらの patchwork のサイトは 354f0127338STsugikazu Shibatahttps://patchwork.kernel.org/ でリストされています。 355f0127338STsugikazu Shibata 3566548e96eSKosuke Fujimoto統合テストのための linux-next カーネルツリー 3576548e96eSKosuke Fujimoto~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358f0127338STsugikazu Shibata 3596548e96eSKosuke Fujimotoサブシステムツリーの更新内容がメインラインツリーにマージされる 360f0127338STsugikazu Shibata前に、それらは統合テストされる必要があります。この目的のため、実質的に 361f0127338STsugikazu Shibata全サブシステムツリーからほぼ毎日プルされてできる特別なテスト用のリポジ 362f0127338STsugikazu Shibataトリが存在します- 363f0127338STsugikazu Shibata 364f0127338STsugikazu Shibata https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git 365f0127338STsugikazu Shibata 3666548e96eSKosuke Fujimotoこのやり方によって、linux-next は次のマージ機会でどんなものがメイン 3676548e96eSKosuke Fujimotoラインにマージされるか、おおまかな展望を提供します。 3686548e96eSKosuke Fujimotolinux-next の実行テストを行う冒険好きなテスターは大いに歓迎されます。 369f0127338STsugikazu Shibata 370f0127338STsugikazu Shibataバグレポート 371f0127338STsugikazu Shibata------------- 372f0127338STsugikazu Shibata 373f0127338STsugikazu Shibataメインカーネルソースディレクトリにあるファイル 374dc8ab029SAkira Yokosawa'Documentation/admin-guide/reporting-issues.rst' 375dc8ab029SAkira Yokosawaは、カーネルバグらしきものの報告の仕方、および、カーネル開発者が問題を 376dc8ab029SAkira Yokosawa追跡する際の手がかりとなる情報についての詳細を説明しています。 377f0127338STsugikazu Shibata 378f0127338STsugikazu Shibataバグレポートの管理 379f0127338STsugikazu Shibata------------------- 380f0127338STsugikazu Shibata 381f0127338STsugikazu Shibataあなたのハッキングのスキルを訓練する最高の方法のひとつに、他人がレポー 382f0127338STsugikazu Shibataトしたバグを修正することがあります。あなたがカーネルをより安定化させる 383f0127338STsugikazu Shibataこに寄与するということだけでなく、あなたは 現実の問題を修正することを 384f0127338STsugikazu Shibata学び、自分のスキルも強化でき、また他の開発者があなたの存在に気がつきま 385f0127338STsugikazu Shibataす。バグを修正することは、多くの開発者の中から自分が功績をあげる最善の 386f0127338STsugikazu Shibata道です、なぜなら多くの人は他人のバグの修正に時間を浪費することを好まな 387f0127338STsugikazu Shibataいからです。 388f0127338STsugikazu Shibata 389dc8ab029SAkira Yokosawaすでにレポートされたバグの作業をするためには、興味のあるサブシステムを 390dc8ab029SAkira Yokosawa見つけ、そのサブシステムのバグの報告先 (多くの場合メーリングリスト、 391dc8ab029SAkira Yokosawa稀にバグトラッカー) を MAINTAINERS ファイルで調べてください。 392dc8ab029SAkira Yokosawaそのアーカイブで最近の報告を検索し、できそうなものに力を貸してください。 393dc8ab029SAkira Yokosawahttps://bugzilla.kernel.org でバグ報告を調べようとする人もいるでしょう。 394dc8ab029SAkira Yokosawaこれは限られた一部のサブシステムのバグ報告と追跡に利用されるとともに、 395dc8ab029SAkira Yokosawaとりわけ、カーネル全体に対するバグの登録先となっています。 396f0127338STsugikazu Shibata 397f0127338STsugikazu Shibataメーリングリスト 398f0127338STsugikazu Shibata---------------- 399f0127338STsugikazu Shibata 400f0127338STsugikazu Shibata上のいくつかのドキュメントで述べていますが、コアカーネル開発者の大部分 401f0127338STsugikazu Shibataは Linux kernel メーリングリストに参加しています。このリストの登録/脱 402f0127338STsugikazu Shibata退の方法については以下を参照してください- 403f0127338STsugikazu Shibata 404f0127338STsugikazu Shibata http://vger.kernel.org/vger-lists.html#linux-kernel 405f0127338STsugikazu Shibata 406f0127338STsugikazu Shibataこのメーリングリストのアーカイブは web 上の多数の場所に存在します。こ 407f0127338STsugikazu Shibataれらのアーカイブを探すにはサーチエンジンを使いましょう。例えば- 408f0127338STsugikazu Shibata 4097cc39531SAkira Yokosawa https://lore.kernel.org/lkml/ 410f0127338STsugikazu Shibata 411f0127338STsugikazu Shibataリストに投稿する前にすでにその話題がアーカイブに存在するかどうかを検索 412f0127338STsugikazu Shibataすることを是非やってください。多数の事がすでに詳細に渡って議論されてお 413f0127338STsugikazu Shibataり、アーカイブにのみ記録されています。 414f0127338STsugikazu Shibata 415f0127338STsugikazu Shibata大部分のカーネルサブシステムも自分の個別の開発を実施するメーリングリス 416f0127338STsugikazu Shibataトを持っています。個々のグループがどんなリストを持っているかは、 417f0127338STsugikazu ShibataMAINTAINERS ファイルにリストがありますので参照してください。 418f0127338STsugikazu Shibata 419f0127338STsugikazu Shibata多くのリストは kernel.org でホストされています。これらの情報は以下にあ 420f0127338STsugikazu Shibataります - 421f0127338STsugikazu Shibata 422f0127338STsugikazu Shibata http://vger.kernel.org/vger-lists.html 423f0127338STsugikazu Shibata 424f0127338STsugikazu Shibataメーリングリストを使う場合、良い行動習慣に従うようにしましょう。少し安っ 425f0127338STsugikazu Shibataぽいが、以下の URL は上のリスト(や他のリスト)で会話する場合のシンプル 426f0127338STsugikazu Shibataなガイドラインを示しています - 427f0127338STsugikazu Shibata 428f0127338STsugikazu Shibata http://www.albion.com/netiquette/ 429f0127338STsugikazu Shibata 430f0127338STsugikazu Shibataもし複数の人があなたのメールに返事をした場合、CC: で受ける人のリストは 431f0127338STsugikazu Shibataだいぶ多くなるでしょう。正当な理由がない限り、CC: リストから誰かを削除 432f0127338STsugikazu Shibataをしないように、また、メーリングリストのアドレスだけにリプライすること 433f0127338STsugikazu Shibataのないようにしましょう。1つは送信者から、もう1つはリストからのように、 434f0127338STsugikazu Shibataメールを2回受けることになってもそれに慣れ、しゃれたメールヘッダーを追 435f0127338STsugikazu Shibata加してこの状態を変えようとしないように。人々はそのようなことは好みませ 436f0127338STsugikazu Shibataん。 437f0127338STsugikazu Shibata 438f0127338STsugikazu Shibata今までのメールでのやりとりとその間のあなたの発言はそのまま残し、 439f0127338STsugikazu Shibata"John Kernelhacker wrote ...:" の行をあなたのリプライの先頭行にして、 440f0127338STsugikazu Shibataメールの先頭でなく、各引用行の間にあなたの言いたいことを追加するべきで 441f0127338STsugikazu Shibataす。 442f0127338STsugikazu Shibata 443f0127338STsugikazu Shibataもしパッチをメールに付ける場合は、 444f0127338STsugikazu ShibataDocumentation/process/submitting-patches.rst に提示されているように、そ 445f0127338STsugikazu Shibataれは プレーンな可読テキストにすることを忘れないようにしましょう。カー 446f0127338STsugikazu Shibataネル開発者は 添付や圧縮したパッチを扱いたがりません。彼らはあなたのパッ 447f0127338STsugikazu Shibataチの行毎にコメントを入れたいので、そうするしかありません。あなたのメー 448f0127338STsugikazu Shibataルプログラムが空白やタブを圧縮しないように確認しましょう。最初の良いテ 449f0127338STsugikazu Shibataストとしては、自分にメールを送ってみて、そのパッチを自分で当ててみるこ 450f0127338STsugikazu Shibataとです。もしそれがうまく行かないなら、あなたのメールプログラムを直して 451f0127338STsugikazu Shibataもらうか、正しく動くように変えるべきです。 452f0127338STsugikazu Shibata 453f0127338STsugikazu Shibata何をおいても、他の購読者に対する敬意を表すことを忘れないでください。 454f0127338STsugikazu Shibata 455f0127338STsugikazu Shibataコミュニティと共に働くこと 456f0127338STsugikazu Shibata-------------------------- 457f0127338STsugikazu Shibata 458f0127338STsugikazu Shibataカーネルコミュニティのゴールは可能なかぎり最高のカーネルを提供すること 459f0127338STsugikazu Shibataです。あなたがパッチを受け入れてもらうために投稿した場合、それは、技術 460f0127338STsugikazu Shibata的メリットだけがレビューされます。その際、あなたは何を予想すべきでしょ 461f0127338STsugikazu Shibataうか? 462f0127338STsugikazu Shibata 463f0127338STsugikazu Shibata - 批判 464f0127338STsugikazu Shibata - コメント 465f0127338STsugikazu Shibata - 変更の要求 466f0127338STsugikazu Shibata - パッチの正当性の証明要求 467f0127338STsugikazu Shibata - 沈黙 468f0127338STsugikazu Shibata 469f0127338STsugikazu Shibata思い出してください、これはあなたのパッチをカーネルに入れる話です。あな 470f0127338STsugikazu Shibataたは、あなたのパッチに対する批判とコメントを受け入れるべきで、それらを 471f0127338STsugikazu Shibata技術的レベルで評価して、パッチを再作成するか、なぜそれらの変更をすべき 472f0127338STsugikazu Shibataでないかを明確で簡潔な理由の説明を提供してください。もし、あなたのパッ 473f0127338STsugikazu Shibataチに何も反応がない場合、たまにはメールの山に埋もれて見逃され、あなたの 474f0127338STsugikazu Shibata投稿が忘れられてしまうこともあるので、数日待って再度投稿してください。 475f0127338STsugikazu Shibata 476f0127338STsugikazu Shibataあなたがやるべきでないことは? 477f0127338STsugikazu Shibata 478f0127338STsugikazu Shibata - 質問なしにあなたのパッチが受け入れられると想像すること 479f0127338STsugikazu Shibata - 守りに入ること 480f0127338STsugikazu Shibata - コメントを無視すること 481f0127338STsugikazu Shibata - 要求された変更を何もしないでパッチを出し直すこと 482f0127338STsugikazu Shibata 483f0127338STsugikazu Shibata可能な限り最高の技術的解決を求めているコミュニティでは、パッチがどのく 484f0127338STsugikazu Shibataらい有益なのかについては常に異なる意見があります。あなたは協調的である 485f0127338STsugikazu Shibataべきですし、また、あなたのアイディアをカーネルに対してうまく合わせるよ 486f0127338STsugikazu Shibataうにすることが望まれています。もしくは、最低限あなたのアイディアがそれ 487f0127338STsugikazu Shibataだけの価値があるとすすんで証明するようにしなければなりません。 488f0127338STsugikazu Shibata正しい解決に向かって進もうという意志がある限り、間違うことがあっても許 489f0127338STsugikazu Shibata容されることを忘れないでください。 490f0127338STsugikazu Shibata 491f0127338STsugikazu Shibataあなたの最初のパッチに単に 1ダースもの修正を求めるリストの返答になるこ 492f0127338STsugikazu Shibataとも普通のことです。これはあなたのパッチが受け入れられないということで 493f0127338STsugikazu Shibataは **ありません**、そしてあなた自身に反対することを意味するのでも **あ 494f0127338STsugikazu Shibataりません**。単に自分のパッチに対して指摘された問題を全て修正して再送す 495f0127338STsugikazu Shibataれば良いのです。 496f0127338STsugikazu Shibata 497f0127338STsugikazu Shibata 498f0127338STsugikazu Shibataカーネルコミュニティと企業組織のちがい 499f0127338STsugikazu Shibata----------------------------------------------------------------- 500f0127338STsugikazu Shibata 501f0127338STsugikazu Shibataカーネルコミュニティは大部分の伝統的な会社の開発環境とは異ったやり方で 502f0127338STsugikazu Shibata動いています。以下は問題を避けるためにできると良いことのリストです。 503f0127338STsugikazu Shibata 504f0127338STsugikazu Shibata あなたの提案する変更について言うときのうまい言い方 - 505f0127338STsugikazu Shibata 506f0127338STsugikazu Shibata - "これは複数の問題を解決します" 507f0127338STsugikazu Shibata - "これは2000行のコードを削除します" 508f0127338STsugikazu Shibata - "以下のパッチは、私が言おうとしていることを説明するものです" 509f0127338STsugikazu Shibata - "私はこれを5つの異なるアーキテクチャでテストしたのですが..." 510f0127338STsugikazu Shibata - "以下は一連の小さなパッチ群ですが..." 511f0127338STsugikazu Shibata - "これは典型的なマシンでの性能を向上させます..." 512f0127338STsugikazu Shibata 513f0127338STsugikazu Shibata やめた方が良い悪い言い方 - 514f0127338STsugikazu Shibata 515f0127338STsugikazu Shibata - "このやり方で AIX/ptx/Solaris ではできたので、できるはずだ..." 516f0127338STsugikazu Shibata - "私はこれを20年もの間やってきた、だから..." 517f0127338STsugikazu Shibata - "これは私の会社が金儲けをするために必要だ" 518f0127338STsugikazu Shibata - "これは我々のエンタープライズ向け商品ラインのためである" 519f0127338STsugikazu Shibata - "これは私が自分のアイディアを記述した、1000ページの設計資料である" 520f0127338STsugikazu Shibata - "私はこれについて、6ケ月作業している..." 521f0127338STsugikazu Shibata - "以下は ... に関する5000行のパッチです" 522f0127338STsugikazu Shibata - "私は現在のぐちゃぐちゃを全部書き直した、それが以下です..." 523f0127338STsugikazu Shibata - "私は〆切がある、そのためこのパッチは今すぐ適用される必要がある" 524f0127338STsugikazu Shibata 525f0127338STsugikazu Shibataカーネルコミュニティが大部分の伝統的なソフトウェアエンジニアリングの労 526f0127338STsugikazu Shibata働環境と異なるもう一つの点は、やりとりに顔を合わせないということです。 527f0127338STsugikazu Shibataemail と irc を第一のコミュニケーションの形とする一つの利点は、性別や 528f0127338STsugikazu Shibata民族の差別がないことです。Linux カーネルの職場環境は女性や少数民族を受 529f0127338STsugikazu Shibata容します。なぜなら、email アドレスによってのみあなたが認識されるからで 530f0127338STsugikazu Shibataす。 531f0127338STsugikazu Shibata国際的な側面からも活動領域を均等にするようにします。なぜならば、あなた 532f0127338STsugikazu Shibataは人の名前で性別を想像できないからです。ある男性が アンドレアという名 533f0127338STsugikazu Shibata前で、女性の名前は パット かもしれません (訳注 Andrea は米国では女性、 534f0127338STsugikazu Shibataそれ以外(欧州など)では男性名として使われることが多い。同様に、Pat は 535f0127338STsugikazu ShibataPatricia (主に女性名)や Patrick (主に男性名)の略称)。 536f0127338STsugikazu ShibataLinux カーネルの活動をして、意見を表明したことがある大部分の女性は、前 537f0127338STsugikazu Shibata向きな経験をもっています。 538f0127338STsugikazu Shibata 539f0127338STsugikazu Shibata言葉の壁は英語が得意でない一部の人には問題になります。メーリングリスト 540f0127338STsugikazu Shibataの中で、きちんとアイディアを交換するには、相当うまく英語を操れる必要が 541f0127338STsugikazu Shibataあることもあります。そのため、自分のメールを送る前に英語で意味が通じて 542f0127338STsugikazu Shibataいるかをチェックすることをお薦めします。 543f0127338STsugikazu Shibata 544f0127338STsugikazu Shibata変更を分割する 545f0127338STsugikazu Shibata-------------- 546f0127338STsugikazu Shibata 547f0127338STsugikazu ShibataLinux カーネルコミュニティは、一度に大量のコードの塊を喜んで受容するこ 548f0127338STsugikazu Shibataとはありません。変更は正確に説明される必要があり、議論され、小さい、個 549f0127338STsugikazu Shibata別の部分に分割する必要があります。これはこれまで多くの会社がやり慣れて 550f0127338STsugikazu Shibataきたことと全く正反対のことです。あなたのプロポーザルは、開発プロセスのと 551f0127338STsugikazu Shibataても早い段階から紹介されるべきです。そうすれば あなたは自分のやってい 552f0127338STsugikazu Shibataることにフィードバックを得られます。これは、コミュニティからみれば、あ 553f0127338STsugikazu Shibataなたが彼らと一緒にやっているように感じられ、単にあなたの提案する機能の 554f0127338STsugikazu Shibataゴミ捨て場として使っているのではない、と感じられるでしょう。 555f0127338STsugikazu Shibataしかし、一度に 50 もの email をメーリングリストに送りつけるようなことは 556f0127338STsugikazu Shibataやってはいけません、あなたのパッチ群はいつもどんな時でもそれよりは小さ 557f0127338STsugikazu Shibataくなければなりません。 558f0127338STsugikazu Shibata 559f0127338STsugikazu Shibataパッチを分割する理由は以下 - 560f0127338STsugikazu Shibata 561f0127338STsugikazu Shibata1) 小さいパッチはあなたのパッチが適用される見込みを大きくします、カー 562f0127338STsugikazu Shibata ネルの人達はパッチが正しいかどうかを確認する時間や労力をかけないか 563f0127338STsugikazu Shibata らです。5行のパッチはメンテナがたった1秒見るだけで適用できます。 564f0127338STsugikazu Shibata しかし、500行のパッチは、正しいことをレビューするのに数時間かかるか 565f0127338STsugikazu Shibata もしれません(時間はパッチのサイズなどにより指数関数に比例してかかり 566f0127338STsugikazu Shibata ます) 567f0127338STsugikazu Shibata 568f0127338STsugikazu Shibata 小さいパッチは何かあったときにデバッグもとても簡単になります。パッ 569f0127338STsugikazu Shibata チを1個1個取り除くのは、とても大きなパッチを当てた後に(かつ、何かお 570f0127338STsugikazu Shibata かしくなった後で)解剖するのに比べればとても簡単です。 571f0127338STsugikazu Shibata 572f0127338STsugikazu Shibata2) 小さいパッチを送るだけでなく、送るまえに、書き直して、シンプルにす 573f0127338STsugikazu Shibata る(もしくは、単に順番を変えるだけでも)ことも、とても重要です。 574f0127338STsugikazu Shibata 575f0127338STsugikazu Shibata以下はカーネル開発者の Al Viro のたとえ話です - 576f0127338STsugikazu Shibata 577f0127338STsugikazu Shibata *"生徒の数学の宿題を採点する先生のことを考えてみてください、 578f0127338STsugikazu Shibata 先生は生徒が解に到達するまでの試行錯誤を見たいとは思わないでし 579f0127338STsugikazu Shibata ょう。先生は簡潔な最高の解を見たいのです。良い生徒はこれを知っ 580f0127338STsugikazu Shibata ており、そして最終解の前の中間作業を提出することは決してないの 581f0127338STsugikazu Shibata です* 582f0127338STsugikazu Shibata 583f0127338STsugikazu Shibata *カーネル開発でもこれは同じです。メンテナ達とレビューア達は、 584f0127338STsugikazu Shibata 問題を解決する解の背後になる思考プロセスを見たいとは思いません。 585f0127338STsugikazu Shibata 彼らは単純であざやかな解決方法を見たいのです。"* 586f0127338STsugikazu Shibata 587f0127338STsugikazu Shibataあざやかな解を説明するのと、コミュニティと共に仕事をし、未解決の仕事を 588f0127338STsugikazu Shibata議論することのバランスをキープするのは難しいかもしれません。ですから、 589f0127338STsugikazu Shibata開発プロセスの早期段階で改善のためのフィードバックをもらうようにするの 590f0127338STsugikazu Shibataも良いですが、変更点を小さい部分に分割して全体ではまだ完成していない仕 591f0127338STsugikazu Shibata事を(部分的に)取り込んでもらえるようにすることも良いことです。 592f0127338STsugikazu Shibata 593f0127338STsugikazu Shibataまた、でき上がっていないものや、"将来直す" ようなパッチを、本流に含め 594f0127338STsugikazu Shibataてもらうように送っても、それは受け付けられないことを理解してください。 595f0127338STsugikazu Shibata 596f0127338STsugikazu Shibataあなたの変更を正当化する 597f0127338STsugikazu Shibata------------------------ 598f0127338STsugikazu Shibata 599f0127338STsugikazu Shibataあなたのパッチを分割するのと同時に、なぜその変更を追加しなければならな 600f0127338STsugikazu Shibataいかを Linux コミュニティに知らせることはとても重要です。新機能は必要 601f0127338STsugikazu Shibata性と有用性で正当化されなければなりません。 602f0127338STsugikazu Shibata 603f0127338STsugikazu Shibataあなたの変更を説明する 604f0127338STsugikazu Shibata---------------------- 605f0127338STsugikazu Shibata 606f0127338STsugikazu Shibataあなたのパッチを送付する場合には、メールの中のテキストで何を言うかにつ 607f0127338STsugikazu Shibataいて、特別に注意を払ってください。この情報はパッチの ChangeLog に使わ 608f0127338STsugikazu Shibataれ、いつも皆がみられるように保管されます。これは次のような項目を含め、 609f0127338STsugikazu Shibataパッチを完全に記述するべきです - 610f0127338STsugikazu Shibata 611f0127338STsugikazu Shibata - なぜ変更が必要か 612f0127338STsugikazu Shibata - パッチ全体の設計アプローチ 613f0127338STsugikazu Shibata - 実装の詳細 614f0127338STsugikazu Shibata - テスト結果 615f0127338STsugikazu Shibata 616f0127338STsugikazu Shibataこれについて全てがどのようにあるべきかについての詳細は、以下のドキュメ 617f0127338STsugikazu Shibataントの ChangeLog セクションを見てください - 618f0127338STsugikazu Shibata 619f0127338STsugikazu Shibata "The Perfect Patch" 620dc8ab029SAkira Yokosawa https://www.ozlabs.org/~akpm/stuff/tpp.txt 621f0127338STsugikazu Shibata 622f0127338STsugikazu Shibataこれらはどれも、実行することが時にはとても困難です。これらの例を完璧に 623f0127338STsugikazu Shibata実施するには数年かかるかもしれません。これは継続的な改善のプロセスであ 624f0127338STsugikazu Shibataり、多くの忍耐と決意を必要とするものです。でも諦めないで、実現は可能で 625f0127338STsugikazu Shibataす。多数の人がすでにできていますし、彼らも最初はあなたと同じところから 626f0127338STsugikazu Shibataスタートしたのですから。 627f0127338STsugikazu Shibata 628f0127338STsugikazu Shibata 629f0127338STsugikazu Shibata 630f0127338STsugikazu Shibata 631f0127338STsugikazu Shibata---------- 632f0127338STsugikazu Shibata 633f0127338STsugikazu ShibataPaolo Ciarrocchi に感謝、彼は彼の書いた "Development Process" 634f0127338STsugikazu Shibata(https://lwn.net/Articles/94386/) セクションをこのテキストの原型にする 635f0127338STsugikazu Shibataことを許可してくれました。Rundy Dunlap と Gerrit Huizenga はメーリング 636f0127338STsugikazu Shibataリストでやるべきこととやってはいけないことのリストを提供してくれました。 637f0127338STsugikazu Shibata以下の人々のレビュー、コメント、貢献に感謝。 638f0127338STsugikazu ShibataPat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, 639f0127338STsugikazu ShibataVojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, Andi 640f0127338STsugikazu ShibataKleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop, 641f0127338STsugikazu ShibataDavid A. Wheeler, Junio Hamano, Michael Kerrisk, と Alex Shepard 642f0127338STsugikazu Shibata彼らの支援なしでは、このドキュメントはできなかったでしょう。 643f0127338STsugikazu Shibata 644f0127338STsugikazu Shibata 645f0127338STsugikazu Shibata 646f0127338STsugikazu ShibataMaintainer: Greg Kroah-Hartman <greg@kroah.com> 647