「コンピュータ」の版間の差分
(新しいページ: ' ') |
|||
1行目: | 1行目: | ||
− | + | [[Image:IBM PC 5150.jpg|200px|thumb|right|パーソナルコンピュータ IBM PC 5150]] | |
+ | |||
+ | '''電算機'''(でんさんき)は、広義には[[計算機|計算機]]、狭義には計算開始後は人手を介さずに計算終了まで動作する計算機。純理論的には、[[チューリングマシン]]と等価なものを指す。日常的には[[パーソナルコンピュータ]](パソコン)を指して「コンピュータ」と呼ぶことも多い。 | ||
+ | |||
+ | なお、日本の法律上での呼称は「'''電子計算機'''」(でんしけいさんき)とされている。「'''電子頭脳'''」(でんしずのう、略称・'''電脳''')という通称でも呼ばれる(人間の[[頭脳]]の[[類推|アナロジー]]として、また[[ロボット]]の頭脳として捉えられる事による)。 | ||
+ | |||
+ | [[ハードウェア]]の構造から[[デジタル]]コンピュータと[[アナログ]]コンピュータに大別されるが、現在使われているほとんどのコンピュータはデジタルコンピュータであり、単にコンピュータという場合はこちらを指すことが多い。 | ||
+ | |||
+ | '''デジタルコンピュータ'''は、おもに[[半導体素子]]を用いて作られた[[論理回路]]の組み合わせによって構成される。演算の対象は通常[[2進数]]によって表され、桁数を増やしていけば原理的にいくらでも計算精度を上げられるが、ほとんどの演算では、桁数が多くなれば必要な計算が増えて遅くなる。 | ||
+ | |||
+ | 対して'''[[アナログコンピュータ]]'''は、加減算や微積分などを行うアナログ電子回路を[[演算増幅器]]によって構成し、それらを組み合わせて所望の演算を行う。演算の対象は電圧によって表され、演算結果は[[オシロスコープ]]やペンレコーダなどに出力される。入力の変化に対してほぼリアルタイムで出力が得られる特徴があり、各種[[シミュレーション]]などに利用されたが、演算内容を変更するためには回路を変更する必要があり、得られる精度にも限界があるので、デジタルコンピュータの高速化に伴ってその役割を終えた。 | ||
+ | |||
+ | 古くは[[チャールズ・バベッジ]]によって開発された[[階差機関]]などがデジタルコンピュータの元祖であった。現在のデジタルコンピュータは、[[ストアードプログラム方式]]で逐次処理をして駆動する[[ノイマン型]]コンピュータがほとんどであるが、[[量子コンピュータ]]や[[DNAコンピュータ]]などのノイマン型でないコンピュータも研究され、[[1990年代]]後半から画像解析分野などで実用化されている。例を挙げるならば、地球観測プラットフォーム技術衛星の映像解析など地球自然環境調査などの分野で利用されている。 | ||
+ | |||
+ | ==語源== | ||
+ | ''computer'' という語は元々は算術[[計算]]を行う人を指す言葉だった。この用法は(アメリカやイギリスでは非常に稀になりつつあるが)今でも有効である。[[オックスフォード英語辞典]]第2版(OED2)では、この語が機械的な計算装置を指す言葉として使われた最初の年を[[1897年]]と記している。[[1946年]]までには、異なるタイプの計算機を区別するために、OED2によって''computer''に付く修飾語句がいくつか導入されている。これらの修飾語の中には ''analogue''、''digital''、''electronic''といった語が含まれている。しかし様々な引用文から、1946年以前にこれらの語が既に使われていたことは明らかである。 | ||
+ | |||
+ | computer の定義や訳、その他の詳細な語源はWiktionaryの[http://en.wiktionary.org/wiki/Computer Computer]の項目を参照のこと。 | ||
+ | |||
+ | ==コンピュータの仕組み== | ||
+ | [[1940年]]に最初の電子式汎用計算機が登場して以来、コンピュータに使われる技術は劇的に変化してきたが、ほとんどのコンピュータは今なおノイマン型アーキテクチャを採用している。 | ||
+ | |||
+ | ノイマン型コンピュータの機能は原理的には非常に素直なものである。典型的には、クロックサイクルごとにコンピュータは命令とデータをメモリから取り出す (fetch)。取り出した命令を実行し、結果を格納し、次の命令を取り出す。「停止」の命令に遭遇するまでこの手順が繰り返される。 | ||
+ | |||
+ | フォン・ノイマン型アーキテクチャではコンピュータは次の4つの主要な部分からなるとされる。すなわち、'''算術論理ユニット'''(Arithmetic and Logic Unit, '''[[ALU]]''')、'''制御回路'''、'''記憶装置([[メモリ]])'''、'''入出力装置'''(まとめて '''I/O''' と呼ぶ)である。これらの部分は'''[[バス (コンピュータ)|バス]]'''と呼ばれる導線の束で相互に接続され、通常はタイマまたは'''[[クロック]]'''によって動作する(別のイベントが制御回路を動作させる場合もある)。 | ||
+ | |||
+ | ===命令=== | ||
+ | {{Main|命令 (コンピュータ)|機械語}} | ||
+ | コンピュータの[[命令 (コンピュータ)|命令]]は人間の言語に比べるとずっと貧弱である。コンピュータは限られた数の明確で単純な命令しか持っていないが、曖昧さは全くない。多くのコンピュータで使われている命令の典型的な例としては、「5番地のメモリの中身をコピーしてそのコピーを10番地に書け」とか「7番地の中身を13番地の中身に加算して結果を20番地に書け」とか「999番地の中身が0なら次の命令は30番地にある」といったものである。 | ||
+ | |||
+ | コンピュータの内部では命令は二進コード、つまり2を底とする計数法で表現される。例えば、[[インテル]]系の[[マイクロプロセッサ]]で使われるあるコピー命令のコードは10110000である。ある特定のコンピュータがサポートする特定の[[命令セット]]をそのコンピュータの'''[[機械語]]'''(machine language)と呼ぶ。 | ||
+ | |||
+ | 実際には、人間がコンピュータへの命令を機械語で直接書くことは通常はなく、高水準の[[プログラミング言語]]を使う。プログラミング言語で書かれた命令が、[[インタープリタ]]や[[コンパイラ]]と呼ばれる特別なコンピュータプログラムによって自動的に機械語に翻訳されて実行される。プログラミング言語の中には[[アセンブリ言語]]([[低級言語|低水準言語]])のように、機械語に非常に近いレベルで対応付けられるものもある。逆に [[Prolog]] のような[[高級言語|高水準言語]]は計算機の実際の演算の詳細とは完全に切り分けるという絶対原理に基づいている。 | ||
+ | |||
+ | === 記憶装置(メモリ) === | ||
+ | {{Main|記憶装置|主記憶装置}} | ||
+ | [[記憶装置|メモリ]]は番地を付けられたセルの列で、各々のセルには小さな量の情報が格納される。この情報はある場合にはコンピュータに何をすべきかを教える命令である。また、セルにはコンピュータが命令を実行する対象となるデータも格納される。全てのセルはこのどちらかを格納し、ある時はデータを、またある時は命令を格納する。 | ||
+ | |||
+ | 一般的には、メモリセルの中身はいつでも書き換えられる。すなわち石板というよりは落書き帳に近い。 | ||
+ | |||
+ | 各セルのサイズとセルの数はコンピュータごとに大きく異なる。また、メモリを実装する技術も時代とともに大きく変化してきた。最初は電磁[[リレー]]が、続いて水銀の入った管([[水銀遅延線]])やバネに[[音波]]を通す方法が使われた。次には[[永久磁石]]の配列([[磁気コアメモリ]])や[[トランジスタ]]が使われた。現在では1つの半導体チップの上に数百万個の[[コンデンサ]]とトランジスタを集積した[[集積回路]]([[Dynamic Random Access Memory|DRAM]])が主に使われている。 | ||
+ | |||
+ | ===演算処理(プロセッサ)=== | ||
+ | {{Main|演算論理装置}} | ||
+ | 算術論理演算ユニット(ALU)は算術演算(加算・減算など)のような基本的な演算やAND、OR、NOTといった[[論理演算]]、比較演算(2つのバイトの中身が等しいかどうかの比較など)、シフト演算などを行う装置である。コンピュータの中で真の仕事(情報処理)を行う部分と言える。 | ||
+ | |||
+ | ===制御=== | ||
+ | {{Main|制御装置}} | ||
+ | [[制御装置|制御ユニット]]はメモリの中でどのバイトがコンピュータが現在実行中の命令を格納しているかを追いかけ、どの命令を実行すべきかを ALU に教え、実行に必要な情報をメモリから受け取り、実行結果を適切なメモリ位置に運ぶといった仕事をする。一度これらの仕事を終えると、制御ユニットは次の命令に飛ぶ。(次の命令は普通、次のメモリ番地に位置しているが、命令がジャンプ命令の場合には別の場所にある。) | ||
+ | |||
+ | メモリを参照する際に、現在の命令はメモリ内で関連する番地を指定するために様々なアドレッシングモードを使う場合がある。コンピュータの[[マザーボード]]の中には2つまたはそれ以上のプロセッサをサポートするものもある。コンピュータ[[サーバ]]では2つまたは複数のプロセッサを使うのが一般的である。 | ||
+ | |||
+ | ===入出力=== | ||
+ | {{Main|入出力}} | ||
+ | <!--中央の茶色い部分の内部にCPUの機能を果たす集積回路を内蔵している。周辺の金色の部分は他の回路と接続するための端子]] ---間違い?--> | ||
+ | [[入出力]](Input/Outputを略してI/Oとも言う)はコンピュータが外の世界から情報を得たり、計算結果を外に送り返したりすることを可能にするためのものである。外部から見て、コンピュータに情報を送ることを入力、逆にコンピュータから情報を得ることを出力という。 | ||
+ | |||
+ | 入出力には、入出力インターフェースを介して、入出力装置(I/O装置)が接続される。入出力装置としては例えば、[[キーボード (コンピュータ)|キーボード]]、[[マウス (コンピュータ)|マウス]]、[[スキャナ]]、[[ディスプレイ (コンピュータ)|モニタ]]や[[プリンタ]]、[[磁気ディスク装置]]、[[光学ドライブ]]装置などといった馴染み深いものから、[[3次元ディスプレイ]]や[[データグローブ]]といったものまで、幅広いものが存在する。 | ||
+ | |||
+ | 入出力装置は、主として入力を得るためのもの(キーボード、スキャナなど)、出力するためのもの(モニタ、プリンタなど)、入力と出力を兼ね備え情報を蓄積して後からそれを読み出すことのできるもの(磁気ディスク装置など)に大別することができる。 | ||
+ | <!-- 必要? | ||
+ | 全ての入力装置に共通しているのは、これらの装置はあるタイプの情報を、デジタルコンピュータシステムが処理できるデータへと[[符号化]](変換)するということである。もう一方の出力装置はデータをコンピュータのユーザが理解できる情報へと[[復号]]する。この意味で、デジタルコンピュータシステムはデータ処理システムの一例である。 | ||
+ | --> | ||
+ | |||
+ | ===アーキテクチャ=== | ||
+ | {{Main|コンピュータ・アーキテクチャ}} | ||
+ | 現代のコンピュータではALUと制御ユニットを'''中央処理装置'''('''[[CPU]]''' ;central processing unit)と呼ばれる一つの集積回路にまとめている。典型的には、コンピュータのメモリは数個の小さな集積回路の形で CPU の近くに配置する。コンピュータの質量の圧倒的大部分を占めているのは電源装置のような付属システムかあるいは入出力装置である。 | ||
+ | |||
+ | 大型のコンピュータでは、上記のようなモデルとは違って複数のCPUと制御ユニットが同時に動いているものもある。さらに、主に研究用途や科学計算に使われるコンピュータでは上に書いたモデルとは大きく異なっている。しかしこういったタイプのコンピュータはプログラミングの方式が標準化されていないため、商用目的の機種にはほとんど見られない。 | ||
+ | |||
+ | === プログラム === | ||
+ | {{Main|プログラム (コンピュータ)}} | ||
+ | [[プログラム (コンピュータ)|コンピュータプログラム]]は単にコンピュータに実行させる命令の大きなリストである。場合によってはデータの表が付属することもある。現在でも1行~数1000行程度のプログラムが用いられているが、ワープロソフトやOSなどのコンピュータプログラムは数百万行の命令からなる。これらの命令の多くは繰り返し実行される。2003年時点での典型的なPCは1秒間に20~30億個の命令を実行できる。コンピュータのこのような並外れた能力は、複雑な命令を実行できる能力に由来するものではない。むしろ、コンピュータは'''[[プログラマ]]'''と呼ばれる人々によって組まれた何百万もの単純な命令を実行しているのである。プログラムごとに全てを新規に書き下すことは効率が悪いため、画面に点を描くといったよく使われる仕事を行う命令のセット([[ライブラリ]])が多数用意されている。 | ||
+ | |||
+ | 今日では、ほとんどのコンピュータは同時にいくつものプログラムを実行するように見える。これは通常、[[マルチタスク]]と呼ばれている。実際には、CPUはあるプログラムの命令を実行した後、短い時間の後でもう一つのプログラムに切り替えてその命令を実行している。この短い時間の区切りをタイムスライスと呼ぶ。これによって、複数のプログラムがCPU時間を共有して同時に実行されるように見える。これは動画が実は静止画のフレームの短い連続で作られているのと似ている。このタイムシェアリングは通常、オペレーティングシステムというプログラムで制御されている。 | ||
+ | |||
+ | ==== オペレーティングシステム==== | ||
+ | {{Main|オペレーティングシステム}} | ||
+ | 具体的に処理すべき作業の有無によらず、コンピュータに自らの演算資源を管理し「ユーザーの指示を待つ」という動作を取らせるためにさえ、ある種のプログラムを必要とする。典型的なコンピュータでは、このプログラムは'''[[オペレーティングシステム]]'''('''Operating System = OS''')と呼ばれている。オペレーティングシステムをはじめとする、コンピュータを動作させるのに必要となるソフトウェアを全般に、「基本ソフト([[基本ソフトウェア]])」「[[システムソフトウェア]]」と呼ぶ。 | ||
+ | |||
+ | コンピュータを動作するためオペレーティングシステムは、ユーザー、もしくは他のプログラムからの要求に応じて[[プログラム (コンピュータ)|プログラム]](この意味では、[[アプリケーションソフトウェア]]もしくは単に[[アプリケーション]]という用語も使用される。[[ソフトウェア]]という用語も似た意味合いだが、これはプログラム一般を指すより広い概念である。)をメモリー上にロードし、プログラムからの要求に応じていつ、どの[[リソース]](メモリやI/O)をそのプログラムに割り当てるかを決定する。 | ||
+ | |||
+ | オペレーティングシステムはハードウェアを抽象化した層を提供し、他のプログラムがハードウェアにアクセスできるようにする。例えば[[デバイスドライバ]]と呼ばれるコードがその例である。これによってプログラマは、コンピュータに接続された全ての電子装置について、その奥深い詳細を知る必要なくそれらの機械を使うプログラムを書くことができる。また、[[ライブラリ]]と呼ばれる再利用可能な多くのプログラム群を備え、プログラマは自ら全てのプログラムを書くことなく、自らのプログラムに様々な機能を組み込むことができる。 | ||
+ | |||
+ | ハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化された[[ユーザインターフェイス]]を兼ね備えている。かつては[[キャラクターユーザインターフェース]]のみが提供されていたが、1970年代に[[アラン・ケイ]]らが[[Dynabook]]構想を提唱、[[暫定Dynabook]]と呼ばれる[[alto]]と[[smalltalk]]による[[グラフィカルユーザインターフェース]]環境を実現した。残念ながら暫定Dynabookは当時の[[ゼロックス]]の首脳陣の判断により製品化されなかった(ゼロックスより発売されたGUI搭載のシステム[[Xerox Star]]は暫定Dynabookとは別系統のプロジェクトに由来する)が、この影響を受け開発された[[アップルコンピュータ]]社の [[Lisa]]や[[Macintosh]]、[[マイクロソフト]]社の[[Microsoft Windows|Windows]]の発売、普及により、[[グラフィカルユーザインターフェース]]が一般的にも普及することとなった。 | ||
+ | |||
+ | 現在、デスクトップコンピュータ用として最も普及しているOSは[[マイクロソフト]]社の[[Microsoft Windows|Windows]]である。 | ||
+ | |||
+ | 世間に普及するコンピュータを台数を基準として見た場合、そのほとんどはデスクトップコンピュータとして存在しておらず、携帯電話や炊飯器などの電気製品、各種の測定機器、乗用車や工作機械などの装置に組み込まれた、非常に小さく安価なコンピュータとして実装されている。これらを[[組み込みシステム]]と呼ぶ。一般に[[組み込みオペレーティングシステム|組み込みOS]](embedded OS)と呼ばれる専用のOSを用いる。TRONプロジェクトの[[ITRON]]、米WindRiver社の[[VxWorks]]、米Symbian社の[[Symbian OS]]、米LinuxWorks社の[[Lynx (RTOS)|LynxOS]]などが利用されている。ただし、近年は開発期間の短縮などの目的で、WindowsやLinuxといったデスクトップコンピュータで使われているOSと同系統のOSを搭載する場合もある。また、小規模な組み込みシステムのなかには、明確なOSを内蔵していないものも多い。 | ||
+ | |||
+ | == コンピュータの歴史 == | ||
+ | *[[紀元前3000年]]頃に[[古代バビロニア]]で[[数字]]が誕生し[[10進法]]が定められる。 | ||
+ | *[[紀元前2000年]]頃に[[古代バビロニア]]で手動式デジタルコンピュータの一種である[[そろばん]]が発明される。([[古代ギリシア]]では[[紀元前300年]]頃に伝わって来たとされており、日本では西暦[[1500年]]頃の[[室町時代]]に[[明]]から伝わって来たといわれる) | ||
+ | * [[1620年]] イギリスのガンターが、[[計算尺]]の原型となる対数尺を発明。 | ||
+ | * [[1623年]]頃、[[ウィルヘルム・シッカート]]が、[[ネイピアの骨|ネピアの骨]]を応用した、乗算と加減算を行なえる、歯車式の計算機を作った。加減算に関しては繰り上がりが出来たが、乗算に関しては繰り上がりが出来なかった。 | ||
+ | * [[1642年]] [[ブレーズ・パスカル]]がピン歯車式計算機(加算機)である[[歯車式計算機#パスカルの計算機|パスカリーヌ]]を開発。約50台が作成された。 | ||
+ | * [[1664年]] [[ゴットフリート・ライプニッツ]]がパスカルの加算機をもとに[[歯車式計算機#ライプニッツの計算機|乗算機]]を作成。その後の60年間に約1500台が販売された。 | ||
+ | * [[1698年]] [[ゴットフリート・ライプニッツ|ライプニッツ]]が二進法を発見。 | ||
+ | * [[1822年]] [[解析機関]]の設計者[[チャールズ・バベッジ]]が第1階差機関の実験モデルを作成。 | ||
+ | * [[1823年]] バベッジによる階差機関の開発開始。[[Image:BabbageDifferenceEngine.jpg|thumb|バベッジの階差機関は彼の死後に完成した]] | ||
+ | * [[1833年]] 追加予算が打ち切られ、階差機関の開発が中止となる。 | ||
+ | * [[1843年]] シュウツ親子による階差機関の完成。 | ||
+ | * [[1854年]] [[ジョージ・ブール]]が[[ブール代数]]を発見する。 | ||
+ | * [[1871年]] バベッジが実現を見ぬまま死去。解析機関のオペレータである[[エイダ・ラブレス]]は世界最初のプログラマとされる。 | ||
+ | * [[1889年]] [[ホレリス]]が[[パンチカード]]方式の自動集計機を実現。[[画像:IBMカード穿孔機.JPG|thumb|パンチカード穿孔機]] | ||
+ | * [[1905年]] [[ジョン・フレミング]]が[[二極真空管]](後の[[ダイオード]])を発明。 | ||
+ | * [[1906年]] [[リー・ド・フォレスト]]が[[三極真空管]]を発明。 | ||
+ | * [[1936年]] [[アラン・チューリング]]が万能計算機械([[チューリングマシン]])の論文を発表。 | ||
+ | * [[1938年]] ドイツの[[コンラッド・ツーゼ]]が、自宅で機械式の計算機V1(後にZ1と改名)を作成。 | ||
+ | * [[1939年]] ツーゼが、Z1をベースに、演算部がリレー、記憶部が機械式のテスト用の計算機、Z2を作成。 | ||
+ | * [[1940年]] ツーゼが、Z2をベースに、全リレー式の、Z3を作成。Z3はプログラム可能な最初の計算機である。 | ||
+ | * [[1942年]] アタナソフとベリーが電子素子を使って演算処理をする世界初の機械 [[アタナソフ&ベリー・コンピュータ|ABC]]を作成。 | ||
+ | * [[1943年]] ローレンツSZ42暗号機によるドイツ軍の[[暗号]]を解読するため、イギリスで[[Colossus]]が発明される。 | ||
+ | * [[1944年]] ツーゼがZ4を作成。メモリ部分は機械式に戻る。 | ||
+ | * [[1945年]] [[フォン・ノイマン]]が[[ストアードプログラム方式]]を提唱。 | ||
+ | * [[1946年]] [[ペンシルバニア大学]]で[[ENIAC]]が完成。[[Image:Eniac.jpg|right|thumb|17468本の真空管を使って作られたENIAC]] | ||
+ | * [[1947年]] AT&T[[ベル研究所]]の[[ウォルター・ブラッテン]]、[[ジョン・バーディーン]]、[[ウィリアム・ショックレー]]らが[[トランジスタ]]を発明。 | ||
+ | * [[1948年]] マンチェスター大学のウィリアムスとキルバーンが、初のプログラム内蔵式のコンピュータ[[The Baby]]を発明。 | ||
+ | * [[1951年]] [[レミントンランド]]社が初めて[[UNIVAC I]]を商品化。 | ||
+ | * [[1952年]] | ||
+ | **米[[IBM]]社が初の商用のプログラム内蔵式コンピュータ[[IBM 701]]を発売。 | ||
+ | **日本初のデジタル式リレー計算機「[[ETL Mark I]]」を[[通産省]]工業技術院電気試験所(現:[[産業技術総合研究所]])が開発。 | ||
+ | * [[1956年]] | ||
+ | ** 初の高級プログラミング言語[[FORTRAN]]が誕生。 | ||
+ | ** 日本初の電子計算機「[[FUJIC]]」を[[富士フイルム]]社が開発。レンズの設計用であった。 | ||
+ | ** アメリカ合衆国[[ブルックヘブン国立研究所]]のウィリアム・ヒギンボーサムが、アナログ演算機と[[オシロスコープ]]を用いた『[[Tennis for Two]]』を開発。 | ||
+ | **米IBM社が初の[[ハードディスクドライブ]]を発売。5MBであった。 | ||
+ | * [[1958年]] 米[[テキサス・インスツルメンツ|Texas Instruments]]社の[[ジャック・キルビー|キルビー]]が[[集積回路]](IC)を発明。 | ||
+ | * [[1960年]] 米[[DEC|ディジタル・イクイップメント]]社が、世界初のミニコンピュータ[[PDPシリーズ|PDP-1]]を発売。 | ||
+ | * [[1961年]] IBM、[[IBM 7030]]を発売。 | ||
+ | * [[1962年]] PDP-1上で稼動するデモンストレーションプログラムとして、世界初の[[シューティングゲーム]]とされている「[[スペースウォー!]]」が開発される。 | ||
+ | * [[1964年]] | ||
+ | **[[IBM]]社が、[[汎用コンピュータ]]である[[System/360]]を発売。 | ||
+ | **[[コントロール・データ・コーポレーション]]、[[CDC 6600]]を製造開始。1969年まで世界最高速の地位にあり、世界で初めて成功した[[スーパーコンピュータ]]とも言われる。 | ||
+ | * [[1967年]] [[IBM]]社が[[フロッピーディスク]]を開発。 | ||
+ | * [[1968年]] [[ダグラス・エンゲルバート]]が、[[マウス (コンピュータ)|マウス]]や[[ウインドウ]]の概念を発表。 | ||
+ | * [[1969年]] 後に[[インターネット]]の母体となる[[アーパネット]]が運用開始。[[UNIX]]オペレーティングシステムの開発が始まる。 | ||
+ | * [[1971年]] 3月、[[インテル (企業)|米Intel社]]が世界最初の4bitのマイクロプロセッサ[[Intel 4004|i4004]]を開発。 | ||
+ | * [[1972年]] [[アタリ (企業)|アタリ]]社、業務用ゲーム機「PONG」(ポン)を発売。続いて家庭用ゲーム機「ODYSSEY」(オデッセイ)を発売。 | ||
+ | * [[1973年]] | ||
+ | ** 米[[ゼロックス|Xerox]]の[[パロ・アルト研究所]]において、[[チャック・サッカー]]が [[Alto]]を製作。[[アラン・ケイ]]らはこれを用い、世界初の本格的GUIを装備した[[暫定Dynabook]]環境を構築。 | ||
+ | ** 11月に[[ケン・トンプソン]]と[[デニス・リッチー]]が[[パデュー大学]]で行なわれたthe Symposium on Operating Systems PrinciplesでUNIXに関する最初の論文を発表。 | ||
+ | * [[1974年]] | ||
+ | **4月、[[インテル (企業)|米国intel社]]が8bitのマイクロプロセッサ[[Intel 8080|i8080]]を発表。10 月に発売された[[ビジコン]]の電卓141-PFに搭載される。 | ||
+ | ** [[ゲイリー・キルドール]]が8ビットCPU(8080)用のディスクオペレーティングシステム、[[CP/M]]を開発。 | ||
+ | * [[1975年]] | ||
+ | ** 4月、[[ビル・ゲイツ]]が[[マイクロソフト|Microsoft]]社を設立。同年9月にi8080用のBASICインタプリタ発売。 | ||
+ | ** [[クレイ|クレイ・リサーチ]]社、[[Cray-1]]を発表。[[スーパーコンピュータ]]の代名詞となる。 | ||
+ | ** 米[[MITS]]社が、世界初の一般消費者向けマイクロコンピュータ[[Altair 8800]]を発売。主に組み立てキットとして販売された。 | ||
+ | ** [[ジョン・コック]]の統括のもとで、[[RISC]]の概念に基づくマイクロプロセッサ[[IBM 801]]の開発が行われる。 | ||
+ | * [[1977年]] | ||
+ | ** [[ビル・ジョイ]]が開発した1[[BSD]]が初めて配布される。 | ||
+ | ** [[アップルコンピュータ]]社が、パーソナルコンピュータ[[Apple II]]を発売。 | ||
+ | * [[1978年]] [[シャープ]]が日本で初めての国産マイコンキット[[MZ-80K]]を発売。 | ||
+ | * [[1980年]] [[CERN]]の[[ティム・バーナーズ=リー]]が、WorldWideWebの元となるEnquireを開発。 | ||
+ | * [[1981年]] | ||
+ | ** [[IBM]]社が[[MS-DOS|PC-DOS]]を搭載したパーソナルコンピュータ[[PC/AT#IBM-PC|IBM-PC]]を発売。 | ||
+ | ** [[1981年]] [[NEC]]社が[[PC-9801]]を発売。 | ||
+ | * [[1982年]] 米[[サン・マイクロシステムズ]]社がTCP/IPを採用したワークステーションを発売。 | ||
+ | * [[1983年]] | ||
+ | **[[リチャード・ストールマン]]が[[GNU]]プロジェクトを開始。 | ||
+ | **[[任天堂]]、[[ファミリーコンピュータ]]発売。 | ||
+ | * [[1984年]] | ||
+ | ** [[アップルコンピュータ]]社が[[Macintosh]]を発売。 | ||
+ | ** [[IBM]]社が[[PC/AT]]を発売。[[ATバス]]、[[VGA]]などの技術がパソコンの世界標準規格の基礎となる。 | ||
+ | **[[坂村健]]によって[[TRON (コンピュータ)|TRON]]が提唱される。 | ||
+ | * [[1985年]] | ||
+ | **アップルコンピュータ、[[LaserWriter]]を発売。[[ページ記述言語]]として[[PostScript]]を採用した[[レーザープリンタ]]で、ページレイアウトソフト「[[Aldus PageMaker|PageMaker]]」とともに、[[DTP]]の時代を切開く。 | ||
+ | ** [[マイクロソフト]]社が最初の[[Microsoft Windows|Windows]]製品である[[Microsoft Windows 1.0|Windows1.0]]を発売。 | ||
+ | *[[1986年]] [[東芝]]が世界初のラップトップパソコン[[J-3100]]を開発・商品化。 | ||
+ | * [[1987年]] 3月、シャープが[[X68000]]を発売。 | ||
+ | * [[1988年]] | ||
+ | ** [[NeXT|ネクスト・コンピュータ]]社が[[NEXTSTEP]]を搭載したNeXTキューブを発売。 | ||
+ | ** [[日本電気ホームエレクトロニクス]]、[[CD-ROM²]]を発売。世界で初めて[[CD-ROM]]を搭載したコンピュータ(ゲーム機)用周辺機器であった。 | ||
+ | *[[1989年]] [[東芝]]が世界初のノートパソコン[[DynaBook]]を発売。 | ||
+ | * [[1991年]] | ||
+ | ** [[リーナス・トーバルズ]]がスクラッチビルドによるUNIXライクなOSカーネル[[Linux]]を発表。 | ||
+ | ** [[CERN]]の研究員[[ティム・バーナーズ=リー]]が[[World Wide Web]]プロジェクトを発表する。 | ||
+ | * [[1993年]] | ||
+ | ** [[NetBSD]]・[[FreeBSD]]の発表。 | ||
+ | **[[Webブラウザ]]・[[NCSA Mosaic]]公開。[[World Wide Web|WWW]]の普及が始まる。 | ||
+ | * [[1994年]] [[ソニー・コンピュータエンタテインメント]]、[[プレイステーション]]を発売。 | ||
+ | * [[1995年]] マイクロソフト社が[[Microsoft Windows 95|Windows 95]]を発売。 | ||
+ | * [[1996年]] サン・マイクロシステムズ社により、[[Java (プログラミング言語)|Java]]の開発環境を公式にリリースされる。 | ||
+ | * [[1997年]] チェス専用スーパーコンピュータ[[ディープ・ブルー]]がチェス世界チャンピオン[[ガルリ・カスパロフ]]に勝利した。 | ||
+ | * [[1998年]] | ||
+ | ** アップルコンピュータ社が[[iMac]]を発売。 | ||
+ | ** マイクロソフト社が[[Microsoft Windows 98|Windows 98]]を発売。 | ||
+ | * [[2000年]] | ||
+ | ** [[ソニー・コンピュータエンタテインメント]]、[[プレイステーション2]]を発売。[[DVD]]の普及が本格的に始まる。 | ||
+ | ** マイクロソフト社が[[Microsoft Windows 2000|Windows 2000]]、[[Microsoft Windows Millennium Edition|Windows Me]]を発売。 | ||
+ | * [[2001年]] | ||
+ | **4月、アップルコンピュータ社が[[Mac OS X]]を発売。10月には[[iPod]]を発表。 | ||
+ | **マイクロソフト社が[[Microsoft Windows XP|Windows XP]]を発売。 | ||
+ | * [[2006年]] | ||
+ | **ソニー・コンピュータエンタテインメントが[[Blu-ray Disc]]ドライブを搭載した[[プレイステーション3]]を発売。 | ||
+ | **マイクロソフトが[[Microsoft Windows Vista]]を発売。ただし一般消費者向けには2007年のリリースとなる。 | ||
+ | |||
+ | ==コンピュータの種類== | ||
+ | *[[スーパーコンピュータ]](スパコン) | ||
+ | *[[メインフレーム]](大型汎用機、汎用機) | ||
+ | *[[ミニコンピュータ]](ミニコン) | ||
+ | *[[オフィスコンピュータ]](オフコン) | ||
+ | *[[ワークステーション]] | ||
+ | *[[マイクロコンピュータ]](マイコン) | ||
+ | *[[パーソナルコンピュータ]](パソコン) | ||
+ | *[[携帯情報端末|PDA]] | ||
+ | *[[グリッドコンピュータ]] | ||
+ | *[[組み込みシステム]] | ||
+ | *[[マイクロコントローラ]](組み込み用コンピュータ) | ||
+ | *[[電卓]] | ||
+ | *[[ポケットコンピュータ]] | ||
+ | *[[ニューロコンピュータ]] | ||
+ | *[[生体コンピュータ]] | ||
+ | *[[DNAコンピュータ]] | ||
+ | *[[量子コンピュータ]] | ||
+ | |||
+ | ==関連項目== | ||
+ | {{ウィキポータルリンク|コンピュータ|[[Image:Computer.svg|36px|ウィキポータル コンピュータ]]}} | ||
+ | {{Commonscat|Computers}} | ||
+ | {{Wiktionary|コンピュータ|コンピュータ}} | ||
+ | |||
+ | *総合索引に関する項目 | ||
+ | **[[コンピュータに関する人物一覧]] | ||
+ | **[[コンピュータ用語一覧]]、[[コンピュータ略語一覧]] | ||
+ | **[[プログラミング用語一覧]]、[[プログラミング用語 (分野別)]] | ||
+ | *[[ソフトウェア]]に関する項目 | ||
+ | **[[ファームウェア]]、[[プログラミング (コンピュータ)]] | ||
+ | **[[オペレーティングシステム]] | ||
+ | *[[ハードウェア]]に関する項目 | ||
+ | **[[情報機器]] | ||
+ | *研究に関する項目 | ||
+ | **[[計算機科学]] | ||
+ | **[[情報工学]] | ||
+ | **[[計算機工学]] | ||
+ | **[[人工知能]](AI) | ||
+ | *社会・諸問題に関する項目 | ||
+ | **[[コンピュータと社会]] | ||
+ | **[[コンピュータ・リテラシー]] | ||
+ | *ネットワークに関する項目 | ||
+ | **[[コンピュータ・ネットワーク]] | ||
+ | **[[オンライン]] | ||
+ | **[[データ通信]] | ||
+ | **[[Local Area Network|LAN]] | ||
+ | **[[インターネット]]、[[World Wide Web]] | ||
+ | |||
+ | ==外部リンク== | ||
+ | *[http://www.ipsj.or.jp/katsudou/museum/ コンピュータ博物館](情報処理学会) | ||
+ | *[http://www.microsoft.com/Japan/Terminology/query.asp?ui=L マイクロソフト単語帳] | ||
+ | *[http://e-words.jp/ 情報・通信事典 e-Words] | ||
+ | *[http://yougo.ascii24.com/ ASCII24 - アスキー デジタル用語辞典] | ||
+ | *[http://www.infonet.co.jp/ueyama/ip/resume.html 情報処理概論 講義資料(関西外国語大学 短期大学部 上山清二氏作成)] | ||
+ | *[http://iyoway.jp/comdic_top001.htm 【いよ式】『英語・中国語・日本語(3か国語版)必要最小限のコンピュータ用語辞典』] | ||
+ | *[http://shofu.pref.ishikawa.jp/shofu/sangyou/it/ 石川産業勃興記~IT産業編~] - 石川新情報書府 | ||
+ | |||
+ | [[Category:コンピュータ|*]] | ||
+ | [[Category:コンピュータ史|*こんひゆた]] | ||
+ | |||
+ | {{Link FA he}} | ||
+ | {{Link FA vi}} | ||
+ | |||
+ | [[af:Rekenaar]] | ||
+ | [[am:ኮምፒዩተር]] | ||
+ | [[an:Ordinador]] | ||
+ | [[ang:Circolwyrde]] | ||
+ | [[ar:حاسوب]] | ||
+ | [[ast:Computadora]] | ||
+ | [[ba:Компьютер]] | ||
+ | [[bar:Computer]] | ||
+ | [[be-x-old:Кампутар]] | ||
+ | [[bg:Компютър]] | ||
+ | [[bn:কম্পিউটার]] | ||
+ | [[bpy:কম্পিউটার]] | ||
+ | [[br:Urzhiataer]] | ||
+ | [[bs:Računar]] | ||
+ | [[ca:Ordinador]] | ||
+ | [[cs:Počítač]] | ||
+ | [[cu:Съмѣтател҄ь]] | ||
+ | [[cy:Cyfrifiadur]] | ||
+ | [[da:Computer]] | ||
+ | [[de:Computer]] | ||
+ | [[el:Ηλεκτρονικός υπολογιστής]] | ||
+ | [[en:Computer]] | ||
+ | [[eo:Komputilo]] | ||
+ | [[es:Computadora]] | ||
+ | [[et:Arvuti]] | ||
+ | [[eu:Ordenagailu]] | ||
+ | [[fa:رایانه]] | ||
+ | [[fi:Tietokone]] | ||
+ | [[fo:Telda]] | ||
+ | [[fr:Ordinateur]] | ||
+ | [[fur:Ordenadôr]] | ||
+ | [[fy:Kompjûter]] | ||
+ | [[ga:Ríomhaire]] | ||
+ | [[gd:Coimpiutaireachd]] | ||
+ | [[gl:Ordenador]] | ||
+ | [[got:𐍅𐌹𐍄𐌹𐍂𐌰𐌷𐌽𐌾𐌰𐌽𐌳𐍃]] | ||
+ | [[he:מחשב]] | ||
+ | [[hi:संगणक]] | ||
+ | [[hu:Számítógép]] | ||
+ | [[ia:Computator]] | ||
+ | [[id:Komputer]] | ||
+ | [[io:Ordinatro]] | ||
+ | [[is:Tölva]] | ||
+ | [[it:Computer]] | ||
+ | [[iu:ᖃᕋᓴᐅᔭᖅ/qarasaujaq]] | ||
+ | [[kn:ಗಣಕಯಂತ್ರ]] | ||
+ | [[ko:컴퓨터]] | ||
+ | [[ku:Komputer]] | ||
+ | [[la:Computatrum]] | ||
+ | [[lb:Computer]] | ||
+ | [[li:Computer]] | ||
+ | [[ln:Esálela]] | ||
+ | [[lo:ຄອມພິວເຕີ]] | ||
+ | [[lt:Kompiuteris]] | ||
+ | [[lv:Dators]] | ||
+ | [[mg:Mpikajy]] | ||
+ | [[mk:Компјутер]] | ||
+ | [[ml:കമ്പ്യൂട്ടര്]] | ||
+ | [[ms:Komputer]] | ||
+ | [[mt:Kompjuter]] | ||
+ | [[my:က္ဝန္ပ္ရူတာ]] | ||
+ | [[nap:Computer]] | ||
+ | [[nds:Reekner]] | ||
+ | [[nds-nl:Komputer]] | ||
+ | [[ne:कम्प्युटर]] | ||
+ | [[new:कम्प्युटर]] | ||
+ | [[nl:Computer]] | ||
+ | [[nn:Datamaskin]] | ||
+ | [[no:Datamaskin]] | ||
+ | [[nv:Béésh bee akʼeʼelchíhí tʼáá bí nitsékeesígíí]] | ||
+ | [[pa:ਕੰਪਿਊਟਰ]] | ||
+ | [[pl:Komputer]] | ||
+ | [[pt:Computador]] | ||
+ | [[qu:Antañiqiq]] | ||
+ | [[ro:Computer]] | ||
+ | [[ru:Компьютер]] | ||
+ | [[ru-sib:Шшотшык]] | ||
+ | [[scn:Computer]] | ||
+ | [[sco:Computer]] | ||
+ | [[simple:Computer]] | ||
+ | [[sk:Počítač]] | ||
+ | [[sl:Računalnik]] | ||
+ | [[so:Kumbuyuutar]] | ||
+ | [[sq:Kompjuteri]] | ||
+ | [[sr:Рачунар]] | ||
+ | [[sv:Dator]] | ||
+ | [[sw:Tarakishi]] | ||
+ | [[ta:கணினி]] | ||
+ | [[te:కంప్యూటరు]] | ||
+ | [[th:คอมพิวเตอร์]] | ||
+ | [[tl:Kompyuter]] | ||
+ | [[tr:Bilgisayar]] | ||
+ | [[uk:Комп'ютер]] | ||
+ | [[ur:شمارِندہ]] | ||
+ | [[uz:Kompyuter]] | ||
+ | [[vec:Computer]] | ||
+ | [[vi:Máy tính]] | ||
+ | [[wa:Copiutrece]] | ||
+ | [[yi:קאמפיוטער]] | ||
+ | [[zh:電子計算機]] | ||
+ | [[zh-min-nan:Tiān-náu]] | ||
+ | [[zh-yue:電腦]] |
2007年8月24日 (金) 21:19時点における版
電算機(でんさんき)は、広義には計算機、狭義には計算開始後は人手を介さずに計算終了まで動作する計算機。純理論的には、チューリングマシンと等価なものを指す。日常的にはパーソナルコンピュータ(パソコン)を指して「コンピュータ」と呼ぶことも多い。
なお、日本の法律上での呼称は「電子計算機」(でんしけいさんき)とされている。「電子頭脳」(でんしずのう、略称・電脳)という通称でも呼ばれる(人間の頭脳のアナロジーとして、またロボットの頭脳として捉えられる事による)。
ハードウェアの構造からデジタルコンピュータとアナログコンピュータに大別されるが、現在使われているほとんどのコンピュータはデジタルコンピュータであり、単にコンピュータという場合はこちらを指すことが多い。
デジタルコンピュータは、おもに半導体素子を用いて作られた論理回路の組み合わせによって構成される。演算の対象は通常2進数によって表され、桁数を増やしていけば原理的にいくらでも計算精度を上げられるが、ほとんどの演算では、桁数が多くなれば必要な計算が増えて遅くなる。
対してアナログコンピュータは、加減算や微積分などを行うアナログ電子回路を演算増幅器によって構成し、それらを組み合わせて所望の演算を行う。演算の対象は電圧によって表され、演算結果はオシロスコープやペンレコーダなどに出力される。入力の変化に対してほぼリアルタイムで出力が得られる特徴があり、各種シミュレーションなどに利用されたが、演算内容を変更するためには回路を変更する必要があり、得られる精度にも限界があるので、デジタルコンピュータの高速化に伴ってその役割を終えた。
古くはチャールズ・バベッジによって開発された階差機関などがデジタルコンピュータの元祖であった。現在のデジタルコンピュータは、ストアードプログラム方式で逐次処理をして駆動するノイマン型コンピュータがほとんどであるが、量子コンピュータやDNAコンピュータなどのノイマン型でないコンピュータも研究され、1990年代後半から画像解析分野などで実用化されている。例を挙げるならば、地球観測プラットフォーム技術衛星の映像解析など地球自然環境調査などの分野で利用されている。
目次
語源
computer という語は元々は算術計算を行う人を指す言葉だった。この用法は(アメリカやイギリスでは非常に稀になりつつあるが)今でも有効である。オックスフォード英語辞典第2版(OED2)では、この語が機械的な計算装置を指す言葉として使われた最初の年を1897年と記している。1946年までには、異なるタイプの計算機を区別するために、OED2によってcomputerに付く修飾語句がいくつか導入されている。これらの修飾語の中には analogue、digital、electronicといった語が含まれている。しかし様々な引用文から、1946年以前にこれらの語が既に使われていたことは明らかである。
computer の定義や訳、その他の詳細な語源はWiktionaryのComputerの項目を参照のこと。
コンピュータの仕組み
1940年に最初の電子式汎用計算機が登場して以来、コンピュータに使われる技術は劇的に変化してきたが、ほとんどのコンピュータは今なおノイマン型アーキテクチャを採用している。
ノイマン型コンピュータの機能は原理的には非常に素直なものである。典型的には、クロックサイクルごとにコンピュータは命令とデータをメモリから取り出す (fetch)。取り出した命令を実行し、結果を格納し、次の命令を取り出す。「停止」の命令に遭遇するまでこの手順が繰り返される。
フォン・ノイマン型アーキテクチャではコンピュータは次の4つの主要な部分からなるとされる。すなわち、算術論理ユニット(Arithmetic and Logic Unit, ALU)、制御回路、記憶装置(メモリ)、入出力装置(まとめて I/O と呼ぶ)である。これらの部分はバスと呼ばれる導線の束で相互に接続され、通常はタイマまたはクロックによって動作する(別のイベントが制御回路を動作させる場合もある)。
命令
コンピュータの命令は人間の言語に比べるとずっと貧弱である。コンピュータは限られた数の明確で単純な命令しか持っていないが、曖昧さは全くない。多くのコンピュータで使われている命令の典型的な例としては、「5番地のメモリの中身をコピーしてそのコピーを10番地に書け」とか「7番地の中身を13番地の中身に加算して結果を20番地に書け」とか「999番地の中身が0なら次の命令は30番地にある」といったものである。
コンピュータの内部では命令は二進コード、つまり2を底とする計数法で表現される。例えば、インテル系のマイクロプロセッサで使われるあるコピー命令のコードは10110000である。ある特定のコンピュータがサポートする特定の命令セットをそのコンピュータの機械語(machine language)と呼ぶ。
実際には、人間がコンピュータへの命令を機械語で直接書くことは通常はなく、高水準のプログラミング言語を使う。プログラミング言語で書かれた命令が、インタープリタやコンパイラと呼ばれる特別なコンピュータプログラムによって自動的に機械語に翻訳されて実行される。プログラミング言語の中にはアセンブリ言語(低水準言語)のように、機械語に非常に近いレベルで対応付けられるものもある。逆に Prolog のような高水準言語は計算機の実際の演算の詳細とは完全に切り分けるという絶対原理に基づいている。
記憶装置(メモリ)
メモリは番地を付けられたセルの列で、各々のセルには小さな量の情報が格納される。この情報はある場合にはコンピュータに何をすべきかを教える命令である。また、セルにはコンピュータが命令を実行する対象となるデータも格納される。全てのセルはこのどちらかを格納し、ある時はデータを、またある時は命令を格納する。
一般的には、メモリセルの中身はいつでも書き換えられる。すなわち石板というよりは落書き帳に近い。
各セルのサイズとセルの数はコンピュータごとに大きく異なる。また、メモリを実装する技術も時代とともに大きく変化してきた。最初は電磁リレーが、続いて水銀の入った管(水銀遅延線)やバネに音波を通す方法が使われた。次には永久磁石の配列(磁気コアメモリ)やトランジスタが使われた。現在では1つの半導体チップの上に数百万個のコンデンサとトランジスタを集積した集積回路(DRAM)が主に使われている。
演算処理(プロセッサ)
算術論理演算ユニット(ALU)は算術演算(加算・減算など)のような基本的な演算やAND、OR、NOTといった論理演算、比較演算(2つのバイトの中身が等しいかどうかの比較など)、シフト演算などを行う装置である。コンピュータの中で真の仕事(情報処理)を行う部分と言える。
制御
制御ユニットはメモリの中でどのバイトがコンピュータが現在実行中の命令を格納しているかを追いかけ、どの命令を実行すべきかを ALU に教え、実行に必要な情報をメモリから受け取り、実行結果を適切なメモリ位置に運ぶといった仕事をする。一度これらの仕事を終えると、制御ユニットは次の命令に飛ぶ。(次の命令は普通、次のメモリ番地に位置しているが、命令がジャンプ命令の場合には別の場所にある。)
メモリを参照する際に、現在の命令はメモリ内で関連する番地を指定するために様々なアドレッシングモードを使う場合がある。コンピュータのマザーボードの中には2つまたはそれ以上のプロセッサをサポートするものもある。コンピュータサーバでは2つまたは複数のプロセッサを使うのが一般的である。
入出力
入出力(Input/Outputを略してI/Oとも言う)はコンピュータが外の世界から情報を得たり、計算結果を外に送り返したりすることを可能にするためのものである。外部から見て、コンピュータに情報を送ることを入力、逆にコンピュータから情報を得ることを出力という。
入出力には、入出力インターフェースを介して、入出力装置(I/O装置)が接続される。入出力装置としては例えば、キーボード、マウス、スキャナ、モニタやプリンタ、磁気ディスク装置、光学ドライブ装置などといった馴染み深いものから、3次元ディスプレイやデータグローブといったものまで、幅広いものが存在する。
入出力装置は、主として入力を得るためのもの(キーボード、スキャナなど)、出力するためのもの(モニタ、プリンタなど)、入力と出力を兼ね備え情報を蓄積して後からそれを読み出すことのできるもの(磁気ディスク装置など)に大別することができる。
アーキテクチャ
現代のコンピュータではALUと制御ユニットを中央処理装置(CPU ;central processing unit)と呼ばれる一つの集積回路にまとめている。典型的には、コンピュータのメモリは数個の小さな集積回路の形で CPU の近くに配置する。コンピュータの質量の圧倒的大部分を占めているのは電源装置のような付属システムかあるいは入出力装置である。
大型のコンピュータでは、上記のようなモデルとは違って複数のCPUと制御ユニットが同時に動いているものもある。さらに、主に研究用途や科学計算に使われるコンピュータでは上に書いたモデルとは大きく異なっている。しかしこういったタイプのコンピュータはプログラミングの方式が標準化されていないため、商用目的の機種にはほとんど見られない。
プログラム
コンピュータプログラムは単にコンピュータに実行させる命令の大きなリストである。場合によってはデータの表が付属することもある。現在でも1行~数1000行程度のプログラムが用いられているが、ワープロソフトやOSなどのコンピュータプログラムは数百万行の命令からなる。これらの命令の多くは繰り返し実行される。2003年時点での典型的なPCは1秒間に20~30億個の命令を実行できる。コンピュータのこのような並外れた能力は、複雑な命令を実行できる能力に由来するものではない。むしろ、コンピュータはプログラマと呼ばれる人々によって組まれた何百万もの単純な命令を実行しているのである。プログラムごとに全てを新規に書き下すことは効率が悪いため、画面に点を描くといったよく使われる仕事を行う命令のセット(ライブラリ)が多数用意されている。
今日では、ほとんどのコンピュータは同時にいくつものプログラムを実行するように見える。これは通常、マルチタスクと呼ばれている。実際には、CPUはあるプログラムの命令を実行した後、短い時間の後でもう一つのプログラムに切り替えてその命令を実行している。この短い時間の区切りをタイムスライスと呼ぶ。これによって、複数のプログラムがCPU時間を共有して同時に実行されるように見える。これは動画が実は静止画のフレームの短い連続で作られているのと似ている。このタイムシェアリングは通常、オペレーティングシステムというプログラムで制御されている。
オペレーティングシステム
具体的に処理すべき作業の有無によらず、コンピュータに自らの演算資源を管理し「ユーザーの指示を待つ」という動作を取らせるためにさえ、ある種のプログラムを必要とする。典型的なコンピュータでは、このプログラムはオペレーティングシステム(Operating System = OS)と呼ばれている。オペレーティングシステムをはじめとする、コンピュータを動作させるのに必要となるソフトウェアを全般に、「基本ソフト(基本ソフトウェア)」「システムソフトウェア」と呼ぶ。
コンピュータを動作するためオペレーティングシステムは、ユーザー、もしくは他のプログラムからの要求に応じてプログラム(この意味では、アプリケーションソフトウェアもしくは単にアプリケーションという用語も使用される。ソフトウェアという用語も似た意味合いだが、これはプログラム一般を指すより広い概念である。)をメモリー上にロードし、プログラムからの要求に応じていつ、どのリソース(メモリやI/O)をそのプログラムに割り当てるかを決定する。
オペレーティングシステムはハードウェアを抽象化した層を提供し、他のプログラムがハードウェアにアクセスできるようにする。例えばデバイスドライバと呼ばれるコードがその例である。これによってプログラマは、コンピュータに接続された全ての電子装置について、その奥深い詳細を知る必要なくそれらの機械を使うプログラムを書くことができる。また、ライブラリと呼ばれる再利用可能な多くのプログラム群を備え、プログラマは自ら全てのプログラムを書くことなく、自らのプログラムに様々な機能を組み込むことができる。
ハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化されたユーザインターフェイスを兼ね備えている。かつてはキャラクターユーザインターフェースのみが提供されていたが、1970年代にアラン・ケイらがDynabook構想を提唱、暫定Dynabookと呼ばれるaltoとsmalltalkによるグラフィカルユーザインターフェース環境を実現した。残念ながら暫定Dynabookは当時のゼロックスの首脳陣の判断により製品化されなかった(ゼロックスより発売されたGUI搭載のシステムXerox Starは暫定Dynabookとは別系統のプロジェクトに由来する)が、この影響を受け開発されたアップルコンピュータ社の LisaやMacintosh、マイクロソフト社のWindowsの発売、普及により、グラフィカルユーザインターフェースが一般的にも普及することとなった。
現在、デスクトップコンピュータ用として最も普及しているOSはマイクロソフト社のWindowsである。
世間に普及するコンピュータを台数を基準として見た場合、そのほとんどはデスクトップコンピュータとして存在しておらず、携帯電話や炊飯器などの電気製品、各種の測定機器、乗用車や工作機械などの装置に組み込まれた、非常に小さく安価なコンピュータとして実装されている。これらを組み込みシステムと呼ぶ。一般に組み込みOS(embedded OS)と呼ばれる専用のOSを用いる。TRONプロジェクトのITRON、米WindRiver社のVxWorks、米Symbian社のSymbian OS、米LinuxWorks社のLynxOSなどが利用されている。ただし、近年は開発期間の短縮などの目的で、WindowsやLinuxといったデスクトップコンピュータで使われているOSと同系統のOSを搭載する場合もある。また、小規模な組み込みシステムのなかには、明確なOSを内蔵していないものも多い。
コンピュータの歴史
- 紀元前3000年頃に古代バビロニアで数字が誕生し10進法が定められる。
- 紀元前2000年頃に古代バビロニアで手動式デジタルコンピュータの一種であるそろばんが発明される。(古代ギリシアでは紀元前300年頃に伝わって来たとされており、日本では西暦1500年頃の室町時代に明から伝わって来たといわれる)
- 1620年 イギリスのガンターが、計算尺の原型となる対数尺を発明。
- 1623年頃、ウィルヘルム・シッカートが、ネピアの骨を応用した、乗算と加減算を行なえる、歯車式の計算機を作った。加減算に関しては繰り上がりが出来たが、乗算に関しては繰り上がりが出来なかった。
- 1642年 ブレーズ・パスカルがピン歯車式計算機(加算機)であるパスカリーヌを開発。約50台が作成された。
- 1664年 ゴットフリート・ライプニッツがパスカルの加算機をもとに乗算機を作成。その後の60年間に約1500台が販売された。
- 1698年 ライプニッツが二進法を発見。
- 1822年 解析機関の設計者チャールズ・バベッジが第1階差機関の実験モデルを作成。
- 1823年 バベッジによる階差機関の開発開始。
- 1833年 追加予算が打ち切られ、階差機関の開発が中止となる。
- 1843年 シュウツ親子による階差機関の完成。
- 1854年 ジョージ・ブールがブール代数を発見する。
- 1871年 バベッジが実現を見ぬまま死去。解析機関のオペレータであるエイダ・ラブレスは世界最初のプログラマとされる。
- 1889年 ホレリスがパンチカード方式の自動集計機を実現。
- 1905年 ジョン・フレミングが二極真空管(後のダイオード)を発明。
- 1906年 リー・ド・フォレストが三極真空管を発明。
- 1936年 アラン・チューリングが万能計算機械(チューリングマシン)の論文を発表。
- 1938年 ドイツのコンラッド・ツーゼが、自宅で機械式の計算機V1(後にZ1と改名)を作成。
- 1939年 ツーゼが、Z1をベースに、演算部がリレー、記憶部が機械式のテスト用の計算機、Z2を作成。
- 1940年 ツーゼが、Z2をベースに、全リレー式の、Z3を作成。Z3はプログラム可能な最初の計算機である。
- 1942年 アタナソフとベリーが電子素子を使って演算処理をする世界初の機械 ABCを作成。
- 1943年 ローレンツSZ42暗号機によるドイツ軍の暗号を解読するため、イギリスでColossusが発明される。
- 1944年 ツーゼがZ4を作成。メモリ部分は機械式に戻る。
- 1945年 フォン・ノイマンがストアードプログラム方式を提唱。
- 1946年 ペンシルバニア大学でENIACが完成。
- 1947年 AT&Tベル研究所のウォルター・ブラッテン、ジョン・バーディーン、ウィリアム・ショックレーらがトランジスタを発明。
- 1948年 マンチェスター大学のウィリアムスとキルバーンが、初のプログラム内蔵式のコンピュータThe Babyを発明。
- 1951年 レミントンランド社が初めてUNIVAC Iを商品化。
- 1952年
- 米IBM社が初の商用のプログラム内蔵式コンピュータIBM 701を発売。
- 日本初のデジタル式リレー計算機「ETL Mark I」を通産省工業技術院電気試験所(現:産業技術総合研究所)が開発。
- 1956年
- 初の高級プログラミング言語FORTRANが誕生。
- 日本初の電子計算機「FUJIC」を富士フイルム社が開発。レンズの設計用であった。
- アメリカ合衆国ブルックヘブン国立研究所のウィリアム・ヒギンボーサムが、アナログ演算機とオシロスコープを用いた『Tennis for Two』を開発。
- 米IBM社が初のハードディスクドライブを発売。5MBであった。
- 1958年 米Texas Instruments社のキルビーが集積回路(IC)を発明。
- 1960年 米ディジタル・イクイップメント社が、世界初のミニコンピュータPDP-1を発売。
- 1961年 IBM、IBM 7030を発売。
- 1962年 PDP-1上で稼動するデモンストレーションプログラムとして、世界初のシューティングゲームとされている「スペースウォー!」が開発される。
- 1964年
- IBM社が、汎用コンピュータであるSystem/360を発売。
- コントロール・データ・コーポレーション、CDC 6600を製造開始。1969年まで世界最高速の地位にあり、世界で初めて成功したスーパーコンピュータとも言われる。
- 1967年 IBM社がフロッピーディスクを開発。
- 1968年 ダグラス・エンゲルバートが、マウスやウインドウの概念を発表。
- 1969年 後にインターネットの母体となるアーパネットが運用開始。UNIXオペレーティングシステムの開発が始まる。
- 1971年 3月、米Intel社が世界最初の4bitのマイクロプロセッサi4004を開発。
- 1972年 アタリ社、業務用ゲーム機「PONG」(ポン)を発売。続いて家庭用ゲーム機「ODYSSEY」(オデッセイ)を発売。
- 1973年
- 1974年
- 4月、米国intel社が8bitのマイクロプロセッサi8080を発表。10 月に発売されたビジコンの電卓141-PFに搭載される。
- ゲイリー・キルドールが8ビットCPU(8080)用のディスクオペレーティングシステム、CP/Mを開発。
- 1975年
- 4月、ビル・ゲイツがMicrosoft社を設立。同年9月にi8080用のBASICインタプリタ発売。
- クレイ・リサーチ社、Cray-1を発表。スーパーコンピュータの代名詞となる。
- 米MITS社が、世界初の一般消費者向けマイクロコンピュータAltair 8800を発売。主に組み立てキットとして販売された。
- ジョン・コックの統括のもとで、RISCの概念に基づくマイクロプロセッサIBM 801の開発が行われる。
- 1977年
- ビル・ジョイが開発した1BSDが初めて配布される。
- アップルコンピュータ社が、パーソナルコンピュータApple IIを発売。
- 1978年 シャープが日本で初めての国産マイコンキットMZ-80Kを発売。
- 1980年 CERNのティム・バーナーズ=リーが、WorldWideWebの元となるEnquireを開発。
- 1981年
- 1982年 米サン・マイクロシステムズ社がTCP/IPを採用したワークステーションを発売。
- 1983年
- リチャード・ストールマンがGNUプロジェクトを開始。
- 任天堂、ファミリーコンピュータ発売。
- 1984年
- 1985年
- アップルコンピュータ、LaserWriterを発売。ページ記述言語としてPostScriptを採用したレーザープリンタで、ページレイアウトソフト「PageMaker」とともに、DTPの時代を切開く。
- マイクロソフト社が最初のWindows製品であるWindows1.0を発売。
- 1986年 東芝が世界初のラップトップパソコンJ-3100を開発・商品化。
- 1987年 3月、シャープがX68000を発売。
- 1988年
- ネクスト・コンピュータ社がNEXTSTEPを搭載したNeXTキューブを発売。
- 日本電気ホームエレクトロニクス、CD-ROM²を発売。世界で初めてCD-ROMを搭載したコンピュータ(ゲーム機)用周辺機器であった。
- 1989年 東芝が世界初のノートパソコンDynaBookを発売。
- 1991年
- リーナス・トーバルズがスクラッチビルドによるUNIXライクなOSカーネルLinuxを発表。
- CERNの研究員ティム・バーナーズ=リーがWorld Wide Webプロジェクトを発表する。
- 1993年
- NetBSD・FreeBSDの発表。
- Webブラウザ・NCSA Mosaic公開。WWWの普及が始まる。
- 1994年 ソニー・コンピュータエンタテインメント、プレイステーションを発売。
- 1995年 マイクロソフト社がWindows 95を発売。
- 1996年 サン・マイクロシステムズ社により、Javaの開発環境を公式にリリースされる。
- 1997年 チェス専用スーパーコンピュータディープ・ブルーがチェス世界チャンピオンガルリ・カスパロフに勝利した。
- 1998年
- アップルコンピュータ社がiMacを発売。
- マイクロソフト社がWindows 98を発売。
- 2000年
- ソニー・コンピュータエンタテインメント、プレイステーション2を発売。DVDの普及が本格的に始まる。
- マイクロソフト社がWindows 2000、Windows Meを発売。
- 2001年
- 4月、アップルコンピュータ社がMac OS Xを発売。10月にはiPodを発表。
- マイクロソフト社がWindows XPを発売。
- 2006年
- ソニー・コンピュータエンタテインメントがBlu-ray Discドライブを搭載したプレイステーション3を発売。
- マイクロソフトがMicrosoft Windows Vistaを発売。ただし一般消費者向けには2007年のリリースとなる。
コンピュータの種類
- スーパーコンピュータ(スパコン)
- メインフレーム(大型汎用機、汎用機)
- ミニコンピュータ(ミニコン)
- オフィスコンピュータ(オフコン)
- ワークステーション
- マイクロコンピュータ(マイコン)
- パーソナルコンピュータ(パソコン)
- PDA
- グリッドコンピュータ
- 組み込みシステム
- マイクロコントローラ(組み込み用コンピュータ)
- 電卓
- ポケットコンピュータ
- ニューロコンピュータ
- 生体コンピュータ
- DNAコンピュータ
- 量子コンピュータ
関連項目
外部リンク
- コンピュータ博物館(情報処理学会)
- マイクロソフト単語帳
- 情報・通信事典 e-Words
- ASCII24 - アスキー デジタル用語辞典
- 情報処理概論 講義資料(関西外国語大学 短期大学部 上山清二氏作成)
- 【いよ式】『英語・中国語・日本語(3か国語版)必要最小限のコンピュータ用語辞典』
- 石川産業勃興記~IT産業編~ - 石川新情報書府テンプレート:Link FA he
af:Rekenaar am:ኮምፒዩተር an:Ordinador ang:Circolwyrde ar:حاسوب ast:Computadora ba:Компьютер bar:Computer be-x-old:Кампутар bg:Компютър bn:কম্পিউটার bpy:কম্পিউটার br:Urzhiataer bs:Računar ca:Ordinador cs:Počítač cu:Съмѣтател҄ь cy:Cyfrifiadur da:Computer de:Computer el:Ηλεκτρονικός υπολογιστήςeo:Komputilo es:Computadora et:Arvuti eu:Ordenagailu fa:رایانه fi:Tietokone fo:Telda fr:Ordinateur fur:Ordenadôr fy:Kompjûter ga:Ríomhaire gd:Coimpiutaireachd gl:Ordenador got:𐍅𐌹𐍄𐌹𐍂𐌰𐌷𐌽𐌾𐌰𐌽𐌳𐍃 he:מחשב hi:संगणक hu:Számítógép ia:Computator id:Komputer io:Ordinatro is:Tölva it:Computer iu:ᖃᕋᓴᐅᔭᖅ/qarasaujaq kn:ಗಣಕಯಂತ್ರ ko:컴퓨터 ku:Komputer la:Computatrum lb:Computer li:Computer ln:Esálela lo:ຄອມພິວເຕີ lt:Kompiuteris lv:Dators mg:Mpikajy mk:Компјутер ml:കമ്പ്യൂട്ടര് ms:Komputer mt:Kompjuter my:က္ဝန္ပ္ရူတာ nap:Computer nds:Reekner nds-nl:Komputer ne:कम्प्युटर new:कम्प्युटर nl:Computer nn:Datamaskin no:Datamaskin nv:Béésh bee akʼeʼelchíhí tʼáá bí nitsékeesígíí pa:ਕੰਪਿਊਟਰ pl:Komputer pt:Computador qu:Antañiqiq ro:Computer ru:Компьютер ru-sib:Шшотшык scn:Computer sco:Computer simple:Computer sk:Počítač sl:Računalnik so:Kumbuyuutar sq:Kompjuteri sr:Рачунар sv:Dator sw:Tarakishi ta:கணினி te:కంప్యూటరు th:คอมพิวเตอร์ tl:Kompyuter tr:Bilgisayar uk:Комп'ютер ur:شمارِندہ uz:Kompyuter vec:Computer vi:Máy tính wa:Copiutrece yi:קאמפיוטער zh:電子計算機 zh-min-nan:Tiān-náu zh-yue:電腦