コンピュータ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/18 16:05 UTC 版)
表記・呼称
日本では「コンピュータ」や「コンピューター」という表記が多く使われている[注釈 1]。
日本の法律用語、たとえば刑法や著作権法等では「
中華人民共和国や台湾などでは「電脳」が使われ、日本でも趣味的な分野では「電脳(でんのう)」が使われることがある。
1950年代では「人工頭脳」(じんこうずのう)[6] や「電子頭脳」(でんしずのう)とも表現した。
語源
英語の「computer」は算術演算を行う主体であるが、元々は計算する人を指した。この用法は今でも有効である。オックスフォード英語辞典第2版では、この語が計算する機械をも指すようになった最初の年を1286年と記している。同辞典では、1946年までに、「computer」の前に修飾語を付けることで異なる方式の計算機を区別するようになったとする。たとえば「analogue computer」「digital computer」「electronic computer」といった表現である。
計算手は、電子計算機と区別する場合はレトロニムで「human computer」とも呼ばれる。
概要
現在のコンピューターの主な構成要素は通常以下のように分類できる。
ハードウェア
![](https://weblio.hs.llnwd.net/e7/redirect?dictCode=WKPJA&url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F2%2F2c%2FEckert-Mauchly_%2528von_Neumann%2529_architecture.svg%2F220px-Eckert-Mauchly_%2528von_Neumann%2529_architecture.svg.png)
現在のコンピューターの基本はノイマン型で、そのハードウェアはコンピュータの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]。
- ジョブ管理
- タスク管理
- 記憶管理
- システムコールサービス - システムコールサービスのAPI(Application Programming Interface、アプリケーションプログラミングインタフェース)はアプリケーションソフトから、OSが用意しているさまざまな機能を利用するための仕組みであり[13]、アプリケーション開発の手間が減り[13]、統一的な操作性も実現できる。
- デバイスドライバ
デバイスドライバは周辺機器を直接制御する抽象的なインタフェースをアプリケーションソフトに対して提供する[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系である。
![](https://weblio.hs.llnwd.net/e7/redirect?dictCode=WKPJA&url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F0%2F0d%2FOperating_systems_used_on_top_500_supercomputers.svg%2F400px-Operating_systems_used_on_top_500_supercomputers.svg.png)
スーパーコンピュータのOSは、2021年現在、ほぼ100%、Linuxである。スーパーコンピュータ用は2000年ころはUNIXが9割ほどを占めていたが、その後の10年間つまり2010年ころまでにそのほぼ全てがLinuxに置き換わるということが起きた。
- CUIとGUI
ハードウェアの抽象化層を持つ現在のオペレーティングシステムの多くは、何らかの標準化されたユーザインタフェースを兼ね備えている。かつてはキャラクタユーザインタフェース(CUI)のみが提供されていたが、1970年代にアラン・ケイらが Dynabook構想を提唱し、「暫定 Dynabook」と呼ばれる Altoと Smalltalkによるグラフィカルユーザインタフェース環境を実現した。なお、「暫定 Dynabook」は当時のゼロックスの首脳陣の判断により製品化されなかった(ゼロックスより発売されたグラフィカルユーザインタフェース搭載のシステム Xerox Starは「暫定 Dynabook」とは別系統のプロジェクトに由来する)が、この影響を受け開発されたApple Computer(現:Apple)の LISAや Macintosh、マイクロソフトの 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]。
サービスプログラム
サービスプログラムとは、基本的なテキストエディタやファイル変換プログラムなどである。
言語処理プログラム
言語処理プログラムとは、アセンブラやコンパイラやインタプリタやジェネレータのことである。
注釈
- ^ 長音符の扱いについて、JISのルールと国語審議会のルールが食い違っている。(長音符#長音符を付ける流儀・付けない流儀参照) JIS Z 8301では長音符を付けない、というルールが提示されており、それに沿う形で工学専門書では長音符をつけない。工学分野の論文でも長音符をつけないのが一般的である。それに対して国語審議会の報告に沿った基準では長音符をつけるとしており、新聞社、放送局、小中学校教科書などでは長音符付きで表記している。コンピュータ関連のメーカーに関しては、会社ごとに対応が別れている。マイクロソフトの日本法人は(もともとはJISの規定のほうを尊重し「2音の用語は長音符号を付け、3音以上の用語の場合は省くことを原則とする」という規定(JIS Z 8301:規格票の様式及び作成方法)に即した表記ルールを採用していたが)、2008年11月に、あくまで自社製品に関してのみの話として、国語審議会の報告のほうの影響を受けた内閣告示をもとにした「言語の末尾が-er、-or、-arなどで終わる場合に長音表記をつける」というルールに変更するとした[1]。同社の担当者は、一般消費者は工業系・自然科学系の末尾の長音を省略する傾向の表記に対して違和感を感じていて、コンピュータが一般消費者の必需品になるにつれて違和感を感じる人の割合が増加してきたからだ、といった主旨の説明を述べた[2]。ただしメーカーにより主なユーザの範囲が異なり、表記方法も異なる。
- ^ LISPで開発されていた1960年代の人工知能は、現在主流の人工知能とは大きく異なっており、知識を記号で表現し記号を操作して推論を行うような方式の人工知能。現在主流のニューラルネットワーク方式とは全然異なる方式の人工知能。
- ^ 当時のFORTRAN、COBOL、BASICの話。その後、1972年に登場したC言語の構造化プログラミングの良さが広く認知されるようになってからは、構造化を導入して行番号・文番号(およびGOTO文)を廃止する方向で改良され、FORTRANは1990年(FORTRAN 90や95)あたりからGOTO文を廃止し、BASICのほうも行番号を廃した構造化BASICが登場し、そのような構造化されたものが使われるようになっていった。
- ^ GitHubやクックパッド(Cookpad)などもRubyおよびRuby on Railsで開発されることになった。(出典:増井敏克『プログラミング言語図鑑』ソシム、2017、pp.140-141.)
- ^ モノリシックは "一枚岩" という意味。
- ^ デジタル方式にはタイガー計算器のように歯車の離散的な角度により十進法を表現するものや、機械として見ると2値論理方式の機械でも、数の扱いとしては3増し符号などにより十進法のものもあった。数値の表現法である「x進法」と、論理のモデルである「x値論理」は、厳密には別のものであることに注意されたい。
- ^ 21世紀の現在、「NTT研究所」は研究開発分野ごとにサービスイノベーション、情報ネットワーク、先端技術の3総合研究所とIOWN総合イノベーションセンターの4つに分かれている。
出典
- ^ a b c 『日本大百科全書』コンピュータ
- ^ Introduction to Embedded Systems
- ^ "So, How Many Smartphones Are There in the World?"
- ^ HOW MANY COMPUTERS ARE THERE IN THE WORLD?
- ^ 『日本における計算機の歴史 : 富士通における計算機開発の歴史』NAID 110002753426§3.1
- ^ 全国書誌番号:57000106
- ^ a b c 栢木厚『令和04年 栢木先生の基本情報技術者教室』技術評論社、2021年、pp.24-25, 「コンピュータの構成」
- ^ a b c d 安井浩之・木村誠聡・辻裕之『基本を学ぶ コンピュータ概論』オーム社、2011年, pp.4-5、「5大装置」
- ^ 大滝みや子『2020年版 基本情報技術者 標準教科書』オーム社、2019年, pp.106-107,「コンピュータの構成」
- ^ 大滝みや子『基本情報技術者教科書 令和2年度』インプレス、p.154「コンピュータの基本構成」
- ^ a b c d e f g h i j k l 『2020年版 基本情報技術者 標準教科書』オーム社, pp.154-158 「ソフトウェアの体系」「基本ソフトウェアの構成」
- ^ 五十嵐順子 『かんたん合格 基本情報技術者 教科書 令和2年度』インプレス、2019年、p.70「ソフトウェアの分類」
- ^ a b c d 栢木厚 著『令和04年 栢木先生の基本情報技術者教室』技術評論社、2021年、ISBN 978-4297123932, pp.62-65「ソフトウェア」
- ^ 増井敏克『プログラミング言語図鑑』ソシム、2017、p.54、「C++」
- ^ [3]
- ^ 増井敏克『プログラミング言語図鑑』p.94「Java」
- ^ a b What is the popularity of the Ruby programming language?
- ^ a b c d e f 日高哲郎『情報処理教科書 基本情報技術者 テキスト&問題集 2015年版』翔泳社, pp.128-138「オペレーティングシステム」
- ^ a b c 組み込みOSのAPIはTRON系OSがシェア60%、24年連続トップ
- ^ [4]
- ^ [5]
- ^ [6]
- ^ Universiteit van Amsterdam Computer Museum (2007)
- ^ "ライプニッツの環". 英辞郎 on the WEB. 2023年3月22日閲覧。
- ^ Sorrel, Charlie (8 April 2008). "A Picture History Of Computer Storage". WIRED (英語). 2023年3月22日閲覧。
- ^ RTD Net: "From various sides Konrad Zuse was awarded with the title "Inventor of the computer"."
- ^ GermanWay: "(...)German inventor of the computer"
- ^ Monsters & Critics: "he(Zuse) built the world's first computer in Berlin"
- ^ "Konrad Zuse earned the semiofficial title of "inventor of the modern computer", About.com
- ^ 竹井和昭「開発物語 みどりの窓口の予約システム「マルス」の開発史」『通信ソサイエティマガジン』第13巻第1号、電子情報通信学会、2019年、58-67頁、2020年5月26日閲覧。
- ^ “旅客販売総合システム「マルス」”. JRシステム. 2020年5月26日閲覧。
- ^ 行政手続き等に係る電子情報処理組織の使用状況について 岩見沢市公式サイト
- ^ 「行政手続に係る電子情報処理組織の使用状況」 大田原市公式サイト
- ^ [7]
- ^ 泉南市公式サイト
コンピュータと同じ種類の言葉
「コンピュータ」に関係したコラム
-
株価指数は、証券取引所に上場している銘柄を一定の基準で選出し、それらの銘柄の株価を一定の計算方法で算出したものです。例えば、日本の株価指数の日経平均株価(日経平均、日経225)は、東京証券取引所(東証...
- コンピュータのページへのリンク