Uncategorized」カテゴリーアーカイブ

Microsoft Cinemania

かなり以前、多分平成2年頃か、その前後、
私は、Microsoft Cinemaniaを購入した記憶があります。

youtubeで検索

それは、CD-ROMに収められた、過去の映画のダイジェスト的データベースでした。そして、そのパッケージには、おまけとして、他のコンテンツの試供版?的なものも入っていまして、クラッシック音楽についてのデータベースの紹介も入っていました。キネマニア?(シネマニア?)のナレーションだったか、クラッシック音楽データベースの方のナレーションだったか、記憶が定かでは無いのですが、素晴らしいナレーションでした。

私は、ただただ、そのナレーションの素晴らしさに感動しました。

で、感動するほどのナレーションとは、なにか?について、説明が出来ません。

勢いのある、元気で力強い、しゃべり口調で、解説が述べられてました。

仮に今、現物のメディアを持っていたとしても、そうそう、おいそれとここに掲載できませんが、雑多な荷物を詰め込んだダンボールのどれかに収まっているのか、既に誰かに譲ったかで、現在、手元にありません。

で、勢いは無いですが、味のあるナレーションの、西部開拓史物語(How the West Was Won)のエンディングのナレーションへのリンクを貼らせていただこうと思います。リンク先動画の1分19秒目あたりからナレーションがあります。

ゾンビとか

何十年も前ですが、若い頃の話です。

先輩方が、カフェで雑談しおられて、「このこ」「あのこ」「そのこ」と言う単語を頻繁に使って、会話しておられて、子供さんのことでも話されているのかと思いましたが、内容が変です。よく聞きますと、プログラムの動作モード(挙動)について、事前に考察して、設計書の草案を考えていると言う状況だった様です。

内容は違いますが、下記の様な会話でした。

あの子と、その子と、共有記憶領域で連携を持っていて、この子が、状況を確認するんだけど、無応答でタイムアウトになったら、どうしたらいいかな?。

放置するとゾンビになるし、困るよね、 killしておくべきかな?。30秒毎にチェックして、一斉にkillする様なプロセス作ろうか?。

ふーんそのプロセスは常時起動時にしておくのかな?、落ちたらどうなるんだろう、いっそ、デーモンとして動かした方がいいのじゃないのかな?。

デーモン化すると言う事だと、サービス周りをいじるの?。それより時刻起動で周期的に動かすのはどうなんだろう。

いやいや、それだと、複数起動する条件もあるかもしれないし、へたしたら、さらにそれが、ゾンビ化しない?

じゃぁ、この件については、一度プロトタイプを作って、どう言う挙動をさせるのが良いか、確認する様にしてみよう。

とか

そんなの感じの会話でした。

よく聞けば、UNIX系ソフトエンジニアがプログラムの連携動作について、相談している会話だけど、知らない人が聞いたら、誤解するんじゃないかと思いました。

プログラムがオペレーティングシステム上で動く時の単位をプロセスがと言ったりするのですが、プロセスの起動時と終了について、プロセスの生成とか、プロセスの終了と言わずに、生まれるとか、死ぬとか、言っていた時期がありました。プロセスの終了が不具合で正常に終了しないことがありまして、動いていないのに残存することがあるんですが、この状態をゾンビ化したとか、そういう言い方をします。生きているプロセスや、ゾンビ化したプロセスを、強制終了させるコマンドにkillコマンドというのがあるのですが、聞こえが、よくないですよね、killって日本語だと、殺すと言う意味ですから、ゾンビをkillする。とかゾンビを殺すとか悪い言葉ですよね。

当時のプログラマは、普通の人々ですが、会話がですね、傍で聞いていて、まずいです。人格を疑いたくなる様な話をして居る様な聞こえ方をしています。

今の時代にそういう言い方をしていたら、ソフト業界のプロフェッショナルな人達に、ばかにされるのかもしれないのですが…。

当時、私は、そういう環境になじんで行きました。

またある日、親戚が大勢来ている時に、会社から電話がかかって来ました。大変にお怒りで、「長期休暇とるんだったら、お前のプロセス全部落としてかえれよ!。30個以上もプロセスが起動しているじゃないか!。みたら、全部エディターで、ソースコードをいじっているけど、出社するまで、このまま、置いておくつもりか?」と言う内容でした。

ソース閲覧していて、ctrl+zで、中断かけて、他のコードを閲覧して、さらにそれをctrl+zで中断してとかしていて、最後にキチンと全部終わらせずに、端末電源オフしていたとか、不用意に、ログイン状態のセッションが切れてゾンビ化していたとか、そう言う事でした。

そこで、電話口で私は、「あー、申し訳ございませんでした、始末できていませんでした。どうぞ、システム管理者権限で、その子たち全部、殺しておいてください。」と申しましたら、「新入り、お前のせいで、いらない仕事おが増えたよ、ハイ終わった。全部殺したぞー、出社しても、閲覧中のコードをみれないから、また探しなさいよ!。きついことを言ったけど、休暇中は会社のことを忘れて、せいぜい骨休めしてこいよー」と最後は優しいお言葉をいただきました。

で、電話を置いて、振り向きましたら、集まっている親戚の方々の表情がなぜか硬い。

一応、誤解のない様に、事情を説明しましたが、お年寄りにご理解をいただけたのかが、不明でした。

他には、満員電車で、専門用語的に、得意そうに、お話をされているのを目撃することがありました。電話の向こうの方の話される内容をきかずに、ただ目の前の方が電話で話される内容をきいていると、とても危ないお仕事の人か、または人の道を踏み外した人に見えてしまって、一般の方々には、そう見えてもしょうがない状況でした。もしも、このかたの彼女のご両親が、探偵など雇って、素行調査でもされている最中なら、縁談はまとまらないのじゃないかと思える様な、そういうシーンでした。

