コンピュータ

算術演算や論理演算を実行するための汎用デバイス

コンピュータ: computer)は、広義には、計算やデータ処理を自動的に行う装置全般のことである[1]。今日では、特に断らない限りエレクトロニクスを用いたエレクトロニック・コンピュータ(: electronic computer、漢字表記では電子計算機)を指す[1]

コンピュータ
20世紀前半の真空管式コンピュータの真空管を交換する男性
IBM 360とその操作パネルが置かれたコンピュータルーム
Thinking Machines Connection Machine CM-5 Frostburg 2
NEC PC-9801
Amiga500
NASAのColumbia Supercomputer
デル PowerEdge Servers
AppleのG5。2006年にドレスデンで使われたWikipediaのサーバ。
デスクトップコンピュータ・表示ディスプレイ・キーボード
Macbook Air (2020年モデル。Apple M1搭載で、高性能で省電力。)
組み込みシステム
Raspberry Pi
コンピュータゲームのコンソールとコントローラ。
現代のスマートフォン
さまざまなコンピュータ。(1)20世紀前半の真空管式コンピュータ (2)IBM System/360(1964年-1970年代)。アーキテクチャと回路実装を明確に区別して作られた最初のコンピュータ。大成功しシリーズ化。その後のコンピュータに多大な影響を与えた。 (3) コネクションマシン(1980年代 - 1990年代)のCM5 Frostburg 2 (4)日本電気のPC-9801(1980年代 - 1990年代)、この時代の日本で最も普及した16bitパソコンであり2016年に重要科学技術史資料に選定された。(5)コモドールパソコンAmiga500(1987年)。 (6)NASAのスーパーコンピュータ Columbia(2004年) (7)ラックサーバ(DELL、PowerEdge、2006年) (8)Power Mac G5(2006年ドレスデンでWikipediaのサーバとして使われたもの) (9)2005年や2010年ころまではしばしば使われていたデスクトップ型コンピュータ (10)MacBook Air#MacBook Air (M1, 2020) (2020年のApple M1搭載モデル。高性能なのに省電力で、バッテリーで長時間使える。) (11)組み込みシステム (12) ARMプロセッサ搭載シングルボードコンピュータRaspberry Pi(2010年代-現在) (13)コンピュータゲームコンソール PlayStation 4とそのコントローラ (14)スマートフォンと呼ばれる電話・カメラ・GPS機能つき小型コンピュータ

「コンピュータ」とは、元は計算する人間の作業者を指したが、今では計算する装置あるいはシステムを指す。歴史的には、機械式のアナログやデジタルの計算機、電気回路によるアナログ計算機、リレー回路によるデジタル計算機、真空管回路によるデジタル計算機、半導体回路によるデジタル計算機などがある。

1970年代や1980年代頃まではコンピュータといえばアナログコンピューターも含めた[1]が、1990年代や2000年頃には一般には、主に電子回路による、デジタル方式でかつプログラム内蔵方式のコンピュータを指す状況になっていた。(広義の)演算を高速かつ大量に行えるため多用途であり、数値計算情報処理データ処理制御シミュレーション文書作成動画編集ゲーム仮想現実(VR)、画像認識人工知能などに用いられる。さらに近年では、大学や先端企業などで、量子回路(現在よく使われる電子回路とは異なるもの)を用いた量子コンピュータも研究・開発されている。

様々な種類があり、メインフレームスーパーコンピュータパーソナルコンピュータマイクロコンピュータ)などの他、さまざまな機器(コピー機、券売機、洗濯機、炊飯器、自動車など)に内蔵された組み込みシステムやそれから派生したシングルボードコンピュータもある。2010年代には板状でタッチスクリーンで操作するタブレット(- 型コンピュータ)、板状で小型で電話・カメラ・GPS機能を搭載したスマートフォンも普及した。

世界に存在するコンピュータの台数は次のようになっている。

コンピュータ同士を繋ぐネットワークは、1990年代に爆発的に普及して地球を覆うネットワークとなり、現在ではインターネットおよびそこに接続された膨大な数のコンピュータがITインフラとして様々なサービスを支えている。

