☆Linux カーネルの仕組みを勉強するスレ☆
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/10/02 17:44ID:38KkZsUQカーネル全般について語り合うスレッドです。
0247login:Penguin
02/01/14 05:38ID:yv5BYGJ8そういうテーブルを作ると、ドライバの親分が
必要に応じて呼び出してくれるんです。
0248super
02/01/14 22:10ID:hh4sVRcA0249login:Penguin
02/01/15 21:02ID:blfk2QjYhttp://pc1.peanuts.gr.jp/~kei/Kernel-Snapshot/linux/kernel/sched.c
Lion みたいにわかりやすく解説して!
0250login:Penguin
02/01/15 21:07ID:blfk2QjY1269ステップ数あります
みなさん249のページをコピーして
秀丸に貼り付けて下さい!
0251login:Penguin
02/01/15 21:08ID:blfk2QjYstatic union {
struct schedule_data {
struct task_struct * curr;
cycles_t last_schedule;
} schedule_data;
char __pad [SMP_CACHE_BYTES];
} aligned_data [NR_CPUS] __cacheline_aligned = { {{&init_task,0}}};
では何をやっているのでしょうか?
0252login:Penguin
02/01/15 21:13ID:blfk2QjYは何を意味していますか?
0253login:Penguin
02/01/15 21:43ID:blfk2QjY0254名無しさん@お腹いっぱい。
02/01/15 23:02ID:myRSFpvn具体的にどの部分が分からないのか不明。
currにn番目のプロセッサで実行中のタスクが入る。
unionで__pad入れてるのは、構造体のサイズをcache境界の単位にあわせるため。
__cacheline_aligned は構造体そのものをcache境界に整合した番地に置くため。
NR_CPUS定数はCPUの数。
>252
>find_process_by_pid
関数名そのまんま。PIDからタスク構造体を取得するだけだと思うが。
0255login:Penguin
02/01/15 23:06ID:iytjqY0j/*
* We align per-CPU scheduling data on cacheline boundaries,
* to prevent cacheline ping-pong.
*/
>>252
pidが0なら、現在のタスク情報の構造体へのポインタを、
そうでないなら、指定されたpidがしめすタスクの構造体への
ポインタを返してる。
0256login:Penguin
02/01/16 00:02ID:NXnK8I7nLionsに紹介されている(P94)のsched.c
とLinuxのSched.cとは全然違うように思います
これはLinuxが独自の仕様ということでしょうか?
Bach本でスケジューリングのアルゴリズムを説明しているソース
はLion本に近いソースで説明しているのですが
0257login:Penguin
02/01/16 00:03ID:NXnK8I7nあわせるため
もう少し詳しく!
0258名無しさん@お腹いっぱい。
02/01/16 00:13ID:MlDa/kr2http://lse.sourceforge.net/counters/statctr.html
#Statistics Counter Maintenance
のところに詳しく書かれてる。
0259login:Penguin
02/01/16 00:15ID:lZaXRnQUcacheの問題だっていってるんだから、そこに因われることは
無いと思われ。
「あー、高速化の為に、unionつかってイイ感じにやってんのねー」で
十分じゃねーの?
0260login:Penguin
02/01/16 00:38ID:NXnK8I7n256のいうように、ソースが複雑になっていると
いうことでしょうか?
ちなみにSCHED.C ってlINUXの中ではわかりずらいソースなのでしょうか?
0261名無しさん@お腹いっぱい。
02/01/16 00:58ID:MlDa/kr2つまり、キャッシュラインに対して構造体1つがピッタリはまっていれば
その構造体以外のアクセスで、その構造体があるキャッシュラインがフラッシュされることがなくなる。
もし、構造体のサイズ!=キャッシュラインサイズであれば、
あるプロセッサによって無関係のデータの読み込みが行われた場合でも
他のプロセッサ全てのキャッシュラインの更新が行われてしまう可能性がある。
そしてメモリアクセスが増えて性能が落ちる。わずかだけど。
キャッシュラインのイメージ図(*が構造体の部分 Xが無関係のデータ)
(1). [**********][XXXX] <-構造体のサイズ!=キャッシュラインサイズの場合
(2). [****************] <-構造体のサイズ==キャッシュラインサイズの場合
(1)の場合は無関係のデータにアクセスされてもそのキャッシュラインがフラッシュされてしまうので無駄。
(2)の場合は構造体にアクセスする場合だけそのキャッシュラインがフラッシュされるので効率がいい。
∧_∧
( ´Д`) <わかったかな?
/ \
_ | | ∬ | |_..∬
|\ ̄ ̄ ̄旦 ̄ ̄ 旦.\
./..\\ \
/ \|================|
\ ノ \
\ .\
\ ..\_
""""""""""""""""""″″′
0262login:Penguin
02/01/16 01:09ID:DfshrX4dthank you
0263Be名無しさん
02/01/16 22:11ID:NXnK8I7n0264Be名無しさん
02/01/16 22:31ID:NXnK8I7n{
int weight;
/*
* select the current process after every other
* runnable process, but before the idle thread.
* Also, dont trigger a counter recalculation.
*/
weight = -1;
if (p->policy & SCHED_YIELD)
goto out;
/*
* Non-RT process - normal case first.
*/
if (p->policy == SCHED_OTHER) {
/*
* Give the process a first-approximation goodness value
* according to the number of clock-ticks it has left.
*
* Don't do any other calculations if the time slice is
* over..
*/
weight = p->counter;
if (!weight)
goto out;
#ifdef CONFIG_SMP
/* Give a largish advantage to the same processor... */
/* (this is equivalent to penalizing other processors) */
if (p->processor == this_cpu)
weight += PROC_CHANGE_PENALTY;
#endif
/* .. and a slight advantage to the current MM */
if (p->mm == this_mm || !p->mm)
weight += 1;
weight += 20 - p->nice;
goto out;
}
/*
* Realtime process, select the first one on the
* runqueue (taking priorities within processes
* into account).
*/
weight = 1000 + p->rt_priority;
out:
return weight;
}
なにをやっているか解説して下さい
140行目からです
sched.c
0265Be名無しさん
02/01/16 23:00ID:NXnK8I7nint count;
pgd_t * pgd;
unsigned long context;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss, total_vm, locked_vm;
unsigned long def_flags;
struct vm_area_struct * mmap;
struct vm_area_struct * mmap_avl;
struct semaphore mmap_sem;
};
構造体の中に構造体がある場合はどう理解すればいいのでしょうか?
sched.h
http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-15.html
0266もなー君@お腹いっぱい。
02/01/16 23:37ID:MlDa/kr2goodnessは、指定されたタスクが実行し続けるにふさわしいか判断するための関数。
戻り値が大きいほど「実行しつづけた方がいいよ」という意味になる。
この関数だけ見てもしょうがないので全体的に説明すると。
#RTプロセス周りは省略
> weight = p->counter;
このcounterは可変優先度式スケジューラの動的優先度に相当する。
動的優先度については>171あたりを参照。
>#ifdef CONFIG_SMP
> (省略)
> if (p->processor == this_cpu)
> weight += PROC_CHANGE_PENALTY;
>#endif
プロセッサはそれぞれにcacheとTLBを持っているため、
1つのタスクがいくつものプロセッサにまたがって実行されると性能が低下してしまう。
従って、「なるべく同じプロセッサ上で実行し続けた方がいいよ」という意味。
>if (p->mm == this_mm || !p->mm)
> weight += 1;
これも同様に、別のメモリ空間(ページテーブル)に切り替えるとTLBが無駄になってしまうから
「なるべく切り替えない方がいいよ」という意味。
∧_∧
( ´Д`) <PROC_CHANGE_PENALTYとかの値は推測的に決められているから
/ \ <どれほど性能が改善されるのかをLinus君に問いたい、問い詰めたい、
_ | | ∬ | |_..∬ <小一時間ほど問い詰めたいところではある。
|\ ̄ ̄ ̄旦 ̄ ̄ 旦.\
./..\\ \
/ \|================|
\ ノ \
\ .\
\ ..\_
""""""""""""""""""″″′
0267あげあげ
02/01/17 13:09ID:fKwmqdxCThank You
0268login:Penguin
02/01/17 20:28ID:P7SYmdjdhttp://www.zdnet.co.jp/news/0201/17/e_usb.html
...カーネル2.5.2には,OSの重要な部分となる「スケジューラ」も実装されている。
ワロタ
0269名無しさん@XEmacs
02/01/17 22:57ID:MexfPvJZ気に入った。
0270Be名無しさん
02/01/18 23:07ID:SjcLc3oq>ソースコードはlinux/kernel/sched.c だな
自分で,sched.c を一部書き換えて、sched.o を作って
linux/kernel/sched.o と置き換えてもうまく動作しますか?
ソースを一部書き換えて、それをリナックスでコンパイル
させる方法教えて下さい。
例えば、sched.c
0271login:Penguin
02/01/18 23:11ID:SjcLc3oqhttp://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-5.html#ss5.5
にある図表(4.2) プロセスの仮想メモリ
は構造体が二つネストして、task struct から3階層目で
実際のメモリにアクセスしていると考えればいいのでしょうか?
struct
(struct
(struct
ってかんじですか?
0272270
02/01/18 23:21ID:SjcLc3oqsched.c の
http://pc1.peanuts.gr.jp/~kei/Kernel-Snapshot/linux/kernel/sched.c
1157行目
if (xtime.tv_usec >= 1000000) {
を
if (xtime.tv_usec >= 900000) {
に変更して、これをLinuxに組み込みたいときは具体的に
どういう手続きでできますか?
0273名無しさん@Emacs
02/01/18 23:51ID:YW/sCNj01. time.c を編集
2. /usr/src/linux あたりで make vmlinux
でダメかい?
0274270
02/01/19 00:44ID:jiC3xKcwsched.cを編集したので、sched.c をコンパイルして
sched.o をつくってと言う流れにはならないのでしょうか?
0275名無しさん@Emacs
02/01/19 00:58ID:qDPmIUv5sched.c編集後に kernel/
でmakeって打ったらどうなる?
0276
02/01/19 03:29ID:EPNncPjOするのがもっとも効率がよいぞ。それでも判らないところは
メーリングリストや掲示板で尋ねなさい。
0277login:Penguin
02/01/19 10:14ID:s4mGpeNhなんとか本は読んだことがないのだけれど、
伝統的なUNIXなら、スケジューラにはMLFQ
を使っているんじゃないでしょうか?
LinuxのスケジューラとMLFQは違うの? と
いう質問に対する答は、「違うよ」です。
MLFQ:Multi Level Feedbak Queue
0278penguin
02/01/19 10:27ID:Nn4Hdk9S以外にsched.c を編集して差し替える方法ってのはのってないです
オらいリーにも、バッハにはもライオンにも
0279perl
02/01/19 19:19ID:6UZoY/KQTarget /Rules.make をmake するターゲットがありません
と表示されます
0280login:Penguin
02/01/20 01:25ID:PW5h4b9Tだから君は /usr/src/linux あたりで makeしろ
と言われるわけだ
なんでこうなるかは, Makefileなどを読めばわかるから読んでみなよ
>>274 もちろん そうすることもできる
があまり一般的でない気がするし
この程度のこと自分で調べるとか試すことができんと
先にすすめんと思うぞ.
0281202.221.45.130
02/01/20 01:26ID:RJR5ycOG俺のIPアドレスだ、おめーらの技量じゃハックデきね〜だろうけどw
0282login:Penguin
02/01/20 01:33ID:6rBCbXPRプロバイダはケーブルネット新潟か、、
icmpが通らないどころかtcpのどのポートも開いてないじゃん。
0283A
02/01/20 18:44ID:cVcKPlLahttp://www.zdnet.co.jp/help/howto/linux/kernel24/03.html
みたいな感じでやるの?
0284T
02/01/21 12:53ID:Wml0Xzg3REaHATです
0285login:Penguin
02/01/21 20:15ID:vTi6jywZ/linux/arch/i386/boot/bzImage
ところであまり綺麗ではないと言われるLinuxのソースですが、
どのあたりが*BSD*やその他のカーネルと比べて不味いのでしょうか?
自分には十分綺麗にまとまっているようにも思いますが。
0286名無しさん@EMACS
02/01/21 20:43ID:a+jXfduoただデバイスドライバの中には汚いのも散見する気がするので
ここらへんが不味いと言われるかもしれないです
0287Be名無しさん
02/01/21 22:15ID:RLDBnvZL0288login:Penguin
02/01/22 03:27ID:sIyQ1wuj0289名無しさん
02/01/22 21:27ID:qC2FYqJqbioとかdriverfsってどういうのですか?
0290safda
02/01/23 17:16ID:FOpw4p0sstatic inline int goodness(struct task_struct * p, int this_cpu, struct mm_struct *this_mm)
{
int weight;
/*
* select the current process after every other
* runnable process, but before the idle thread.
* Also, dont trigger a counter recalculation.
*/
weight = -1;
if (p->policy & SCHED_YIELD)
goto out;
/*
* Non-RT process - normal case first.
*/
if (p->policy == SCHED_OTHER) {
/*
* Give the process a first-approximation goodness value
* according to the number of clock-ticks it has left.
*
* Don't do any other calculations if the time slice is
* over..
*/
weight = p->counter;
if (!weight)
goto out;
#ifdef CONFIG_SMP
/* Give a largish advantage to the same processor... */
/* (this is equivalent to penalizing other processors) */
if (p->processor == this_cpu)
weight += PROC_CHANGE_PENALTY;
#endif
/* .. and a slight advantage to the current MM */
if (p->mm == this_mm || !p->mm)
weight += 1;
weight += 20 - p->nice;
goto out;
}
/*
* Realtime process, select the first one on the
* runqueue (taking priorities within processes
* into account).
*/
weight = 1000 + p->rt_priority;
out:
return weight;
}
desune
0291login:Penguin
02/01/25 04:17ID:dOURaakdどこが原因で止まっているのか分からないときは
どのようにデバッグしたらいいのでしょうか?
起動時に
'PCI: Enabling device 00:07.2 (0000 -> 0001)'
と表示して終わります。
(arch/kernel/pci_i386.cのpcibios_enable_resources()関数で出力)
ここまではgrepだけでなんとか分かるのですが、この先どこでおかしく
なっているのかさっぱり分かりません。
kernel debugオプションでログを解析したいのですがやり方等
分かる方がいらっしゃれば何か教えて下さい。
0292login:Penguin
02/01/25 06:15ID:dOURaakdUser-mode Linux Kernel
http://user-mode-linux.sourceforge.net/
これを動かしてはコンパイルを繰り返すことで
大体のことが勉強できそうなので、
まずは基本からやり直します。
辛いな(ワラ
0293safda
02/01/25 09:19ID:SWm1VQvW*http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-5.html#ss5.5
といいますが、ここで使われている実行イメージとは?
詳細に説明して下さい
0295login:Penguin
02/01/25 10:55ID:dOURaakd0296login:Penguin
02/01/25 10:56ID:dOURaakd0297anonymous
02/01/25 12:58ID:SWm1VQvW上はメモリに保存されたとういことではないのでしょうか?>>ALL
0298login:Penguin
02/01/25 13:28ID:GUMC5F4Jもう一台PCがあって、カーネルデバッガが起動できるようならリモートデバッグ
それ以外だと、オプションをOFFしまくった小さなカーネルが起動できるかチェックし、
起動できたら少しずつ足していくか、モジュール化しといてinsmod手打ちで落ちる所を捜す
動くカーネルとのオプションの違いや、コンパイラが腐ってないかなどはあらかじめチェックすること
0299login:Penguin
02/01/25 13:34ID:GUMC5F4Jディスクで正しい、メモリをメタな意味で用いているならそれも正解
0300login:Penguin
02/01/25 13:52ID:GUMC5F4J実行イメージは単体(OSは介在していい)でプロセスの起動まで持っていける
プログラムとデータなどをまとめたもの。
LinuxでOSがプログラムとデータを認識できるようにELFというフォーマットを
主に用いる。ELFは複数のプログラムとデータをチャンク(セクションと呼ばれる)として
持つ、イメージ的にはプログラムやデータの個々のファイルを、アーカイバで1つにしていると
考えるといい。
ELF内のプログラムはフツー再配置情報へのリンクを含んだ実行コードそのものと、
再配置情報、シンボルなど複数のチャンクとして格納されている。データも同様で
初期化の他のデータや、あらかじめ獲得するデータ領域などに分けられ格納される。
その他、デバッグ情報や、チャンクの配置情報などもチャンクとして格納される。
デバッグ情報などチャンクのなかで、さらに別なフォーマット(coffなど)として
格納されているものもある。
OSは実行イメージをプロセスとして変換する際、これらの情報から実際に実行可能な
コードと適切に配置されたデータを生成し、実行スケジューリングに追加する。
0301anonymous
02/01/25 14:16ID:SWm1VQvWThank You
0302名無しさん
02/01/25 15:15ID:IiT72Jq6LKST https://sourceforge.net/projects/lkst/
話題のやつですね。使ってみた人います?
FreeBSDのcrashdumpやkerneldebuggerは使ってみたことあるんですが、
crashdumpは便利だったけどkerneldebuggerは・・・て感じだったんで、LKSTはどうなんだろう?と。
Docを読んだ限りではdebuggerではなくtracerだな、て感じでしたが。まあ名前のとおりなんですが。
0304もなー君@お腹いっぱい。
02/01/25 21:40ID:bz8Zsrcu実はELF-DOSはMZ形式のEXEじゃなくて、ELF(386)形式をサポートしてるんだYO!
とかいってみるテスト
0305kernel
02/01/25 22:45ID:AiDxywi8にある
メモリー上のアドレス 0x7c00
の 0x7c00 って?
0306もなー君@お腹いっぱい。
02/01/25 22:59ID:bz8Zsrcu0x7c00は、ブート時にBIOSがディスクからIPLセクタを読み込んで配置するアドレス。
IPLセクタには、ブートマネージャやOSローダなどが書き込まれている。
つまり、BIOSによってディスクの先頭セクタ(IPL)が0x7c00番地にロードされ、実行される。
∧_∧
( ´Д`) <1セクタ512バイトしかないから、IPL上で他のセクタをロードして
/ \ <ブートアップしていくのが普通。
_ | | ∬ | |_..∬
|\ ̄ ̄ ̄旦 ̄ ̄ 旦.\
./..\\ \
/ \|================|
\ ノ \
\ .\
\ ..\_
""""""""""""""""""″″′
0307IBM
02/01/26 00:58ID:qkQVL9nGThank You
0308login:Penguin
02/01/26 01:36ID:UX7CiKAAおぃおぃお前がゆーな
つか答えろ
0309IBM
02/01/26 02:08ID:qkQVL9nGhttp://www-6.ibm.com/jp/linux/developers/ISEtechinfo/linux003.html
0310login:Penguin
02/01/26 20:51ID:zSXZ5gOy0311login:Penguin
02/01/27 05:29ID:r2XC415pstruct module の
depsメンバーと, refsメンバー
だれか図に書いて教えて
0312login:Penguin
02/01/27 11:31ID:Z/G/YqfA0313login:Penguin
02/01/27 17:48ID:jQmpel0O0314login:Penguin
02/01/27 23:16ID:Frv9vH0Pってか、何がしたいの?
それって、Frame Bufferでいいんでは?
jfbterm のソース見れば?
http://www3.justnet.ne.jp/~nmasu/linux/jfbterm/indexn.html
0315login:Penguin
02/01/27 23:25ID:sK7/TLsv少しは自分で解析しろよw。
皆そうしてやってんだからさ。
0316login:Penguin
02/01/28 00:11ID:QstxY/nc0317Su
02/01/30 20:26ID:AvPSuSyK0318APC
02/01/30 20:35ID:AvPSuSyKスケジューラはidleと呼ばれる何もしないプロセスに実行権を渡す。
これはソースのどのあたりを読めばいいですか?
0319login:Penguin
02/01/30 20:59ID:Lx5WPMzlrepeat_schedule: あたりか?
0320名無しさん
02/01/30 21:37ID:650NkqOFinclude/linux/module.h を眺めたが
struct moduleのdepsとrefsって
module_ref でこいつはただのlinked listちゃうの?
|module|
^
| dep
|
|module_ref|-next_ref->|module_ref|-next_ref->...
|
| ref
v
|module|
|module|-next->|module|-next->...
思いきり簡略化するとこんなかんじとちゃう?
0321名無しさん@お腹いっぱい。
02/01/30 23:27ID:BrO/yEoxこれはよいかも。おれ明日買いにいってみる。
0322login:Penguin
02/01/31 00:59ID:o+EauUH6当方大手プロバイダな物でnew Thread("Linuxデバイスドライバ")できません。
イーサネットドライバの書き方教えてくださいませ。
一応ソース読んだけど挫折中、、、
0323login:Penguin
02/01/31 01:11ID:t3s191ys0324323
02/01/31 01:16ID:t3s191ysいい加減で悪いけど。
0325login:Penguin
02/01/31 01:48ID:R8TIzJkuhttp://pc.2ch.net/test/read.cgi/linux/1012407270/l50
0326anonymous
02/01/31 17:35ID:XkNXES9Hsched.cには
repeat_schedule
というモジュールはないです。
sched.cの何行目くらいでしょうか?
0327telnet
02/01/31 17:41ID:XkNXES9HLinuxではどういうケースでどういうケースで使うのでしょうか?
メモリマップの具体的なしくみははじめて読む486で理解しています
0328319
02/01/31 18:01ID:VzRMG8cDvesion 2.4.17だとこんなかんじです。
603 repeat_schedule:
604 /*
605 * Default process to select..
606 */
607 next = idle_task(this_cpu);
idle_task()を追いかければ分かると思われ。
0329anonymous
02/01/31 19:40ID:bRdhNRMbThank You
0330login:Penguin
02/01/31 21:41ID:U++Ss/msLinuxはもはやTorvalds氏の手に余るのか
ってここに貼っていいんだっけ?
0331☆中身丸見えなネットキャバクラ嬢HP
02/01/31 21:55ID:qyVVAuwK中を見ると、ネットキャバクラの派遣業務(スカウト)も
やってるんだけど、セキュリティ甘すぎで
応募してきた女のデータが丸見え(藁
こんな甘いセキュリティーでいいのか??
ついでに書くけど、派遣やスカウト業務って
労働大臣に報告しないとやっちゃいけないんだってね。
テレギャル日記
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
0333anonymous
02/01/31 22:24ID:gjVN0d1dはっきりいって驚きです
0334login:Penguin
02/02/02 10:57ID:ZMxM5ZSu1.全てのプロセスはユーザースタックとカーネルスタックの2つのスタックを持っているという認識は合っていますか?
2.プログラムカウントレジスタが指しているアドレスは論理アドレスですか?それともリニア、物理アドレスですか?
よろしくお願いします。
0335login:Penguin
02/02/02 11:27ID:QwE3ggccテスト勉強は、友達か先生に聞いてください。
0336login:Penguin
02/02/03 20:10ID:urBW9cePSystem.mapは作られるタイミングわかったんですけど
mapはどこで作られてるのか・・・さっぱり
0337336
02/02/03 22:07ID:urBW9cePCD-ROMからカーネルを持ってくると思うんですが
カーネルをコピーしたあとに LILO を打つのに
map=/boot/map
のこのmapはどこから持ってくるんですか?
とりあえずDebianのCD-ROMの中にはありませんでした。
0338オリスレ1
02/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:Penguin
02/02/05 21:13ID:JQSzVmkTWidows9Xは プリエンティブ カーネル
もう少しわかりやすく説明して下さい
0340login:Penguin
02/02/05 21:17ID:8yPPH2y00341login:Penguin
02/02/05 21:18ID:cjWnFjQH0342login:Penguin
02/02/05 21:45ID:3XUKmv4C0343login:Penguin
02/02/05 21:48ID:xTemToT90344login:Penguin
02/02/05 22:09ID:JQSzVmkT日経バイト(つまらん雑誌だが)に
Windowsのロードマップを解説してあり、その中に
Windowsをプリエンティブカーネルと紹介してあった
0346login:Penguin
02/02/06 00:15ID:CkGAoDS/■ このスレッドは過去ログ倉庫に格納されています