ということで、ある程度、キチンとした言葉で意思疎通できる様にしてある方が、人生は穏やかに過ごせるだろと思います。

以上

 

時計について

私の使っている、コンピュータは、閏秒にびくともしない。

だって、電気代ケチって、ほぼ毎日電源オフ、通電するのは使う時だけだから。

唯一、このブログを動かしているノートパソコン (MINI-ITX)が、動いて居るけど、多分問題は無い。ハズ。

時間情報を配っていないし。

NTPクライアントとして、時間情報をよそからもらうけど、多分大丈夫。

(以下の文章で、誤認していましたので、訂正致します。閏秒挿入は、8:59:60でした。午前0時だと勘違いしていました。)

なお、関連情報へは、こちらのNICTのページからアクセスできます。

 

NTPサーバーから、時間情報を貰うタイミングを、午前0時にしていないので、きわどいその瞬間に遭遇しない。と言うのと、日々NTPサーバーから時間情報を貰った時に、コンピュータの中でカウントして居る時間情報との誤差があった時の対応動作は、日々発生していて、珍しい事でも無いし、NTPクライアントの動作モードと言うか、設定は「ジワーッと、長時間かけて調整する。ズレがデカすぎたら、調整は諦める。」で動かしているつもりなので、私の場合、特段閏秒で、困る事は起きないはずなんです。

<余談>

パソコンには、内部にハードウェアとして、時計チップが搭載されては居ますけど、そんなには、高精度じゃ無いはず。

高精度である必要が無いらしいです。

ほとんど見ないで動いていて、時計チップにアクセスするのって、起動時と時計チップに制御かけるコマンドを発行した時ぐらいだと思う。終了時に書き換えているのかは、勉強不足で、知りません。

CPUは、超高速動作していますが、IOデバイスは、CPUの超高速動作に比べて爆遅くて、時計チップに対する読み書きは「隣町の駅まで時計見に行って来ます。」的な悠長な話らしいです。

OSが、プロセスから時間情報を要求される回数は膨大で、時計チップ読みに行くなんて、悠長な事はやってられなくて、メモリー上に、年月日、時分秒、ミリ秒、マイクロ秒、のカウンターを設けて、プログラムでカウントアップしながら、あまたのプロセスからの時間情報読み出し要求に応える方がレスポンスが良いらしいです。

コンピュータ起動時に、ハードウェアの時計チップから、時間情報を読み出して、OS起動完了後、NTPクライアントが起動して、最初に貰ってきた時間情報と、時計チップとどっちの時間を採用するかですが、初回は無条件にNTP側の情報を信頼する事で良さそうに思いますが、利用環境毎にケースバイケースかも知れませんから、重要な設備やコンピュータは、キチンとした知識をお持ちの方々が検討されれば良いのだとおもいます。

さて、メモリー上で、カウントアップしながら管理している時間情報と、NTPサーバーから貰った、時間情報に乖離があったら、自分の時計がズレているのか、NTPサーバーが、ズレているのか、判りませんから、時間情報の情報源のNTPサーバーは、二台以上指定して、時間情報を見比べて、自分の時計がズレているのか、判断する様な設定でコンピュータを運用するのが良いのでしょう。

でも、サーバー的ポジションで、使わないなら、トラヒックを増やさない様にNTPサーバー1台指定で、十分じゃないかと思います。

最後は、乖離があったらどうするかですが、

1.一発で合わす。(時刻起動プログラムに影響するリスク?)

2.ジワーッと合わす(正確な現在時刻にたどり着くまでに時間がかかる)

3.無視する。

など、どう言う動作モードにするか、自己責任で考える事になるのでしょう。

オーディオ

小学生の頃、友人のお家に遊びにゆきますと「セパレートステレオ」なるものが置かれていました。

私の家にも、レコードプレーヤーは有りましたが、ネットに写真が見当たりません。どちらかといえば、軽いタイプで、こちらのページに掲載されている写真のようなタイプだったと思います。

そんなにレコードもなくて、

「琵琶湖周航の歌」「池袋の夜」「1枚のレコードに複数曲入った童謡」

などが、ありました。

ラジオはおじいさんが真空管式ラジオを1台持っていました(おおざっぱにこんな雰囲気のラジオでした)、家にあったTVも真空管式でしたが、ネット上に写真が見当たらなくて、このかたのページに掲載されているTVみたいに足の生えているテレビでした。

小学校から中学になる頃、私が手にしたトランジスタラジオはSHARPのMINI BEARでした。

img_1297 img_1298

※[AM]のテプラは自分で貼りました。

高校の頃、我が家にラジカセが来ました。母親がブラザーミシンの何かの会員で、ミシンじゃなくてラジカセを買ったのですが、形からして、多分SANYOおしゃれなテレコです。

就職してから、ステレオを半年にひとつぐらいのペースで、買い集めたました。

レコードプレーヤー

FM/AMチューナー

プリ・メインアンプ

カセットデッキ

CDプレーヤー

スピーカー

より良い音で聞くには、コンセントのアース側を合わせると良い、というのをオーディオ関係の雑誌で読んでやっていました。

レコードプレーヤーと、チューナーの2つは今も動きます。スピーカーはエッジと言われる部分が劣化して外れてしまっています。湿度の多い環境に長年おいたのが良くなかったようです。CDプレーヤーとカセットデッキも湿気と埃で動作不調です。たぶんゴム類がダメになったと思われます。最後にプリメインアンプは、夏場の引っ越しの時に、私の汗が内部に入ってしまい、引越し後通電確認をしましたら、一瞬火を吹いて、その後通電できなくなりました。

7年ほど前、自作で、D級アンプのキットを作って鳴らしていました。

