トップページ⇒linux
986コメント359KB

☆Linux カーネルの仕組みを勉強するスレ☆

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/10/02 17:44ID:38KkZsUQ
メモリ管理、プロセス、ファイルシステム色々ありますが
カーネル全般について語り合うスレッドです。
0052login:Penguin01/10/09 00:13ID:bLcM5DEQ
10さんのファイル萌えるうううううううう・・・・・・ハァハァ
00535201/10/09 00:16ID:bLcM5DEQ
あ、、、でもLinusの自伝に、
できたてのころのカーネルはデバイスドライバがバグりやすいとか書いてあったなあ、
入れるのに少し抵抗が、、
0054生徒A01/10/09 01:04ID:3eF2sAZg
>53 VMWare
00555301/10/09 01:09ID:bLcM5DEQ
>>54
なるほど・・!
VM上で動かせばディスク死んだりすることも無いということですね!
(勘違いだったら死脳ッ戸
レスありがとうございます。
0056生徒A01/10/09 03:03ID:3eF2sAZg
>いまならオブジェクト指向言語で見通しよく書かれた
>OSを採用するべきではないかとおもうのですが

別スレの質問。技術的には言っていることは正しい(多分)。
ただ、そのような言語を理解できる人が少ないため、カーネルの
メンテナンス要因が激減すると思われ。

そのデメリットがメリットを上回っているのが現状。

「いいや違う」という反論はソースコードでのみ受け付ける。
もちろん、君がオブジェクト指向言語で書いたOSのコードでね。
0057login:Penguin01/10/09 20:44ID:z4CgcBHE
アゲル アゲレバ アゲルトキ
0058名無しさん@お腹いっぱい。01/10/09 21:18ID:P9P83zo6
何ヶ月か前にマ板C++スレでC++ではメタオブジェクトがないから
そんな言語でOS作ったら悲惨なことになるっていう結論が出てた
0059login:Penguin01/10/09 23:01ID:z4CgcBHE
Objective-Cで作りませう!
0060login:Penguin01/10/09 23:43ID:bAzeTfP6
Rubyで作りませう!
0061  01/10/14 09:30ID:q04qm9lH
なるほど、今となってはOSの処理は相対的に
軽いから、デバイスドライバー部分とCPU周辺
チップのところ以外では、OSをインタープリター言語
で書いても十分実用になるのかな?
0062login:Penguin01/10/14 23:50ID:bKvEFw2k
質問させてください。叩かれ覚悟です。

カーネル部分を作るには、アセンブリがわかる必要がありますよね。
全部Cってわけにはいかないと思うのです。どこで勉強すればよいか教えて
ください。(Cはわかります。)
それから、OSがどんな風に立ち上がるのか(ローダーってやつ?)なんかも
どこで勉強すればよいのでしょう。ハードディスクの先頭に何かアセンブリで
書いておくのでしょうか?
スレを汚してすみません。でも初心者スレでは無視されるだけだと思いますので。
お願いします。
0063login:Penguin01/10/15 00:06ID:yWyIFyqv
>>62
http://www.linux.or.jp/JF/
読み漁れば脱初心者にはなれる。

>それから、OSがどんな風に立ち上がるのか(ローダーってやつ?)なんかも
>どこで勉強すればよいのでしょう。

上のサイトにも書いてあった気がするけど。
今月号のLinuxMagajineが特集してた。悪くない。
00646201/10/15 00:12ID:KoDPieN3
>>63
やさしいご指導ありがとうございます。
がんばります。
0065login:Penguin01/10/15 00:15ID:IJzxys8Q
>>62
ほれ。
http://www.linux.or.jp/JF/JFdocs/From-PowerUp-To-Bash-Prompt-HOWTO.html

別に初心者スレでも無視しないけど。
00666201/10/15 00:30ID:KoDPieN3
>>65
ありがとうございます。
>別に初心者スレでも無視しないけど。
すみません。
0067login:Penguin01/10/15 00:30ID:RTj/vcxR
つーか、Linuxカーネルに学ぶことなんてないじゃん。

NetBSDの方がおもしろいぞ。いっぺん見てみろ。
0068login:Penguin01/10/15 01:18ID:0RSIU0Ev
LinuxとNetBSDを読み比べるのも一興かと。

OSの勉強するんだったら、BSD勧めとく。
386の勉強するんだったら、Linuxも悪くない。
0069login:Penguin01/10/15 01:25ID:c0PMqbqd
RT-Linuxってどう?
0070login:Penguin01/10/15 03:51ID:LRyZyG6E
>>68
確かに。ソースを読むのもいいけど、とりあえず、
-current の man.tgz を持ってきて、/usr/share/man/cat9 を
覗くだけでも宝の山。
hard link が多いから、ファイル選んで読むべし。
0071login:Penguin01/10/15 07:44ID:RTj/vcxR
MINIX -> 386BSD -> NetBSD -> FreeBSD -> Linux -> Solaris

の順番で勉強せい。
MINIX、386BSDの挙動を完全に理解できたら、後のものはソースコードを眺めるだけでよし。

いきなりLinuxカーネルはきつすぎる。
良い意味で実用主義、悪い意味で「とりあえず動けばOK」。
ただひたすら読みにくい。

Linux、*BSDを読み終えたらSunだ。ちゃんと金払えよ。
そしてスレッドの美しさに酔いしれろ。
0072login:Penguin 01/10/15 07:52ID:fLIHewuG
>>71
Solarisんとこ、machやl4の方がいいと思うけど。
0073login:Penguin01/10/15 07:55ID:fLIHewuG
UNIXの構造を勉強したい人にはthreadは関係ないんじゃねーの?
0074login:Penguin01/10/15 09:47ID:1RSiSLer
Jolietの2byte文字を読めるように改良しようと思って、
ソースを眺めているがサパーリわからん。

やはりVC++で500行程度のコードを書いたことが有る。
と言うレベルの俺には難しすぎる(わらぃ
00757401/10/15 10:17ID:1RSiSLer
って、必死にソース追ってたらちゃんと多byte文字対応してやがる。
ああ、今まで必死にソースを追った作業は何だったんだろう?
鬱出汁脳
0076login:Penguin01/10/16 00:45ID:B9OVQJ4u
みんなFDのブートセクタにHelloWorldっぽいの書いて実行してみなよ、
マジ感動するよ、
(カーネルの仕組みの前にPCのブートの仕組みを学ぶのもいいかも)
http://isweb32.infoseek.co.jp/computer/nobumasa/hardware/boot_hdd/boot/boot.html
参照
0077login:Penguin01/10/16 00:59ID:0iRzhq4a
>>76
いいドキュメントだね。
0078login:Penguin01/10/16 06:05ID:+7CBRx1X
>>73
Solaris とか NetBSD だと scheduler activation というネタもあるし、
FreeBSD にも KSE っていうネタがあって、おおよそ最近のスレッド技術は
深くカーネルと関係してるから、一概にそうともいえないよ。
ここまでくると上級レベルだから、構造の勉強というようなレベルは超えてるかもしれないけど。
0079login:Penguin01/10/16 10:28ID:W7jl/1HX
このスレいい!! あげ
0080login:Penguin01/10/16 21:00ID:+8viyP9S
スレッドとスケジューリングがごっちゃになってるのか?
0081login:Penguin01/10/16 22:02ID:tFjq3kLf
いきなりカーネルのソースコードからはじめるのは、
ちょっと厳しいんじゃないかな。
大まかにOSの構造を説明してある良書ってないん
ですかね。機能を知ってからソースを見ると、関数
名や変数名がヒントになるから、ぐっと理解が早い
と思うんですけど。
それとも、「これから勉強したい」人も、そこまで
は出来ているという前提?
0082login:Penguin01/10/16 23:41ID:Lbh3v4LX
ケンタッキーと関係あるの?
0083login:Penguin01/10/17 00:03ID:p7GUM0P4
>>82
大あり
0084login:Penguin01/10/17 00:11ID:58ZfHvGc
>>81
2種やら1種のテキストに書いてあるレベルの知識と、ソース読むことの
間を埋めてくれるのって、どんな知識でしょう?

個人的にはCの知識かな、と思うけど、ケーススタディとしてカーネルを
使うのは厳しそうだと気づいた今日この頃です。
0085login:Penguin01/10/17 00:15ID:6udvZ9Dg
>>84
>間を埋めてくれるのって、どんな知識でしょう?
努力と根性と経験です。
0086login:Penguin01/10/17 00:36ID:kW1Ppu3x
人が作ったものなんだから理解できないはずはないという信念
0087login:Penguin01/10/17 01:12ID:0KcBObcy
>>81
おらいりー「詳解 linuxカーネル」
0088login:Penguin01/10/17 01:17ID:BOPoQ/5Y
>>87
おなじおらいりーでも、でばどら本から入っていくってのも
手だな。ちょっと古いけど。

売りポイントとしては、「実際に自分で作ったものを動かせる。
動かすことで理解が深まる」ってとこかな。
0089login:Penguin01/10/17 01:22ID:kW1Ppu3x
>>88 原書は新しいのが出てるよ
http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/english-books/0596000081
0090login:Penguin01/10/17 01:27ID:6udvZ9Dg
>>89
気になるのは、元にしてるのは2.2系なのか2.4系なのか、かな。
0091login:Penguin01/10/17 06:38ID:8SzjHmJI
>>81
その為の悪魔本とかなんじゃねーの?

あと *BSD とかのソースが綺麗で読みやすいといか言ってのは
実際に読んだことのない厨だな。

まぁ綺麗なのは事実だが FreeBSD の VM は悪魔のように(苦笑)複雑で
とりあえず論文読まないと通読は不可。

http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/vm-design/index.html
http://www.ccrc.wustl.edu/pub/chuck/tech/uvm/

Linux のカーネルはすげー実装がシンプルだから逆に読みやすいと思うが。

>>71
>MINIX -> 386BSD -> NetBSD -> FreeBSD -> Linux -> Solaris

386BSD って 4.3BSD Tahoe/Reno だろ? イマドキどーすんだ,あんなの読んで。
4.4BSD lite が入手できるんだからそっち読んどくが吉。
0092♯641101/10/17 11:04ID:Nt5BAsRN
>>91
悪魔本でも、和訳の
「4.3BSDの設計と実装」
は、初心者には(もちろんエキスパートにも)
オススメじゃないよね?
…って、まだ版を重ねてんだろか?

原書嫁。

Linuxのカーネルがある意味読みやすいというのは
同意。386の教科書が傍らにあるとベターかな。
ただ、ネットワーク周りは、読んで脱力したこともしばしば。
0093login:Penguin01/10/18 02:31ID:EfR4Vz7c
シンプルで読みやすいって観点だったら、MINIX 読むべきだけどな…

たしかに、4.4BSD みたいに抽象度が高いとまっすぐ読めなくなるから総体的な知識が必要になるし、
Linux はベタだから、前提知識なしにパッと見て quick hack する場合は楽だけど、
Linux は全体的にソースが汚いし、ベタなんであまり勉強にはなりません。
0094login:Penguin01/10/18 02:34ID:EfR4Vz7c
>>91
今なら、Linux VM でも FreeBSD の Mach VM でもなくて、
NetBSD の uvm を読んだ方がいい。
0095login:Penguin01/10/18 05:52ID:u3DpsjUw
たしかに UVM は面白いが何故それが面白いのかがわからなければ意味がない
お前は本当に UVM を読みたいのかと問いたい。問い詰めたい。小1時間問い詰
めたい。お前、UVM って言いたいだけちゃうんかと。

まあお前らド素人は、Linux VM でも読んでなさいってこった。
0096login:Penguin01/10/19 02:01ID:TH1cXybv
agetemiyou
0097MINIXカーネル解読中01/10/24 16:18ID:XFF6eHt3
OSってタスク使ったゲームに微妙に似てる気がする・・・
0098生徒A01/10/24 16:49ID:Sk/5JNlU
>97 そうだよ.だから色々と共通の概念が使える(もちろん
全部じゃないが).
0099login:Penguin01/10/24 19:35ID:4dNCtF18
>>71
MINIXと386BSDのソースのありか(URI)きぼーん
0100login:Penguin01/10/24 19:39ID:UYXjUcuc
>>99
ftpサーチで一発だよ、厨房君?
0101login:Penguin01/10/24 20:00ID:ZaQ1mC9D
>>100
ftpサーチって何?
0102login:Penguin01/10/24 20:03ID:XZp0N0cm
>>101
Googleで一発だよ
0103gea01/10/26 01:49ID:M11l2acb
age
0104login:Penguin01/10/26 03:17ID:/MJaN4Ug
UVMってdelphiライクな言語ダターケ?
0105login:Penguin01/10/26 04:01ID:FmgZ80us
>>104
ネタなんだろうけどモトネタがわからないのでマジレス

http://www.ccrc.wustl.edu/pub/chuck/tech/uvm/

これまでの COW を更に進めて匿名ページの COW もやるようにした VM ね。
0106完全気密性型個室チャット設置01/10/26 09:00ID:JKN2MAJ4
秘話機能付き高機能チャットルームなどを
18個設置。共有チャットも10個設置。
気軽に参加してくださいね。

みなさんのお越しをお待ちして
おります。右フレームの中ほどに
あります。よろしくね。

http://home9.highway.ne.jp/cym10262/
0107某スレの1201/10/27 11:12ID:eYNUQGN3
沈まないようにあげ。
0108房スレの1301/10/27 11:32ID:YfJuIONB
ageた先がコピペ広告だったってのが涙をさそうよ...
0109login:Penguin01/10/27 12:01ID:wm8gbMCY
もしかして完全気密性型個室チャットでLinuxカーネルの仕組みを勉強しろと言いたいのか?
0110login:Penguin01/10/27 15:21ID:5IDha0Op
in,outでハード制御してるコードがさっぱり理解できない・・・。
0111login:Penguin01/10/27 15:28ID:lXVHxyhY
>>109
気密型ハカーとお勉強イイ!
0112カーネル初心者01/10/27 16:27ID:Hh35ZjqY
カーネルがわかっちゃうと自分でディストリビューションとか
つくれますか?
0113login:Penguin01/10/28 02:14ID:ntdohsRl
>>112
カーネルはそのままでも、自分でディストリビューション作れますよ?

>>110
具体的に、どのあたり?
011411001/10/28 02:37ID:v7FYjkut
Linux 0.0.1カーネルだけど hd.c とか。
HDDコントローラ?の仕様とか見ながら書いたのかな
仕様って手に入るのかな・・。
0115login:Penguin01/10/28 02:51ID:c0cZVdxb
>>114
東芝の開発者向けサイト
http://linux.toshiba-dme.co.jp/linux/jpn/develop.php3
0116login:Penguin01/10/28 02:53ID:cJ0fmml8
>>114
0.0.1って....
あまり古すぎじゃないか?移植どころか、「とりあえず動かす」
ころのだろうから、ちょっと読むにも大変なんでわ?
コントローラの仕様ってのは、どっかで手にはいりそうだね。
とりあえずは、

CQ出版社のインターフェース増刊
TECH I vol.10 ATA(IDE)/ATAPIの徹底研究

でどーよ?
011711001/10/28 04:40ID:v7FYjkut
114さん115さん情報どうもです。
0.0.1のカーネルって小さいから読みやすいかな、
と思ったけどMINIXのほうを読むことにしよっと・・。

インターフェースの増刊かなり最新ですね・・すぐ手に入りそうだ。
っていうかインターフェースって雑誌、今はじめて知りました・・
バックナンバーの目次とか眺めたけどすごく面白そう、何で今まで知らなかったんだろう・・
116さんに感謝・・。
011811701/10/28 04:41ID:v7FYjkut
↑の1行目 115さん116さん だった(恥
0119login:Penguin 01/11/05 04:47ID:zk7Lax0s
こんなのどうよ。呼んだ人いる?
http://www.amazon.co.jp/exec/obidos/ASIN/0471408824/
0120教えて!!!01/11/06 23:49ID:seaNFRBf
PHP4のインストールをしようとしているんですが、
rpmのバージョンアップをしろといわれてしかなたく
rpmのバージョンアップをしようとしています。
環境はTLJ6.0で、Pentium 166MHzです。

現在は3.0.3なんですが、これを3.0.4以上にしなければなりません。
でも

#rpm --rebuild rpm-3.0.6-15.src.rpm
の実行中に

/usr/include/bits/string2.h:XXX warning : pointer of type 'void *' used in arithmetic

といった種類のメッセージがダぁーっと出てきます。それでも処理はずっと続いて3分くらいしたらとまるんですが、非常に不安です。このとき実は渡さなければならなかった引数とかありますか?

わかんないんでしょうがなくある方に教えていただいて

rpm -Uvh rpm-3.0.6-15.i386.rpm

を実行しました。
そしたらこんな表示が・・・・

libpopt.so.0 is needed by rpm-3.0.6-15

どないなってまんねん???

i?86のところの*は環境によって違うということですが、それは具体的にどういう意味ですか?

ほんとにタコタコで申し訳ありません。どうかこの哀れなタコを助けてください。*_*

それからも一つ質問!
どうしてこんなにリナックスは難しいんですか?
0121login:Penguin01/11/07 01:19ID:5qQLJtTD
>>698
マルチうざい
0122まちごうた01/11/07 01:20ID:5qQLJtTD
>>120
マルチうざい
0123login:Penguin01/11/07 10:07ID:D4X9uT1H
デバイスドライバをgdbで動かしたり止めたりしたいのだけど・・・
0124login:Penguin01/11/07 11:58ID:D4X9uT1H
http://www.zdnet.co.jp/enterprise/0111/06/01110601.html
オープンソースのOSであるLinuxの元々の開発者,リーナス・
トーバルス氏の右腕であるアラン・コックス氏は,Linuxカーネル2.4
のメンテナンスを担当しないことを明らかにした。トーバルス氏は,
開発ツリー2.5に集中するため,今後数週間以内にLinuxカーネル2.4
をコックス氏に任せるとしていた。

有識者のコメントを求む
0125login:Penguin01/11/07 12:35ID:HqCHYej/
>>124
124は記事内容を理解していない。よって終了。
0126login:Penguin01/11/07 13:03ID:D4X9uT1H
>>125
解説してください。お願いします。理解したいんです。
0127login:Penguin01/11/07 13:10ID:BmKSSlYi
>安定版カーネルの管理
>は,これまでもグループで行ってきたことで
>あり,これからもそれは変わらない
0128login:Penguin01/11/07 15:29ID:FmMqLr+t
右腕というより両腕? > AC
0129login:Penguin01/11/07 18:21ID:EVaWvNem
linusが死んでも大した影響なさげ。
acが逝くとかなりピンチ。
0130login:Penguin01/11/07 23:16ID:9nIeZqmz
>>124
-ac カーネルの Rik's VM とは?
http://clotho.ku3g.org/diary/?20011014#200110142
0131login:Penguin01/11/08 00:39ID:6uTuNsVr
-acにはお世話になりまくりなのでちと残念。
0132login:Penguin01/11/08 04:38ID:OuhnMvOV
OSよむなら、最初はl4-kaとかおすすめ。
簡単だし、どうせマイクロカーネルだからっていう割り切りで、仮想化しまくってないのが、見通しの良さにつながってるように思う。
そのぶん癖はあるけど(IPCとか)、とりあえずどんなことやる必要があるかがわかるとおもう。

でも、モノリシックカーネルでの優先度制御とか、複雑なvmまわりとか勉強したいなら、NetBSDかなぁ。
わりと読みやすいけど、完全に理解するはなかなか・・・。
0133login:Penguin01/11/10 00:06ID:GrwBKvex
ようっし、このスレもりあがってなから、カーネル2。5を語るスレにしよう。

2.5の機能のメインっていったら、INPUTデバイス!
こいつが入力関係を一手に引き受けてくれるもんで、USBやらjoystickやらkybodeやらマウスやらが
シンプルになって、手軽にrawレベルで入力デバイスにアクセスできるようになるんだよう〜

そこの厨房な君も、他になにが追加されるか予想してみよう。
0134login:Penguin01/11/10 00:10ID:I2bxXvg2
>>133
イタい、イタすぎる....
0135login:Penguin01/11/10 00:10ID:YzLCB467
>>133
/dev/input
とは違うのか?
013613301/11/10 00:20ID:GrwBKvex
な、なんで、/dev/inputがついてんだよ〜、おいらのついてないんだけど。
013713301/11/10 00:25ID:GrwBKvex
>>134
モタイブリッコ!発見!ハゲじゃなくって吐け、何をしってるんだ。 ゴラァ!
0138login:Penguin01/11/10 01:31ID:JYB21yE5
・誤字脱字
・全角アルファベット
・そもそも提案が意味不明
これだけ揃ってれば痛いだろ(w

個人的にはIDE CD-Rの扱いが楽になって欲しい。
ide-scsi使わないといけないのはめんどくさい。
0139login:Penguin01/11/10 01:48ID:P+u86UuI
実装されて欲しいのは。
・スケジューラのマルチメディア対応とマルチキュー化
・暗号化ファイルシステム
・n:mカーネルスレッド(無理か)
0140login:Penguin01/11/10 02:11ID:H1+mtcC9
>>133
呼び出すなよ。
厨房な俺の予想に意味があるのか?

http://lwn.net/2001/features/KernelSummit/
でも読めよ。
0141login:Penguin01/11/11 01:23ID:gpvCOaba
/dev/input ってのは、今は、USBにしか使われてないけど、
これをPS/2とかの、USB以外のマウスとかキーボードに対応させて、
inputでイベント処理をさせるってことですなぁ ちがうか?汗

/dev/eventXで、流れて来たイベントを拾って、処理できるようになるから、
フレームバッファ関連のアプリが充実するのに期待しちゃうYOU。
0142login:Penguin01/11/11 01:35ID:H6R3aNYW
>>139
IBM が gnu のをベースにやってる n:m スレッドは
ユーザランドのスレッドだっけ?
0143login:Penguin01/11/11 01:49ID:gBx3tRWz
>/dev/input ってのは、今は、USBにしか使われてないけど、
カーネル2.4になったら、Sound Blasterのゲームポートに差したアナログジョイスティック
の/dev/js0も/dev/input/js0へのシンボリックリンクになてたよ。
0144login:Penguin01/11/11 12:02ID:Vp1d/juk
>>142

NGPTだよね?
http://oss.software.ibm.com/developerworks/opensource/pthreads/

元の Pth は、ユーザレベルのスレッド実装だけど、
ちゃんとM:Nになってるみたいだけど。
まだ、SMPではちゃんと動いてないみたいですね。
次のバージョンで対応するようですが。
0145login:Penguin01/11/11 12:59ID:gpvCOaba
>>143
そか、ジョイステックも対応してたのか〜、
今のシステムってキーボードからの入力を拾うのってかなりメンドウでない?
たとえば、svgalibでもXでも、一度RAWモードで、キー入力を握られると、
他はどうにもできないのさ、それでXがエラーでおちたりしたら、
PCの後ろにシリアルケーブルつないでどうにかするしかないし。
それが改善されるんだよ〜っていいたかったのだ。

今は、まだ、 keybdev.cからhandle_scancodeっていう、
char/keyboard.cの関数を呼出ちゃってるウンコ仕様なんだけど、
この変がシンプルになるんだよ〜

シッタカブリしてしまったかのぉ、なははは。
ネタはこの辺↓
http://cvs.sf.net/cgi-bin/viewcvs.cgi/linuxconsole/ruby/linux/
0146login:Penguin01/11/11 12:59ID:ZFz8sYwI
>n:mカーネルスレッド(無理か)

本家MLで議論されてるのを何回か見たが、
永久に実装される日はこなさそうだ。

確かに実装されればパフォーマンスは向上するけど、
別に今のままでも充分パフォーマンスいいから必要ないって結論らしい。

つーか、ボランティアで開発するには手間と暇が・・・
0147login:Penguin01/11/11 18:30ID:ZDELobu/
ごめん。すごく基本的なことがわからない。
n:mカーネルスレッドってなに?
0148login:Penguin01/11/12 12:37ID:IjOleHL1
>>147

実際に平行して走るスレッド数と、スレッド数が違う。
Linuxの今のカーネルスレッドの場合は、両方同じ。
0149login:Penguin01/11/12 17:24ID:IV1WKQEx
> つーか、ボランティアで開発するには手間と暇が・・・

んなことないっしょ。

Linux よりもよっぽど人手のなさそうな FreeBSD (KSE) とか、さらに
人手のなさそうな NetBSD (nathanw_sa) でも開発が進んでいるんだし。
問題は人手というよりも、Linux カーネル開発メンバーの石頭 (N:M スレッド
が大嫌いな奴が結構多い) じゃないの?
015014701/11/12 18:57ID:JAFYYv/Y
>>148
> 実際に平行して走るスレッド数と、スレッド数が違う。
> Linuxの今のカーネルスレッドの場合は、両方同じ。
いやそれは n:m のスレッドだよね。
カーネルスレッドは常に 1:1 では?
もしかしてスケジューラアクティベーションとかの話題?
0151login:Penguin01/11/12 19:14ID:JAFYYv/Y
スレッドの実装には3つあって
one-to-many ユーザー空間スレッド
one-to-one カーネルスレッド
meny-to-meny 上記のハイブリッド
だと思ってたんだけど俺の認識は間違ってるか?
Solalis なんかは meny-to-meny だよな。
その為にスケジューラアクティベーションのような複雑な仕組を持ち込んでる。
Linux 的にはそんな複雑なものを持ち込んで性能を出せるかどうか…
ってのがまずあるんだろう。SMP とのバランスも取らないといけないしな。
0152login:Penguin01/11/12 19:39ID:IV1WKQEx
> スケジューラアクティベーションのような複雑な仕組を持ち込んでる。

many-to-many 型がすなわち、スケジューラアクティベーションを意味する
わけじゃないよ。昔の Solaris では、スケジューラアクティベーション的
な実装はしてなかった。
で、昔の Solaris のやり方よりも、スケジューラアクティベーションの方が、
アイディアとしてはある意味シンプルだと思うな。

> Linux 的にはそんな複雑なものを持ち込んで性能を出せるかどうか…
> ってのがまずあるんだろう。

これが典型的な反応ですねえ… それが正しいかどうかは別だけど。

> SMP とのバランスも取らないといけないしな。

ここ意味わかんないなあ。バランスって何?
SMP と N:M スレッドって、トレードオフの関係にはないと思う。

>> 実際に平行して走るスレッド数と、スレッド数が違う。

「実際に並行して走る」ってのが何を意味しているか、ちょっと不明かな。
N:M スレッドってのは、ユーザランドスレッド M 個に対して、カーネルスレッ
ド N 個 (M >= N, N >= 1) を使うような実装のことです。
M == N だと 1:1 になっちゃうし N==1 だとユーザーランドスレッドになっちゃ
うけど、M > N とか N > 1 になりうるってところが違うところね。

蛇足:
s/Solalis/Solaris/
s/meny/many/g
■ このスレッドは過去ログ倉庫に格納されています