月別アーカイブ: 10月 2016

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

ずいぶんと昔、インターネットが世間に出回るより以前、電子掲示板(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に、そういうものを保存する。ぐらいしか思いつきません。

10月13日、14日サーバーメンテナンスでお休みしていました。

黙っていましたが、

10月13日、14日、当サーバーはサーバーメンテナンスで停止していました。

経緯

10月13日 外出先から自分のブログサーバーへのアクセスをしようとして、タイムアウトになり、アクセスができなくなっているのに気づきました。

帰宅後サーバーログを調べますと、WIN10のアップデートがあり、再起動したものの、ブログサーバーの自動起動は設定していないため、OS再起動直後の状態でスタンバイしていたとわかりました。

対処として、ブログサーバーを立ち上げて、アクセス確認をしておきました。

10月14日 家を出る前に見ますと、またWIN10アップデートがあり、再起動したとわかりました。音声ガイドによるサポート機能が強化された様子です。しかし、私の場合、ブログサーバーとして使用していますので、なるべく余分な機能は起動させたくないと言う事情がありますので、音声ガイダンス機能の停止と、ノートPCのカメラ機能の停止を行い、ブログサーバーを起動させて、終わるはずだったのですが、様子が変でした。

ブログサーバーのコンソールにapacheのログがガンガン上がってきます。メモリーが無いので、アクセス要求を処理出来なかったと言う内容のようです。

他のPCから遠隔ログインして、サーバーの状態を見ようとしましたが、ログインすら出来ない状態でした。pingしても応答が厳しくなっている。WIN10の画面では、タスクマネージャーで、リソースのモニタリングはしているので、WIFIのグラフを見ると、200Kbit毎秒、程度の数値が受信データとして、出ています。受信側のアクセスがコンスタントに200Kbit毎秒と言うのは、ほとんど誰も見ない私のブログにしては、多いのじゃないかと思えました。

WIN10のブログマシンはノートPCですので、機内モードにすれば、WIFIを一旦切断できます。

とりあえず、機内モードにしてみました。そして、我が家のWIFI接続しそうな機材全部を電源OFFにしました。

しかし、それでもなお、光回線のONUとNTT資産のルータは頻繁にアクセスランプを明滅させていました。

つまり、私のブログサーバーは、大変にご好評をいただているのか、または、DDOS攻撃を受けているのか?どちらかである確率が高いなと思いました。

結論としては、半年ほど前にも、一度、DDOS攻撃を受けた時と同じ発信元でした。

試しに、ONUとNTT資産のルータを電源オフして起動しなおしました所、あっさりとDDOS攻撃が停止して、元の静かな状況に戻りました。

ノートPCの機内モードを解除して、アクセスが正常に出来る事をを確認し、作業終了しました。

以上が、13日、14日の出来事のまとめです。

反省と、良かったことについて、考えてみますと、

出先で、ブログサーバーの異常に気づいても、対処が出来ない事が一番つらいところです。Windowsのアップデートを自動で動かしているというのも、無責任な感じがします。手動にするべきかなーと思っています。

良かったことは、幸い私のブログを入れているシステムに、私以外の利用者が入っていなかったという点で、他人に被害を与えずに済んだという事です。

VirtualBOXの仮想マシンイメージでPROXMOXを動かし、その中で、このWordPressを動かしている孫亀状態ですが、バックアップがやりやすいので、重宝しています。

VirtualBOXを操作して、PROXMOXを動かしている仮想マシンイメージまるごと、エクスポートするんですが、先週停止する直前の時点で、サイズは4Gバイトでした。

エクスポートに30分程度かかっていました。

このエクスポートされたフィアルを、自宅ファイル共有サーバーに入れまして、別のPCでVirtualBOXを動かし、インポートすれば、基本的には、そちらでブログサーバーのクローンを動かせますので、便利だと思います。

バックアップというか、異常時の対処として、本当は、ProxmoxでHAクラスターを組むべきなのでしょうが、未だ、出来ずに居ます。

電気代を抑えるには、日常的に動かせるのは省電力タイプのノートPC1台こっきりですので、当分このままでいきます。

cern httpd その2

数日前に、cern httpd を使ったことがあると言う書き込みをしたのですが。

なぜ、cern httpdを使ったのかについて、若干補足をさせていただこうと思います。

当時、httpdはcern httpd 以外にいくつかあったことはあったのですが。

「インストールから運用に至る操作方法一式の情報が雑誌に特集記事で掲載されていたから。」というのが大きいのですが、もう一つ大きな理由がありました。

それは、開発元がcernだという事です。

つまり、新たなソフトをインストールするときに抱く不安として、「抱き合わせで、スパイソフトや、ややこしいエージェントを仕込んで来ないか?」と言う不安があります。

でも、cern httpd は、「cern:欧州原子核研究機構」で開発された物だというので、

1.決して、学術系団体だから、のんびりしているとは言いませんが、一般企業のように金銭的成果を求めたり、損失の補填に追われる状況には無い人たちによる設計製造であり、スパイコードを埋めたりするようなセコい考えをしないだろうと思ったから。

2.cernの認知度と看板の大きさから、そうそうマズイものではないだろうし、仮にバグ等があっても、利用者の多さから、対処も速やかに実施されそうだと思ったから。

と言う理由でcern httpdを、当時使わせて頂きました。

いまは、私のブログが入っているこれは、WordPress ですので、httpdは基本的にApacheです。

Apacheは、世界中で大勢が使っているものですし、私も使わせていただいています。

動かすのが精一杯で、検証とか考えも及びません。

孤独について

理解者を求めたいのに、求められない孤独。

他人との「あるある」の共有が、出来る部分と出来ない部分。

将棋で、何手先まで、先読みするか?について私は1手先すら読むのが困難です。超人的に数手先まで読み通せる人が居ると聞くと、驚嘆するしかありません。そういう、数手先を読み通せる人と会話しても、多分話は合わないと思います。2手先すら私の想像力では到達できず、話の内容を理解できないと思います。将棋の経験が少ないので、あるシーンで「此処で迷うよね」と言われてもそのシーンを経験していないので、解りません。

聞きかじりの話ですが、水先案内人(パイロット)に関する話で、こんな話を聞いたことがあります。

それは、水面下の地形が時々変化する水域での水先案内人たちの会話だったそうです。ある熟練の水先案内人がこう言っていたそうです。『「この水域の仕事で、ミスはしたことはない。」と言っている奴がいたら、その水先案内人は駆け出しだ。』

この発言の裏にあるのは、長年仕事をしていると、何らかの問題に遭遇するのを避けられないはずだから、問題に遭遇したことが無いと言うのは、回数がまだ少ないはずだ。言う事だと思います。

ミスゼロを自慢している人がいたら、あなたはどう思い、どう対応しますか?。

ミスゼロを自慢する人に対して、素人呼ばわりをしたら、喧嘩になるかもしれないので、自分の心では、「素人か、スーパーマンか、強力な助っ人が居るんだろう」と思っておいて、「そりゃーすごいなー」と褒めるなどするのではないでしょうか。

素人か、スーパーマンか?については、普段付き合っていくとだんだん見える部分があると思います。

スーパーマンではないと確信できた時に、思うのは、「じゃ、なぜ、ミスがゼロなのだろう?」過去の仕事をさかのぼって、経験が浅いのだと判明すれば、素人だったと言う事になるが、経験値としての仕事の数が相当数あるとしたら、ミスをゼロに抑えた理由について興味が湧いてきます。 ミスを出さない仕事術とかセオリーとかが 存在するのか?強力な助っ人が存在するのか?

現代は、仕事術とか、セオリーとか、強力な助っ人というのが、ネットやITツールだと言う事はありえるわけです。

自分で全てを学び、技量を磨いて、ITツールを作ることが出来ない場合、よその誰かが作成したツールを用いるより無いのですが、そのツールの安全性を誰が確認し、誰が誰に責任を持つかについて、厳密にしようとすると、ちょっと大変なんです。

その製品の開発に必要だった設計書一式を見せてくれとか、そのソフトのソースコードを全部見せてくれとか、試験結果や検証結果のデータも提供してくれとかそう言うお願いをしても、無料提供は期待薄ですし、仮に提供してもらっても読みこなせるか?と思うと、自分が書いたわけでもない他人の書いた設計書やソースコードを読みこなさないといけないし、読みこなして、どう言うシーンで、何が起きるかを把握できないと読む意味がありませんし、将棋で2手先の会話が出来ないレベルでは、プログラムのソースコードを全部読みこなして、あるシーンにおける、ソフトの挙動について把握できているかとか、言ったって無理な話でしょ。

ソースコードを読みこなして、挙動を推論できたら、バグが出るはずがないわけですから、バグ対処のパッチが出てくるはずがない。しかし、何処のメーカーでもバグ対処や機能改善などのパッチやバージョンアップはやっていますから、設計書とソースコードも含め一式揃っていたって、どう言う挙動が何処で出るかについて読みきれなかったと言うことでしょ。

つまり、設計書もソースコードも手に入れることが困難な一般利用者が、メーカーに成り代わり、机上デバッグに匹敵する問題の摘出作業を出来るのか?。と考えると、無理なはずなんです。

じゃ、実行モジュールだけ提供を受けて、全部の挙動を把握するにはどうしたらいいか?などと考えた場合に、手元にあるのは、実行モジュールのマシン語ぐらいしかないので、マシン語によるCPUとシステムの挙動を逐一モニタリングし解析する作業になるので、より高度なデバッグ検証環境の構築が必要になり、より一層素人には無理な話でしょ。

そういうことで、ソフトの挙動を見るには、実行モジュールだけではなくて、さらに設計書とソースコード一式が必要になるはずなのです。

そして、そのプログラム言語を読みこなすことが必要になります。

そして、そのプログラム言語は、コンパイラーでコンパイルされるのですが、どう言うプラットフォームに向けてコンパイルされるか?が次に課題になります。

DOS/V向けなのか?メインフレーム向けなのか、ワークステーション向けなのか?

DOS/V向けとしてメジャーなOSはWindowsとLINUXとMAC-OSやその他があるかと思いますが、どのプラットフォーム向けにコンパイルされたバイナリー(実行モジュール、マシン語)なのか、を知る必要が有ります。その理由は、コンパイラはターゲットのプラットフォームごとに生成物を変えるので、どのプラットフォーム向けかを知る必要が有ります。

そのソースコードを、コンパイルしても、その実行モジュールが生成されないなどということになったら、嘘のソースコードを提供されたのか?という事にもなりますので、そのソースコードをこのコンパイルオプションでコンパイルすると、確かにその実行モジュールが生成されるのだと、確認をされるべきだと思います。

そして、プラットフォームが判ったら、システムコールを知る必要が有ります。

その理由はソフトを組む場合に、初期化とか、自分で関数を定義したりしますが、此処のステートメントや組み込み関数などはコンパイラーがOSのシステムコールを多用していますので、そのコンパイラーはどう言うコンパイル結果を生成すべきかを理解していないと実行モジュールの出力に、本来無いはずのコードが含まれているとか、あるはずのコードがないとかを見抜けません。でもコンパイラーまで自社製造しているケースはまれですからコンパイラー無料利用では、問題のある出力について、責任の所在をとえません。

また、コンパイラーはプラットフォームとなるOSにターゲットを絞って、コードを生成してきますが、生成されたシステムコールが実際に処理されるのはOSのシステムコール処理で処理されますから、OSの信頼性を誰が確認し、誰が誰に責任を持つのかということになると思いますが。

基本的には、利用許諾を出してもらっているぐらいでしか無くて、基本自己責任で使っているのではないでしょうか。

効率化と省力化と経費節減を錦の御旗としてITを進めると思いますが、本質的に経費節減になるか?と言うと、疑問は多いと思います。

企業においては、競合他社との差別化のために、莫大な開発投資を行い新商品開発を行っていると思いますが、ITを利用することで、他の企業に対する優位性になるはずの特許なり企業秘密が外部に流出してはいけないのですが、開発中の段階から外部に出ているとかだと、最後の追い込み段階で先を越されるかもしれませんし過去の研究の膨大なデータを元に、よその企業が、先に何かを発見するかもしれません。

そう言う事を考えた場合、勤怠管理と言う単純なシステムですら、そのソフトの構成要素の全てに目を通して問題がない事を確認するべきですが、コンパイラーやOSまで、安全確認をするというのは、たやすいことではありません。膨大な検証環境と検証工数が必要になると思われます。

今後ますますITは、人間生活や世界の存在に、重要な関わりを持ってきますが、新製品の開発を自社一社で完結して行うとか、一つの国で完結して行うのは多分無理なのだろうと思います。国際分業体制が前提になると思います。

ITは複雑化と高度化を今後ますます高めていくと思いますが、一個人がその中の何%に目を通せるか?理解できるか、検証できるか?を考えると、ますます大変になると思います。

日常のITシステムに、不用意に、悪意のコードやまずいコードが紛れ込んでは困るのですが、インターネットは世界を包んでいて、個人所有のインターネット接続のあるデバイスには、世界中からそして、世界中にアクセスが可能な状態ですから、インターネットに関わる国すべての人が等しく、安全を心がけていける社会が必要になると思います。

ITで飯を食うには、いがみ合っていない世界の存在が前提であり、悪意を起こすテロ集団も存在しない社会や世界が前提になると思います。

世界がいがみ合っていて、悪意のコードが、いつ紛れ込むかわからない状況では、自社製品に対してさえ、顧客に対する訴求力を強く出せません。

「金を払ってくれれば、ソフトやシステムを使ってもいいけど、使う事で問題が起きても知らないよ、とも言えないので、払ってくれた金額を上限に返金に応じないでもないけど、きちんと裁判しようね」とかそういうことになるんでしょ。でもこれでは訴求力が低い。

だけど、訴求力を高めようとして、へたに安心・安全を謳い文句にしてしまうと、本来保護できない機密でさえ載せても大丈夫だと勘違いする人が出てきて、やがて、とんでもない事になるので、ハッタリかます事も出来ない。

世界を混迷に導かないように、どうすると良いのか?。

と言う課題について議論を持ちかけても、ソフト開発の経験者でないと、状況を理解できないので、議論にならない。

この世の未来を予測するには、マシン語を理解し、OSを理解し、コンパイラーを理解し、各種プログラミング言語を理解し、ソフト開発の、A-Zを知り、人間の特性を知っていないと、「あるある談義」は出来ないと思えて。

余談

<DLL:ダイナミックリンクライブラリー>

プログラムを組み動かすメカニズムにおいて、関数定義をすることがあると思います。

定義した関数を呼ぶ処理が入ったプロセスが複数ある場合に、例えば、5個あったとして、その5個のプロセスのコンパイルとリンケージにおいてそのプロセス内部にその関数をもたせるようにすると。その5個それぞれでその関数のコードを持つことになります。ですから、単純に考えるとメモリ消費の観点ではそれぞれ5個のプロセス内部にその関数のコードがあるということです。メモリ節約をしたい場合に、5個のプロセスの中にその関数のコードをもたせるのではなくて、切り出してしまえば、メモリ消費を減らせるのではないか?と言う事で、ダイナミックリンクライブラリーと言う名称のフィアルに切りだすと、メモリの節約が出来るんです。切り出す関数の名称をfunc_aと言う名前だとして、切り出した関数のコードを、A.DLLと言うダイナミックリンクライブラリーに入れてあるとしたら、関数をコールする処理を持つ5個のプロセスでは、A.DLLの中にある関数func_aをコールすると書いてあるんです。5個のプロセスは内部に、func_aのコードは持ちませんから、その分メモリの節約ができるのです。

さて、A.DLLと言うなのダイナミックリンクライブラリーにfunc_aと言う関数が収まっている。わけなんですが、

純正じゃないA.DLLてのを提供できなくもない。わけなんです。

自分が作った、A.DLLが純正だとして、他人が作ったA.DLLが存在する場合があるんです。過去にあった事例では、DLLの入れ替えで、問題動作が改善したとか発生したとか。

昨今この、DLLのメカニズムは、安全性を高められてきては居ますが、利用者個人でDLLを入れ替えることは不可能じゃないと思います。

func_aを呼ぶプロセスは呼ぶだけ、DLLにはfunc_aのコードが収まっている。

仮に暗号化関数に合鍵付きの関数と、合鍵なしの関数があったとして、本来は合鍵なしの暗号化関数がfunc_aで収まっているべきところを、合鍵付きの関数といれかえて、名前をfunc_aにした、改造版DLLを、罠の解説WEBを参照して、DLLファイルを入れ替えると、まずい事態になりますよね。

と言う事で過去を振り返った時に、結構安易に、DLLの入れ替えとか、何処かのサイトからのダウンロードとか、指南されているのですが、誰が安全を確認しているのか?と言うと、それは、自己責任。だと思うのです。

利用者個人の責任で持って、入れる。ということだったと思うのです。

しかし、一般的個人が、マシン語コードの検証設備やスキルを持っているはずがない。

が、解決策は提供されていない。

と。

ということは、利用者は、世界の誠意と善意を信じている。ということですよね。

だから、世界は平和でないと、まずいことになるわけなんです。

<蛇足>

ITとは、次のいずれなのだろうと言う悩みが晴れません。

「信じるものは救われる」

「信じるものは(足を)すくわれる」

 

方言とか言葉とか、同一性とか、相違点とか

「わしも、いろいろあって、忙しいにゃけど、今日は来たわー。」

幼稚園に入る前の私が、ご近所で、そう言う発言をしたというので、当時ご近所で話題になったらしいです。

住んでいたのは田舎だし、普段の行動は、お爺さんか、お婆さんのどちらかについて回っている状況で、祖父母の話し相手は、当然、その年代。

自然と、そう言う会話を聞いていて、そう言う言葉を使っていたみたいです。

で、幼稚園に入ると、同年代の子供の友達が増えたんですけど、わずか数キロ圏内に点在する集落ごとの、微妙な言葉の違いがあって、まるで海外の友人が出来た気分でした。そして、私の言葉遣いも普通になっていったようです。

幼稚園と小学校は、学区が同じで、ほぼ同じメンツでしたが。

中学で、学区が広がって、また言葉の微妙な違いを感じることとなりました。

で、高校で、またぞろ学区が広がるので、言葉の違いに気がつくと言うシーンがありました。

その後、就職して、先輩の中に1名配属された時は、同世代の微妙な違いというより、都市の離れた先輩の、言い回しかな?と思っていたのが、その先輩の居住する市町村での独特な言い回しだとか、ジワーと知る時代があったのです。

20歳後半の、企業内研修で、全国各地の同世代の社員が集った研修で感じたのは、同じ日本だけど、こんだけ言葉や表現が違うのね。ということでした。

そして、この時、寮生活になったので、普段知ることのない、アフタファイブの生活実態を共有することとなり、異なる地方の作法の違いとか感じることになりました。

で、国際結婚をして、言葉の違いと、政府の制度の違いとか、民族の違い、を感じることとなり、文化背景の違いとか、価値観の違いとか、あれこれ気付くこととなりました。

思い込みや、勘違いや、誤解による、恥ずかしさや、表現力が弱くて伝わらないもどかしさや悔しさや、あれこれ。

この国で生まれ育った私と君と、同じ国籍だけど、別人であり、別人格を持ち、価値観も異なる。のですが、よその国の人を、どの国の人は○○だ。と、ひと括りにする物の見方。

私自身反省しないといけないのですが、これは、よその国の人も同じだと、言えるかもしれません。

君は日本人だから○○だ。と言う見方を海外の人もするようです。

つまり、他のグループに属する人たちには、私の属するグループの代表として、私の振る舞いが、記憶されていくのですよね。

えーと、つまり、海外に出かけた時に、「君は日本人か!。じゃ、賢くて、誠実で、信頼の置ける人だ。」と言ってくれたとしたら、それは、初対面の私の事を言っているわけではなくて、その海外の人が過去に出会った日本人か、過去に噂になった日本人の振る舞いが、賢くて、誠実で信頼の置ける行動だった。と言う事ですよね。

子供や孫や、その先の子孫が、豊かで平和な生活を出来るように、未来の世界は平和であってほしいと願うのです。