当時、「Tripath TA2020」と言うデジタルアンプ用ICがすごい性能らしいと言う話題をネットで読んでいまして、じゃぁ私も、と言う事で大阪日本橋かどこかでキットを買ってきまして作りました。電源ですが、電源は、可変電圧安定化電源を、以前から所有していましたので、それを使いました。

ステレオというより実験中基板の野ざらしみたいな雰囲気でしばらく鳴らしていました。

この頃私の音源は、ケンウッドのポータブルCDでCDを聞くとか、シャープ MD-MT77-AでMDに録音した音楽や自分で録音してきた、音の風景を聞くとかでした。

そんなにCDを持っていないのですが、「涙そうそう」とか「Aswad – Shine」とか「madonna evita」とか「NHK特集ルーブル美術館のテーマ曲」等を聞いていたと思います。

そして、ソーラーパネルで発電して、自動車用鉛バッテリーに充電し始めた頃なんですが、ステレオを聞くのに電源が変わると音が変わる、とくに自動車のバッテリーでステレオを駆動すると音が良い。というネットの話題に触発されまして、やってみた処。なかなか良い感じでした。(耳が悪いので気のせいかもしれませんけど)。しかし、アパートで大音量で鳴らすなんて、できませんから、人の居ない山間部のグランドで、こっそりと、または、山間部の公園の東屋でこっそりと、大音量試験(ぜんぜんこっそりとにならない)を敢行すべく、計画をねりましたが、自動車用バッテリを持ち運ぶのは無理と諦めて、12Vの電動ドライバー用バッテリー(ニカド:ニッケルカドミウム電池)で試してみました。聞いてみた感じは、なかなかいいかんじでした。

機材は、ポータブルCDと、自作デジタルアンプと、自作スピーカー(15cmフルレンジで組んだバスレフ)と、電動ドライバ用ニカド電池(12V)でした。

市販ステレオは、AC100V電源で動く製品ですから、バッテリーで駆動するには、電源回路を分解改造する必要が有り、出来ません。またバッテリーをAC100にインバーターで昇圧したとしても、濁ったAC100にしていては意味がありません。と言う事で、電池で駆動できる音源とアンプと言う組み合わせになりました。

デジタルアンプの出力はMAX20Wで、ステレオだから20W+20Wだったと思うんです。小さいでしょ。小さいアンプなのに、大音量にした時に「ふらつかない」「いきぎれしない」「われない」「音が澄んでいて濁らない」と、そんな印象を受けました。どう表現するといいのでしょう、騒音になることがなくて、くっきりしている。スッキリしていて、明瞭である。

変な言い方ですけど、騒音にならないんです。

でも、スピーカーから離れていくと、だんだんと、騒音に聞こえてきました。

15cmのスピーカーでは、コンサート会場みたいには出来ないとわかりました。

電池が十分な電力を供給できているのと、デジタルアンプICが良いのとで、いい音になっていたんだろうなと思います。そう言うふうなことをネットで書いている人がおられましたので、そうなんだろうと思います。

自作独立型ソーラーに、真面目に熱中すると、蓄電についてあれこれ考える事になりますので、電池の種類と特性について思いを馳せないでは居られなくなると思います。その心は、小さいパネルで一生懸命発電させても、電気がたまらないのはなぜ?と言う疑問と壁にぶつかるからなんですが、鉛蓄電池は安いし大容量何だけど、瞬間なら大電流を取り出せるけど、コンスタントに大電流を取り出そうとすると壊れるかもしれない。とか充電についても、チュルチュルといくらでも電気を流しこんで充電できるのかといえば、そうでもなくて、電極の電圧が徐々に上昇してきて、電解液の比重で見る充電完了率に至っていないにも関わらず、直ぐに電極電圧は印加限界電圧に到達してしまい、更に電圧が上がれば電極が劣化するので、一旦充電を止めて、電極電圧が規定値まで下がるのをみて、また電圧を印加するような、送り込む充電電流の制御をしてあげないと、いけなくなるとか、放電について、電池の容量を表す105Ahとかは、5時間率なのか20時間率なのかとか、結構面倒で、深放電する使い方にはディープサイクルタイプが必須とか、個体電池でもニカド、ニッケル水素リチウムイオンリチウムイオンポリマーなど、内部に貯め込むエネルギー密度や構造に応じて、特性が異なるなど、その他、大電力蓄電設備にはどう言うものがあるんだろうか?とかそう言う方向性の趣味。

あと、A級アンプ、B級アンプ、AB級アンプ、C級アンプ、D級アンプと呼び名があるらしいのですが、A,B,ABがアナログアンプで、Dはデジタルアンプで別物、Cは高周波で使うものらしく、オーディオとは関係がなさそう。

D級アンプは、デジタルだから、サンプリングして、シャノンの定理による標本化と量子化をして、掛け算など演算処理でもしているのかと、当初思ったのですが、全然違いました。

どっちかというと調光器トライアックとかのようなPWM制御っぽい事をしているみたいです。

A-D変換、D-A変換における理屈について、いろいろ難しい計算式が出てきますが、さっぱりわかりません。でもなんとなく「シャノンの標本化定理に基づく標本化と量子化を行い、デジタル符号に治すこと」と、「アンプでの増幅などで行われるデジタル処理(PWM風?)」の違いは、わかります。前者は符号化しそれを復号化しますが、後者は符号化も復号化もせず、時間軸制御に置き換えているのですよね。多分。

多分、「デジタルの符号化を伴うデジタル処理における出力のD-A変換は電圧が変化」し、「PWM制御におけるデジタル処理は電圧一定で、時間軸を制御してエネルギー量を変えている」のだろうと思います。

シャープの1ビットオーディオについては、シャノンの標本化定理を習っただけだと多分理解できないのですよね。

Tripath TA2020って開発元メーカーが倒産したあとも、いまだに出回っているとか、後継チップが出ているとか、面白いICのようです。