表記・呼称

日本では「コンピュータ」や「コンピューター」という表記が多く使われている[注釈 1]

日本の法律用語、たとえば刑法著作権法等では「電子計算機でんしけいさんき」と表現される(英語のelectronic computerに相当)。これは電算機でんさんきと略される。なお「電算業務」「電算処理」「電算室」などの語には、「コンピュータの」という意味合いで「電算」という表現が織り込まれている。これについて、情報処理学会が日本における計算機の歴史について調査した際に、学会誌『情報処理』に掲載された富士通における歴史を述べた記事[5] によれば、電子計算機以前の頃、リレーによる計算機によりサービスを開始した同社が(「電子」じゃないけど、ということで)使い始めた言葉であろう、と書かれている。

中華人民共和国台湾などでは「電脳」が使われ、日本でも趣味的な分野では「電脳(でんのう)」が使われることがある。

1950年代では「人工頭脳」(じんこうずのう)[6] や「電子頭脳」(でんしずのう)とも表現した。

語源

英語の「computer」は算術演算を行う主体であるが、元々は計算する人を指した。この用法は今でも有効である。オックスフォード英語辞典第2版では、この語が計算する機械をも指すようになった最初の年を1286年と記している。同辞典では、1946年までに、「computer」の前に修飾語を付けることで異なる方式の計算機を区別するようになったとする。たとえば「analogue computer」「digital computer」「electronic computer」といった表現である。

計算手は、電子計算機と区別する場合はレトロニムで「human computer」とも呼ばれる。

概要

現在のコンピューターの主な構成要素は通常以下のように分類できる。

ハードウェア

5大装置。制御装置と演算装置(ALU)はCPU(茶色の部分)に収められている。中央下が記憶装置。左が入力装置で右が出力装置

現在のコンピューターの基本はノイマン型で、そのハードウェアコンピュータの5大装置とも呼ばれる装置(または機能)、すなわち制御装置演算装置記憶装置入力装置出力装置に分類できる[7][8][9][10][8]。このうち制御装置と演算装置の2つは通常は中央処理装置(CPU) に含まれる[7][8]。またメモリマップドI/Oでは記憶装置・入力装置・出力装置、タッチパネルでは入力装置・出力装置は一体化されている。これは大型コンピュータから小さなコンピュータまで共通で[8]、スマートフォンなども同様である[7]

制御装置は実行に必要な情報を記憶装置から読み出し、実行結果を記憶装置の中の正しい場所に収める。

演算装置は、加算・減算などの算術演算、AND・OR・NOTなどの論理演算、比較(2つの値が等しいかどうかなど)、ビットシフト等を行う装置である。

記憶装置(メモリ)はアドレスを附与された領域の列であり、各領域には命令又はデータが格納される。領域に格納された情報は書換可能か否か、揮発性(動力の供給を止めることで情報が失くなるという性質)を有つか否かは、記憶装置の実装方法に依存するため、通常はCPUが直接操作(アドレッシング)できて高速なDRAMなどの主記憶装置と、大量データを保存できるが低速な磁気ディスク装置ディスクドライブなどの補助記憶装置に分類できる。

入力装置と出力装置は、合わせて入出力装置とも呼ばれ、コンピュータが外部であるユーザーや他の機器との間の情報のやりとりを行う。現代のコンピュータで代表的な入力装置にはキーボードマウスマイクロフォンスキャナなどがあり、出力装置にはディスプレイスピーカープリンターなどがある。また入力装置と出力装置を兼ね備えたものには上述のタッチスクリーンの他にネットワークカードなどがある。

ソフトウェア

コンピュータのソフトウェアは多種類あり、大別する方法もいくつかあり、まずシステムソフトウェアアプリケーションソフト(応用ソフトウェア)の2つに分類しておいて前者のシステムソフトウェアを更に基本ソフトウェアとミドルウェアに分類する方法[11]と、最初から基本ソフトウェア・ミドルウェア・応用ソフトの3つに分類する方法[12]がある。基本ソフトウェアは「広義のOS」とも呼ばれ、更に「狭義のOS」とも呼ばれる制御プログラムと、サービスプログラム言語処理プログラムに分類できる[11]

