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

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

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/10/02 17:44ID:38KkZsUQ
メモリ管理、プロセス、ファイルシステム色々ありますが
カーネル全般について語り合うスレッドです。
0327telnet02/01/31 17:41ID:XkNXES9H
mmap メモリマッピングは具体的に
Linuxではどういうケースでどういうケースで使うのでしょうか?

メモリマップの具体的なしくみははじめて読む486で理解しています

032831902/01/31 18:01ID:VzRMG8cD
gotoのlabelだからモジュールぢゃないと思うが、
vesion 2.4.17だとこんなかんじです。

603 repeat_schedule:
604 /*
605 * Default process to select..
606 */
607 next = idle_task(this_cpu);

idle_task()を追いかければ分かると思われ。
0329anonymous02/01/31 19:40ID:bRdhNRMb
>328
Thank You
0330login:Penguin02/01/31 21:41ID:U++Ss/ms
http://www.zdnet.co.jp/news/0201/31/e_linux.html
LinuxはもはやTorvalds氏の手に余るのか

ってここに貼っていいんだっけ?
0331☆中身丸見えなネットキャバクラ嬢HP02/01/31 21:55ID:qyVVAuwK
現役サクラがやってるHPなんだけど
中を見ると、ネットキャバクラの派遣業務(スカウト)も
やってるんだけど、セキュリティ甘すぎで
応募してきた女のデータが丸見え(藁
こんな甘いセキュリティーでいいのか??

ついでに書くけど、派遣やスカウト業務って
労働大臣に報告しないとやっちゃいけないんだってね。

テレギャル日記
http://book-i.net/shiyo/

参考
http://school.2ch.net/test/read.cgi/part/1012407397/l50
http://school.2ch.net/test/read.cgi/part/1001553767/l50
0332login:Penguin02/01/31 22:13ID:VzRMG8cD
>>330 cvs使っとけてことだろ(藁
そこんとこどうよ? >>333
0333anonymous02/01/31 22:24ID:gjVN0d1d
リーナスは21歳でLinuxを書いたそうだが、
はっきりいって驚きです
0334login:Penguin02/02/02 10:57ID:ZMxM5ZSu
2つ質問させていただきます。

1.全てのプロセスはユーザースタックとカーネルスタックの2つのスタックを持っているという認識は合っていますか?
2.プログラムカウントレジスタが指しているアドレスは論理アドレスですか?それともリニア、物理アドレスですか?

よろしくお願いします。
0335login:Penguin02/02/02 11:27ID:QwE3ggcc
>>334
テスト勉強は、友達か先生に聞いてください。
0336login:Penguin02/02/03 20:10ID:urBW9ceP
mapファイルはいつ、どこに作られるのですか?
System.mapは作られるタイミングわかったんですけど
mapはどこで作られてるのか・・・さっぱり
033733602/02/03 22:07ID:urBW9ceP
たとえばCD-ROMインストールするときなどは
CD-ROMからカーネルを持ってくると思うんですが
カーネルをコピーしたあとに LILO を打つのに
map=/boot/map
のこのmapはどこから持ってくるんですか?
とりあえずDebianのCD-ROMの中にはありませんでした。
0338オリスレ102/02/04 16:32ID:zNf2nkG9
少しでも技術的なスレをあげましょか。

厳密に言えばmapファイルはKERNELとはあまり関係がない。これはLILOが使う
情報ファイルであり、この情報を使わないローダーを作ることも可能。
/boot/mapは、lilo.confを変更した後に実行する"/sbin/lilo"により作られる。
この時に同時に1st loderに2nd loader、/boot/mapのセクタ位置も書き込まれる。
実際にLILOが/boot/mapを読むコードはsecond.sのldsc:というラベルの辺りにある。
0339login:Penguin02/02/05 21:13ID:JQSzVmkT
LINIXはノンプリエンティブ カーネル
Widows9Xは プリエンティブ カーネル
もう少しわかりやすく説明して下さい
0340login:Penguin02/02/05 21:17ID:8yPPH2y0
>>339 Windows9Xカーネルは糞だということ。
0341login:Penguin02/02/05 21:18ID:cjWnFjQH
ん? Windows 9x の*カーネルが*プリエンプティヴなの?
0342login:Penguin02/02/05 21:45ID:3XUKmv4C
Windowd9xは擬似(以下略)だね
0343login:Penguin02/02/05 21:48ID:xTemToT9
Mac OS 9 以下もね。
0344login:Penguin02/02/05 22:09ID:JQSzVmkT
>342
日経バイト(つまらん雑誌だが)に
Windowsのロードマップを解説してあり、その中に
Windowsをプリエンティブカーネルと紹介してあった
0345 02/02/05 22:36ID:ac3U4odz
win9xのカーネルってどこまでを指すんだろね?>>344
0346login:Penguin02/02/06 00:15ID:CkGAoDS/
Linux の*プロセス*はプリエンティブである!
0347login:Penguin02/02/06 18:11ID:CbSD5861
http://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/win2kprocess_4.html
こんなんがあったぞ。
win のことだけど初心者にとってはスケジューリングの仕組みについて参考になるかも。
茶を濁したようだったらスマソ
0348login:Penguin02/02/07 20:45ID:KeZhLQ6z
age
0349REd02/02/08 10:59ID:SBI5gws8
make の意味が初心者にもわかりやすく解説してあるサイト、書籍希望
0350login:Penguin02/02/08 11:51ID:/7nCIwuy
>>349
1987年あたりのOh!X12月号

85年だったかな?
0351名無しさん@Emacs02/02/08 11:54ID:/gFPMDAN
>>349
漏れも興味があったので探してみた。
http://www.google.co.jp/search?hl=ja&q=GNU+make+%89%F0%90%E0++%8Eg%82%A2%95%FB++Makefile++-Amazon&btnG=Google+%8C%9F%8D%F5&lr=

↑一応の検索結果
みつかんないことないじゃん。

ttp://kofukan.nmn.jp/jp/Yamadori/make.shtml
ttp://www2.startshop.co.jp/~68user/unix/pickup?gmake

でも、Hit数が多すぎて寄りわけが大変(w
0352login:Penguin02/02/08 12:54ID:yqzyJOrB
パッチ管理システムって何をするための物なんですか?
cvsじゃ、だめなんだろうか。
0353@@@02/02/09 19:07ID:BxQSwRbk
MINIXのソースのアセンブリ言語で書かれている部分て
どんな文法ですか?(なんか変な質問)
あと、MINIXのソースはどうやってコンパイルするのですか?
0354名無しさん@Emacs02/02/10 04:09ID:/Yna3/+b
>>327
> mmap メモリマッピングは具体的に
> Linuxではどういうケースでどういうケースで使うのでしょうか?

FreeBSD PRESS 読め。
0355login:Penguin02/02/17 03:11ID:wXNMmwBm
age
0356login:Penguin02/02/17 04:43ID:q2RiODNo
                   ,、
                  / .\
                /ζ 禿  \
              / ̄ ̄ ̄ ̄\.\
. ________,/         \\________
 \           //\    \  /  | ̄\            /
   \  叩   /  |||||||   (・)  (・) |  \  騙   /
    \   /   (6-------◯⌒つ |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \/    |    _||||||||| | < カツヲめ、またワシを召還しおったな!
      /\     \ / \_/ /   \___________
    /   \   (( \____/ ))    ./   \
   /  逝   \                 /  煽   \
 /         \ ________/         \
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               \  氏   ./
                \   /
                  \/
http://www.puchiwara.com/hacking/
0357login:Penguin 02/03/02 22:12ID:acfYBPiM
Lion's Commentary on UNIX を今日買った。
035848402/03/03 01:05ID:T7JEzMm9
Linuxカーネル2.2あたりをよむ方がいいような
0359login:Penguin02/03/03 17:08ID:WsSnuBVI
>357
多分学生さんだと思いますが,
どうですか 読んでみて
0360login:Penguin02/03/03 17:24ID:1pDkR8wB
学生じゃないとLinuxのソース読むような暇は取れないよな
学生時代にどれだけ基礎体力を蓄えるかでSEとしてのその後の人生が決まると思ふ
036135702/03/03 23:14ID:1ClZlz9s
>359
malloc.cで挫折しました。
私にはまだこの本を読むだけの素養がないことを痛感致しました。
0362名無しさん@お腹いっぱい。02/03/04 02:48ID:r500tR00
まず本で予備知識を!
http://page5.auctions.yahoo.co.jp/jp/auction/e7666037
0363login:Penguin02/03/06 00:04ID:j2wxpcrr
>「メインメモリ」が不足した場合に、その不足部分をハードディスクの一部の領域に待避させて、代替させることができます。この場合に、ハードディスクの中の待避領域を「仮想メモリ」といいます。

Linuxカーネルを語るときに使う「仮想メモリ」と上記のWindowsでのSwapの意味での「仮想メモリ」って別物ですよね?
0364login:Penguin02/03/06 00:36ID:VoZ13GuD
>>363
基本的には同じでわ?
0365login:Penguin02/03/06 06:04ID:pruE8kEE
>>363
仮想メモリ=リニアアドレス空間
っと思ったりする。
0366名無しさま02/03/06 22:14ID:lCrfYxtD
VM上のメモリ?
0367login:Penguin02/03/07 23:39ID:mjFXHr66
>> この場合に、ハードディスクの中の待避領域を「仮想メモリ」といいます。

> Linuxカーネルを語るときに使う「仮想メモリ」と上記のWindowsでのSwapの
> 意味での「仮想メモリ」って別物ですよね?

確かにこの説明は、仮想メモリじゃなくて、スワップ領域の説明だが、
Windows が Linux と違うんじゃなくて、単にこの説明書いた奴が分かってないだけ。
Linux でいう場合の仮想メモリと、Windows でいう場合の仮想メモリは同じ物。

> 仮想メモリ=リニアアドレス空間
> っと思ったりする。

おいおい。
物理メモリだって、リニアアドレスだったりするだろう。これも変だ。
0368login:Penguin02/03/10 13:20ID:9TPve/Qe
>> 367
多分365が言っているリニアアドレスはx86用語でのもの。

virtual address(?) -> セグメントによる変換
-> linear address -> ページングによる変換 -> physical address

それにしても仮想メモリとリニアアドレスは違うけど。
0369login:Penguin02/03/10 16:40ID:XxAqk7rT
bootsect.S
などで書いたコードを
フロッピーのブートセクタに入れる場合と
ハードディスクのブートセクタに入れる場合の
両方をそれぞれ教えてください。

よろしくお願いします。
0370 02/03/10 16:59ID:KLNVRDiw
フロッピー dd if=bootsect.o of=/dev/fd0
ハードディスク dd if=bootsect.o of=/dev/hda1
0371login:Penguin 02/03/14 01:02ID:SAjWxZmX
久しぶりにあげてみよう
037236502/03/14 17:29ID:8ZESikIV
>>368
リニア・アドレスってx86以外でも使われる
用語なのか。知らなかった。
リニア・アドレス空間って物理メモリorハードディスクなどに
マッピングされるよな。で、ハードディスクにマッピング
された領域が仮想メモリになるのだろうか。
なんとなくしっくりこないなぁ。
メモリ(物理メモリやハードディスクに問わず)を抽象化した
リニアアドレス空間ってのが仮想メモリ空間。<間違っているだろうか?
037336802/03/15 22:07ID:GKIFJfj9
>>372
おれも「リニアアドレス」という用語はx86以外では聞いたことはない。
ただ367がリニアアドレスを線形なアドレスという意味で書いているようなの
でx86では特別な意味があると書いただけだ。

仮想メモリというのはメモリを抽象化するというシステム、あるいは概念を
示す言葉であって手段(スワップファイルとかhogeアドレス空間とか)を示す
ものではないというように理解しているがどうよ?
0374名無しさん@Emacs02/03/16 06:42ID:O4su64/c
仮想メモリってリニアとは限らないよね。
今時はふつうリニアだろうけど。
037536502/03/16 08:51ID:NOghNGWY
> 仮想メモリというのはメモリを抽象化するというシステム、あるいは概念を
> 示す言葉であって手段(スワップファイルとかhogeアドレス空間とか)を示す
> ものではないというように理解しているがどうよ?

なるほど、”仮想メモリは概念”っていうのはすごくしっくりくる。
x86系だと普通はプロセッサのメモリ抽象化サポートと
カーネルのページングメカニズムのサポート、この2つによって
仮想メモリは実現されるが、他のOSの場合はそうとは限らんしな。
0376login:Penguin02/03/19 18:33ID:GPZ5tDZe
http://radioqualia.va.com.au/freeradiolinux/
http://www.hotwired.co.jp/news/news/culture/story/20020306205.html

みんなでカーネルを聴いてみない?
0377login:Penguin02/03/23 05:06ID:U94iusfQ
カーネルに、main()はありますか?
0378login:Penguin02/03/23 18:14ID:3L96kgxa
>>377
ないっぽ
0379login:Penguin02/03/24 18:24ID:p75aMmZg
>>378
マジっすか。
main()でなくてもいいんだけど、ここからスタート! っていう
目印なところが無いというか。
0380もなー君@お腹いっぱい。 02/03/24 18:29ID:FVW+u6eT
>>379
( ´ー`)y-~~~ ↓ここに詳しく載っている。
http://lkh.linux.or.jp/24kernel/source/html4/boot.html
0381login:Penguin02/03/26 12:05ID:nV5s0H8I
BIOSコールというのはROMに書き込まれている関数を呼び出す事ですか?
そうだとすればどんなBIOSコールがあるのでしょうか?
0382login:Penguin02/03/27 14:43ID:BgVFN3rf
http://ime.nu/lkh.linux.or.jp/24kernel/source/html4/boot.html

の勉強会しようぜぃ
0383login:Penguin02/03/27 18:30ID:sGm5Hb2n
>>382
http://lkh.linux.or.jp/24kernel/source/html4/boot.html
imenuつけんなクソッタレ
0384login:Penguin02/03/27 20:23ID:DIx0PeFc
>>383
http://pinktower.com/lkh.linux.or.jp/24kernel/source/html4/boot.html
生はいやよ
0385login:Penguin02/03/28 03:30ID:ZK8cq26O
bootsect.S
とLiloは別物ですよね?
0386login:Penguin02/03/28 03:46ID:msez0qYs
>>385
どうしたらその2つが同じものに?
0387login:Penguin02/03/30 16:23ID:SfYnsylz
結局どこからソースを読みはじれめればいいんだい?
0388login:Penguin02/03/31 13:19ID:WhFkwY90
ふつうならstart_kernelからでいいんでは?
0389login:Penguin02/04/01 23:59ID:8vevsllb
hage
0390login:Penguin02/04/02 21:20ID:9DbcWQiH
本屋行ったらLinuxカーネル2.4インターナル
とかいう本の訳本が置いてあったんですけど、
誰か買った人います?

ちょっとプロセスの辺だけ眺めたたら
訳が下手だったんで買いませんでしたが。
0391login:Penguin02/04/02 21:22ID:9DbcWQiH
スマソ書名まちがえた

Linux 2.4 インターナル
http://www.shoeisha.com/book/Detail.asp?bid=1339
だたよ
0392名無しさん@お腹いっぱい。02/04/05 22:27ID:8Q1S/UyJ
>391
読む目的がないとソースよんだって意味がない
目的は?
0393login:Penguin02/04/05 22:36ID:e8an97D8
>>390
下手なんてもんじゃないだろ。排水溝の底のヘドロみたいな訳だ。
0394login:Penguin02/04/05 23:51ID:1X3bLXpd
Solarisカーネルインターナル超面白いぞ!買え!
そしてパクってLinuxにマージするのだぁ!
0395login:Penguin02/04/09 00:20ID:O0rtlCLU
「entry.S」のentryテーブルにあるシステムコールの定義はどのファイルでしてるの?
0396login:Penguin02/04/09 01:04ID:4N3q8p7g
>>359
ユーザーランド側はglibcじゃない?
カーネル側はsys_hogecall()を
asmlinkage void sys_hogecall()
としてそれぞれの関係するところで宣言してる。
asmlinkageはinclude/linux/linkage.h
かな。
0397login:Penguin02/04/09 10:17ID:Sk6YzNPZ
Linuxカーネル2.5 最新開発動向
http://www.atmarkit.co.jp/flinux/special/kernel25/kernel25a.html
0398名無しさん@お腹いっぱい。02/04/10 05:42ID:uJzcEA3d
>>397
ありがとう。わかりやすかったよ、そこは。
0399 02/04/10 07:52ID:0lkBeC02
>>397
/. でも話題になってたね。
http://slashdot.jp/article.pl?sid=02/04/09/0723249&mode=nested&threshold=-1

> O(1)スケジューラに対してはさまざまなベンチマークが取られており、
> いずれの結果からも大きく性能が伸びることが示されている。
> Molnar氏が取ったベンチマーク結果では、スケジューラの性能が通常の
> 単一CPUシステムでも数十%、SMPシステムでは最大600%近い伸びを示すなど、
> 大きな成功を収めている。

それにしても、O(1)スケジューラすごいなー。
0400login:Penguin 02/04/11 21:02ID:paUG3Ip4
400get!!!

ところでLinuxではトラップに対して切ってある定数は
どこで定義してあるんでしょうか?
0401login:Penguin02/04/12 01:05ID:6kq0713T
>>397
漏れも勉強になた。ありがと。

ついでにSamba 3.0の記事も読んじゃったYO!
0402login:Penguin 02/04/12 05:44ID:FjR6S1/8
>>394
それにはおれも同意。
あの本は凄いよ。
0403login:Penguin02/04/12 18:03ID:LUY70a8V
詳解Linuxカーネルの方が優れもの
0404login:Penguin02/04/14 16:15ID:1Jdu/56r
こんなパッチがKernel MLに流れたが、どうも目立ちたがりやの
中学生なのではないかと思う。
http://www.uwsg.indiana.edu/hypermail/linux/kernel/0204.1/att-1011/01-3c59x.patch
0405login:Penguin02/04/14 22:59ID:rMaBm7Ab
>>403
読んでから言ってね
0406login;02/04/15 00:09ID:oRH5PO1X
ありゃ,Linux2.4インターナル立ち読みせずに発注しちゃったYO...

Lions Commentary はイイYO!

悪魔本とか読んで,イキナリカーネルソース読んで挫折して...を
繰り返した後読むと,スイスイと...
0407login:Penguin02/04/15 03:45ID:GiNG6vcB
>>405
このパッチが出てきた文脈を知らないんだけど、なんか別のパッチの一部?

これ単体では意味をなさないような
0408login:Penguin02/04/16 00:00ID:Gq3Gz/c2
LinuxのスレッドってWindowsより性能が悪いと思ってたけど、
そうでもないようですね。

http://www-6.ibm.com/jp/developerworks/linux/020412/j_l-rt7.html
0409login:Penguin02/04/16 00:09ID:r9JjnCrt
>>408
スレッドの生成スピードだけが全てではないけれど、
それにしても意外なベンチマーク結果だね。
Windows もカーネルベースのスレッドなんだろうか?
0410login:Penguin02/04/16 00:25ID:r9JjnCrt
>>407
ん? >>404 のパッチの事? Tagged VLAN 対応っしょ。
0411login:Penguin02/04/16 02:00ID:toifQdqP
>>410
商用UNIXがあたりまえのようにtagged vlanに対応してるけど、
linuxの対応はちょとね
0412login:Penguin02/04/16 03:18ID:Ped1nJiT
高橋さんのzerocopy NFS 速そうやね。
0413login:Penguin02/04/16 03:26ID:Ped1nJiT
>>411
2.4.x にも 2.5.x にもモリモリ入ってるYO。
NICのハードウェアtvlanに対応しているのもあるし。
0414login:Penguin02/04/16 08:04ID:yHB8Yz14
>>412
そのコードどこにあんの?
0415login:Penguin02/04/16 09:53ID:Ped1nJiT
>>414
ttp://www.uwsg.iu.edu/hypermail/linux/kernel/0204.1/0429.html
ここから続くスレッドで。
0416login:Penguin02/04/16 11:07ID:yHB8Yz14
>>415
さんきゅー
読んでみるわ
0417名無しチェケラッチョ02/04/21 23:08ID:ccHtxK1Q
http://www-6.ibm.com/jp/developerworks/linux/001124/j_linux-nt.html
0418デフォルトの名無しさん02/04/23 12:39ID:f2RdN7Qr
http://www.idg.co.jp/lw/back/200007/20000728_01_report.html
0419login:Penguin02/04/27 23:04ID:e5IKsX9A
scsi error handling rewrite 期待 age

http://www.andante.org/scsi_eh.html
0420名無しさん@お腹いっぱい。02/04/30 16:36ID:0lZUrbHd
Linux システムコールプログラムって本どうですか?
0421login:Penguin02/04/30 16:40ID:ozCXgXAB
不要。APUE を読め。
0422login:Penguin02/04/30 16:42ID:MJcEiblG
>>420
似た名前の本がいっぱいあるから、amazoあたりへの
リンクぷりーず。
0423名無しさん@1周年02/04/30 21:11ID:TGbiUZt2
>>422
アスキーから出ている本です。
かなり前に出版された本ですが、
版を重ねて新しいのが常に店頭にあります

読んだ感じは、わかり易い。
有名なシステムコールについて、わかりやすくかいている
fork ,exec
それ以外は421の言うとおりかもしれない
0424login:Penguin02/04/30 21:25ID:x3t7pobP
mallocに関して、
外人が、sbrkを使うとフラグメンテーションの問題があるから
memmapを利用するという投稿をニュースでチラッと見た記憶が
あるけど、これ間違ってない?
最近別スレで128kb境界問題が出てきて思い出した。
0425login:Penguin 02/05/15 15:53ID:rs0ae66r
カーネルのソースって2.2系から比べてもどんどんと汚くなってることない?
gccと比べたらまだいいのかもしれないけど。。。
0426login:Penguin02/05/15 16:28ID:Rs+cx4KM
具体的にどこがどう汚くなった?
0427もなー君@お腹いっぱい。 02/05/20 00:01ID:f4n8AHGc
良スレ保守
■ このスレッドは過去ログ倉庫に格納されています