パソコン類のドキュメントの思い出

ずいぶんと昔、インターネットが世間に出回るより以前、電子掲示板(BBS : Bulletin Board System)で、オークションに出ていたパソコンを落札しては買いに走っていました。

ある日、IBM PS/2 model60 のセットを落札しました。当時5万円くらいは支払ったかも?。一応フルセットマニュアル付きで、トークンリングのLANボードも付けて、そのお値段だったように思います。トークンリングのLANを持ち合わせていない私には、トークンリングのLANボードは無用の長物で、後で希望者を別途募って、お譲りしたと思います。捨ててはいないと思います。

そのフルセットに付属していたマニュアルがずいぶんな充実ぶりでして、オール英語しかも、かなりのボリューム。と言うものでした。

このマニュアルをペラペラとめくってみて感じたことは、日本とアメリカの違いと言うか、国土の広さの違いを感じました。

日本みたいにサービスマンが駆けつけられる場所に販売されるとは限らない遠方にまで販売した後の事を考えてか、故障診断DISK(DIAGNOSTIC DISK)とか、故障パーツの切り分け手法とか、故障パーツの発注に関する型番リストとか、遠隔からのOS状態修復サービスとか、かなり具体的な図入り解説でかかれていました。

このPS/2は、Intel 80386DXというCPUを搭載し、さらに、ありがたいことに80387DXと言う数値演算コプロセッサまで搭載されていて、新品で買えば100万円は越えそうなセットだったと思います。でも、時代は既に80486とか80486DX4の時代になっていまして、落札したPS/2のケースを開くと、カステイラのように変質したスポンジがボロボロとこぼれて落ちてくる有様でして、どんな環境で使われていたのか?と、思いました。普通コンピュータは大事にクリーンルームとかそれなりの環境で使うと思うのですが、タバコのヤニが内部にまで及んでいて、結構過酷な環境で稼働していたと思われました。

ケースを開いてまず,目に飛び込んでくるのは、かなり大きなDISK。※こちらの方のページに該当の部分の写真がありました。

落札購入、そして、自宅に到着した後、接続をしまして、通電確認。ガラガラ音を立てながらOSが起動する様子をまったりと眺めていました。何の変哲もないWindows 3.1が起動しまして、スクリーンセーバーの桜吹雪を眺めながら、買ったのはいいけど、この後、どうしよう。と。

以前のオーナーさんがインストールしていたアプリケーション類は一切なくて、クリーンインストールされたWindows3.1のみ。そうだ,思い出した。トークンリングのLANボードは、イーサーネットのLANボードと等価交換してもらったような気がします。でも、でもPS/2は消費電力が結構大きいので、その後、セット全部まるごと誰かに譲ったと思います。

次に落札したのは、SOTECのWINBIRDシリーズでした。消費電力の少ないノートパソコンの中古です。何せ古い初期タイプの機種でして、搭載メモリーが4Mバイトだったのを8Mバイトに増設したと思います。CPUはIntel 80486sxだったと思います。別々のオーナーさんから1台ずつ、合計2台買ったと思います。白黒のノートは、ジャンクを欲しいという人に譲りまして、カラーの1台を残しました。つい数年前まで、でも7年ぐらい前になりますけど、それまでは動かしていました。Linuxを入れて、あれこれLAN実験に使っていました。

また、大阪のデジタルドラゴンと言う中古パソコンショップで、NECのMATEシリーズのノートPCを買いまして、128Mバイトメモリーを256Mバイトメモリーに増設してもらって、これは、Linuxいれて、メール受信専用に使っていました。

時期は忘れたのですが、宝塚の高級団地にお住まいのオーナーさんが自作したというDOS/Vパソコンの中古を買い受けに行ったこともありました。これのCPUは80486DX で、そこそこ高性能でした。XFree86の動くLINUXで普通にUNIX系OSの勉強に使ったと思います。これは,友人に(無理やり?)譲りました。

JR堺東駅にSOFMAPが入っていた時代は、通勤帰りにちょくちょく立ち寄っていまして、中古PCをかなりの数買いました。ちょくちょく立ち寄るメリットとして、入荷直後の中古PCとの出会いがあります。同一機種が20台とか入荷する場合、時間が経過するほどに良い品物は減って行きますから、入荷したその日に、物色できると言うのがメリットでした。

時間軸的には、かなり戻るのですが、神戸の三宮に、PCパーツ輸入販売のマーカンテイルと言うショップがありまして、わざわざ出かけて行って、NE200互換のLANカードを買いに行った記憶があります。1万円位だったと思います。そのカードの説明書には、MACアドレスを書いてあるROMの説明と、TFTPをするときのROMに関する説明があったと思います。made in china の製品だったと思うのですが、定かではありません。

さらに時間軸上で過去に戻ると、DOS/Vパーツ購入ツアーと言うのもあったと思います。パソコン雑誌で読んだだけですけど、九龍城にパーツを買いにいくと、パーツ代が安く済むので、旅行代金が浮くとか。そういう時代だったと思います。あ、こちらの方のページで紹介されていますね。

この時代と言うと、私はBBSで、あちこちの掲示板を読む巡回をやっていました。インターネットはまだ、一般には、出ていない時代で、自宅でLANをやるのに神戸三宮のマーカンタイルにLANボードを買いに行きました。

自宅LANで、複数PCを継いで遊んでいて、Windows 95の入ったパソコンからアナログ電話回線で、ダイヤルアップして、nifty等のBBSにログインしている時代でした。そして、niftyがダイヤルアップPPPに移行するということになり、ダイヤルアップPPPでインターネット閲覧(WEB閲覧)を始めたのがその後になりまして、せっかく自宅LANを敷設しているんだからと言うことで、Windows95のインターネット共有機能を使いまして、そのWIN95マシンをルータ化?(ルータのような位置づけに)してLAN上の他のPCからネット閲覧をしたりする遊びをしていました。

(Nifty)

アナログ回線

Win95マシン modem (ダイヤルアップPPP)

Win95マシン インターネット共有機能

Win95マシン LANカード

自宅LAN (10BASE-T 馬鹿HUBスイッチングHUBじゃ無いタイプ)

他のPC

この様にして、中古マシンを買い漁り、中古屋新品のパーツを買いますと、マニュアルなどのドキュメント類がたまってきました。のですが、かなり捨てました。

これで、終わるのも寂しいので,もう少し書きます。

UNIXは、そもそも、Multicsの反省を基に、AT&Tの研究所に転がっていたDECPDPと言うマシンに実装された。と言う事で、PDP関連の技術資料とかPDPのその後の愛称のVAXとかでドキュメントを見ると古い資料ですが、勉強にならないこともないのです。

DEC(Digital Equipment)は、パソコンメーカーのCompaqに買収されました。

そして、CompaqとHP(Hewlett Packard)は合併しました。

となると、そもそも、DECが持っていたUNIX関連の技術は、現在HPにあるということになるのでしょうか。

そこで,改めて、DEC VAX関連ドキュメントを検索しますと確かにHP社のサーバーも幾つかヒットします。

上記以外で、VAXのUNIXで検索するといろいろ検索されます。

DECのUNIXの入門編の冊子をチラ見させて頂いたことがありますが、わかりやすい書物だったと思います。

今でも読む事が出来れば、UNIX初心者の方には、勉強になる本だと思います。

あれこれ検索していて、こちらの方のページに行き当たりました、すごい方のようです。リンク貼らせていただきます。

安楽死と自殺幇助とログ改竄と善意と悪意と

自殺幇助は罪に問われます。だから、他人の自殺を手助けしてはいけないのです。

と言うか…、

昨今のマンマシンインタフェースの向上を見るにつけ、思考読み取りなどの技術の進歩も、今後は否定出来なくなる予感もあります。

コンピュータにはログが付き物ですが、ログの改竄だってあるかもしれないでしょ。

だから、自殺幇助が罪に問われない時代が来たら、怖いです。

ある人物の死について、ある人物が深く関与したとして、「手助けしただけだから無罪です」と主張するかもしれない。

だが、なくなった人の思考ログに、その様子が記録されていると主張するかもしれない。

だけど、ログの改竄があれば、自殺した本人の意志と言うログ自体は、改竄された嘘かもしれないと考えるべきだし、意志を読み取るセンサーへの介入があったかもしれない。

本人の意図とは異なる内容がコンピュータに受け取られた結果、死に至るかもしれない。

思考支援ツールの、良い面と悪い面、悪い面は、絶望に導くとか、洗脳するとか。

何でもかんでも、IT化して、いいのですか?と言う問いは、絶望とか洗脳に導く事につながりますか?。

でも、膨大なプログラム群を分析する事に、時間と金をかけていては、競争に負ける。

とか、

足ふみをしていて一円も稼がずにいるより、何かして稼がないと生きてゆけない。

とか。

テクノロジーと魔法と手品は似ているのかもしれない。

常温で溶ける金属。(あまり世間では知られていない)

スプーンを「曲げる」「溶かす」「切断する」と言う行為は、常温で溶ける金属の存在を知る人にとっては、魔法でも無ければ手品でもない。

誰もその存在を知らない場合、「魔法」とか「超能力」になりえる。

一部知れ渡っている場合「手品」になり、

全員が知っている時代においては、「当たり前の出来事」になる。

ITにおいては、「それは不可能です」とか「それは天文学的確率でしか」とか「この世に100%はありません」とかの言葉を信じきっている人に付いては、または信じきっている人々で構成されるグループに置いては、「発生し得ない事柄」として取り扱われるはずです。

ITは、規模がでっかくなりましたので、私も含めて本当に「コンピュータと通信」について理解してやっているのでしょうかね。と言う疑問が。

「スタックマシン」と、「トランザクションマシン」について理解は済ませましたか?とかそういう唐突な質問にたいして、「理解済みです」と回答できる人は何人いるんだろう、「PASCALは再帰呼び出しを多用する場合、リソース管理をきちんとしないとダメだ」と言う人がいますが、その根拠は?と言う質問に回答するには、処理系毎の特性を理解していること言語仕様を理解していることが、挙動を推論する基礎になりますから、回答するには、その辺をマスターしていないときついのでしょう。たぶん。

 

UCSD-P SYSTEM

ふと思い出しました「UCSD-P SYSTEM」

UCSD : University of California San Diego

ちょっと検索してみましょう。

UCSD-P system wiki  とか UCSD PASCAL wiki 等があると思います。

月刊ASCII等のパソコン雑誌やマイコン雑誌で、PC-8001やAPPLE II に並んで広告が出ていたのを思い出します。

画像検索をしてみました。

関連画像は出てきているようですが、日本の雑誌に掲載された画像は見当たりません。

それらをざっと読んで頂いたとしたら、次に見て頂きたいのは

P-コードマシン wikiです。

昔、まだ、8ビットマイコンの時代に、メインメモリーが64Kバイト程度の時代に、UCSD Pascal が、出現し、UCSD-P systemが出現し、Pコードマシンと言う、仮想的なマシンをインタプリター形式でエミュレートするスタックマシンの仕組みがすでに存在してて、8ビットマイコンと言うものすごい貧弱なスペックで動いていた。と言う事実です。

と言った処で、マイブームの回想録であり、他人の方々には、それがどうしたと言う感じでしょう。

そもそも、初めて触ったBASIC言語はインタプリター形式でした。NEC PC-8001 に搭載されていた、N-BASICでした。