ソフトウェアと機械語・アセンブラ・高級言語 

コンピュータの中枢部であるCPUが理解し実行できる形式は機械語だけだが、ソフトウェア開発をする人は通常はプログラミング言語でソフトウェアを記述しそれをコンパイラを使って機械語に翻訳し、その機械語を実行させる。プログラミング言語は低水準言語とも呼ばれる機械語に近いアセンブリ言語と、人間が理解しやすい自然言語に近い形式で記述する高水準言語[13]に大別できる。

機械語は「0」か「1」を並べたビット列命令(二進コード、バイナリコード)で表現される。

アセンブリ言語はCPUの命令セットにほぼ対応した記述ができるプログラミング言語で、開発難易度は高くCPUの種類(命令セット)に依存するが、コンピューターを細かく制御でき、高速性が必要な制御系などで使用されている。

高水準言語は時代・用途・特性などにより多種類あり、特に有名な言語を挙げるだけでも、1957年に誕生し「最初の高水準言語」とされる科学技術計算用のFORTRAN、1959年に誕生し金融系の事務計算を得意とし2020年代の現在でも大企業のメインフレームで使われ続けているCOBOL、1964年に大学の教育用に誕生し1970年代後半から1980年代のマイクロコンピュータパーソナルコンピュータで普及したBASIC、1958年に登場しリスト処理に優れ1950年代や60年代の方式の人工知能[注釈 2]用に発展したLISPなどが使われたが、最初に挙げた3言語は行番号(文番号)やgoto文を多用する言語であったので記述に混乱が生じがちで開発時のデバッグや運用開始後の改良作業も困難になりがちだったので[注釈 3]、1972年にはその欠点を克服する構造化プログラミングが可能なC言語が登場し現在に至るまで広く使われるようになり、1983年にはそのC言語をオブジェクト指向に対応させたC++が登場し 組み込みシステムのソフト開発や 動作の高速性を求められるコンピューターゲームの開発 等々で現在も重要な役割を果たしており[14]、更に1995年にはCとC++の系統に属し「Write once, run anywhere」というスローガンを掲げコードを1回書けばどのプラットフォームでも走り ネットの分散コンピューティングにも向いており おまけに様々な要素を言語仕様自体として最初から含んでいるという長所がある[15]Javaが登場し、2020年代の現在でも常に人気最上位にランクインする状態となっている[16]。また1991年には可読性を重視したPythonが登場しこちらも人気となり、2010年代にはニューラルネットワーク方式の人工知能用のライブラリも充実させ、人工知能開発分野では主流言語となっている。1995年には、全てをオブジェクトとして扱い真のオブジェクト指向である[17]Rubyが登場した。2004年にはファンにより簡潔にWebアプリケーションを書けるRuby on Railsも開発され、イーコマース・サイトを開発する人々やオープンソースのコミュニティ(コミュニティのサイト)で好んで使われるようになった[17][注釈 4]。2012年にはRubyが「日本発」のプログラミング言語としては初めて国際電気標準会議(IEC)で国際規格に認証された。

なお言語処理系は、プログラム言語で記述したソースコードを事前に機械語コード(バイナリコード)に変換するコンパイラや、ソースコードを実行時に逐次解釈しながら実行するインタプリタや、それら2つの中間的な性質を備えた方式などに分類される。

制御プログラム(OS)

「制御プログラム」とエンジニアに呼ばれるものは、別名では「狭義のオペレーティングシステム (OS) 」と言い[11](そしてパーソナルコンピュータの世界ではこれのみを「OS」と呼んでおり[11])、その主な役割はジョブ管理、タスク管理、記憶管理などである[11][18][13]。この制御プログラムあるいはOSを細分すると、カーネルデバイスドライバファイルシステムに分けることができる[11][18]

カーネル

カーネルはOSの中核であり、その主な役割は次のようなことである[11][18]

デバイスドライバ

デバイスドライバは周辺機器を直接制御する抽象的なインタフェースをアプリケーションソフトに対して提供する[11][18]

ファイルシステム

