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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001login:Penguin01/10/02 17:44ID:38KkZsUQ
メモリ管理、プロセス、ファイルシステム色々ありますが
カーネル全般について語り合うスレッドです。
0884????A?L?A?N?e?N?A04/02/27 22:13ID:V05PQgy9
UNIX カーネルはあッ、strategie しか知らずに済むのでしょう。けど、Linux は知らないよ。
0885login:Penguin04/02/27 23:33ID:vM/yZAhI
>>882
それように書かれていないので、あんまし面白くない。
0886login:Penguin04/02/27 23:49ID:xaaJLb2z
プリエンプトカーネルってなんでつか?
カーネル実行中にコンテキストスイッチがおこってユーザープロセスが動き出すってことですか?
0887login:Penguin04/02/28 00:00ID:A3wPssc7
>>886
http://www.atmarkit.co.jp/flinux/special/kernel25/kernel25b.html
088888604/02/28 00:16ID:xSTzzvuP
ありがとうございます
@IT読んでなんだかわかったような気分になれました。
0889login:Penguin04/02/28 14:09ID:J2FeZbHS
VFSの詳しい日本語解説をしているページを教えなさい
0890Linuxカーネルの仕組み04/02/28 19:39ID:bMmaH5z2
カーネルの中にLinusの小人が101人ほど入ってます。
彼らがガンガッテいるのでLinuxは動いているのです。

以上。
0891login:Penguin04/02/28 20:38ID:WjxTg2dV
bogomips 101っていったら
CPUはなんだろ
0892login:Penguin04/02/28 21:02ID:u/+Sj8Sq
>>891
http://www.linux.or.jp/JF/JFdocs/BogoMips/

PentiumとPentiumMMXでずいぶん違うな。
0893sage04/03/14 02:28ID:g+4Nnj/K
ソースを眺めていたらなんかLINUXの仕組みが分かってきたぞ。
意外と理解できるものなんだね。ちょい感動。
0894login:Penguin04/03/17 13:15ID:a5f2rjZp
Linuxの「現在使用中の」メモリの読み方について教えてください。

freeの表示にある-/+ buffers/cache: のusedの数値は、
man freeには「使用中のメモリからバッファメモリを引いた値」とあるのですが、
だとすると
/proc/meminfo にある
Active: の欄はどういう意味でしょうか?

私の使用しているLinuxでは、freeでみると、-/+ buffers/cache の usedは、常時100MBを
下回らないほど大きく、自分ではちょっとおかしい気がします。

/proc/meminfoのActiveの数値は20〜30MBで、
現在動かしているプロセスのメモリ使用量(topやpsコマンドで確認)から考えるに
その数値は正しいのではないかと思います。

Linuxのメモリ使用量は、どのように読めば良いのでしょうか。
0895login:Penguin04/03/17 13:33ID:a+ywf6ub
>>894
> 現在動かしているプロセスのメモリ使用量(topやpsコマンドで確認)から考えるに
どう計算したの?
089689404/03/17 14:23ID:a5f2rjZp
すいません、色々調べなおしてたら、余計にこんがらがりだしまつた、、

>895さん
ps -xl --sort -vsize
で、VSZを目算で足してました。が、これも実際にawk使って
足してみたら、freeの数値ともActiveの数値とも大きく異なっていました。

そもそもpsのSZとVSZの違いからしてわかってないので、そっちを先に調べることにしまつ、、

とりあえず、manからアタックはしてるのですが、
man proc も、 man ps も、 man free も、「そもそもメモリを理解してる人が
読むもの」な気がします。

どなたか「馬鹿野郎、ここ嫁!」っていうヒントがあったら教えてください。
0897login:Penguin04/03/27 16:24ID:q39k7y+S
物理メモリと仮想メモリを一緒にしてしまっているから混乱しているのかと
0898login:Penguin04/03/30 03:22ID:ic2Sy5Sj
そもそも、buffersって何を表しているの?
0899login:Penguin04/03/30 17:15ID:PoJ7z2hx
buffersはバッファキャッシュ
cachedはページキャッシュ
0900login:Penguin04/03/30 18:31ID:VHI8Xdt8
>>899
Thanks!
0901login:Penguin04/03/31 23:27ID:1pGTvgen
カーネルを語る方々って、
板の下の方でひそひそ話なのですね。
ス・テ・キ
0902login:Penguin04/04/08 19:09ID:dz3aoHOS
2.6から正式実装される LSMを作ってみています。

