月別アーカイブ: 11月 2019

写真 20191120

今日、見たサイト

https://www.walkerplus.com/

駅で、「京都アメリカンフードフェス2019」の広告を見ました。

たしか、大阪の梅田でも、この時期、ドイツ村を開催していたと思い、両方とも検索しましたら、どちらも検索結果に、上記のサイトが含まれていました。

https://www.walkerplus.com/event/ar0726e352209/

https://www.walkerplus.com/event/ar0727e17598/

初秋のバイク

最近、片道30kmの山間部バイク通勤をしていました。

中古で買った、125cc(124.9cc)水冷エンジンのスクーター。(走行距離32900Km)

あちこち修理しながらですが、まだ走れます。

このバイクは、気温12℃位が、調子が良いと思います。

最近気温が下がり、8℃を下回ると、水温メーターが、やや低めで止まってます。

峠で気温4℃の日、登り坂でエンストしそうになってました。

思い起こせば、夏場に涼を求めて海抜400mを目指した時は、気温が30℃を超えた日で、到達するまでの山道でオーバヒート。エンストしそうになってました。

ベルトドライブはアクセルのオンオフの時、ショックが少なくて、スムーズなところが良いです。

チェーンだと、チェーンが伸びてくると、アクセルのオンオフ毎にショック出てきますので、アクセルの開け閉めに神経を使います。

今乗っているスクーターは、路肩の進行方向に沿った盛り上がりで、ハンドルを取られます。

進行方向に沿った盛り上がりには気を付けて乗っています。

静かな山間部。

空気が良くて、体調的にも、バイク的にも良い感じで、過ごさせて頂きました。

ここ数日の天候

峠の濃霧、深夜里では、まばゆい位いの月夜。

明方の雨、雨上がり朝、早朝の小雨混じりの峠道。

夜、大気にチリ一つ無いと思えるくらいに、澄みきった月夜。

良い景色を見させて頂きました。

今日、私は風邪です。

防寒対策が、ここ数日の冷え込みに追いつかなかったのか、対向車の巻き上げる水しぶきを吸い込んでしまったからなのか?。

融雪剤や凍結防止剤は、まだ撒かれていないと思います。

いずれにしても、マスクとマフラーをしておけば良かったと思って居ます。

私のソフトウェア 関連の消えない疑問

かりに、ここに一つのソフトウェアがあるとします。

コンピュータのCPUは、マシン語(機械語)で動作しますから、そのソフトウェアは、マシン語になったプログラムか、または、シェルスクリプトやawk,Perl,PHP,などの何らかのインタプリタが解釈実行するインタプリタタイプのものでしょう。

そのソフトウェアやプログラムが、どの様な機能を内蔵しているか知りたい時、一般的には、操作説明書や操作マニュアルを見ると思います。

しかし、取扱説明書や操作マニュアルには、メンテナンス用のコマンドや、秘密の機能は書かれていない事もあるでしょう。

秘密の機能や、利用者には見せないコマンドは、何処に描かれるでしょうか?

一般的にソフトウェアが作られる場合、各段階で仕様書や設計書などが作成されますので、その中に書かれていることが多いと思います。

https://www.google.co.jp/search?q=ソフトウェア+設計書

そして、設計書に基づいてソースコードが書かれます。

インタプリタ形式のソースコードなら、そのソースコードがプログラムとして、インタプリタが、解釈実行しますが、インタプリタ形式では無いコンパイラ形式の場合、コンパイルと言う事を通して別の形式に変換します。

C言語の場合、ソースコードをコンパイルすると、オブジェクト形式になります。

この事をコンパイルするなどと言います。

しかし、オブジェクト形式ではまだ動作することが出来ません。理由は、オブジェ形式では、各種変数が納められるメモリー上の具体的なアドレスなどが入っていないからです。

次に、リンケージを行いますと、メモリ上に配置される各種変数や処理ルーチンのアドレスが入ります。

さて、コンパイラには、各種のコンパイルオプションがあります。このオプションの指定により生成されるもののサイズや含まれる機能が変わります。

つまり、ソースコードだけ入手しても、コンパイル時のオプションが異なれば、生産物のサイズやそこに含まれる機能に、違いが生まれます。

また、コンパイルする時のコンパイラやコンパイル環境が異なれば、生産物が同じにならない事もあります。

これは、どういうことかと言うと、何らかのソフトウェアが実行バイナリとして、手元にある場合に、そのソフトウェアにどんな機能があるのか調べるために、ソースコードを何らかの方法で入手して、読破できたとしても、コンパイル結果が異なるなら、そのソフトウェアの機能を調べて、確認が終わったと言い切れないと言う事になります。

コンパイルして出来たものと、当初入手した実行バイナリが全く同じサイズ、マシン語が全く同じ順番で並んでいて、比較結果として同じなら、そのソースコードから生成される事が確認できたと言えますので、そのソースコードを調べて、機能やコマンドに問題が無かったと言いたいのですが、そう言うストーリーに持ち込めません。

ならば、コンパイル環境や、コンパイルオプションも入手する必要があると言う事になります。

しかし、そこまですれば、完璧な確認をすることが出来るでしょうか?。

コンパイラやリンケージの動作の詳細は理解出来ているのでしょうか?。

コンパイルやリンケージを行うソフトウェアの挙動は、把握できているのでしょうか?

例えば、A=B+C が、コンパイル結果としてはどうあるべきか?、を理解しているでしょうか?。マシン語が、どう言う並びで、出てくるべきか?。

A=B+C 以外に D=A✖️B などをやっていないかを、見極める事が、出来るでしょうか?。

ある種のデータを降順や昇順に並べ変える場合、ソート(並べ替え)の処理のアルゴリズムを理解していて、生成物がどの種類の並べ替え処理を行っているか判断出来るでしょうか?。

情報処理試験の入門あたりで、いくつかの並べ替え処理について理解している事を求められますが、ソースコードレベルで、間違い探しをするのと、マシン語にまでなった後のバイナリコードから、それが並べ替え処理をしている事を突き止める事では、作業量に雲泥の差があります。

マシン語になったコードから、逆にソースコードに直すのを、手作業でこなすのは困難です。何らかの逆変換ツールが必要になります。

今度は、その様な逆変換ツールが正しく動作している事を、どうやって確認するかと言う課題が生まれます。まさか、ある種のバックドアに繋がるコードは見なかった事にしていたり、それらしい他の何かに誤魔化していないか?、をどうやって確認すればいいでしょうか?。

さて、多くのソフトウェア製品については、その設計書やソースコードやコンパイル環境を含めた全てについて、開示してもらうことができるでしょうか?。

答えは企業秘密の中の秘密のトップシークレットで、「開示して貰えない」と言う事が多いと思います。

さらに、ソフトウェア製品の多くは、利用許諾で、逆解析する事を禁止していると思います。

※オープンソースコード形式を取っているソフトウェア製品の場合は、ある程度の開示がされています。しかし、読みこなせないなら、開示されていても私には無意味に近い事になってしまいます。

読みこなせる人が読んで、問題発見の声を上げるまでは安心していようか?。読みこなせる人がいない場合アウト、問題発見の声が上がらないなら、やはり私は安心したままなのでアウト。

※当初「クレーム」と記述しましたが、「問題発見の声を上げる」に変更させて頂きました。

さて、全ての資料が揃っていたら、そのソフトウェアの機能を漏れなくリストアップ出来るのか?と言えばそうとも言えないのです。

ソフトウェアは、プログラムミスがゼロにはならないのです。どこのソフトウェア会社でもこれは同じです。

大体どこの会社でも、「全ての資料が揃っている、自社ソフト」のデバッグに苦慮しています。天才的な優れた人材を求めています。

つまり、部外者が、手元に資料もなしで、取説には載らない秘密の機能や隠しコマンド、更にはバックドアやスパイ機能の有無を見つけられるなら、その能力は素晴らしい事です。あらゆるソフトウェア会社が抱えている「自社製品のプログラムミスの検出」ができる事になります。

物凄く生産性が上がる事になります。

巨大企業の生産性を劇的に向上させるなら、素晴らしいサラリーが約束されるでしょう。

しかし、現実は厳しくて、「もうミスはないよね、頼むよー。」と聞かれて「多分…」と答えたあと、バグ報告が飛んでくるのは、ないことではないのです。

巨大なシステムでは、検証用のシステム群もリースの場合があります、延期は、リース代が膨らむ要因になります。

ソースコードを読むだけで、プログラムミスやそこに埋め込まれた機能を理解できるなら、莫大な検証設備のリースが不要になり良い事ですが、まず、それは不可能だと思います。

さて、

利用者として、パソコンを眺めれば、そこには各社のソフトがあり、利用者側で、自由にインストールしたソフトがあり、その全てのソフトウェアについて、設計書もソースコードも無しで、説明書に記載されない機能や隠しコマンドやバックドアの有無を確認するにはどうしたらいいのでしょう?。

個人の資金と時間では、設計書は、まず入手不可能、ソースコードも入手不可能。読解も困難。ソフトウェアメーカーの構築している検証設備を組み上げるのも困難。

仮に、あなたが何らかのソフトウェアを組んだ場合、たまたま、使ったコンパイラーやソフト開発環境が、何かに感染していたとしたら製造物にバックドアやマルウェアが仕込まれてしまうかもしれませんが、貴方には仕込んだ自覚はない。その為、貴方をいくら調べても悪意は検出されない。

そうすると、たまたま使ったコンパイラーやソフト開発環境を誰かが見てあげないといけない。

貴方の製品を誰かが見てあげないといけない。

でも、それをこなす能力のある人なら、もっと利益率の良さそうな、国際的大企業に職を求めるでしょうし。

だからと言って、素人がプログラムを組んだり配布する事を禁止されたら、エリートだけがITに精通し、部外者は、全く無知な状態に向かいかねませんし、ITは世界的に数社しか、たずさわらないと言う事態にも、なりかねません。



ほぼ毎日見るgoogle検索のサイト。

何かの記念日や、誰かの誕生日など、google検索ページのタイトル画像が、その日のテーマに沿った画像になっている事があります。

今日11/9は、ベルリンの壁崩壊がテーマだったようです。

そこで、私は、他に崩壊した壁が、無かったか調べてみたくなりました。(ま、どうでも良いのですが)

https://www.google.co.jp/search?hl=ja&biw=667&bih=325&sxsrf=ACYBGNRDDpqaT0QxRNe7s4bfwCK4Ycp-Fg%3A1573313423907&ei=j9vGXfz3NsLbhwPngqXYBA&q=バカの壁崩壊&oq=ばかの壁崩壊&gs_l=mobile-gws-wiz-serp.1.0.30i10.27048.28855..30542…0.0..0.168.560.3j2……0….1.J6zgEfhCEZ4

http://www.grab-design.com/【九段下駅】バカの壁崩壊しました%E3%80%82/

今日見たサイト

https://nexseed.net/blog/all-about-cebu/

https://www.google.co.jp/search?q=cebu+tourist+comments

https://www.google.co.jp/search?q=cebu+visiters+comments

2019/11/3 妹子祭りに来ています。

2019妹子祭りで検索