これからsys/kern/init_main.c読んでみます。
【参考】
・「The Design and Implementation of the 4.4BSD Operating System」
の第2章
http://www.freebsd.org/doc/en_US.ISO8859-1/books/design-44bsd/index.html
・*BSDでのアセンブリ
http://www.int80h.org/bsdasm/
なんか検索してみてもあんまりハックサイトひっかからないね。
Linuxより伝統あるはずなのに。
探検
お前ら*BSDのカーネルをハックしますか?
1見習デーモン
NGNGNGNG
なんか面白そうだな。
*BSD 入れたくなってきた。
*BSD 入れたくなってきた。
65名無しさん@お腹いっぱい。
NGNG Solarisのカーネルハックもここでいいの?
66名無しさん@お腹いっぱい。
NGNG Solarisの kernel source見ると、変な copyrightに汚染されませんか?
# 会社の決算期にあたって、bladeが来ない...
# 会社の決算期にあたって、bladeが来ない...
67age
NGNG age
NGNG
NGNG
Uniform Driver Interfaceどうよ?
NGNG
えと、えと。そうしてほしいの?おにいちゃん。ってのはともかく。
要はいじりたいコンポネントからせめて行くのが得策なわけで。
頭から見ても良い事はあんまり無いと言うのが本質ですな。
他機種移植だったらそれが一番大事だけど。
(もっとも、例にだしたのがドライバなのは私がその見飽きた事を
しているからでして。)次はportalfs元にいじるかな。小さくて簡単そうだし。
kernfsあたりも簡単そうだったけど。FreeBSDからは消えたし。
UDIですかぁ。うーん。努力は認めるけど....
要はいじりたいコンポネントからせめて行くのが得策なわけで。
頭から見ても良い事はあんまり無いと言うのが本質ですな。
他機種移植だったらそれが一番大事だけど。
(もっとも、例にだしたのがドライバなのは私がその見飽きた事を
しているからでして。)次はportalfs元にいじるかな。小さくて簡単そうだし。
kernfsあたりも簡単そうだったけど。FreeBSDからは消えたし。
UDIですかぁ。うーん。努力は認めるけど....
7168
NGNG >>70
個々のファイルシステムじゃなくてVFS。
VMいじれとまでは言わないっす。ドライバ書きは多いけど、そっから
昇格するやつがいないと思ったみょ。
わしも、しょうもないドライバを昔書いたけど、それいらいカーネルは
いじってないでし。(もはや一介の犬厨です)
個々のファイルシステムじゃなくてVFS。
VMいじれとまでは言わないっす。ドライバ書きは多いけど、そっから
昇格するやつがいないと思ったみょ。
わしも、しょうもないドライバを昔書いたけど、それいらいカーネルは
いじってないでし。(もはや一介の犬厨です)
72名無しさん
NGNG ソラリスのカーネルスレッドがマッチするよう
Sparcは設計されているのですか?
Sparcは設計されているのですか?
73名無しさん@お腹いっぱい。
NGNG あげ
NGNG
ドライバ書きより VFS いじる方が格が上だとでも?
ただのレイヤ違いじゃん。
ただのレイヤ違いじゃん。
NGNG
NGNG
禿同 >>74
78名無しさん@お腹いっぱい。
NGNG age
79仕様書無しさん
NGNG これも
80名無しさん@お腹いっぱい。
NGNG つづきプリーズ揚げ
81名無しさん
NGNGBSDに誰か じゃーなりんぐできるFS実装してくれたまへ。
あと、圧縮できるFSもキボンヌ
NGNG
>>82
ライセンスどうするんだろ? JFSもGPLだったよね?
ライセンスどうするんだろ? JFSもGPLだったよね?
NGNG
8583
NGNG うーんやっぱそうなるよねぇ。先が長そうだ...
とりあえず応援age
とりあえず応援age
NGNG
JFS ってわざわざスクラッチから作るほどイイの?
NGNG
とりあえずジャーナリングするファイルシステムがひとつは欲しい
NGNG
JFS for Linux を移植するよりスクラッチから書いた方が早い
NGNG
>>88
その情熱をLFSに注いでクレ
その情熱をLFSに注いでクレ
NGNG
LFSとかsoftupdateみたいなディスクへのリクエストの順序で整合性を保つ方式は
そろそろダメというのが世間のコンセンサスな気がする
そろそろダメというのが世間のコンセンサスな気がする
NGNG
ジャーナリングって
ディスクへのリクエストの順番と
実際書き込まれる順番が
デタラメになっても問題ないの?
ディスクへのリクエストの順番と
実際書き込まれる順番が
デタラメになっても問題ないの?
NGNG
NGNG
書き込み順序保証ってSCSIやATAのtagged queuingじゃダメなの?
NGNG
>>93
その手の機能をすべてのメタデータの書き込みに対して使うと遅いよ
その手の機能をすべてのメタデータの書き込みに対して使うと遅いよ
NGNG
NGNG
97名無しさん@お腹いっぱい。
NGNG age てみよう。
98名無しさん@お腹いっぱい。
NGNG 勉強のため、FreeBSD 4.5-RELEASE 上で俺ファイルシステムを
作りたいと思っています。とりあえず、procfs のように、カーネルの
覗き穴的な fs がいいかなと。
が、サパーリわかりません。というわけで、fs のスケルトンが欲しい
のですが、よいスケルトンはどれでしょうか。
ファイルサイズ的に miscfs/deadfs/ かなぁと思うのですが、deadfs は
どういう目的の fs なのかがわかりません。ぜひアドバイスをお願いします。
作りたいと思っています。とりあえず、procfs のように、カーネルの
覗き穴的な fs がいいかなと。
が、サパーリわかりません。というわけで、fs のスケルトンが欲しい
のですが、よいスケルトンはどれでしょうか。
ファイルサイズ的に miscfs/deadfs/ かなぁと思うのですが、deadfs は
どういう目的の fs なのかがわかりません。ぜひアドバイスをお願いします。
9998
NGNG deadfs は mount 方法もわからないし (そもそも mount できるのか
どうかもわからん) kernfs の方がいいかな…。
どうかもわからん) kernfs の方がいいかな…。
NGNG
procfs を換骨奪胎すればいいのでは?
101名無しさん@お腹いっぱい。
NGNG やっぱnullfsが基本では。
procfsはpseudofsレイヤができたから応用ききづらいかも。
procfsはpseudofsレイヤができたから応用ききづらいかも。
102100
NGNG nullfs は読むのに layerfs と行ったり来たりしなきゃ
いけないので面倒かもと思ったので。(NetBSD)
よく見たら >98 はFreeBSDか。
てゆーか msdosfs あたりでも見たほうがむしろ分りやすいかもとか
思ったり。
いけないので面倒かもと思ったので。(NetBSD)
よく見たら >98 はFreeBSDか。
てゆーか msdosfs あたりでも見たほうがむしろ分りやすいかもとか
思ったり。
10398
NGNG なんだこれ、ちょーかんたんじゃん! というわけでメモメモ。
/sys/conf/files に追加。
miscfs/orefs/orefs_vfsops.c standard
miscfs/orefs/orefs_vnops.c standard
/sys/sys/vnode.h に VT_OREFS を追加。
enum vtagtype {
...
VT_OREFS, /* 追加 */
};
# mkdir /sys/miscfs/orefs && cp /sys/miscfs/kernfs/* /sys/miscfs/orefs
/sys/miscfs/orefs/* を片っ端から s/kern/ore/
# cd /sys/i386/conf && config GENRIC && cd ../../compile/GENERIC
# make depend && make make install
# ln -s /sbin/mount_kernfs mount_orefs
# reboot
# mkdir /ore
# mount_orefs orefs /ore
# ls -l /ore
-r--r--r-- 1 root wheel 9 Apr 9 20:30 oresama
# cat /ore/oresama
oresama!
/sys/conf/files に追加。
miscfs/orefs/orefs_vfsops.c standard
miscfs/orefs/orefs_vnops.c standard
/sys/sys/vnode.h に VT_OREFS を追加。
enum vtagtype {
...
VT_OREFS, /* 追加 */
};
# mkdir /sys/miscfs/orefs && cp /sys/miscfs/kernfs/* /sys/miscfs/orefs
/sys/miscfs/orefs/* を片っ端から s/kern/ore/
# cd /sys/i386/conf && config GENRIC && cd ../../compile/GENERIC
# make depend && make make install
# ln -s /sbin/mount_kernfs mount_orefs
# reboot
# mkdir /ore
# mount_orefs orefs /ore
# ls -l /ore
-r--r--r-- 1 root wheel 9 Apr 9 20:30 oresama
# cat /ore/oresama
oresama!
10498
NGNG UNIX 使い始めて はや7年。やっとカーネルの世界にちょっとだけ足を踏み入れる
ことができたかな…。漏れみたいなヘタレには一生無理かとおもてたよ。感激。
というわけで、とりあえずの目標は
rootvfs/da0s1a -> vnode/1
rootvfs/ad0c -> vnode/2
vnode/1/v_flag
vnode/1/v_count
みたいな (まだわかってないので構成は適当)、各種構造体をマッピングした
ファイルシステムを作ろうと思います。
> やっぱnullfsが基本では。
nullfs の本来の使い方がいまいちわからないので、
一番サイズの小さい kernfs で行くことにしましたっす。
ことができたかな…。漏れみたいなヘタレには一生無理かとおもてたよ。感激。
というわけで、とりあえずの目標は
rootvfs/da0s1a -> vnode/1
rootvfs/ad0c -> vnode/2
vnode/1/v_flag
vnode/1/v_count
みたいな (まだわかってないので構成は適当)、各種構造体をマッピングした
ファイルシステムを作ろうと思います。
> やっぱnullfsが基本では。
nullfs の本来の使い方がいまいちわからないので、
一番サイズの小さい kernfs で行くことにしましたっす。
105名無しさん
NGNG カーネルのコンパイルについて質問です。
FreeBSD4.5でカーネルをいじってmake && make installを
しているんですが不要な部分を除いてコンパイルの時間を
短くできないでしょうか?そんな都合のいい話は
ないかもしれませんがよろしくお願いします。
FreeBSD4.5でカーネルをいじってmake && make installを
しているんですが不要な部分を除いてコンパイルの時間を
短くできないでしょうか?そんな都合のいい話は
ないかもしれませんがよろしくお願いします。
106あぼーん
NGNGあぼーん
107名無しさん@お腹いっぱい。
NGNGNGNG
>>105
本来スレ違いなんだけど…
http://www.jp.freebsd.org/www.FreeBSD.org/ja/handbook/kernelconfig.html
さらに何か疑問があればFreeBSD質問スレにGo
本来スレ違いなんだけど…
http://www.jp.freebsd.org/www.FreeBSD.org/ja/handbook/kernelconfig.html
さらに何か疑問があればFreeBSD質問スレにGo
109名無しさん@お腹いっぱい。
NGNG NULLFSは正直お勧めできない。
あれは、スタッカブルファイルシステムのテンプレ。
そうそう。Linuxネタだけど、これどうよ。(カーネル空間でORBit動かす)
http://korbit.sourceforge.net/
これ一瞬移植しようかと思ったけど、geom入ったせいで
glibと名前空間がぶつかりそう。
あれは、スタッカブルファイルシステムのテンプレ。
そうそう。Linuxネタだけど、これどうよ。(カーネル空間でORBit動かす)
http://korbit.sourceforge.net/
これ一瞬移植しようかと思ったけど、geom入ったせいで
glibと名前空間がぶつかりそう。
110名無しさん@お腹いっぱい。
NGNG うーん。
NetBSDからスタッカブルファイルシステム系全部持ってきたほうが
面白いかなぁ。
NetBSDからスタッカブルファイルシステム系全部持ってきたほうが
面白いかなぁ。
NGNG
112学生
NGNG カーネル書けるとスゴいって書き込みよく見かけますが
学生で書けたらすごいですか?
ウチの教授は書けますかね?
学生で書けたらすごいですか?
ウチの教授は書けますかね?
NGNG
NGNG
115学生
NGNG ビンゴです。
あと、以前他のスレでも見ました。
で、どうなんですか。
カーネルは上級のプロじゃないと書けないんですか?
お前ら真面目にレス下さい。
あと、以前他のスレでも見ました。
で、どうなんですか。
カーネルは上級のプロじゃないと書けないんですか?
お前ら真面目にレス下さい。
NGNG
>>115
べつにプロである必要はこれっぽっちもないわけだが
べつにプロである必要はこれっぽっちもないわけだが
117学生
NGNGNGNG
NGNG
NGNG
121117
NGNG レスありがとうございます。
ここで言う「書ける」というのは、白紙からの状態から自分で書けるという意味ですよね?
既存のプログラムを改造するとか、書籍を見て書くとか、そういう意味ではないですよね?
ここで言う「書ける」というのは、白紙からの状態から自分で書けるという意味ですよね?
既存のプログラムを改造するとか、書籍を見て書くとか、そういう意味ではないですよね?
NGNG
123名無しさん@お腹いっぱい。
NGNG >>122
UNIX使いになるためには、やっといて損はないですか?
UNIX使いになるためには、やっといて損はないですか?
NGNG
NGNG
126T大理系
NGNG みんな理系?
凄いです
尊敬します
凄いです
尊敬します
NGNG
NGNG
俺的にはドライバをバリバリ書き捲くってるような人が
プログラマとして尊敬に値すると思ってる。
カーネルはどっちかって言うと設計するものって感じだしねぇ。
プログラマとして尊敬に値すると思ってる。
カーネルはどっちかって言うと設計するものって感じだしねぇ。
NGNG
>>128
実務家っぽい御意見…
実務家っぽい御意見…
NGNG
人に訊いてからじゃないと始められない奴は結局何もできない。
hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。
hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。
NGNG
>>125
ネットゲーのサーバとかのように、非同期に発生する大量の要求を
うまく捌かなければならないプログラムを書くのは、
カーネルを書くのと似たようなセンスが必要な気がする。
# RDBMSとかもそうだな。
こういうシステムをうまく設計できる奴は
非常に使えるね。
ネットゲーのサーバとかのように、非同期に発生する大量の要求を
うまく捌かなければならないプログラムを書くのは、
カーネルを書くのと似たようなセンスが必要な気がする。
# RDBMSとかもそうだな。
こういうシステムをうまく設計できる奴は
非常に使えるね。
NGNG
>>130 がいいこと言った。
133学生
NGNG みなさんどうもありがとう
ところでみなさん理系ですか?
もしくはコンピュータで飯を食っている人達ですか?
ところでみなさん理系ですか?
もしくはコンピュータで飯を食っている人達ですか?
NGNG
NGNG
NGNG
あーあ
カーネルいじって遊んでたら
もー朝だよ...
寝よーっと。
カーネルいじって遊んでたら
もー朝だよ...
寝よーっと。
NGNG
カーネル・ハッカースおじさんのAAキボンヌ
NGNG
hack より fuck だと最近痛感 おっかけさぼりすぎで make world 不能状態
13926=52=.....
NGNG 某誌のネタにしますた。
140名無しさん@お腹いっぱい。
NGNG 保守age
NGNG
見習いデーモンは死んだのか?
142名無しさん@お腹いっぱい。
NGNG ど
な
たか、いらっしゃい
ま
せ
ん
か
?
な
たか、いらっしゃい
ま
せ
ん
か
?
NGNG
誰かハックしてる人いますかー。
BSDのkernel読み始めるとしたら、手をつけるところは
どこがおすすめですかねぇ
BSDのkernel読み始めるとしたら、手をつけるところは
どこがおすすめですかねぇ
NGNG
>>143
過去ログ
過去ログ
NGNG
>>143
current の SMPng
current の SMPng
146名無しさん@お腹いっぱい。
NGNGNGNG
NGNG
>>146
FreeBSD以外の*BSDってperforce使っているんですか?
FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか?
できるんなら見てみたいと思っています。
FreeBSD以外の*BSDってperforce使っているんですか?
FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか?
できるんなら見てみたいと思っています。
149名無しさん@お腹いっぱい。
NGNG >>148 他の*BSDでは使ってないです。
でもSMPngっていったらFreeBSDでしょ。
リポジトリのブラウズならここでどうぞ。
http://people.freebsd.org/~peter/p4db/
手元に置きたければ
http://people.freebsd.org/~peter/p4cookbook.txt
に取り方が書いてある。
でもSMPngっていったらFreeBSDでしょ。
リポジトリのブラウズならここでどうぞ。
http://people.freebsd.org/~peter/p4db/
手元に置きたければ
http://people.freebsd.org/~peter/p4cookbook.txt
に取り方が書いてある。
150名無しさん@お腹いっぱい。
NGNG FreeBSDのブートについて質問させてください。
sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…
で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
最終的にはこのアドレスに/kernelをロードしてるようなんですが、
なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。
sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…
で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
最終的にはこのアドレスに/kernelをロードしてるようなんですが、
なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。
151@夜勤雀棟 ◆YaKINcTg
NGNG >>150
sys/boot/common/load_elf.c
> off = - (off & 0xff000000u); /* i386 relocates after locore */
offの最上位の1バイトをクリアするだけだと。
e.g. 0xc012b130 -> 0x0012b130
>/* i386 relocates after locore */
boot2内で/kernelを16MB以下のリニアアドレス(0x00100000-)へ展開しておき、
locore.sにおいて適切なアドレス(0xc0100000-)へmapするのだと思われます。
(locore.s内でページングをenableにしている)
#ざっと眺めただけなので保証はしませんが :-p
sys/boot/common/load_elf.c
> off = - (off & 0xff000000u); /* i386 relocates after locore */
offの最上位の1バイトをクリアするだけだと。
e.g. 0xc012b130 -> 0x0012b130
>/* i386 relocates after locore */
boot2内で/kernelを16MB以下のリニアアドレス(0x00100000-)へ展開しておき、
locore.sにおいて適切なアドレス(0xc0100000-)へmapするのだと思われます。
(locore.s内でページングをenableにしている)
#ざっと眺めただけなので保証はしませんが :-p
NGNG
NGNG
NGNG
アドレスの最後の方のgameがgmakeに見えて、見に行っちゃったよ。。
155名無しさん@お腹いっぱい。
NGNG >>151
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。
locore.sでページングを開始するまでに絶対アドレッシングが必要な
時は
#define R(foo) ((foo)-KERNBASE)
定義されるマクロを使ってアクセスしてます。
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。
locore.sでページングを開始するまでに絶対アドレッシングが必要な
時は
#define R(foo) ((foo)-KERNBASE)
定義されるマクロを使ってアクセスしてます。
156150
NGNG >>151, >>155
お二人のレスを見ると自分がはずしまくってるのかニアミスなのか
すげぇ悩みます。
load_elf.cに↓のようにコード追加して
--
228行目あたり
if (kernel) {
printf("before [%p]\n", (void *)off); ←これを追加
#ifdef __i386__
off = - (off & 0xff000000u); /* i386 relocates after locore */
printf("after [%p]\n", (void *)off); ←これを追加
--
# make
# make install
として祭起動すると
before [0xc012b130]
after [0x40000000]
となるんで、あぁそうかと思ってたんですけど、お二人は
最上位の1バイトをクリアしてるとおっしゃてますし。
でも/kernelを0x100000へマップするのはあってるんですよね?
お二人のレスを見ると自分がはずしまくってるのかニアミスなのか
すげぇ悩みます。
load_elf.cに↓のようにコード追加して
--
228行目あたり
if (kernel) {
printf("before [%p]\n", (void *)off); ←これを追加
#ifdef __i386__
off = - (off & 0xff000000u); /* i386 relocates after locore */
printf("after [%p]\n", (void *)off); ←これを追加
--
# make
# make install
として祭起動すると
before [0xc012b130]
after [0x40000000]
となるんで、あぁそうかと思ってたんですけど、お二人は
最上位の1バイトをクリアしてるとおっしゃてますし。
でも/kernelを0x100000へマップするのはあってるんですよね?
157@夜勤雀棟 ◆YaKINcTg
NGNG >>156
> off = - (off & 0xff000000u); /* i386 relocates after locore */
スマソ。コードを読み違えました。
off -= (off & 0xff000000u);
だったら最上位バイトのクリアですね。
> off = - (off & 0xff000000u); /* i386 relocates after locore */
スマソ。コードを読み違えました。
off -= (off & 0xff000000u);
だったら最上位バイトのクリアですね。
159名無しさん@お腹いっぱい。
NGNG せっかくだから俺は、ed0からtcpパケットがユーザランドまで行くまでを追って見るぜ
edintr-> ed_rint(dev/ed/if_ed.c)-> ether_input
->ether_demux(net/if_ethersubr.c)->(queueへ)
(queueからnetisrで)->ipintr->ip_input(netinet/ip_input.c)->
tcp_input->(順序を組み立てる為のqueueへ?)
ぐらいまで読めましたが、そっからどうなってるのかわかりますか?
edintr-> ed_rint(dev/ed/if_ed.c)-> ether_input
->ether_demux(net/if_ethersubr.c)->(queueへ)
(queueからnetisrで)->ipintr->ip_input(netinet/ip_input.c)->
tcp_input->(順序を組み立てる為のqueueへ?)
ぐらいまで読めましたが、そっからどうなってるのかわかりますか?
NGNG
上から来るぞ! 気をつけろ!
TCP は置いといてとりあえず UDP 追ってみては?
TCP は置いといてとりあえず UDP 追ってみては?
161名無しさん@お腹いっぱい。
NGNG おい、>>160,見習いデーモン,生きてるか?
udpの場合ip_inputの後
udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす
そうすると、sbwait()で待ってた
soreceive()(uipc_socket.c)->recvit()でcopyoutされ、
recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。
udpの場合ip_inputの後
udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす
そうすると、sbwait()で待ってた
soreceive()(uipc_socket.c)->recvit()でcopyoutされ、
recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。
162名無しさん@お腹いっぱい。
NGNG ここなかなか良さそう。ただしSimplified Chinese。
http://opensource.zjonline.com.cn/
http://opensource.zjonline.com.cn/
163150
NGNG おはようございます。
PICの解説で参考になるページ見つけたんで貼っておきます。
http://www.asahi-net.or.jp/~WR7S-NKMR/BeOS/Documents/IRQ.html
http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/default.htm
で、また質問させてください。
sys/boot/i386/btx/btx/btx.s を読んでるんですが、
220行目あたりの「Launch user task」からがサッパリわかりません。
TSSの働きとタスク切替えがよく理解できてないからだと思うんですが、
248行目のiret命令で何が起こるのかわかりません。
(コメントには「To user mode」って書いてあるんですが…)
iretでタスクを切替える場合はフラグレジスタにNTビットがセットされて
なければならない、とインテルのマニュアルにも「はじめて読む486」にも
書いてあるんですが、248行目に到達するまでにNTビットがセットされたような
様子もないんですが…
何かヒントだけでもお願いします。
PICの解説で参考になるページ見つけたんで貼っておきます。
http://www.asahi-net.or.jp/~WR7S-NKMR/BeOS/Documents/IRQ.html
http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/default.htm
で、また質問させてください。
sys/boot/i386/btx/btx/btx.s を読んでるんですが、
220行目あたりの「Launch user task」からがサッパリわかりません。
TSSの働きとタスク切替えがよく理解できてないからだと思うんですが、
248行目のiret命令で何が起こるのかわかりません。
(コメントには「To user mode」って書いてあるんですが…)
iretでタスクを切替える場合はフラグレジスタにNTビットがセットされて
なければならない、とインテルのマニュアルにも「はじめて読む486」にも
書いてあるんですが、248行目に到達するまでにNTビットがセットされたような
様子もないんですが…
何かヒントだけでもお願いします。
164名無しさん@お腹いっぱい。
NGNG 基本的にはbtxではタスク切替え使ってない筈。(そんな豪勢なことする
ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、
特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ
飛んでるだけのことと思う。
ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、
特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ
飛んでるだけのことと思う。
レスを投稿する
ニュース
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★2 [ごまカンパチ★]
- 【インバウンド】中国政府、日本行き航空便の減便指示、来年3月末まで「当面の措置」外交情勢によって見直しも★2 [1ゲットロボ★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…1万円以下の輸入品にも消費税を課す方針★2 [1ゲットロボ★]
- 【・(ェ)・】「くまちゃんがいた」散歩中の2歳園児が発見 クリ林に1頭のクマ…保育士「ワンちゃんだね…」と声かけて移動 [Ailuropoda melanoleuca★]
- 【芸能】人気ゲーム実況者が一定期間の活動休止を発表「彼女以外の女性複数人と関係を持った」 [湛然★]
- 【大阪】日本一高い観覧車が落雷で緊急停止 約20人乗客が閉じ込められ9時間にわたり救助活動 [七波羅探題★]
- 凄まじい大規模工作にも関わらず高市包囲網は確実に狭まってるの謎。安倍聖帝のような無敵感がまるでない [517791167]
- たぬかなはん、ちょっとクズすぎなんじゃね? [267550838]
- 【悲報】高市早苗、首相就任から一ヶ月経ってもいまだ"会食ゼロ"…仲間づくりや意見交換をないがしろする態度に批判さっとう [339712612]
- 【悲報】小野田紀美「私のドレスは日本の正礼装なんだが?ダサいと言ってるやつは日本文化を否定し国内ブランドを貶したいのか?」 [802034645]
- 【高市悲報】日経社説「高市の台湾発言は思慮不足。地域の緊張を高めて米国の不信を招く」 [663382246]
- 【悲報】日本円、トリコリラに対しても円安加速開始WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
