2024-09-02

UNIX V6のブートストラップ

PDP-11で動作したUNIX v6の内部構造に関する資料としては、『Lions' Commentary on UNIX』が有名です。これを用いてカーネルについて学んでみようと思い、いろいろと情報を集めているところです。

 

カーネルと言うものは、UNIX V6に限らず、WindowsでもLinuxでも、マシンの電源が入ってから、ブートストラップ処理を経て、カーネルとしての起動が完了します。カーネル自体はマシンの機種依存性が少なくなるように作られていますが、ブートストラップ処理はマシンに強く依存した処理になっています。

 

上述したLions本では、ブートストラップ処理について次のように書かれています。

これで、プロセッサのROMに永久に記憶されているブートストラッププログラムがスタートする。ブートストラップローダープログラムは(システムディスクのブロック#0から)大きなローダープログラムをロードし、この大きなローダープログラムが/unixと呼ばれるファイルを探し、メモリの低位部分にロードする。

 

これが間違いとは思いませんし、現状のWindowsやLinuxだって同様のブートストラップ処理をおこなっているはずですが、現状のパソコンのブートストラップ処理と同じイメージを持つと、PDP-11当時の状況を見誤ってしまう気がします。


調べてみたら、Web上で「PDP-11のブートストラップ」という記事を見つけました。Lions本ではあっさりと書かれている処理が詳細に書かれているので、細部がよくわかります。


しかもLions本で「プロセッサのROMに永久に記憶」されていると書かれている「ROM」というものが、現状のパソコンのような半導体メモリをイメージしてしまうと、当時の状況を反映していないと思われます。これもWeb上の記事「Diode Matrix」を見ると、具体的にわかります。

 

またYouTubeでも「PiDP-11 - Manually toggling the bootloader for RT-11」や「Booting v6 Unix on a PDP-11/34」などを視れば、PDP-11で起動する手順がどのようなものだったのかが、よくわかります。

2024-08-26

英文法における「完了形」

英語には日本語にはない概念があり、日本人が英語を学ぶときに苦労するところです。よく言われるのが「冠詞」です。英語における「a(an)」と「the」の使い分けは、日本語に相当するものがないので、英語学習で苦労します。また「単数と複数」の扱いも同様です。日本語に複数形が存在しない訳ではありませんが、英語のような厳密性はないので、やはり英語学習で苦労します。

 

「完了形」も英語学習で苦労するポイントです。日本語には「完了形」という概念がないので、テキストの表面上の見え方は、両者とも日本語では過去形になってしまいます。英文を和訳して日本語として理解する場合には、あまり問題にはならないかもしれません。しかし日本語で発想して、言いたいことを英語で表現しようとすると、「過去形」で表現したらよいのか、「現在完了形」で表現したらよいのか、難しいところです。

 

なにか参考となる情報がないかと調べてみたら「とても重要!押さえておきたい過去形と現在完了形の使い分け方」という記事を見つけました。そこに、次のようなアドバイスが書かれています。

それでは、両者をどのように使い分けていけばよいのかと言いますと、副詞などと組み合わせて覚えてしまうことが望ましいでしょう。

 

日本人の発想では、過去形と完了形を区別しないので、単純に英訳してしまうと、なかなか完了形の出番がありません。上述した記事のアドバイスのように、「副詞などと組み合わせて覚え」るとか、例文を暗記して英借文するなどの工夫をするのが、良いのではないかという気がします。

中頃

『平家物語』を暗唱しようと、昨年夏に思い立ちました。まずは有名な「祇園精舎」を覚え、次に「殿上闇討」を覚えました。その次の「鱸」を覚えようとしているところですが、この調子では最後に辿りつくのが何時のことになるのか、もしかすると何百年後になるのか、遠い将来になりそうです。


暗記するつもりで読んでいると、「中頃」という表現が度々現れます。例えば、次のような感じです。

  • 中頃は都のすまゐもうとうとしく
  • 中頃大宰権帥季仲卿といふ人ありけり

 

なんとなく意味は分かるのですが、手元にある辞書『ベネッセ古語辞典』で確認してみました。

なか-ごろ【中頃】〔名〕昔と今との中間の時代。そう遠くない昔。


ふと思うと、今日の我々は「近頃」という表現を使います。これに対して「中頃」は、近くはないが、遠くもない、ちょうど中間という意味なのだと思います。ここで気になるのが、近頃でもなく、中頃でもない、遠くのことを「遠頃」と言うかというと、そういう表現は聞いたことがありません。


こそあど言葉の一種ですが、「こなた」、「そなた」、「あなた」、「どなた」という表現は、古語と現代言葉では使い方が変化しています。これから類推すると、「近頃」、「中頃」とくれば「遠頃」だってありそうな気がするのですが、あまり聞いたことがありません。時代を経て消滅してしまったのか、もともと存在しなかったのかは、わかりません。

2024-08-17

Drive On Metz

ずいぶん前にホビージャパンから出版された『ウォーゲームハンドブック』を購入しました。当時はAHのSLシリーズに関心があったので、雑誌「TACTICS」も買ったりしていました。その後興味が薄れはしたものの、いつかは再開しようと思っていたので、捨てずに残しておきました。


久しぶりに手に取り、読み直してみたところ、ゲームデザインの例として「メッツ進撃作戦」というミニゲームが付いているのに気付きました。気軽にゲームを楽しむには手頃です。しかし何分にも書籍の一部ですから、マップをコピーするにしても綺麗な平面にするのは難しいかもしれません。


何か情報は無いかとWebを検索してみたところ、次のような記事を見つけました。

 

なんと付録のミニゲーム「メッツ進撃作戦」(原題:Drive On Metz)がPDFとしてダウンロードできるようです。また『ウォーゲームハンドブック』の改訂版も、英語ですが、PDFで読めるようです。


「Drive on Metz」のPDFを印刷してプレイしても良いですし、モジュール「Module:The Drive on Metz, 1944」もあるようですから、VASSALでプレイしても良さそうです。

2024-08-16

BISHOPの全ての呪文レベルが9にたどりついた

今年2月頃から、PC98エミュレータを利用してWizardry #1を楽しんできました。6月末頃にはワードナを倒したので、Wizardry #1のミッションは済ませています。途中でPRIESTをBISHOPにクラス変更しました。BISHOPは、魔術師と僧侶の呪文を覚えられるのは良いのですが、レベルが上がるのも遅いので、全ての呪文レベルが9になるのは、かなり時間がかかりました。このレベルに達するまで、何度もB10Fを探検し、何度もワードナを倒しました。パーティを構成するメンバのレベルは50近くになり、H.P.も400くらいになりました。ここまで成長すると、「ほぼ」無敵です。B10Fでワードナの部屋に押し入ったとしても、全く怖くありません。一撃でワードナを倒せてしまいます。

 

しばらくWizardry #1を探検してきましたが、このあたりで一区切りをつけようと思います。ちょっとお休みをして、次はWizardry #2に進もうと思います。

LibreOfficeで日本語変換をおこなうために追加処置は必要なかった

dynabook SS SX/15AにNetBSD/i386 10.0を入れたらLibreOfficeが起動しなくなりました。調べてみても、簡単には解決に至らなそうだったので、NetBSD/i386 9.4に戻すことにしました。このバージョンならLibreOfficeが起動するのを確認しました。

 

2016年末頃、このマシンにNetBSD/i386環境を構築していた時には、LibreOfficeで日本語変換をおこなうには追加処置が必要でした。その手順は「NetBSD/i386でLinuxバイナリ版LibreOfficeの日本語変換に成功 」に書いたとおりです。今回も同様の手順をおこなう必要があるのかと思っていました。

 

この追加処置を行う前に、試しにLibreOfficeで日本語変換をおこなってみたら、なんと普通に日本語変換が可能でした。いつのまにか改善されていたようです。

2024-08-15

NetBSD/i386 9.4にダウングレードしたら、LibreOfficeが動作した

まさかLibreOfficeが動かなくなるとは思わなかったので、dynabook SS SX/15AのNetBSD/i386を9.3から10.0にアップグレードしました。VirtualBOX環境を利用して調べてみたところ、理由は不明ですが、NetBSD/i386 10.0ではLibreOfficeが動かないようです。このままにしておいて、LibreOfficeが動作するまで待つという方法もありますが、何時になるかわかりません。それまで待っていられないので、NetBSD/i386 9.4にダウングレードすることにしました。

 

いままでバージョンアップしたことは何度もありますが、バージョンを下げた経験はありません。慎重に作業しようと思います。

 

バージョンアップの歳は、まず最初にカーネルだけを入れ替えてみて、起動できるか確認していました。その後、問題なさそうなら、ユーザランドをTGZファイルで入れ換えていました。今回はダウングレードなので、カーネルを先に入れ換えてしまうと、ユーザランドが新しいカーネルの機能を利用しようとしている場合に、致命的な問題を引き起こしてしまう可能性があります。そこで最初に9.4用TGZでユーザランドを入れ替えます。この時点ではカーネルは10.0になっています。ここでリブートしてみて、問題なければ、カーネルも9.4に入れ換えます。特に問題がおきることもなく、カーネルもユーザランドも9.4になってくれたようです。そしてetcupdateでファイルを置き換えます。

 

これでNetBSD/i386 9.4環境になったので、pkginでLibreOfficeとSUSEをインストールしました。試しにLibreOfficeを起動してみたところ、スプラッシュ画面が出たあとで、問題なく起動しました。そうなると、やはりNetBSD/i386 10.0には、問題の所在は不明ですが、何か問題が潜んでいるのではないかと思います。 


NetBSD/i386上でLibreOfficeが動くようになりましたが、過去の経験では、日本語を扱うには多少追加作業が必要だったはずです。どのような作業だったのか、当時の記録を確認して、設定を済ませたいと思います。