アプリ版:「スタンプのみでお礼する」機能のリリースについて

単純な質問ですいません。

Linux系はあまり詳しくありません。
Linux系のOSの再構築のやり方、または、どういうコマンドでするのでしょうか?
どこかの記事でパッチとかを組み込むには、再構築しなくてはいけないと書いてあったので、
質問しました。

再構築のメリットとして、自分なりにOSをカスタマイズ(軽くしたり、研究の仕方の方針)することで当っているのでしょうか?
再構築のメリットとはどういう事なのでしょうか?
研究者の方とかそういう方針でしているようなので・・・。

自分もそういう自分なりにOSを扱ってみたいという好奇心で書き込みました。

アドバイスお願いします。

A 回答 (3件)

カーネル再構築は初心者がする物ではありません。



「Linux カーネル再構築」で検索するといくらでも情報がありますが、それを見てわからないようであれば、手を出さない方が良いと思います。

単に標準のカーネルを自分でそのまま構築するならともかく、パッチを当てるとか、モジュールを選択するとかになると、それなりの知識が必要です。
まあ、「仮想化環境で行って、失敗したらまた最初からやり直し」ということならトライしてみてもいいと思いますが。
    • good
    • 0
この回答へのお礼

一応、UNIXの基礎的な知識はありますが、やはり、敷居は高いですね。

Linuxの本で、勉強して、頑張りたいと思います。

お礼日時:2012/07/02 22:44

>一応、UNIXの基礎的な知識はありますが、やはり、敷居は高いですね。


そう言うからにはFreeBSDなどのカーネル再構築はやったことあるんだよな?
だったらLinuxのカーネル再構築もそれらと同じ事。
    • good
    • 0
この回答へのお礼

UNIXの知識は、本で読んで、大学のとき、FreeBSDとか色々といじった経験があるだけで半分忘れました。

ただ、今後ITで働くことを考えたら、Linux系が弄ばれているのでもっと奥が深いことを知らなけらば話にならないので、質問しただけです。
本でも読んで勉強したいと思います。

お礼日時:2012/07/03 07:18

基本的に、FreeBSDもLinuxもそうそう変わりません。

FreeBSDでカーネルの再構築をしたことがあれば、Linuxでも簡単にカーネルの再構築ができるでしょう。どちらでも、開発ツール一式をインストールした上でmakeです。

単純にカーネル開発をやってみたいだけというのなら、FreeBSDの方が直感的にわかりやすくてとっつきやすいと思います。FreeBSDの場合は、インストールした直後に開発ツール一式をすべて入れてくれていますし、ユーザーランドからカーネルまで一式のソースコードが一発で手に入るので、段階的に学習するならこちらがやりやすいです。また、ソースコードも癖がなく、直感的にたどりやすく書いてあるので、比較的読みやすいです。再構築したカーネルのインストールも、普通にmake installkernelするとインストールされますのであまり悩みません。

Linuxの場合はOS再構築というより、カーネルの再構築ですよね?OSというとカーネルとその周辺のソフトウェア一式を指しますが、Linuxだとカーネルとそれ以外の提供元が違うので、OSそのものの再構築はディストリビューションによってやり方は大きく異なります。この場合はパッケージとして全て提供されているので、ディストリビューションのパッケージツールを使ってカーネルもその他のソフトも再構築します。しかし、依存関係が壊れていて自分で修正しないといけない場合や中のソースコードに自分でパッチを当てたい場合を除いて、普通パッケージの再構築はしないですね。

Linuxカーネルをディストリビューションのツールで再構築するくらいなら、普通はkernel.orgからソースコードをダウンロードしてきて、makeします。この方がディストリビューションにそれほどよらないので汎用的ですし、カーネル開発者はみんな普通にこれができます。 (いや、gitで取ってくるかな) 起動時にカーネルを読みこませるための設定というか、必要なコマンドがディストリビューションによって違うのでちょっと面倒くさいです。

と、ここまで書いてきてなんですが、FreeBSDでもLinuxでも、カーネル開発者になりたい人か基盤システムの研究者になりたい人でも無い限り、まずカーネルの再構築は必要ありません。そんなことしたことなくても、FreeBSD使える人、Linux使える人として十分通用すると思います。 Windowsのカーネル部分の設計などを理解してなくても(例えば、Windows Internalsに書いてある内容を理解してなくても)、Windows使える人と言うのと同じです。逆に、そっちの業界の人だと、基本知識過ぎて自慢にもならない。