ファイルシステムは、データやプログラムが記録される「ファイル」を管理するソフトウェアである[11][18]

なお制御プログラムの構成法として、カーネルの機能を限定し最小限の記憶管理やタスク管理に限ったものを「マイクロカーネル」といい[11]、これは機能を絞っている代わりに、その限定的機能に関しては信頼性が増すというメリットがある。マイクロカーネル方式が採用される場合は、ファイルシステムなどはマイクロカーネルの外で作動するサーバプロセスとして提供される[11]。マイクロカーネル方式に対して、カーネル自体にファイルシステムなどさまざまな機能を担当させる方式を「モノリシックカーネル(方式)」という[11][18][注釈 5]

コンピュータのタイプごとのOS

世間に普及するコンピュータを台数を基準として見た場合、最も多いのは組み込みシステムであり、すなわちエアコンや炊飯器などの家電製品、乗用車、各種の測定機器、工作機械などに組み込まれた非常に小さく安価なコンピュータであり、組み込みシステムでは組み込みOSと呼ばれるOSを用いる。2019年時点でのシェアを見ると、東京大学の坂村健が開発し無料配布可能で機器開発者が改変することも許されているTRON系OSのシェアが世界第1位のおよそ60%であり、24年連続トップ[19]。TRON系のなかでもITRONが最も普及している[19]。TRON以外はPOSIX系つまりUnix系Linux類である[19]。たとえば米リナックスワークスのLynxOS、米ウィンドリバーのVxWorks、米シンビアンのSymbian OSなど。なお小規模な組み込みシステムのなかには、明確なOSを内蔵していないものもある。

次に台数が多いのがスマートフォンであり、スマートフォンのOSおよびそのシェアは、2021年9月時点でAndroidが約72%、iOSが 約27%である[20]。なおAndroidも広い意味でのLinuxの一種であり、より具体的に言うとLinuxのカーネルを一部改編し他のオープンソース・ソフトウェアを組み合わせたものである。つまりおよそ7割の人々が実は意識せずにLinuxの一種を毎日使っているわけである。

ノートPCやデスクトップPCのOSおよびそのシェアとしては、2021年時点でWindows 75.4%、MacOS 15.93%、ChromeOS 2.59%、Linux 2.33%となっている[21]。なお、このMacOSはFreeBSDを基にしたOSでありUnix系である。

スーパーコンピュータにおけるOSの使用比率

スーパーコンピュータのOSは、2021年現在、ほぼ100%、Linuxである。スーパーコンピュータ用は2000年ころはUNIXが9割ほどを占めていたが、その後の10年間つまり2010年ころまでにそのほぼ全てがLinuxに置き換わるということが起きた。

CUIとGUI

ハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化されたユーザインタフェースを兼ね備えている。かつてはキャラクタユーザインタフェースCUI)のみが提供されていたが、1970年代にアラン・ケイらが Dynabook構想を提唱し、「暫定 Dynabook」と呼ばれる AltoSmalltalkによるグラフィカルユーザインタフェース環境を実現した。なお、「暫定 Dynabook」は当時のゼロックスの首脳陣の判断により製品化されなかった(ゼロックスより発売されたグラフィカルユーザインタフェース搭載のシステム Xerox Starは「暫定 Dynabook」とは別系統のプロジェクトに由来する)が、この影響を受け開発されたApple Computer(現:Apple)の LISAMacintoshマイクロソフトWindowsの発売、普及により、グラフィカルユーザインタフェース(GUI)が一般的にも普及することとなった。一方、Unix系OSでも1980年代からX Window Systemが開発されグラフィカルユーザインタフェースが実現した。CUIとGUIはそれぞれ長所と短所があり、GUIは初心者に優しいので初心者向けにはもっぱらGUIを使う操作法が教えられ、上級者あたりになるとGUIとCUIを併用することになり、コンピュータ技術者やシステム運用エンジニアなどはしばしば主にCUIを使いGUIは補助的に使う。現在CUIを使う人はGUIとCUIを同時並行的に使用しGUIのマルチウィンドウのいくつかをCUI状態で使うといったことも一般的である。またLinuxなどではGUIモードとCUIモードを根本的に切り替えるということも可能である[22]

サービスプログラム

サービスプログラムとは、基本的なテキストエディタやファイル変換プログラムなどである。

言語処理プログラム

言語処理プログラムとは、アセンブラコンパイラインタプリタやジェネレータのことである。

アナログとデジタル

1970年代や1980年代頃までは、「コンピュータ」といえばアナログコンピュータデジタルコンピュータの両方を指した。その後は、アナログコンピュータがほとんど使われなくなり、「コンピュータ」といえば専らデジタルコンピュータを指す。

アナログコンピュータは、電気的現象・機械的現象・水圧現象を利用してある種の物理現象を表現し、問題を解くのに使われる計算機の形態[23]。アナログ計算機はある種の連続的な物理量を別の物理量で表し、それに数学的な関数を作用させる。入力の変化に対してほぼリアルタイムで出力が得られる特徴があり(これはいわゆる「高速型」の場合の話である。時間をかけてバランスが取れた状態を見つけ出すとか、移動量の合計を得るといったような「低速型のアナログ計算機」もある)、各種シミュレーションなどに利用されたが、演算内容を変更するには回路を変更する必要があり、得られる精度にも限界があるので、デジタルコンピュータの性能の向上とDA/ADコンバータの高精度化・高速化によって役目を終えた。

なお、かつて電子式アナログコンピュータの重要な要素として多用されたものと同じ機能を持つ電子回路は、IC化され「オペアンプIC」として今日でも広く使われているが、モジュール化され簡単に使えるものになっているため、一般にコンピュータとは見なされてない。

それに対して今日主流のデジタルコンピュータは 離散的な物理量( " 飛び飛び " の物理量)を利用するコンピュータである。以前は2値方式のほかに10値方式や他の方式があったが[注釈 6]、今日ではもっぱら2値方式電圧のHigh/Low。数字で抽象化して表現すると1/0)によるものを指しており、その中枢部にあたるCPUでは二進法で数値が表現され、ブール論理論理演算を行っている。

電気方式やエレクトロニクス方式のデジタルコンピュータは1940年代や1950年代はリレー式のものや真空管式のものが使われたが、これは素子を定期的・不定期的に交換しなければならずメンテナンスにそれなりの手間がかかるものだったので、1950年代以降は新たに発明されたトランジスタで論理回路や演算装置を構成することで低消費電力かつ高速動作で、リレー式や真空管式より小型で、素子交換も不要なコンピュータを実現し、さらに1960年代以降は集積回路も用いて一層の小型化・低消費電力化・高速化が実現することになった。

歴史

古代

アンティキティラ島の機械(紀元前150年 - 紀元前100年ころ)。現在確認できる最古の歯車式計算機。

17・18世紀

ブレーズ・パスカルの歯車式計算機「パスカリーヌ」(1642年)とその機構図

19世紀

20世紀

21世紀

2006年時点の、世界の情報格差を示す地図

種類

(※ 近年ではNintendo Switchのように据置型と携帯型の境界を無くすような、単純に分類できないタイプの売上が伸びている。)

研究段階のコンピュータ

日本の行政での関連用語

日本の行政組織内では次のような関連用語も使われている。それぞれ異なった意味で使われている。

  • 「電子情報処理組織」- 市の機関等が使用する電子計算機(コンピュータ等)と申請者等が使用する電子計算機とを電気通信回線(インターネット等)で接続したもの[32][33]
関連項目
  • 「電子計算組織」 - 電子計算機及びそれと通信回線により接続する端末機等を使用し、与えられた一連の処理手順に従つて事務を自動的に処理する組織(出典:南陽市の公式サイト[34])。この場合、コンピュータ単体では「電子計算組織」とは呼んでいない。
  • 「電子計算処理組織」-大切で厳重に管理されるべき情報を電子計算処理する際に、その適切な運営、事務の適正化と効率的な推進、各種データの保護を目的として市役所内に設けられている組織(出典:泉南市公式サイト[35])。 ここでの「組織」は、人的組織を指す。

脚注

注釈

出典

関連項目

外部リンク