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