☆Linux カーネルの仕組みを勉強するスレ☆
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001login:Penguin
01/10/02 17:44ID:38KkZsUQカーネル全般について語り合うスレッドです。
0930923
04/08/30 02:36ID:s/M5nqAJ暗闇の中に一筋の光が見えてきました。
0931login:Penguin
04/09/06 16:37ID:zvPrxyTSム板より転載。
http://program2ch.jugem.cc/
0932login:Penguin
04/09/28 13:20:48ID:j6tq7+L52.2用のカーネルモジュール(driver)がありまして、2.4で使いたいのですけ
ど、カーネルに変更が加わった為かソースはそのままではmakeが通らないです。
一般的な話でいいのですが、kernel2.2から2.4などバージョンを上げる時
moduleのソースはどの辺りに修正加えてますか?
0933login:Penguin
04/10/12 13:21:06ID:8oNaJMZyオライリーの「LINUXデバイスドライバ」ぐらい持っとけ。
0934login:Penguin
04/12/22 21:16:51ID:pSCYM4cf2.2と2.4の同じデバイスのドライバ見比べてみたらどうでしょうか。
あと、「LINUXデバイスドライバ」って英語版はWeb上で読めましたっけ。
0935login:Penguin
04/12/23 07:06:29ID:S0CjoABJHIGHMEMが必要なわけですが、
HIGHMEMを使うにあたって、ペナルティ等はありますか?
2.6になって改善されたというような記事は見つかったのですが、
具体的な問題については見つかりませんでした。
0936login:Penguin
04/12/30 10:00:07ID:4MuG0KSsモジュールでシステムコールを追加する方法というのはありますが、
(hoge.oをロードしてる間だけhoge()と言うシステムコールが使える)
既存のシステムコールを上書きすることはできるのでしょうか。
(hoge.oをロードしている間だけカスタマイズしたopen()、close()が使えるような)
カーネルがROなROMに焼かれているシステムですので、カーネルに直接
手を入れることができず上記のような発想で対応したいと考えています。
0937login:Penguin
04/12/30 10:00:44ID:4MuG0KSsなお、対象のカーネルは2.4.17です。
0938login:Penguin
04/12/30 10:09:32ID:4MuG0KSsここにそのものズバリがありました。
ご参考に。
http://www.csg.is.titech.ac.jp/~kourai/memo/linux_kernel.html
0939login:Penguin
05/01/29 14:37:42ID:gZ/pqgzp# define __acquire(x)__context__(1)
__context__(1)ってのはどういう意味?
教えてくれた人には俺の妹をもれなくプレゼント!
0940login:Penguin
05/02/01 14:08:57ID:lTL5Ae25コンテキストスイッチ。
って何だったっけ?
ああ、不完全だからおぱーいとマソこだけでいいよ。
0941login:Penguin
05/02/01 15:58:58ID:Azn3cU4Mとりあえずレスに感謝。あんた最高だよ、ただコンテキストスイッチじゃないんだよな。
不正解だから>>940には、俺の使用済みティッシュ(3年分)をもれなくプレゼント!
__context__(1)ってのはどうもgcc拡張っぽい気がするんだ。
0942login:Penguin
05/02/03 11:47:43ID:vTRZ9nM+0943login:Penguin
05/02/03 12:58:08ID:8pVcdBBv理解できずに苦しんでます。どうかご教授ください。
0944login:Penguin
05/02/20 01:52:12ID:HsEiZt6DDEFINE_PER_CPUで定義したCPU毎の変数を取り出すマクロじゃないの?
ttp://lwn.net/Articles/22911/
0945login:Penguin
05/02/20 01:59:27ID:HsEiZt6D0946943
05/02/23 08:44:24ID:L5tOcRY0ありがとうございますm(_ _)m
半分、あきらめかけていました。
0947CPUID
05/02/25 14:48:05ID:T5ngmMgI0948login:Penguin
05/02/25 21:56:30ID:Kyzhm2lt0949login:Penguin
05/02/25 23:10:03ID:L0S86Pvnすプロセスディスクリプタの誤りです。
0950login:Penguin
05/02/25 23:55:11ID:Nj2juC+Sそんなんユーザー空間から見えちゃまずいだろう。
0951login:Penguin
05/02/26 13:57:10ID:NTEY/KLTお前は一人で世界を救おうというのか!
0952login:Penguin
05/02/26 20:38:32ID:c7lqcqLwカーネルを理解したいのだ。
「この本をこの通りに順番に読め!」
というのがあったら、教えてください。
0953login:Penguin
05/02/26 21:54:11ID:PsgioYqx本などない
ソース嫁
0954login:Penguin
05/02/27 14:18:38ID:BnGxFursこれ以上理解できない状態が続くと、妻を道連れに逝くかもしれません。
そうなったらお前らすごい後悔するよな、そうだよな、そうだろ!
心の中で否定しても無駄だ、絶対後悔しちゃうぞ。
後悔したくないよな、そうだよな。
じゃー、さっさと教えてちょ!
include/linux/compiler.h
# define __releases(x)__attribute__((context(1,0)))
# define __acquire(x)__context__(1)
すいません、ちょっと強気に迫ってみましたが、教えてください。
本当に困ってます。頼みます。m(_ _)m
0955login:Penguin
05/02/27 14:21:21ID:BnGxFurs1. UnixUserのLinux2.6解読室
2. 詳解Linuxカーネル
3. Linuxのソース
0956login:Penguin
05/02/27 20:25:37ID:1DzM+Kt1詳細Linuxカーネルは持ってます。
UnixUserのブートの本も。
ただ、それに至る知識がないのです。
Linuxプログラミング(ソフトバンクのやつ)も読んでいるのですが、
「何かが足りない」感じなのです。
0957login:Penguin
05/02/27 20:27:14ID:1DzM+Kt10958login:Penguin
05/02/27 20:53:44ID:+C2cvjvn恐らくハードウェアの知識と根性
>>954
それバージョンいくつ?そんな内容ないし。
それに__attribute__について知りたいならgccのinfoで
C Extensionの項目の
* Function Attributes:: Declaring that functions have no side effects,
or that they can never return.
* Attribute Syntax:: Formal syntax for attributes.
* Variable Attributes::Specifying attributes of variables.
* Type Attributes::Specifying attributes of types.
この辺り見れば?
0959login:Penguin
05/02/27 20:54:49ID:BnGxFursあくまで個人的な意見だが、Linuxカーネルはプロセッサの知識
が無いと苦しい。
「はじめて読む8086」→「はじめて読む486」
を読んで、プロセッサの知識を身につけておいた方が良いと思う。
ただ、「あれやって、これやって、そしてLinuxカーネルを読もう」
とあまり遠回りをするのではなく、プロセッサとC言語の知識が
あったら、すぐにLinuxカーネルを読み始めた方がよいように思う。
0960954
05/02/27 21:00:55ID:BnGxFursとりあえずレス、サンクス!感謝感謝感謝
Linux2.6.10です。
探してみたんだけど見つかりません>gccのinfo (ToT)
context()っていう関数が一体、どの関数のことなのか知りたいです。
0961login:Penguin
05/02/28 11:32:10ID:D7G2yqC2つ[GNU GLOBAL ソースコードタグシステム]
http://tamacom.com/global-j.html
0963960
05/03/01 11:16:17ID:yi/Urpstinclude/linux/compiler.h
の中のマクロってことがヒントかもしれない。
http://lxr.linux.no/source/include/linux/compiler.h#L6
↑の場所なんだが、
#ifdef __CHECKER__
っというのは何だろう?__ASSEMBLY__とかいう定義もあるが、
これはどこで調べれば良いのだろうか。
どうか放置せずに教えてください m(_ _)m
これ以上停滞してると、・・・お、お客さんが怖い・・・
0964login:Penguin
05/03/01 11:56:56ID:dudfwCjE0965login:Penguin
05/03/01 12:04:54ID:eifVJR66>これ以上停滞してると、・・・お、お客さんが怖い・・・
ソースを解析する仕事??
0966login:Penguin
05/03/01 12:14:12ID:PnFz+g+l0968login:Penguin
05/03/01 15:25:54ID:eifVJR660969960
05/03/01 16:13:44ID:yi/Urpst下請けなので断れない立場です(T_T)
0970login:Penguin
05/03/01 16:16:52ID:xn0lGzJZおたがい不幸になるだけだ。
0971login:Penguin
05/03/01 16:21:19ID:xn0lGzJZ【Linux】カーネル総合2【Kernel】
http://pc5.2ch.net/test/read.cgi/linux/1100967722/
0972login:Penguin
05/03/01 16:36:21ID:eifVJR66ちょっと調べたら自分はわかったよ。
言っておくけどデバドラ開発ならこれらは知らなくても別に問題ないよ。
無視してもいい。
ちょっとだけヒント:これらはgccでは使用しません
0973960
05/03/01 16:44:06ID:yi/Urpstサンクス!x9
か、かなり気が楽になったよ。お前は神だ!
できればどこを調べたのか知りたいのだが・・・頼む.com
>>970は厳しいね。
仕事、断れるくらい大きい会社に勤めてるんだろうね。うらやましぃ...
0974login:Penguin
05/03/01 17:47:44ID:eifVJR66>できればどこを調べたのか知りたいのだが・・・頼む.com
(ーー;)
無視してもよいと言ってるではないか...
Use the source and google, >>963
− May the source be with >>963!
0975必死な960
05/03/01 19:23:39ID:yi/Urpst>無視してもよいと言ってるではないか...
長いこと悩んでいたので、結局なんだったのか知りたいです。
といろいろ検索かけてみたが、未だわかりませんorz
どうか、どうか教えてください m(_ _)m
0976login:Penguin
05/03/01 20:15:49ID:eifVJR66じゃあ手がかりを与えよう (といっても答えを言ってるようなものだけど..)
ttp://www.linuxjournal.com/article/7272
0978login:Penguin
05/03/01 22:09:08ID:eifVJR660979& ◆/WemEjDB42
05/03/01 22:41:33ID:yi/Urpst現在英語を読んでいるところだが、よくわからんのだ。
ただ、気持ちだけは伝わってるぜ。
サンキュー、ミスター!あんた最高だよ。
ついでに言っておくが、日本語で解説してくれると
うれしい。
0980login:Penguin
05/03/01 22:44:19ID:eifVJR66>ついでに言っておくが、日本語で解説してくれると
>うれしい。
ガン( ゚д゚)ガレ
0981login:Penguin
05/03/01 22:54:00ID:yi/Urpst「はじめて読む8086」「はじめて読む486」は良い本だよ。
両方とも古い本なので、486の方はサンプルコードがMASM
とMS-C用なんだよな。で、DOSで動かすことを前提として
いる。今となっては、そのような環境は手に入らないかも
しれない。でも、あきらめるのは早い。
MS-DOSの代わりにFreeDOSを使えば良いし、MASMやMS-Cの
代わりにLSI C-86試食版を使えば良い。
FreeDOS
ttp://homepage1.nifty.com/bible/fdos/
LSI C-86試食版
ttp://oku.edu.mie-u.ac.jp/~okumura/c/lsic.html
FreeDOSにLSI C-86試食版を導入する方法
ttp://homepage1.nifty.com/bible/fdos/lsic/lsi-c.html
根気よく頑張れよ!
0982login:Penguin
05/03/01 22:59:55ID:eifVJR66まぁ簡単に言うとだな、
リーナスがちょっとしたちっちゃなコンパイラを作ったぞ、みたいな
古いK&Rスタイルは嫌だからANSI Cが好きなの、みたいな
GCCを使わずにそれでソースチェックに使ったりしてるよ、みたいな
んな事言ってるように思われ。
んだからそのリーナスコンパイラ"Sparse"って言うのか?は、
別にKernelコンパイルにもデバドラ作成にも必須で無いぞって事。
(Kernelハッカーには嬉しいツールらしいが..)
0983960
05/03/01 23:06:31ID:yi/Urpstよくぞ説明してくれた!なるほど!
俺はもうあきらめて愛用のパジャマに着替えた
ところだよ。
感謝の気持ちとして俺の使用済みティッシュ
(1ヶ月分)をもれなくプレゼント!
0984login:Penguin
05/03/01 23:09:19ID:eifVJR66>よくぞ説明してくれた!なるほど!
>俺はもうあきらめて愛用のパジャマに着替えた
>ところだよ。
それでいいのか!サラリーマンよ!w
>感謝の気持ちとして俺の使用済みティッシュ
>(1ヶ月分)をもれなくプレゼント!
(゚�听)イラネ
0985960
05/03/01 23:19:08ID:yi/Urpst>それでいいのか!サラリーマンよ!w
良くは無いんだけど、俺はクソエンジニアだからいいの。
でもありがとな。助かったよ。
sparseについて調べてみるといくつか見つかった。↓こういう使われ方を
してるんだね。
RedHatのサイトにて:
sparseという自動化ツールを使用してLinux 2.6ソースを調べて
いたところ、いくつかの問題が発見された。そのうち一部の問題
は、2.4シリーズのLinuxカーネルにも当てはまるものである。
japan.linux.comにて:
sparseという自動化ツールを使用してLinux 2.6ソース
を調べていたところ、複数の弱点が発見された。
0986I am free.
05/03/01 23:29:18ID:eifVJR66日々を過ごしてるだけだから忠告するほど偉くはないんだけどね。w
レス数が950を超えています。1000を超えると書き込みができなくなります。