xref: /openbmc/linux/Documentation/translations/ja_JP/howto.rst (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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