うん?、あれ?、あ、そうだった、最初に触ったBASICは、TSSのインタプリターのBASICでした。

TSS : Time sharing system

高校の授業で、数学のアルゴリズムの授業で、FORTRANとCOBOLをちょこっと習った気がするんです。図書館で関連書籍を読んだ記憶とかすこーしあります。

高校時代は、TK-80EμPD8080AFCという8ビットCPUのマシン語に明け暮れては居たものの、学校にコンピュータが無く、FORTRANもCOBOLも試す機会はありませんでした。月刊ASCII等を見ていてBASICはPC-8001で動くというので、BASICは熱心に読んでいました。でも、NEC PC-8001を買うまでは、実際に触るチャンスが無く、どんな感じなんだろうBASICって?。と思っていた所、当時電電公社のショールームと言うかデモンストレーションブースが、京都四条と、大阪の地下街、(大阪南の虹の街だったかな、どこだったけかな)にあったと記憶しています。そこには、DEMOS-EのTSS端末が据え付けてあって、希望者は使わせてもらえたと思います。私は広告でそれを知り、TSS端末使わせてもらって、BASICのサンプルプログラムを打ち込んでみた記憶があります。自宅から京都四条までの電車代も馬鹿にならないので、PC-8001かうべぇ。と決心した記憶があります。

PC-8001を買えば、BASICインタプリターは入っているので使いまくれるのですが、FORTRANとかCOBOLとかは、偉い高価で買えるものではありませんでした。FORTRANやCOBOLの広告は雑誌に掲載されていましたが、白黒広告で素っ気ない広告でした。買っても、当時の私は、それでどうすると言うこともありませんでしたし、あまり興味が沸きませんでした。

そんな中、APPLE IIには、UCSD-P SYSTEMの綺麗な広告がありました。PASCAL,FORTRAN,COBOLが使えるというふれこみだったと思います。

UCSD-P SYSTEMがとても優秀だと言う広告だったような気がします。そして記憶が正しければ、このソフトウェアは48万円ぐらいだったような気がします。

そして、APPLE II DISK SYSTEM にモニターにプリンターを買えば、当時のオフコン(オフィスコンピュータ)に手が届く値段だったような気もします。

と言うことで、私は、APPLE IIについては、知り合いが所有していて、少し触らせてもらったのと、後は眺めていただけでした。

あ、思い出しついでに、大津の膳所に西武百貨店がありまして、当時その中でコンピュータショップと言うか、家電のなかでワンコーナー、パソコンのコーナーがありまして、わずか1年か2年ほどだった気はしますが、近所のマイコン好きが集っていた場所です。NECのシステムイン滋賀か、西武のこのコーナーによく見る面子が集っていた気がします。西武のこのパソコンコーナーには、NEC PC-8001以外に、タンディーラジオシャックのTRS-80COMMODORE PET 2001COMMODORE 64APPLE II沖電気 IF-80等が置かれてたような気がします。気ままに触らせていただけたのが、とてもありがたかったなと思います。その後は、京都寺町の電機屋さん街で、特にニノミヤ無線さんではしょっちゅう触らせていただいておりました。apple Macintosh 等は、ニノミヤ無線さんで、触らせていただいて、ハイパーカード等も使わせていただいた気がします。ニノミヤ無線さんで思い出したのが、ashtontatedBASE III のPRがあり、トライアル版を使わせていただく機会を頂いたことが記憶にあります。

時代は、8ビットマシンのPC-8001から、PC-8801、PC-9801に、そしてソフトウェア的には、N-BAISCはN88-BAISCになり、N88-DISKBASICにと移行していく時代だったと思います。

そんな時代、「N88‐日本語BASIC(86) コンパイラ活用法―MS‐DOS版」と言う(名前だったとおもうのですが)本で、内部構造の解説を見て、驚きました。

「コンパイラーだけど、マシン語にはしていません。」と言うこと。

「コンパイルした後の実行モジュールを動かすには、RUNタイムライブラリと言われるソフトが必須」と言うこと。

つまり自分で過去に組み上げたBASIC言語でかいたソフトをコンパイルしたあと、そのコンパイル結果のファイルを配布しても動かないと言うことでした。RUNタイムライブラリも同時にいれておかないと、動かないというのです。

最初の部分を読んだだけではピンと来ませんでしたが、熟読して分かりました。驚きました。

このRUNタイムライブラリと言うものは、インタプリター本体だと言うのです。

N88-DISC BASIC コンパイラーは、UCSD-Pシステムのようにコンパイル対象のプログラムを、中間言語にコンパイル(翻訳)するのだそうです。

そして、そのNBASICコンパイラーがコンパイル(翻訳)した結果の中間言語(中間コード)を、解釈実行するインタプリターがRUNタイムライブラリだと言うことでした。

つまり、通常はN88DSIKBASICの言語仕様に従って記述されたBASICプログラムを解釈実行するのが、N88BASICインタプリターですが、UCSD-P Systemのような、中間コードインタプリターに解釈実行させるために、N88DISC BASICで書かれたBASICプログラムを中間言語に変換している。と言うことをコンパイルする。と言っていた。ようなんですね。

でも、コンパイル後のコードを実行すると、ノーマルに比べて、10倍くらい処理が速くなると言うことでした。

BASIC言語でかかれたソフトは見慣れていましたので、みれば読めるのですが、この中間コードにコンパイルされた結果は、ほとんどバイナリーコードに見えて、中間コードなんだよと教えてもらわないと、わからないものでした。なので、本で読むまでマシン語にコンパイルされていると勘違いしていました。

この中間コードだけをコンピュータに入れても動かないのです。

この中間コードに成ったソフトが動くには、RUNタイムライブラリと呼ばれていたインタープリターが入っていてこそ動けるのです。このRUNタイムライブラリが解釈実行するから、動くのです。

