UNIX v6クイズ合戦
そしてここからヒント。SSWAPフラグが立っているときに、u.u_rsavからr5, r6を復帰させたらどうなるか考えてみましょう。 #v6_quiz
2012-07-30 19:26:47例えばexpand( )でxswap( )後にSSWAPフラグを立ててswtch( )で実行プロセスを切り換えます。このプロセスが再実行するときに、u.u_rsavからr5, r6を復帰させた場合、どこから処理が再開されるでしょう? #v6_quiz
2012-07-30 19:28:10例えばsleep( )内でswtch( )を呼んで実行プロセスを切り替えた後、そのプロセスが再実行するときにはswtch( )からreturnするところから処理が再開されます。expand( )でもu.u_rsavから復帰した場合同じようになるでしょうか? #v6_quiz
2012-07-30 19:30:16そしてもう一問の方。chdir(cd)はなぜシェルの組み込みコマンドなのでしょうか?というクイズを出していました。既に二人から回答をもらっていて、どちらも大正解です。 #v6_quiz
2012-07-30 19:31:13今求めているのは、シェルの仕組みとお二方の回答を組み合わせて説明してくれる人です。というのも、シェルの仕組みを知らないと、お二方の答えの意味が理解できないはずだからです。というわけで諸学者の方の回答をお待ちしています。 #v6_quiz
2012-07-30 19:32:04お二方の回答はtogetterを参照のこと http://t.co/24vzJDfU #v6_quiz
2012-07-30 19:32:28First, .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:14Second, what does the number XX indicate? Where does it come from? #v6_quiz
2012-09-26 19:18:23一問目。magic numberが0410のa.outファイルにおいて、.dataは.textの後の0 mod XXバイトから始まります。XXに当てはまる数字は何? #v6_quiz
2012-09-26 19:19:59二問目。その数字XXは何を表すでしょう?どこからXXという数字はきたのでしょう? #v6_quiz
2012-09-26 19:20:401問目は簡単。UPM5に乗ってる。2問目は結構難しいと思う。実は自分の中にある答えも推測でしかなく、まだ確証が持てていなかったり。
2012-09-26 19:24:24If 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【第一問回答】「8192」。マジック0410のa.outはプロセスとして展開される場合にtextセグメントをReadOnly属性として保護する必要がある。この保護はMMUによって行われ,PDP-11においては8192バイト単位で属性の指定が可能であるため。 @superhoge
2012-09-26 19:32:40【第一問回答】「8192」。マジック0410のa.outはプロセスとして展開される場合にtextセグメントをReadOnly属性として保護する必要がある。この保護はMMUによって行われ,PDP-11においては8192バイト単位で属性の指定が可能であるため。 #v6_quiz
2012-09-26 19:35:35. @magoroku15 大正解です。2問目はAPR, MMUの知識が必要になるので、少し難しいかと思いましたが、まごろくさんには簡単すぎましたかね。w
2012-09-26 19:37:00別解。8192刻みは仮想アドレス[15:13]に対応。この3ビットは8組のAPRのうち1つを選ぶビット。 #v6_quiz
2012-09-26 19:38:48極端な例として、.textが1バイト、.dataが1バイトのa.outファイルがあったとして、それをそのままメモリに読み込んだら、あれ、APRが分かれないぞ?と思ったのが今回のクイズの始まりでした。
2012-09-26 19:49:39色々見直していて、0410のa.outの.data 8K刻みはこれかー、と気づいたのが今日。v6で色々やっているけど、未だに新たな発見がある。
2012-09-26 19:50:41.textと.dataがそれぞれ1バイトの0410a.outファイルがあったとして、それをexecで実行したときにユーザAPRの値がどう設定されるか考えてみると楽しいかもよ>勉強中の方々
2012-09-26 19:53:44