オペレーティングシステム【第二版】 第1章

Filed in prog, , 読書感想文

 のっけからごっつい本です。なんかこれが二冊あれば人を殴り殺すのも可能なんじゃないかって感じがします。と言うか、囲碁blogのアンテナから来る人が多い事を承知の上でこの本を選ぶ辺り、長月は捻くれ過ぎなんだなぁと他人事のように思うのでした。
 今日から読み始める本は、アンドリュー.S.タネンバウム、アルバート.S.ウッドハル著、千輝順子訳、今泉貴史監修、オペレーティングシステム 設計と理論およびMINIXによる実装【第二版】です。
 ページ数1200ページ越え、四割がソースコードとは言え、量も内容も大物です。正直長月なんでこんな物買ったんでしょうか? おかげさまで自作ソースコードを収めたディレクトリにFDとかHDDから起動するためのブートストラップコードとか転がってますよ'`,、(´∀`)'`,、
 さて、肝心の内容ですが、今回は第一章についてです。
 第一章はオペレーティングシステム概論と言うタイトルの通り、OSとは何であるかや、OSの歴史等が書かれています。また、歴史に沿って、現代のモダンなOSならばまず搭載している機能や概念等も説明されています。
 OSと言う概念やOSの歴史等は基本的に読み物です。技術的な面で見れば余り役立ちません。しかし、現在から見ればチープなハードウェアとソフトウェアしかなかった時代を思うと何とはなしに感慨深い物も有ります。テープメディアや8インチFDや5インチFDの時代を知る (当時年齢一桁) 長月はこの辺りを読むと、セピア色どころか思い出すのさえ苦労する時代の思い出が蘇ります。当時は父のひざの上で訳も解らずBasicのコードを眺めていた物です。
 さらに進んでMINIXの歴史を通り過ぎると、コンピュータ技術の進化を辿るように機能や構造、概念の説明が続きます。
 まずは概念の説明がなされ、プロセスやファイルシステム、メモリ管理やコマンドインタプリタ、システムコール等が解説され、OSの一般的な構造へと続きます。
 構造の解説では、モノリシックカーネルやレイヤ構造を持ったシステム、仮想マシン、クライアント/サーバモデル、所謂マイクロカーネルまで基本的な構造を割合丁寧に、且つ急ぎ足で説明しています。
 ここまでの内容は技術的な観点で見ると余り役に立たないものが多いでしょう。第一章は全体を俯瞰した物なので抽象度が高いのです。しかし、考え方を知らなければ設計や実相の段階で無用な悩みを抱えることになるので、こういった概念も無視できない物では有ります。
 本エントリを見てこの本を買おうと言う人は余り居ないと思いますが、この本を読むのであれば、まず第一章をしっかり読む事をオススメします。

今月は読書強化月間って事で(゚∀゚)

Filed in 日記

 なんとなく思いつきで今月は読書強化月間にします。
 今までちゃんと読み返してなかった本を読み返そうかなと。とか言いつつ持ってる本で二回読んでないものはもう無いんである意味厳しいんですが (飽きとか)、毎日読んだ分をレビューしてみようかなと。
 感想を書くために色々考えるだろうからそれが理解の助けにならないかなーとか考えてます。まぁ最近の長月はあんまり暇人じゃないので読める量も知れたものなんですが(´・ω・`)
 てな訳でyyzさん、しばらくの間商売敵になります、よろしく(゚∀゚)
 #問題はこれが意図しないエイプリルフールになってしまうかもしれないって事だ……orz

やっぱり間違えてた(´・ω・`)

Filed in Perl, prog

 なんかバージョンを変えたら解決しました。
 最初に試してた奴のバージョンは 1.99_06、今回のが 0.88。
 どうも新しいのは Perl 5.8.* で追加された Encode モジュールのラッパみたいで、一応 Jcode 0.88 相当のコードは含まれてる物の内部構造が大幅に変わってる模様。古いコードを Jcode::_Classic に押し込めたおかげでおかしな事になった様です。
 つーことで、同じような罠に引っかかってここにきた人、Jcode 0.* に差し替えましょう(´・ω・`)

むむ? 何かを間違えましたか?

Filed in Perl, prog

 ちょっと入用になって Jcode.pm の OpenLab の Jcode.pm プロジェクトページから以前DLしておいた物をインスコ。といってもコピるだけ。インスコ用のスクリプトついてないし(´・ω・`)
 コピー終了して既に組んであるスクリプトを実行してみると。

Undefined subroutine &Jcode::_Classic::euc_utf8 called at <Perlのパス>/lib/Jcode/_Classic.pm line 255

 と出る。はて? インスコ失敗してたのけ? 該当個所を見てみる。よくわからん。load_module 関数が関係してそうだけど、load_module 関数を眺めてみても解らず。デバッグ表示ではパッケージはちゃんと require されてるっぽいしなぁ。
 といった所でふと気付く。ああ、パッケージ名の修飾がないんだ。自作ライブラリだとちゃんとパッケージ化せずに内部で使う変数だけ $Hoge::variable_ とかして関数は require だけで呼べるようにしてたせいで勘違いしてた。
 てことでパッケージ名を補ってやれば通るかな? パッケージ名は load_module 関数が返してるから、後は関数名を付け足してシンボリック参照辺りで何とかなるな。ってなんでそんなニッチな機能だけはすぐに思い出せるんだ俺……orz
 であ実行( ・∀・)σぽちっとな

Can't use string ( snip ) as a subroutine ref while "strict refs" in use at <Perlのパス>/lib/Jcode/_Classic.pm line 256

 ……orz
 もう訳わかんないんで誰か似たような事例と解決策教えてくだちぃ……orz


Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Oenology Post Formats
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Posts Calendar
Click to view/hide
2005年4月
« 3月   5月 »
 12
3456789
10111213141516
17181920212223
24252627282930

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
アーカイブ
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
最近の投稿
Click to view/hide