つまり、「それ」はプログラムなんだけど、中間言語にコンパイルされたプログラムであり、その中間言語を解釈実行する主体が存在しないと、それ単体では動かないのです。動かしても、RUNタイムライブラリがありません。としか表示できないプログラムでしかない。

と言う事で、一旦RUNタイムライブラリと言われるインタープリターが入れば、解釈実行できるようになるので動き出せるのです。

なんだか、すごいですよね。

御本家の純正BASICより、10倍くらい高速な処理速度で動作するなんて。

うーん、動き方は、コンパイル後のファイルの拡張子はexeかcomだったと思うのですが、どっちだったかな、exeモデルとかcomモデルms-dosはそれぞれの形式にしたがった起動をさせると思うのですが、コンパイル後のファイルが起動されると言うのは、fork,execでいうと、この場合forkではコンパイル後のファイルを入れるプロセスをforkして、そこにコンパイル後のプログラムをロードする事で、execするというのは、そのコンパイル後のプログラムを起動すると言うこと。そして、起動されたコンパイル後のファイルは、runタイムライブラリーを、所定のエリアに読み込みますよね、読み込んだ、runタイムライブラリは、実はインタプリタ-なので、そのインタプリターの所定のアドレスがインタプリター起動開始アドレスなので、そこにジャンプするんじゃないんだろうか?、そして、起動された中間コードインタプリターは、プロセスの所定のアドレスにコンパイル後のプログラムが格納されているはずなので、そこから読み出して解釈実行を始めるの出はないでしょうか?)

まとめ

UCSD-P system は FORTRAN、COBOL、PASCALが動く(中間コードに変換している)が、とても高価で高値の花でした。

と言う事と

N-BASIC系にも、中間言語にコンパイルするBASICコンパイラーが実在した。

と言う事と。

コンパイルと言ったって、マシン語にするとは限らない。中間コードに変換するものもある。と言うこと。

コンピュータのハードウェアには、様々なファイルが入ると思います。

単なるデータファイルなのか?プログラムなのか?

それは、単体で動くものなのか?、それとも何らかの解釈実行を司るインタプリターが必要なのか?。

思い返せば、メインメモリーが1Mバイト以下の時代に、HDDが40Mバイトの時代に、既にこういうテクノロジーは存在していて、それが、ウィルスかどうかなんて、見極めるのが困難で。気がつけばメインメモリは2Gだ、4Gだと言う時代になり、HDDはテラバイトになり、当時のインタプリターぐらいは何種類でも入れる時代になってしまったという事。

後書き

かなり、昔の話であり、そうとうに勘違いや、思い込みもあるかもしれません。お気づきの点がございましたら、ぜひとも、コメントなりなんなりで、ご指摘をお願いいたします。

おまけ

THE UCSD P-SYSTEM MUSEUMへのリンク

SD Super computer centor

2016年10月21日と言う日

2016年10月21日

午後、30人ばかりが居た室で、ほぼ全員のモバイル端末から地震到来を示す警報が鳴り響きました。

間も無く、ゆっくりとした、横揺れを感じながら、事態の推移を見守っていました。

あちらこちらで、震源地を読み上げる人がいて、私もスマホを手に取り、強震モニタを開きましたが、モニタは既に黄色緑色青色で10gal以下の地域が中国地方を中心に東海から九州にかけて分布しているのを確認するに止まりました。

夕方、帰宅後パソコンであちらこちらのニュースを拾い読みしてましたら、海外のDNSで大規模障害と言う報道がありました。

という事で、今日現在で改めて検索し直して、ご紹介させていただきます。(その為、当日私が見た記事では無いかもしれません)

https://more-news.jp/article/detail/3850

とか

http://matome.naver.jp/m/odai/2147711081824406601

とか

http://downdetector.jp/shougai/google/mappu/

などです。

 

また、最近のDNS関連のニュースでは、次のニュースが話題だったそうです。(先月のニュースですが)

http://japanese.engadget.com/2016/09/26/620gbps-ddos/

ところで、akamaiと言会社については、インターネットが世界に拡充されだした頃からですので、かなり以前から存在する会社と言う事で、ご存知の方も、多いと思いますが、インターネットの要の部分で重要な機能を担当する会社で、社員の採用基準がかなり高い会社だったと思います。

Akamai関連のニュース

 

 

 

どういうこと?と思うシーンについて

1.ピアツーピア通信について

以前、「ピアツーピア通信」と言う言葉に、諸悪の根源と言うイメージをオーバーラップさせて、話をしていた人が、SKYPEで通信していて、得意げにSKYPEの事を話しているというのを見て、「どういうこと?」と思いました。

経緯としては、

①ピアツーピア通信のテクノロジーが出てきた

②誰かがピアツーピア通信テクノロジーを活用したファイル転送・ファイル共有ソフトを開発した。

③誰かが、そのソフトに感染するウィルスを開発して、共有をかけていないファイルまで共有かける悪さをした。

④世の中に動揺が走った。

⑤メカニズムに興味のない人の心理には、ピアツーピアは悪いもんだという印象だけが残った。

⑥SKYPE通信の基本はピアツーピアテクノロジーに基づいているけど、あまり誰も気にしない。

※つまりピアツーピア通信が悪いのではなくて、たまたま、そのファイル転送ソフトに取り付く形で悪さをしたウィルスソフトが悪かったと言う事ですよね。

と言う事で、この状況で言動に矛盾をはらんでいると、その方のITレベルが薄く透けて見えてきてしまいます。

私自身他人のことを、どうこう言うほどの技量も知識もありませんが、そういう事を感じます。

2.MACアドレスについて

MACアドレスはLANのデバイスごとにユニークに(一意的に)割り振られていて、世の中には2つと無い。と、当初習ったんですけど。今じゃ、MACアドレスはランダムでもいいとか、時代とともに技術規約も変化しています。

 