と、ここまで聞いてまだカーネル開発をしてみたいと思うなら、まずはカーネルモジュールの開発から進めるとよいでしょう。
FreeBSD: http://www.freesoftwaremagazine.com/articles/wri …
Linux: http://tldp.org/LDP/lkmpg/2.6/html/
カーネルモジュール開発に使うツール類は全てカーネル開発に使うものと同じですので、初めてのカーネル開発に最適です。モジュールを作るだけなので、知っておかないといけない知識は部分的で済みますし、ロードとアンロードをすれば簡単に新しいものを作って試すことが出来ますから。


> Linux系のOSの再構築のやり方、または、どういうコマンドでするのでしょうか?

前述のとおり、カーネル+周辺ツール一式=OSという意味なら、ディストリビューションによって違います。まずディストリビューションを書いてください。

カーネルだけで、ディストリビューションによらない方法でするなら、kernel.orgからソースコードを落としてきて、makeです。

> 再構築のメリットとして、自分なりにOSをカスタマイズ(軽くしたり、研究の仕方の方針)することで当っているのでしょうか?

カーネルを再構築するのは、カーネルのソースコードを変更し、それを実際に適用したいからです。その点で言うと、OSをカスタマイズしたいというのは当たっていると思います。
まぁ、カスタマイズすると言うよりも、新機能を追加したり、動きを探ったりするために再構築しますね。
単なるカスタマイズなら、どのカーネルモジュールをロードするかの設定を変えるだけで十分でしょう。今時、多くの者はカーネルモジュールとして提供されていますから。

あるいは、ディストリビューションの標準カーネルに入っていない機能を使いたい場合もkernel.orgからソースコードを取ってきた上で再構築すると思います。

> 再構築のメリットとはどういう事なのでしょうか?

前述のとおり、自分でカーネル再構築ができるとディストリビューションに入っていない最新のカーネルが使えます。例えば、btrfsなどを実験的なサポートの段階から使えます。

カーネル再構築はカーネルソースコードに加えた変更を実際の動作するカーネルに反映するための手段です。どちらかと言うと、カーネルを改造・開発するために必須のスキルというだけですね。

ちなみに、再構築するという行為そのものでカーネルへの理解が深まる...ということも無いと思います。
自分はFreeBSDを使い始めた時からずっとカーネルの再構築をしていますが、実際にカーネルに手を入れたのはそういう機会が来てからで、それまではソースコードを見たことすらなかったですから。FreeBSD Handbookに書いてある手順に従えば誰でもできるもので、中身を見たことすら無いものを知っているとは言わないでしょう。
http://www.freebsd.org/doc/en_US.ISO8859-1/books …
OSそのものの再構築もHandbook通りやれば誰でもできます。
http://www.freebsd.org/doc/en_US.ISO8859-1/books …


というわけで、カーネルの再構築は開発ツールを一式入れて、makeでできます。起動時に読み込ませるにはちょっと設定が必要です。今時多くのものはカーネルモジュールになっているので、再構築して、不要なモジュールを削って軽量化というのはありえません。今時のCPUは分岐予測の機能が入っているので、カーネルモジュールから静的にリンクされたものに変更してもスピードアップはほとんどありません。再構築のスキルがあると、設定を変更すればディストリビューション非標準の機能を使えるとは思います。
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。

やはり、makeを使いこなせるようになりたいです。
一度大学で学んだのですが、数年経って忘れてきました。
Linux系よりFreeBSDの方がソースがわかり易いのですね。
知人もFreeBSDやNetBSDを使っていたので、その理由も関係しているのですね。
>単なるカスタマイズなら、どのカーネルモジュールをロードするかの設定を変えるだけで十分でしょう。今時、多くの者はカーネルモジュールとして提供されていますから。

開発キッドも手に入るのですね。やはり自分もBSD系のソースをある程度理解できるようになりたいです。

>再構築のスキルがあると、設定を変更すればディストリビューション非標準の機能を使えるとは思います。

便利ですよね。

参考になりました。

お礼日時:2012/07/03 13:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!