⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 howto

📁 linux 内核源代码
💻
📖 第 1 页 / 共 3 页
字号:
NOTE:This is a version of Documentation/HOWTO translated into Japanese.This document is maintained by Tsugikazu Shibata <tshibata@ab.jp.nec.com>and the JF Project team <www.linux.or.jp/JF>.If you find any difference between this document and the original fileor a problem with the translation,please contact the maintainer of this file or JF project.Please also note that the purpose of this file is to be easier to readfor non English (read: Japanese) speakers and is not intended as afork. So if you have any comments or updates for this file, please tryto update the original English file first.Last Updated: 2007/11/16==================================これは、linux-2.6.24/Documentation/HOWTOの和訳です。翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >翻訳日: 2007/11/10翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com>校正者: 松倉さん <nbh--mats at nifty dot com>         小林 雅典さん (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp>         武井伸光さん、<takei at webmasters dot gr dot jp>         かねこさん (Seiji Kaneko) <skaneko at a2 dot mbn dot or dot jp>         野口さん (Kenji Noguchi) <tokyo246 at gmail dot com>         河内さん (Takayoshi Kochi) <t-kochi at bq dot jp dot nec dot com>         岩本さん (iwamoto) <iwamoto.kn at ncos dot nec dot co dot jp>         内田さん (Satoshi Uchida) <s-uchida at ap dot jp dot nec dot com>==================================Linux カーネル開発のやり方-------------------------------これは上のトピック( Linux カーネル開発のやり方)の重要な事柄を網羅したドキュメントです。ここには Linux カーネル開発者になるための方法とLinux カーネル開発コミュニティと共に活動するやり方を学ぶ方法が含まれています。カーネルプログラミングに関する技術的な項目に関することは何も含めないようにしていますが、カーネル開発者となるための正しい方向に向かう手助けになります。もし、このドキュメントのどこかが古くなっていた場合には、このドキュメントの最後にリストしたメンテナにパッチを送ってください。はじめに---------あなたは Linux カーネルの開発者になる方法を学びたいのでしょうか? それともあなたは上司から「このデバイスの Linux ドライバを書くように」と言われているのでしょうか? この文書の目的は、あなたが踏むべき手順と、コミュニティと一緒にうまく働くヒントを書き下すことで、あなたが知るべき全てのことを教えることです。また、このコミュニティがなぜ今うまくまわっているのかという理由の一部も説明しようと試みています。カーネルは 少量のアーキテクチャ依存部分がアセンブリ言語で書かれている以外は大部分は C 言語で書かれています。C言語をよく理解していることはカーネル開発者には必要です。アーキテクチャ向けの低レベル部分の開発をするのでなければ、(どんなアーキテクチャでも)アセンブリ(訳注: 言語)は必要ありません。以下の本は、C 言語の十分な知識や何年もの経験に取って代わるものではありませんが、少なくともリファレンスとしては良い本です。 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall] -『プログラミング言語C第2版』(B.W. カーニハン/D.M. リッチー著 石田晴久訳) [共立出版] - "Practical C Programming" by Steve Oualline [O'Reilly] - 『C実践プログラミング第3版』(Steve Oualline著 望月康司監訳 谷口功訳) [オライリージャパン] - "C:  A Reference Manual" by Harbison and Steele [Prentice Hall] - 『新・詳説 C 言語 H&S リファレンス』       (サミュエル P ハービソン/ガイ L スティール共著 斉藤 信男監訳)[ソフトバンク]カーネルは GNU C と GNU ツールチェインを使って書かれています。カーネルは ISO C89 仕様に準拠して書く一方で、標準には無い言語拡張を多く使っています。カーネルは標準 C ライブラリとは関係がないといった、C 言語フリースタンディング環境です。そのため、C の標準で使えないものもあります。任意の long long の除算や浮動小数点は使えません。ときどき、カーネルがツールチェインや C 言語拡張に置いている前提がどうなっているのかわかりにくいことがあり、また、残念なことに決定的なリファレンスは存在しません。情報を得るには、gcc の info ページ( info gcc )を見てください。あなたは既存の開発コミュニティと一緒に作業する方法を学ぼうとしていることに留意してください。そのコミュニティは、コーディング、スタイル、開発手順について高度な標準を持つ、多様な人の集まりです。地理的に分散した大規模なチームに対してもっともうまくいくとわかったことをベースにしながら、これらの標準は長い時間をかけて築かれてきました。これらはきちんと文書化されていますから、事前にこれらの標準についてできるだけたくさん学んでください。また皆があなたやあなたの会社のやり方に合わせてくれると思わないでください。法的問題------------Linux カーネルのソースコードは GPL ライセンスの下でリリースされています。ライセンスの詳細については、ソースツリーのメインディレクトリに存在する、COPYING のファイルを見てください。もしライセンスについてさらに質問があれば、Linux Kernel メーリングリストに質問するのではなく、どうぞ法律家に相談してください。メーリングリストの人達は法律家ではなく、法的問題については彼らの声明はあてにするべきではありません。GPL に関する共通の質問や回答については、以下を参照してください。	http://www.gnu.org/licenses/gpl-faq.htmlドキュメント------------Linux カーネルソースツリーは幅広い範囲のドキュメントを含んでおり、それらはカーネルコミュニティと会話する方法を学ぶのに非常に貴重なものです。新しい機能がカーネルに追加される場合、その機能の使い方について説明した新しいドキュメントファイルも追加することを勧めます。カーネルの変更が、カーネルがユーザ空間に公開しているインターフェイスの変更を引き起こす場合、その変更を説明するマニュアルページのパッチや情報をマニュアルページのメンテナ mtk.manpages@gmail.com に送ることを勧めます。以下はカーネルソースツリーに含まれている読んでおくべきファイルの一覧です-  README    このファイルは Linuxカーネルの簡単な背景とカーネルを設定(訳注    configure )し、生成(訳注 build )するために必要なことは何かが書かれ    ています。カーネルに関して初めての人はここからスタートすると良いで    しょう。  Documentation/Changes     このファイルはカーネルをうまく生成(訳注 build )し、走らせるのに最     小限のレベルで必要な数々のソフトウェアパッケージの一覧を示してい     ます。  Documentation/CodingStyle    これは Linux カーネルのコーディングスタイルと背景にある理由を記述    しています。全ての新しいコードはこのドキュメントにあるガイドライン    に従っていることを期待されています。大部分のメンテナはこれらのルー    ルに従っているものだけを受け付け、多くの人は正しいスタイルのコード    だけをレビューします。  Documentation/SubmittingPatches  Documentation/SubmittingDrivers     これらのファイルには、どうやってうまくパッチを作って投稿するかに     ついて非常に詳しく書かれており、以下を含みます(これだけに限らない     けれども)        - Email に含むこと        - Email の形式        - だれに送るか     これらのルールに従えばうまくいくことを保証することではありません     が (すべてのパッチは内容とスタイルについて精査を受けるので)、     ルールに従わなければ間違いなくうまくいかないでしょう。     この他にパッチを作る方法についてのよくできた記述は-	"The Perfect Patch"		http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt	"Linux kernel patch submission format"		http://linux.yyz.us/patch-format.html  Documentation/stable_api_nonsense.txt     このファイルはカーネルの中に不変のAPIを持たないことにした意識的な     決断の背景にある理由について書かれています。以下のようなことを含     んでいます-       - サブシステムとの間に層を作ること(コンパチビリティのため?)       - オペレーティングシステム間のドライバの移植性       - カーネルソースツリーの素早い変更を遅らせる(もしくは素早い変更         を妨げる)     このドキュメントは Linux 開発の思想を理解するのに非常に重要です。     そして、他のOSでの開発者が Linux に移る時にとても重要です。  Documentation/SecurityBugs    もし Linux カーネルでセキュリティ問題を発見したように思ったら、こ    のドキュメントのステップに従ってカーネル開発者に連絡し、問題解決を    支援してください。  Documentation/ManagementStyle    このドキュメントは Linux カーネルのメンテナ達がどう行動するか、    彼らの手法の背景にある共有されている精神について記述しています。こ    れはカーネル開発の初心者なら(もしくは、単に興味があるだけの人でも)    重要です。なぜならこのドキュメントは、カーネルメンテナ達の独特な    行動についての多くの誤解や混乱を解消するからです。  Documentation/stable_kernel_rules.txt    このファイルはどのように stable カーネルのリリースが行われるかのルー    ルが記述されています。そしてこれらのリリースの中のどこかで変更を取    り入れてもらいたい場合に何をすれば良いかが示されています。  Documentation/kernel-docs.txt  カーネル開発に付随する外部ドキュメントのリストです。もしあなたが    探しているものがカーネル内のドキュメントでみつからなかった場合、    このリストをあたってみてください。  Documentation/applying-patches.txt    パッチとはなにか、パッチをどうやって様々なカーネルの開発ブランチに    適用するのかについて正確に記述した良い入門書です。カーネルはソースコードから自動的に生成可能な多数のドキュメントを自分自身でもっています。これにはカーネル内 API のすべての記述や、どう正しくロックをかけるかの規則が含まれます。このドキュメントはDocumentation/DocBook/ ディレクトリに作られ、以下のように	make pdfdocs	make psdocs	make htmldocs	make mandocsコマンドを実行するとメインカーネルのソースディレクトリからそれぞれ、PDF, Postscript, HTML, man page の形式で生成されます。カーネル開発者になるには---------------------------もしあなたが、Linux カーネル開発について何も知らないならば、KernelNewbies プロジェクトを見るべきです	http://kernelnewbies.orgこのサイトには役に立つメーリングリストがあり、基本的なカーネル開発に関するほとんどどんな種類の質問もできます (既に回答されているようなことを聞く前にまずはアーカイブを調べてください)。またここには、リアルタイムで質問を聞くことができる IRC チャネルや、Linuxカーネルの開発に関して学ぶのに便利なたくさんの役に立つドキュメントがあります。web サイトには、コードの構成、サブシステム、現在存在するプロジェクト(ツリーにあるもの無いものの両方)の基本的な管理情報があります。ここには、また、カーネルのコンパイルのやり方やパッチの当て方などの間接的な基本情報も記述されています。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -