SSブログ

デジタルの時代・コンピュータ雑感 [雑感]

デジタルの申し子;コンピュータは,数Vの電圧の有無で0と1の信号を扱っているだけですが,高速化された沢山の論理回路にソフトウェアを読み込ませることで,現在さまざまな処理を行っています。


コンピュータの開発初期は特定の計算処理などの目的に応じて配線していましたので,その設計者くらいしか使えないシロモノだったそうですが,プログラム・ロード方式が開発されて,プログラムができれば使えるようになりました。それでも,初期のプログラムは,01の並びで決められた機械語の命令を直接並べていました。これだと人間側は理解しづらいので,機械語の命令と人間が(一応)分かるPUSHとかPOPとかADDとかいった命令語のアセンブリ言語と言うもので組んでいました。01の並びで表わされたデータを,CPU内部のレジスタ(現在32bitとか64bitとかいうのはここで一時に扱えるデータ長)群に出し入れしてデータ処理をします。従ってCPUの内部構造を知らないと扱えません。CPUの種類が違えばその命令は異なります。

プログラム・ロード方式でコンピュータの動作におけるプログラムの重要性が高まりましたが,コンピュータを機械語やそれと対応するアセンブリ言語で作っていると,ディスクへの記録とか画面やプリンタ機器への出力とかがものすごく細かい処理からいちいち書かないといけません。画面上に一文字出すだけでも大変なプログラムでした。これでは誰でも楽に使えるものではありません。人間に役立つマトモな処理をさせるまでに距離がありました。

そこで考え出されたのがOSと言われるものでした。現在のWindowsとかMacOSとかLinuxとかです。機器の制御など細かいプログラムを全て用意しておき,そういうプログラムをツールとして用いて上の層で仕事をできるような環境を提供したわけです(更に下層にはBIOSと呼ばれるソフトがROMに入っていて起動します)。これらのOSは,アセンブリ言語,もしくはC言語などの高水準言語でも書かれています(現在では他人が見ても分からないアセンブリ言語で書くのは御法度らしいですね)。


初期のソフト開発は,前人未到の地に橋を書ける様なものでした。アセンブリ言語自体が機械語で出来たプログラムで,それが一旦出来れば,それを用いて他のもっと便利な言語を開発します。それをツールとして用いてさらに,と言った案配に進みます。ソフト開発の流れの中でもっとも大きい橋頭堡となるのがOSだったわけです。便利な言語として昔も今もプログラマに使われているのが,C言語でしょう。C言語以外にもCOBOLやALGOL,FORTRANなどと言った高水準言語が発明され,一般の技術者にも使えるようになりました。専用のコンパイラと言うソフトを使って最終的に機械語に翻訳して実行させます。紛らわしい話ですが,それが走るOS自体もC言語で書かれていることが多いようです。もちろん,他にもBASICやLISP,PASCALなどなど様々な言語が開発され,現在も使われているものも殆ど使われなくなったものもあります。現在ではウェブページ上で使えるJavaScriptやPerlやRubyやらPHPやら枚挙にいとまがありません。


コンピュータ利用の進展は,何と言っても,誰でも使えるアプリケーションソフトの存在が大きいでしょうね。ワープロ,表計算,お絵描き,ウェブブラウザ,メールソフト,etc。私たちが現在パソコンを使っている時間の殆どは,このアプリケーションソフト上での操作です。プログラマですらプログラムの作成はエディタソフト上で行い実行コードの作成はコンパイラソフトを用います。現在のようなアプリが発達したのも汎用のOSというものの存在があったからです。初期のパソコンはOSがありませんでしたし,一時期あったワープロ専用機はいわばOS部分から自社開発していたので,パソコンに対抗出来ませんでした(現在のデジタル家電などでは,和製のトロンやフリーのLinuxなどのOSを用いてソフトの生産性を上げているようです)。


そのくらいOSは重要でした。IBMの大型汎用機全盛の時代,日本のコンピュータメーカーが参入してIBM機と互換性を持たせるためには,どうしてもそのOSの情報が必要でした。囮にひっかかって巨額の賠償金をとられた話はもうずいぶん過去のことですが,パソコン時代ではMS-DOSとWindowsがパソコンの普及に大きな役割を果たしたことはまぎれもない事実でしょう。


