UNIX v6クイズ合戦

不意に始まった神々の戯れ(UNIX v6クイズ合戦)。 楽しかったので記録しておきます。 みなさんもUNIX v6クイズ合戦に参加して知識を深め合いましょう!
6
前へ 1 ・・ 3 4 次へ
takahiro(John Smith) @superhoge

そしてここからヒント。SSWAPフラグが立っているときに、u.u_rsavからr5, r6を復帰させたらどうなるか考えてみましょう。 #v6_quiz

2012-07-30 19:26:47
takahiro(John Smith) @superhoge

例えばexpand( )でxswap( )後にSSWAPフラグを立ててswtch( )で実行プロセスを切り換えます。このプロセスが再実行するときに、u.u_rsavからr5, r6を復帰させた場合、どこから処理が再開されるでしょう? #v6_quiz

2012-07-30 19:28:10
takahiro(John Smith) @superhoge

例えばsleep( )内でswtch( )を呼んで実行プロセスを切り替えた後、そのプロセスが再実行するときにはswtch( )からreturnするところから処理が再開されます。expand( )でもu.u_rsavから復帰した場合同じようになるでしょうか? #v6_quiz

2012-07-30 19:30:16
takahiro(John Smith) @superhoge

そしてもう一問の方。chdir(cd)はなぜシェルの組み込みコマンドなのでしょうか?というクイズを出していました。既に二人から回答をもらっていて、どちらも大正解です。 #v6_quiz

2012-07-30 19:31:13
takahiro(John Smith) @superhoge

今求めているのは、シェルの仕組みとお二方の回答を組み合わせて説明してくれる人です。というのも、シェルの仕組みを知らないと、お二方の答えの意味が理解できないはずだからです。というわけで諸学者の方の回答をお待ちしています。 #v6_quiz

2012-07-30 19:32:04
takahiro(John Smith) @superhoge

First, .data begins 0 mod XX bytes following .text in an a.out file the magic number of which is 0410. Answer what XX is. #v6_quiz

2012-09-26 19:17:14
takahiro(John Smith) @superhoge

Second, what does the number XX indicate? Where does it come from? #v6_quiz

2012-09-26 19:18:23
takahiro(John Smith) @superhoge

UNIX v6クイズです。今回は二問。 #v6_quiz

2012-09-26 19:18:38
takahiro(John Smith) @superhoge

一問目。magic numberが0410のa.outファイルにおいて、.dataは.textの後の0 mod XXバイトから始まります。XXに当てはまる数字は何? #v6_quiz

2012-09-26 19:19:59
takahiro(John Smith) @superhoge

二問目。その数字XXは何を表すでしょう?どこからXXという数字はきたのでしょう? #v6_quiz

2012-09-26 19:20:40
takahiro(John Smith) @superhoge

1問目は簡単。UPM5に乗ってる。2問目は結構難しいと思う。実は自分の中にある答えも推測でしかなく、まだ確証が持てていなかったり。

2012-09-26 19:24:24
takahiro(John Smith) @superhoge

If the magic number is 410, the data segment begins at the first 0 mod XX byte boundary following the text segment. from UPM5 #v6_quiz

2012-09-26 19:27:55
八丁堀マゴロク亭 @magoroku15

【第一問回答】「8192」。マジック0410のa.outはプロセスとして展開される場合にtextセグメントをReadOnly属性として保護する必要がある。この保護はMMUによって行われ,PDP-11においては8192バイト単位で属性の指定が可能であるため。 @superhoge

2012-09-26 19:32:40
八丁堀マゴロク亭 @magoroku15

次、2問目とおもったが、1問目で回答済みだったでござる #v6_quiz

2012-09-26 19:34:34
八丁堀マゴロク亭 @magoroku15

【第一問回答】「8192」。マジック0410のa.outはプロセスとして展開される場合にtextセグメントをReadOnly属性として保護する必要がある。この保護はMMUによって行われ,PDP-11においては8192バイト単位で属性の指定が可能であるため。 #v6_quiz

2012-09-26 19:35:35
takahiro(John Smith) @superhoge

. @magoroku15 大正解です。2問目はAPR, MMUの知識が必要になるので、少し難しいかと思いましたが、まごろくさんには簡単すぎましたかね。w

2012-09-26 19:37:00
takahiro(John Smith) @superhoge

別解。8192刻みは仮想アドレス[15:13]に対応。この3ビットは8組のAPRのうち1つを選ぶビット。 #v6_quiz

2012-09-26 19:38:48
八丁堀マゴロク亭 @magoroku15

はい、仮想記憶は5年やりましたのでw @superhoge

2012-09-26 19:42:56
takahiro(John Smith) @superhoge

極端な例として、.textが1バイト、.dataが1バイトのa.outファイルがあったとして、それをそのままメモリに読み込んだら、あれ、APRが分かれないぞ?と思ったのが今回のクイズの始まりでした。

2012-09-26 19:49:39
takahiro(John Smith) @superhoge

色々見直していて、0410のa.outの.data 8K刻みはこれかー、と気づいたのが今日。v6で色々やっているけど、未だに新たな発見がある。

2012-09-26 19:50:41
takahiro(John Smith) @superhoge

.textと.dataがそれぞれ1バイトの0410a.outファイルがあったとして、それをexecで実行したときにユーザAPRの値がどう設定されるか考えてみると楽しいかもよ>勉強中の方々

2012-09-26 19:53:44
前へ 1 ・・ 3 4 次へ