file_permissionで渡ってくるパラメータが struct file * file, int mask の2つのみで、
これだとシステム全部のファイルI/Oが引っかかる為、
実際にフックしたいディレクトリのみにしぼりたく、
フルパスを取ろうとしているのですが どうやってもできません… (涙

神様はいませんでしょうか?
------------------------------------------------
int iCnt = 0;
struct dentry *pEntry = file->f_dentry;

/* 逆順にたどる */
while ( pEntry->d_inode && pEntry->d_count.counter )
{
pParent[iCnt] = (char *)kmalloc( pEntry->d_name.len+1, GFP_KERNEL );
strcpy( pParent[iCnt], pEntry->d_name.name );
iCnt ++;

/* 上へ */
if ( pEntry == pEntry->d_parent )
break;
pEntry = pEntry->d_parent;
}
------------------------------------------------
0903login:Penguin04/04/10 00:38ID:04yJkWho
age
0904login:Penguin04/04/10 01:33ID:M+qXKgd2
echo-udpって、port 7以外の複数のポートを
指定してエコーできませんか?
/etc/xinetd.d/echo-udpと/etc/servicesをいじれば
できそうな気はするのですが、だめかな?
0905login:Penguin04/04/12 10:07ID:KSP28miV
crypt()ってスレッドセーフではなかったのか..
_| ̄|○

やはりスクラッチからですか?そうですか。
0906login:Penguin04/04/12 11:06ID:VzmbJK3b
>>904
余裕で出来ると思うけどカーネル関係ないよ
0907login:Penguin04/04/13 09:48ID:nwYJmtfp
pci_map_page()、virt_to_bus()) などが参照する
pci_dram_offset 変数はどういう意味でしょうか?
ホストメモリの、PCIメモリ空間におけるオフセット、
という理解であっていますでしょうか?
0908login:Penguin04/04/13 23:17ID:V/u6W3OU
gccのインラインアセンブラって慣れてないから使いずらい。
#TASMをずっと使っていたので :-)

メモリ参照ではまってしまった。
(a,b,c)って書くと(a+b*c)だと思わなかったZE。
しかも、SourceとDestが逆!?
コンパイルして気づいたっっっ!!