パソコンが進展しだした80年代,CPUにインテルの8086系とモトローラの68000系があった事は,この分野に詳しい人ならよくご存じでしょう。前者がPC98やDOS/Vマシンに,後者がMacintoshやワークステーションに使われました。

その前にはインテルの8080,ザイログのZ80,モトローラの6800などの8ビットのCPUがありましたが,8080にはCP/Mという画期的なOSがありました。WindowsのもとになったMS-DOSはこれと殆ど同じでした。16ビットの8086用のOS,86-DOSは開発者のティム・パターソンが8080用のCP/Mを参照して作ったと言っていますし,実際コマンドも同じ名前が使われています。それを5万ドルほどでパターソンの所属した会社から買ってMS-DOSとしてIBMに持ち込んだのがビル・ゲイツでした。これに関しては,訴訟騒ぎもあったようですが,これで彼が一時期世界一の金持ちになったのは記憶に新しいところです。こう書けば,86-DOSなりCP/Mが元祖の様になりますが,もっとモトをたどれば,MS-DOSもLinuxも,MacOSXもAT&Tで開発されたUNIXというOSに源流があります(それとそこで使われたC言語は現在も大きな役割を果たしていますね)。


現在私たちが使うMacやWindows95以降のGUIのOSは,もとをたどれば,ゼロックスのパロアルト研究所を見学したスティーブ・ウオジニアックとスティーブ・ジョブズら,Macに10年あまり遅れてビル・ゲイツらが開発したものです。DOSのようなCUIのOSは,操作をコマンドと呼ばれる文字の命令で実行します。

DOS時代から使っている方は良くご存知の通り,ディスクに入ってるファイルを見るには,DIRと打てばファイルリストが参照出来ますし,TYPE ファイル名で文字ファイルの出力が出来ます。CDでフォルダの移動などなど,その他ファイルのコピー・消去等のファイル操作が出来る様にコマンドが用意されています。これらの基本コマンドを覚えれば,コンピュータの基本的な操作が出来ます。これらは単機能の一種のアプリケーションで,シェルコマンドと言われるもので,いわばコンピュータ(CPU)と画面とキーボードの入出力装置を通して仲介役です。処理によってはGUIよりも楽なこともあります(現在でもWindows上のDOS窓でその操作は出来ます)が,コマンドを覚えた上で沢山キーボードを打たないといけません。知らない人が見ると,CUIのOSによるコンピュータの操作は呪文を唱えている様に見えます。


アイコンなどの操作で,コンピュータをあたかも机の上の事務作業の様に直感的に操作できるようにした仲介役ソフトがGUIと呼ばれるMacOSやWindowsだったわけです。

現在,コンピュータ利用においてOSが重要だった時代は過ぎようとしているようです。ネットの通信速度が上がり,ネット上でのソフトウェア技術が上がり,なによりもネット上でどんなコンテンツをどうサービスとして展開するかに急速に関心が移っているようです。残念ながら私にはそれを解説できるほどの知識も経験もありません。
nice!(4)  コメント(2) 
共通テーマ:音楽

nice! 4

コメント 2

Cecilia

私がコンピューターを使うようになったのは2000年以降で、姉や友人が大学で研究のためにCOBOLやFORTRANなどを使っていたのは知っていましたがまったく触ることがありませんでした。プリントアウトしたデータの紙をもらって使った記憶がありますね。
そう言えば1990年頃に仕事で打ち込み作業だけはしたことがありますが(OSが何だったのか知りません。)、ワープロすら触ってない状況でしたので大変でした。
by Cecilia (2011-09-25 09:22) 

Enrique

Ceciliaさん,nice&コメント有り難うございます。
私は学校時代にアセンブラ,FORTRANをやりましたが,大嫌いでした。本当につまんないことをするためにすごい手間がかかりましたので。パソコンの初期はBASICしか無かったので,これは結構いじりましたが,今は時代遅れの様になっていますが。プログラミングの基礎は知っていた方が何かと便利(新しい言語でもPASCALやCなどの書法が基礎になっていますので)なことはありますが,コンピュータが汎用ツールとなった現在,自分のやりたいことさえ出来ればいいので,余計なことは覚える必要は無いと思いますね。
操作に関して,私は昔の重いキーボードの感覚があって,どうしてもキーを強くひっぱたいてしまうクセがあります。
by Enrique (2011-09-25 11:26) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。