3.IPドレスについて

IPアドレスのIPV4では、プライベートアドレスがクラスA、クラスB、クラスCでそれぞれ設けられている。と習ったんですけど。現在プライベートアドレスのクラス分けがクラスレスで用いられてきているとか、変化している状況はあるようなのですが、IPV4のアドレス枯渇問題もあるなか、多くの組織が組織内部に、プライベートIPアドレスを割り振っていると思います。そういう事で、会社で使っているコンピュータやサーバーに割り振られているIPアドレスが、プライベートアドレスなら、それと同じIPアドレスを自宅LANでも使っていると言う偶然の一致はあり得るんです。

ですので、監視対象の人物のPCを遠隔から電磁場盗聴した時に、たまたま、会社のサーバーと同じIPアドレスだったとしても、不正アクセスをしている証拠にはならないのです。

遠隔PCの電磁場盗聴に関する記事。

自宅IT設備へのアクセスについて

このブログへは、URL(http://bbr-1b92faa.iobb.net)でアクセスしていただいていると思います。

プロバイダーからPPPOEで払い出される、グローバルIPアドレスをDDNS(ダイナミックDNS)に登録して、先のURLと対応付けしています。

皆様のブラウザーからのGET要求は、こちらのグローバルIPアドレスの80ポートを狙って飛んできますので、プロバイダーからのPPPOEを終端させている自宅ブロードバンドルータで、80ポートに飛んできたパケットをポートフォワーディング機能を使って、自宅LAN上の秘密のパソコン(ノートPCに)に転送させています。

と言う事で、自宅ブロードバンドルータをいじっています。

自宅ブロードバンドルータのポートフォワーディング機能を使うことでサーバーを公開しています。

自宅PCやスマフォで動かしているSKYPEについては、ルータをイジルことなく、よそ様から、通話要求を受け付けることが可能です。これは、UDPポートホールパンチングと言うテクニックを使って、つながる仕組みです。

「それが、どうした?。」と思われるでしょう。

私としては、自宅LANである、NAT内部は外部からは一切入れない聖域だと、思ってましたので、UDPポートホールパンチングの解説を見て、のけぞる思いがいたしました。

私としては、自宅LANである、NAPT(IPマスカレード)内部は外部からは一切入れない聖域だと、思ってましたので、UDPポートホールパンチングの解説を見て、のけぞる思いがいたしました。

自宅のネットワーク設備の設定を一切いじること無く、単にソフトをインストールさえすれば、外部からいつでも入れる仕組みですから、晴天の霹靂でした。

少し、説明をさせて頂きますと、

一般家庭のネットワークは、プロバイダーから払い出されたグローバルIPがあり、それが、ブロードバンドルータのインターネット側のアドレスになります。

そして、内部のLANには、通常192.168.1.1から256台分程度のIPアドレスが内部LAN上に稼働するPCやスマフォ等に払い出されて、内部と外部との通信の橋渡しをNAT NAPT(IPマスカレード)言う機能が担当します。

通常NAT NAPT(IPマスカレード)は、外部からの通信を破棄します。

そのためこの動きが強力なファイアウォールとして働くので、内部LANを外部からのアクセスから守ってくれます。

外部から内部に転送されてくる通信は、

①内部から外部に出した要求の応答。

②予めルータに設定されたポートフォワーディングで指定された通信。

③あと少しルータごとの機能として、内部に転送するルールや機能を持っている場合その条件に一致する通信。UPNP等。

SKYPEは通話ソフトですし、SKYPE社のソフトだと、身元も判っているし、今はマイクロソフトの製品でもあり、身元も品質的にも問題は無いと思っていますが、外部から内部に入れる仕組みが存在したという事で大変にショックでした。

つまり、遠隔監視ツールがこの仕組みを使ったりすると、まさにトロイの木馬的な動作が可能になるので、一切自宅のネットワークをいじること無く、外部から入れるという技なので、NAT NAPT(IPマスカレード)内部である自宅LANは聖域だと思っていたけど、全然だめじゃん!。

と言うことなので、今後インストールする一切のソフトについては、インストール時に、問題のないソフトかどうかを考えないと、いけない時代になったと、その当時、思ったからです。

知人にソフトを紹介するとか、知人のPCの状態をチェックするのに、他人の作ったツールをインストールするとかは、ちょっと気が引けるのです。その理由は、拾ってきたツール群にUDPポートホールパンチングとか、そう云う仕込みをしてないか?について検証するのが鬱陶しいし、自信もないので、「胸を張って大丈夫だよ」と言えないからです。

自宅環境で試験的に運用する中で、UDPポートホールパンチングに類する通信を拾い上げるネットワーク分析ツールなどを開発して、自宅環境に埋め込んでおけばいいのかもしれないのですが、面倒に思えて。

と言うのは、「あ!、いまのUDP通信てさぁ、他所のサーバーが覚えたんじゃないの?」と言うのを検出するのを、どうやったらいいかわからないからです。

ネットワーク上に監視ツールを配置しただけだと、どのPCから出ているUDP通信かはわかるけど、どのプロセスからのものかを特定できなさそうに思えます。

そこで、ターゲットとなるPCで、通信ログを拾って、グローバルIP帯域へのDUP通信を行ったプロセスの記録を残せば良いのかもしれませんが、私には製造困難なのと、UDP通信自体が悪いものではないので、リストに出ているプロセスが要注意だとする根拠もありませんし、今ひとつ説得性にかけるデータしか収集できそうにありません。

と言う事で、とても大事なデータを保管する場合を、どうしたらいいか?なんですけど、ネットにつないでも安全だという確証を得る程の技量がない私は、スタンドアローンのPCに、そういうものを保存する。ぐらいしか思いつきません。