これ全部直すのキツイっす!(泣
今日は徹夜だ。シクシク
0909ヽ(´ー`)ノ ◆.ogCuANUcE 04/04/14 09:28ID:6A+690eW
> (a,b,c)って書くと(a+b*c)だと思わなかったZE。
> しかも、SourceとDestが逆!?
両方とも info 見りゃ分かるんだけどな。
091090804/04/15 02:51ID:Z+dQWDMr
int a,b
asm("mov a, offset b");
↑上記の場合でのAT&T形式のアセンブリコードって何ですか?
offsetでエラーが出る

>>909
>両方とも info 見りゃ分かるんだけどな。
info gasですか?
探してみたんですけど見つからない。
0911login:Penguin04/04/15 09:12ID:ehDW48/A
>>910
mov $b,a
0912login:Penguin04/04/25 18:46ID:a4I3Ve2u
関数へのasmlinkage指定って、引数をレジスタ渡しにするのを禁止するための
ものだと思ってたんですが、void引数の関数にもちらほらasmlinkageが見られ
ますよね。これってどういう意図でつけてあるのか教えてくらさい。

0913login:Penguin04/04/25 19:30ID:PUgCYyE/
>>912
惰性でつけてるとみた。
include/linux/linkage.hを見ると何もしていないことがわかる。
0914login:Penguin04/04/26 02:04ID:90cdg9sZ
>>913
うげ、そんな適当なんだ。了解でつ。
ありがとう。
0915login:Penguin04/04/26 10:48ID:V5Uh0zsw
>>912
What is asmlinkage ?
ttp://kernelnewbies.org/faq/index.php3#asmlinkage

The asmlinkage tag is one other thing that we should observe about this simple function.
This is a #define for some gcc magic that tells the compiler that the function should not
expect to find any of its arguments in registers (a common optimization),
but only on the CPU's stack. Recall our earlier assertion that system_call consumes its first argument,
the system call number, and allows up to four more arguments that are passed along to the real system call.
system_call achieves this feat simply by leaving its other arguments (which were passed to it in registers) on the stack.
All system calls are marked with the asmlinkage tag, so they all look to the stack for arguments.
Of course, in sys_ni_syscall's case, this doesn't make any difference, because sys_ni_syscall doesn't take any arguments,
but it's an issue for most other system calls. And, because you'll be seeing asmlinkage in front of many other functions,
I thought you should know what it was about.
0916login:Penguin04/04/26 11:33ID:90cdg9sZ
>>915
それを読んで質問してるんだけど、なにか英文の解釈違いますか?
0917login:Penguin04/05/16 18:59ID:FC6L1zfD
1000!
0918login:Penguin04/05/17 19:36ID:nMrIOM1Y
ダウト
0919login:Penguin04/05/18 02:01ID:OpVrZf3y
Windowsにカーネルストリーミングって仕組みあるでしょ?
Linuxにもよく似たものってある?
教えてエロリポップな人!
0920login:Penguin04/05/25 05:20ID:JP2tAIIS
>>916
>それを読んで質問してるんだけど、なにか英文の解釈違いますか?
怒っちゃイヤ!!
0921login:Penguin04/06/21 08:22ID:1lgVmpvk
ほっしゅほっしゅ
0922login:Penguin04/08/08 16:46ID:8WCY4JUz
ほしゅSAGE

カーネルセキュリティーな方へ
http://security.ten.thebbs.jp/1089489561/
わたしにゃさっぱりだけどなんか面白そうなんで
紹介しときます。
0923login:Penguin04/08/28 22:13ID:PWSONyS6
自分は今、Kernel(x86のVer 2.6)内で処理するContext Switchの勉強をしているのですけど、
Context Switchの大体の動きはわかりましたが一つ疑問があります。
switch_toや__switch_to関数で汎用レジスタ(eax, ebx, ecx等)の退避を行っている箇所が
見当たりません。実際に退避しているレジスタは、eip,esp,fs,gsやfpuレジスタとかです。
Context Switch発生時、いったいどこで汎用レジスタを退避するのでしょうか?
0924login:Penguin04/08/29 01:01ID:nVxTwlJG
>>923
関数の呼び出しで破壊されてもいいレジスタはそもそも退避しない。
壊れるとまずいレジスタは関数のエントリでスタックに退避されている。

そういうのはアセンブラのソース吐かせて確認すればいいのではないかと思うが。
0925login:Penguin04/08/29 02:43ID:u2o1h55W
>>924
>関数の呼び出しで破壊されてもいいレジスタはそもそも退避しない。
>壊れるとまずいレジスタは関数のエントリでスタックに退避されている。
ってことは、例えばユーザランドのある関数を実行中に
そのプロセスの実行割り当て時間を使いきった場合、
その時点で使用していたレジスタを退避するのでしょうか?
であるなら、switch_toや__switch_toを処理している時点では、
汎用レジスタを退避しなくてもいいということになるんですが。

>そういうのはアセンブラのソース吐かせて確認すればいいのではないかと思うが。
そうなんですけど、いったいどこでそれをしているのかよくわかっていないので。
0926login:Penguin04/08/29 11:10ID:1PFwUqWG
switch_to()の前に、switch_toがやってるはず。

switch_to()は引数をeax、edxから引っこ抜くわけだから、
そのとき既に、このレジスタに(仮にA、Bとすると)その値が
保存されてないといけないわけ。

退避するって書いてるけど、switch_toがA、Bをeax、edx・・・
ああ、面倒。ここまで書いたら解かると思いますけど。

この辺り開けば、等価なコードが書かれてるでしょう。
0927login:Penguin04/08/29 16:36ID:cGtjWn1N
>>926
>switch_to()は引数をeax、edxから引っこ抜くわけだから、
>そのとき既に、このレジスタに(仮にA、Bとすると)その値が
>保存されてないといけないわけ。
引数にeaxとかが設定されているのはわかります。

>退避するって書いてるけど、switch_toがA、Bをeax、edx・・・
>ああ、面倒。ここまで書いたら解かると思いますけど。
いえ、自分が期待していたのはどっかで汎用レジスタを退避しているのでは
と思っていたのです。どっかでpusha,popaでもしているのかなと。

なんかよくわからなくなってきたので、もう一度調べてみます。
レスしてくれた方、ありがとう。
0928login:Penguin04/08/29 16:42ID:nVxTwlJG
>>925
ユーザーランドで使っているレジスタは例外発生時に退避されます。
entry.SのSAVE_ALLマクロ使ってる所。
0929login:Penguin04/08/29 19:36ID:cGtjWn1N
>>928
見てみます。ありがとう。
093092304/08/30 02:36ID:s/M5nqAJ
なんかわかったような気がしてきました。
暗闇の中に一筋の光が見えてきました。
0931login:Penguin04/09/06 16:37ID:zvPrxyTS
初心者はここから勉強しましょう。
ム板より転載。
http://program2ch.jugem.cc/
0932login:Penguin04/09/28 13:20:48ID:j6tq7+L5
linux programmingスレが無かったのでここで聞いてみる。
2.2用のカーネルモジュール(driver)がありまして、2.4で使いたいのですけ
ど、カーネルに変更が加わった為かソースはそのままではmakeが通らないです。
一般的な話でいいのですが、kernel2.2から2.4などバージョンを上げる時
moduleのソースはどの辺りに修正加えてますか?

0933login:Penguin04/10/12 13:21:06ID:8oNaJMZy
>>932
オライリーの「LINUXデバイスドライバ」ぐらい持っとけ。
0934login:Penguin04/12/22 21:16:51ID:pSCYM4cf
>>932
2.2と2.4の同じデバイスのドライバ見比べてみたらどうでしょうか。

あと、「LINUXデバイスドライバ」って英語版はWeb上で読めましたっけ。
0935login:Penguin04/12/23 07:06:29ID:S0CjoABJ
x86カーネルだと、1GByteのメモリを使うのですら、
HIGHMEMが必要なわけですが、
HIGHMEMを使うにあたって、ペナルティ等はありますか?

2.6になって改善されたというような記事は見つかったのですが、
具体的な問題については見つかりませんでした。
0936login:Penguin04/12/30 10:00:07ID:4MuG0KSs
guluの皆様、ご教示ください。

モジュールでシステムコールを追加する方法というのはありますが、
(hoge.oをロードしてる間だけhoge()と言うシステムコールが使える)
既存のシステムコールを上書きすることはできるのでしょうか。
(hoge.oをロードしている間だけカスタマイズしたopen()、close()が使えるような)

カーネルがROなROMに焼かれているシステムですので、カーネルに直接
手を入れることができず上記のような発想で対応したいと考えています。
0937login:Penguin04/12/30 10:00:44ID:4MuG0KSs
>>936
なお、対象のカーネルは2.4.17です。
0938login:Penguin04/12/30 10:09:32ID:4MuG0KSs
自己レスとか言う奴です。
ここにそのものズバリがありました。
ご参考に。

http://www.csg.is.titech.ac.jp/~kourai/memo/linux_kernel.html
0939login:Penguin05/01/29 14:37:42ID:gZ/pqgzp
おしえろ

# define __acquire(x)__context__(1)

__context__(1)ってのはどういう意味?

教えてくれた人には俺の妹をもれなくプレゼント!
0940login:Penguin05/02/01 14:08:57ID:lTL5Ae25
>>939
コンテキストスイッチ。

って何だったっけ?

ああ、不完全だからおぱーいとマソこだけでいいよ。
0941login:Penguin05/02/01 15:58:58ID:Azn3cU4M
>>940
とりあえずレスに感謝。あんた最高だよ、ただコンテキストスイッチじゃないんだよな。
不正解だから>>940には、俺の使用済みティッシュ(3年分)をもれなくプレゼント!

__context__(1)ってのはどうもgcc拡張っぽい気がするんだ。
0942login:Penguin05/02/03 11:47:43ID:vTRZ9nM+
このスレ最高
0943login:Penguin05/02/03 12:58:08ID:8pVcdBBv
linux2.6 の include/asm-generic/percpu.h の per_cpu() がどういうものなのか
理解できずに苦しんでます。どうかご教授ください。
0944login:Penguin05/02/20 01:52:12ID:HsEiZt6D
ぱっと見だけど、
DEFINE_PER_CPUで定義したCPU毎の変数を取り出すマクロじゃないの?

ttp://lwn.net/Articles/22911/
0945login:Penguin05/02/20 01:59:27ID:HsEiZt6D
うぉ!2週間前か…。
094694305/02/23 08:44:24ID:L5tOcRY0
>>944
ありがとうございますm(_ _)m
半分、あきらめかけていました。
0947CPUID05/02/25 14:48:05ID:T5ngmMgI
ユーザ空間からプロセススクリプトのアドレス取得する方法があれば教えて下さい。
0948login:Penguin05/02/25 21:56:30ID:Kyzhm2lt
プロセススクリプト? 何のことを言おうとしているのだろう・・・
0949login:Penguin05/02/25 23:10:03ID:L0S86Pvn
すみません。
すプロセスディスクリプタの誤りです。
0950login:Penguin05/02/25 23:55:11ID:Nj2juC+S
>>949
そんなんユーザー空間から見えちゃまずいだろう。
0951login:Penguin05/02/26 13:57:10ID:NTEY/KLT
何をするつもりだ>>949
お前は一人で世界を救おうというのか!
0952login:Penguin05/02/26 20:38:32ID:c7lqcqLw
おい。
カーネルを理解したいのだ。

「この本をこの通りに順番に読め!」
というのがあったら、教えてください。
0953login:Penguin05/02/26 21:54:11ID:PsgioYqx
>>952
本などない
ソース嫁
0954login:Penguin05/02/27 14:18:38ID:BnGxFurs
↓の2つのマクロの意味が分かりません。もう限界です。
これ以上理解できない状態が続くと、妻を道連れに逝くかもしれません。
そうなったらお前らすごい後悔するよな、そうだよな、そうだろ!
心の中で否定しても無駄だ、絶対後悔しちゃうぞ。
後悔したくないよな、そうだよな。

じゃー、さっさと教えてちょ!

include/linux/compiler.h
# define __releases(x)__attribute__((context(1,0)))
# define __acquire(x)__context__(1)

すいません、ちょっと強気に迫ってみましたが、教えてください。
本当に困ってます。頼みます。m(_ _)m
0955login:Penguin05/02/27 14:21:21ID:BnGxFurs
>>952

1. UnixUserのLinux2.6解読室
2. 詳解Linuxカーネル
3. Linuxのソース
0956login:Penguin05/02/27 20:25:37ID:1DzM+Kt1
>>955
詳細Linuxカーネルは持ってます。
UnixUserのブートの本も。

ただ、それに至る知識がないのです。

Linuxプログラミング(ソフトバンクのやつ)も読んでいるのですが、
「何かが足りない」感じなのです。
0957login:Penguin05/02/27 20:27:14ID:1DzM+Kt1
UNIXカーネルの設計でも読んで、修行します。
0958login:Penguin05/02/27 20:53:44ID:+C2cvjvn
>>956
恐らくハードウェアの知識と根性

>>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:Penguin05/02/27 20:54:49ID:BnGxFurs
>>956

あくまで個人的な意見だが、Linuxカーネルはプロセッサの知識
が無いと苦しい。
「はじめて読む8086」→「はじめて読む486」
を読んで、プロセッサの知識を身につけておいた方が良いと思う。

ただ、「あれやって、これやって、そしてLinuxカーネルを読もう」
とあまり遠回りをするのではなく、プロセッサとC言語の知識が
あったら、すぐにLinuxカーネルを読み始めた方がよいように思う。
096095405/02/27 21:00:55ID:BnGxFurs
>>958
とりあえずレス、サンクス!感謝感謝感謝
Linux2.6.10です。
探してみたんだけど見つかりません>gccのinfo (ToT)

context()っていう関数が一体、どの関数のことなのか知りたいです。
0961login:Penguin05/02/28 11:32:10ID:D7G2yqC2
>>960

つ[GNU GLOBAL ソースコードタグシステム]
http://tamacom.com/global-j.html
096296005/03/01 07:37:21ID:yi/Urpst
>>961

サンクス、ちょっと試してみます!
追って報告する!
096396005/03/01 11:16:17ID:yi/Urpst
やはり見つからない(T_T)

include/linux/compiler.h
の中のマクロってことがヒントかもしれない。
http://lxr.linux.no/source/include/linux/compiler.h#L6
↑の場所なんだが、
#ifdef __CHECKER__
っというのは何だろう?__ASSEMBLY__とかいう定義もあるが、
これはどこで調べれば良いのだろうか。

どうか放置せずに教えてください m(_ _)m

これ以上停滞してると、・・・お、お客さんが怖い・・・
0964login:Penguin05/03/01 11:56:56ID:dudfwCjE
仕事を2chに丸投げですか そうですか。
0965login:Penguin05/03/01 12:04:54ID:eifVJR66
>>963
>これ以上停滞してると、・・・お、お客さんが怖い・・・
ソースを解析する仕事??
0966login:Penguin05/03/01 12:14:12ID:PnFz+g+l
出来もしない仕事なんて引き受けるなよ…
096796005/03/01 13:45:21ID:yi/Urpst
>>964-966
スイマセン。

ソースを解析する仕事じゃないんだけど、ちょっと行き詰ってまして・・・。
0968login:Penguin05/03/01 15:25:54ID:eifVJR66
むしろ>>963の質問よりも仕事内容の方が気になった...
096996005/03/01 16:13:44ID:yi/Urpst
とある医療関連会社のシステムの試作(主にデバドラ)をやってます。
下請けなので断れない立場です(T_T)
0970login:Penguin05/03/01 16:16:52ID:xn0lGzJZ
できもしない仕事請けるなよ。
おたがい不幸になるだけだ。
0971login:Penguin05/03/01 16:21:19ID:xn0lGzJZ
この話が終わりしだい↓に統合でいいよね。

【Linux】カーネル総合2【Kernel】
http://pc5.2ch.net/test/read.cgi/linux/1100967722/
0972login:Penguin05/03/01 16:36:21ID:eifVJR66
>>969
ちょっと調べたら自分はわかったよ。

言っておくけどデバドラ開発ならこれらは知らなくても別に問題ないよ。
無視してもいい。


ちょっとだけヒント:これらはgccでは使用しません
097396005/03/01 16:44:06ID:yi/Urpst
>>972
サンクス!x9
か、かなり気が楽になったよ。お前は神だ!
できればどこを調べたのか知りたいのだが・・・頼む.com

>>970は厳しいね。
仕事、断れるくらい大きい会社に勤めてるんだろうね。うらやましぃ...
0974login:Penguin05/03/01 17:47:44ID:eifVJR66
>>973
>できればどこを調べたのか知りたいのだが・・・頼む.com
(ーー;)
無視してもよいと言ってるではないか...

Use the source and google, >>963




− May the source be with >>963!
0975必死な96005/03/01 19:23:39ID:yi/Urpst
> (ーー;)
>無視してもよいと言ってるではないか...

長いこと悩んでいたので、結局なんだったのか知りたいです。
といろいろ検索かけてみたが、未だわかりませんorz
どうか、どうか教えてください m(_ _)m
0976login:Penguin05/03/01 20:15:49ID:eifVJR66
>>975
じゃあ手がかりを与えよう (といっても答えを言ってるようなものだけど..)
ttp://www.linuxjournal.com/article/7272
097795605/03/01 20:32:57ID:RzFHtyl+
>>959
わかりました。ありがとうございます。
やはり「8086」からの方がいいのですね。
0978login:Penguin05/03/01 22:09:08ID:eifVJR66
(´-`).。oO(結局、自分が言った事は>>960には伝わったのだろうか...)
0979& ◆/WemEjDB42 05/03/01 22:41:33ID:yi/Urpst
>>978

現在英語を読んでいるところだが、よくわからんのだ。
ただ、気持ちだけは伝わってるぜ。
サンキュー、ミスター!あんた最高だよ。
ついでに言っておくが、日本語で解説してくれると
うれしい。
0980login:Penguin05/03/01 22:44:19ID:eifVJR66
>>979
>ついでに言っておくが、日本語で解説してくれると
>うれしい。
ガン( ゚д゚)ガレ
0981login:Penguin05/03/01 22:54:00ID:yi/Urpst
>やはり「8086」からの方がいいのですね。

「はじめて読む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:Penguin05/03/01 22:59:55ID:eifVJR66
>>979
まぁ簡単に言うとだな、
リーナスがちょっとしたちっちゃなコンパイラを作ったぞ、みたいな
古いK&Rスタイルは嫌だからANSI Cが好きなの、みたいな
GCCを使わずにそれでソースチェックに使ったりしてるよ、みたいな
んな事言ってるように思われ。

んだからそのリーナスコンパイラ"Sparse"って言うのか?は、
別にKernelコンパイルにもデバドラ作成にも必須で無いぞって事。
(Kernelハッカーには嬉しいツールらしいが..)
098396005/03/01 23:06:31ID:yi/Urpst
>>980

よくぞ説明してくれた!なるほど!
俺はもうあきらめて愛用のパジャマに着替えた
ところだよ。

感謝の気持ちとして俺の使用済みティッシュ
(1ヶ月分)をもれなくプレゼント!
レス数が950を超えています。1000を超えると書き込みができなくなります。