高校「情報Ⅰ」単語帳 - 東京書籍「新編情報Ⅰ」 - コンピュータの仕組み

コンピュータ 【電子計算機】

与えられた手順に従って複雑な計算を自動的に行う機械。特に、電子回路などを用いてデジタルデータの入出力、演算、変換などを連続的に行うことができ、詳細な処理手順を人間などが記述して与えることで、様々な用途に用いることができる電気機械のこと。

歴史的には手回しで歯車などを駆動する機械式の自動計算機なども存在したが、現代でコンピュータと呼ばれる機械は一般に、マイクロプロセッサ(CPU/MPU)や半導体メモリなどの半導体集積回路(ICチップ)を中心に構成され、記憶装置に記録されたオペレーティングシステム(OS)やアプリケーションソフトといったコンピュータプログラム(ソフトウェア)を実行するものを指す。

コンピュータの分類

一般的にコンピュータそのものとみなされる機器には、個人向けの汎用コンピュータである「パーソナルコンピュータ」(PC:Personal Computer/パソコン)や、企業や官公庁などの情報システムで用いられる大規模・高性能コンピュータである「サーバ」(server)や「メインフレーム」(mainframe computer)、科学技術計算などに用いる超高性能コンピュータである「スーパーコンピュータ」(supercomputer)などがある。

また、現代の電気機器の多くは内部の装置の制御などのために機器内部に小型のコンピュータシステムを内蔵しており「組み込みシステム」(embedded system)と呼ばれる。

このような組み込み型のコンピュータを備えた機器には携帯電話・スマートフォンやタブレット端末、ビデオゲーム機、通信装置やネットワーク機器、テレビ受像機、ビデオレコーダー、デジタルカメラ、電子制御の家電製品や産業機械、輸送機械などがある。

コンピュータの構成

一般的なコンピュータは、プログラムの実行状況や各装置の状態を制御する「制御装置」、データの計算や加工を行う「演算装置」、データを記録する「記憶装置」、人間や他の機器など外界との情報のやり取りを行う「入力装置」および「出力装置」などで構成される。この五つの要素を「コンピュータの五大装置」(五大機能)と呼ぶこともある。

このうち、制御装置と演算装置は現代では一つの装置や半導体チップとして統合されていることが多く、これを「処理装置」(PU:Processing Unit)という。コンピュータシステム全体の制御を司る中心的な処理装置のことを「中央処理装置」(CPU:Central Processsing Unit)という。

記憶装置は当座の動作に必要なプログラムやデータの一時的な記憶に用いる「主記憶装置」(メインメモリ)と、永続的な記録に用いる「外部記憶装置」(ストレージ)あるいは「補助記憶装置」に分かれていることが多い。

計算手順はCPUに対する命令の列を記憶装置にデータとして記録し、順に読み出して実行していく方式(プログラム内蔵方式)になっており、これを「コンピュータプログラム」あるいは単にプログラムという。

ハードウェア ⭐⭐⭐

コンピュータ本体や内部の装置、周辺機器などの物理的な実体を伴う装置や機器、およびその部品、部材のこと。それ自体には形がないソフトウェアと対比される。

コンピュータの場合、処理装置や記憶装置、入出力装置、電子基板、ケーブル類、筐体などの部品や部材、およびその総体として物理的実体としてのコンピュータのことをハードウェアという。「ハード」と略されることも多く、「HW」「H/W」などの略号で示されることもある。

これに対し、コンピュータプログラムやデータなど、それ自体は物理的な実体を伴わない要素のことを「ソフトウェア」(software)と総称する。ソフトウェアの記録や伝送、表示や実行には必ず何らかのハードウェアが必要となる。

コンピュータ以外の分野でも、施設や設備、機器、部品、資材といった物理的実体をハードウェアと呼ぶことがあり、付随する非物理的な要素と対比する文脈で用いられる。例えば、劇場の建物や設備をハードウェア、そこで催される公演をソフトウェアと呼んだり、教育機関の校舎や備品をハードウェア、提供される教育プログラムをソフトウェアと呼んだりすることがある。

英語の “hardware” の原義は金物、金属製品という意味で、機械や生活用品などについて、木製のものなどと対比して金属製であることを表す言葉だった。現代では金属製かどうかはあまり重視されず、工具や冶具、装置、設備、資材、軍用装備品などを広く総称する言葉として用いられることが多い。

制御装置 ⭐⭐⭐

機械やシステムの構成要素のうち、主に他の要素の動作の制御などの機能を担うもの。コンピュータの場合はCPUの機能の一部として内蔵されている。

コンピュータの制御装置

コンピュータを構成する装置のうち、他の装置の制御を行うものを制御装置と呼ぶ。演算装置、記憶装置、入力装置、出力装置と合わせてコンピュータの五大装置という。

現代のコンピュータではほとんどの場合、演算装置と共に中央処理装置(CPU:Central Processing Unit)という装置の一部として実装される。また、CPUはマイクロプロセッサ(MPU:Micro-Processing Unit)と呼ばれる単一の半導体集積回路(ICチップ)の形で提供されている。

制御装置は演算装置やレジスタ(CPU内部の記憶回路)を操作して命令の実行制御を行ったり、メインメモリ(RAM)などの記憶装置とプロセッサ間のデータや命令の読み出しや書き込みの制御、外部の装置との信号の入出力制御などを行う。

初期のコンピュータの設計では演算装置とは独立・分離していたが、現代のプロセッサにおいては両者が統合されて一体的に設計されるため、両者の区別にはほとんど意味がなくなり、「実行ユニット」「プロセッサコア」のような用語で呼ばれることも多い。

ALU 【Arithmetic and Logic Unit】 ⭐⭐⭐

コンピュータを構成する基本的な装置の一つで、算術演算(四則演算)や論理演算などの計算を行う装置。現代のコンピュータでは制御装置とともにマイクロプロセッサ(CPU/MPU)などの論理回路の一部として実装されている。

加算器や論理演算器などの演算回路を持ち、整数の加減算、論理否定(NOT)、論理和(OR)、論理積(AND)、排他的論理和(XOR)などの基本的な演算を行うことができる。

これらの回路を組み合わせて、乗算や除算、余剰、実数(浮動小数点数)演算、否定論理和(NOR)、否定論理積(NAND)などの演算ができるようになっているものもある。

記憶装置

コンピュータの構成要素の一つで、データやプログラムの保存・記憶を行うための装置。レジスタやキャッシュメモリなどCPU内部の半導体メモリ、メインメモリ(主記憶装置/RAM)、ストレージ(外部記憶装置/補助記憶装置)などに分類される。

用途や実装方式、性能、コストなどにより様々な種類の装置があり、これらを組み合わせてコンピュータシステムを構成する。一般に、より高速に読み書き可能な装置ほどコストが高かったり永続的な記憶ができない(電源を落とすと内容が失われる)という特性があるため、小容量の高速な装置、中容量の中速の装置、大容量の低速で永続記憶可能な装置を組み合わせ、状況や使用頻度などに応じて使い分ける。このような階層型の構造を「記憶階層」(memory hierarchy)という。

プロセッサ内部の記憶装置

最も高速だが大きな容量を取ることができないのはCPU(MPU/マイクロプロセッサ)の半導体チップ上に設けられた記憶素子の集合で、中でも、論理回路が処理や演算に直接用いる「レジスタ」(register)は一般的なプロセッサで数十バイトしかないが最も高速に動作する。

また、直近に使用したデータや使用頻度の高いデータをチップ内に保持しておいて、すぐ参照できるようにするための記憶素子を「キャッシュメモリ」(cache memory)という。プロセッサによっては搭載しないこともあるが、数KB(キロバイト)から数百KB程度であることが多い。キャッシュメモリ内部にも記憶階層がある場合があり、より高速だが容量の少ない順に1次キャッシュ、2次キャッシュ、3次キャッシュ、と2~3段階で構成される。

メインメモリ

メインメモリは主記憶装置とも呼ばれ、現代のコンピュータの大半では半導体メモリ素子の一種であるRAM(Random Access Memory)が用いられる。現代のパソコンなどでは数GB(ギガバイト)程度の容量であることが多い。

CPUはストレージに直接アクセスできないため、実行中のソフトウェアが当座必要なデータやプログラムはメインメモリに置いておく必要がある。内容は起動時や必要になった時点でストレージから読み込まれ、CPUが処理した結果なども一旦メインメモリに置かれる。電源を落とすと内容が失われるため、永続的に保管しておきたいものはストレージに書き込む必要がある。

RAMのメモリチップそのものを主基板(マザーボード/メインボード)などに直に実装する場合もあるが、パソコンなど汎用的なコンピュータの多くは、メモリチップをいくつか実装した小さな基板であるメモリモジュールを主基板上の専用の差込口(メモリスロット)に差し込んで装着する。

ストレージ

ストレージはコンピュータの電源が切れても内容が失われない装置で、永続的に必要なデータやプログラムの保存に用いられる。RAMなどに比べ動作が低速な装置が大半で、また、CPUから直に読み書きできないため、コントローラICなどを通じて内容をメインメモリとの間でやり取りする必要がある。駆動装置(ドライブ)と記憶媒体(メディア)が一体化している装置と、取り外して交換できる装置があり、後者はメディアを追加することで全体の容量を増やすことができる。

パソコンなどで主要な記憶装置としてよく用いられるのは磁気ディスクを装置内に固定したハードディスク(HDD:Hard Disk Drive)で、現代では数百GBから数TB(テラバイト)の製品がよく用いられる。ハードディスクに代わって台頭しているのが不揮発の半導体メモリの一種であるフラッシュメモリを用いたSSD(Solid State Drive)で、フラッシュメモリを用いたストレージには他にUSBメモリやメモリーカードなどもある。

データやプログラムの運搬や配布などによく用いられるのがレーザーで内容の読み書きを行う光学ディスクで、登場順にCD、DVD、Blu-ray Disc(ブルーレイディスク/BD)などがあり、この順に容量が大きく読み書きも高速である。CDは音楽・音声の記録や販売に、DVDやBDは映像ソフトの記録や販売に特によく用いられる。

入力装置 【入力機器】 ⭐⭐⭐

コンピュータなどの機器本体にデータや情報、指示などを与えるための装置。一般的には人間が操作して入力を行う装置のことを指し、手指の動きや打鍵を電気信号に変換して伝達するキーボードやマウス、タッチパネルなどが該当する。

コンピュータの登場以前から、ボタンやレバー、ツマミ、ペダルなどの入力装置が機械の操作に用いられてきたが、情報機器ではこれらに加えてより複雑で汎用的な情報入力を実現するため、多数の操作要素や高度な機構を持つ装置が発明された。

例えば、文字が刻印された小さな鍵盤が敷き詰められたキーボード、手で位置や移動を入力するためのマウスなどのポインティングデバイス、画面表示と位置入力を兼用するタッチパネルなどが発達した。特殊なゴーグルなどを利用して視線の方向を検知し、画面上の位置を指示して入力する装置なども開発されている。

ビデオゲームでは、数種類のボタンやスティック、加速度センサーなどを手のひらサイズに収めたゲームコントローラ(ジョイパッド/ジョイスティック)が最も一般的な入力装置として用いられるほか、カメラやセンサーなどを組みわせて四肢の動きを検知するシステムが用いられたり、実在の機械を模した専用の装置(ハンドルやレバー、フットペダルを組み合わせたレースゲーム用筐体など)が用いられることもある。

広義には、人間の動作に限らず外界から情報を取り込んで電気信号やデジタルデータとしてコンピュータに伝達する機器全般が含まれる。マイクやイメージスキャナ、ビデオカメラ、デジタルカメラ、バーコードリーダー、指紋センサー、X線撮影装置、超音波診断装置、光学式読み取り装置(OCRやOMR)などである。

出力装置 【アウトプットデバイス】 ⭐⭐⭐

コンピュータが扱う情報を利用者に認識できる形式で提示する装置。ディスプレイやプリンタ、スピーカーなどが含まれる。

コンピュータシステムを構成する主要な装置の一つで、データを人間に認識できる形で外部に物理的に出力する装置である。光の像を投影して画面を映し出すディスプレイ(モニタ)やプロジェクタ、紙などに印字・印刷を行うプリンタやプロッタ、音声を発するスピーカーやイヤフォンなどが該当する。

主に人間の視覚や聴覚に働きかける原理の機器が多いが、振動で情報を知らせるバイブレーターや、ゲームコントローラなどで操作感(押しやすさ、回しやすさなど)を状況に応じて変化させるフォースフィードバック機構など、触覚を利用する装置もある。

映画館や体験型アミューズメント施設などに見られる、映像に合わせて霧や風を吹き出す装置なども広義には出力装置の一種と言える。未だ研究段階ながら、香り(触覚)や味(味覚)を動的に合成してコンピュータからの出力とする装置も構想されている。

これに対し、人間や環境、外部の機器から情報を取り込んでデータとしてコンピュータ本体に伝える装置を「入力装置」(input device:インプットデバイス)といい、キーボードやマウス、タッチパネル、ゲームコントローラ、マイク、イメージスキャナ、各種センサーなどが含まれる。

出力装置と入力装置を合わせて「入出力装置」(I/O device)と総称することもある。イヤホンマイクやプリンタ複合機(イメージスキャナとしても利用できるプリンタ)、振動機能付きコントローラなど、入出力の両方の機能を一体的に提供する装置もある。

メモリ ⭐⭐

記憶、記憶力、回想、追憶、記念などの意味を持つ英単語。ITの分野ではコンピュータに内蔵される半導体集積回路(IC)を利用したデータの記憶装置を指すことが多い。

コンピュータを構成する装置の一つで、CPU(MPU/マイクロプロセッサ)などから直接読み書きすることができる記憶装置のことを「主記憶装置」(main memory:メインメモリ)というが、通常はこれを略してメモリと呼んでいる。また、主記憶装置を含む、半導体素子により電気的にデータの記憶や読み書きを行う記憶装置を総称して「半導体メモリ」という。

主記憶装置としてのメモリ

コンピュータ内部でCPUがソフトウェアの実行のために当座必要なプログラムやデータを記憶しておくための記憶装置を主記憶装置あるいはメモリという。一方、プログラムやデータを長期的、永続的に保管しておくために利用される装置は「外部記憶装置」「補助記憶装置」あるいは「ストレージ」(storage)などと呼ばれる。

一般に主記憶装置は外部記憶装置よりはるかに高速に動作する装置が用いられるが、単価や装置構成上の制約から少ない容量しか搭載することができない。このため、コンピュータは起動すると外部記憶から主記憶に必要なプログラムやデータを読み込んで実行し、必要なくなったデータなどは主記憶からすみやかに消去して新たに必要になったものと入れ替える。永続的に保管する必要があるデータなどは外部記憶へ書き込まれて保存される。

現代のコンピュータでは主記憶装置として、電気的に動作し高速に読み書きできる「RAM」(Randam-Access Memory)、特に「DRAM」(Dynamic RAM)を用いることが多いため、RAMやDRAMを主記憶装置あるいはメモリの同義語のように用いることが多い。歴史的にはRAM以外の装置が主記憶だった時代もあり、また、今後、RAMとは異なる原理の記憶装置を主記憶に用いるための技術の研究・開発も行われている。

RAM/DRAMは電源を落とすと内容が失われる「揮発性メモリ」の一種であるため、これを主記憶装置の特徴と説明することもあり、現代のコンピュータの設計については当てはまるが、本来これはRAM/DRAMの特性であり、他の装置を用いた場合はその限りではない。

半導体記憶装置としてのメモリ

電気的に情報を記録できる半導体素子を集積し、ある一定の容量のデータの記録、読み書きが可能な半導体集積回路(IC/LSI)を「半導体メモリ」あるいは単にメモリという。

半導体メモリ装置の多くは主記憶装置やそれに準じる用途に用いられるが、フラッシュメモリのように外部記憶装置(ストレージ)として用いられることがあり、主記憶装置をメモリと呼ぶ場合と紛らわしいので注意が必要である。

RAM

自由に読み書きできるが電源を断つと内容が失われる装置を「RAM」(Randam-Access Memory:ランダムアクセスメモリ)と呼び、記憶を保持するために定期的に電荷の再注入が必要な「DRAM」(Dynamic RAM:ダイナミックRAM)と不要な「SRAM」(Static RAM:スタティックRAM)に分かれる。

コンピュータの主記憶としてよく用いられるのはDRAMで、パソコンなどの場合は細長い電子基板にいくつかのDRAMチップ(メモリチップ)を実装したDRAMモジュール(メモリモジュール)をマザーボードに装着して利用する。

ROM

一方、電源を落としても記録内容が維持されるが、利用者が内容を書き込めないか書き込み方法に制約のある装置を「ROM」(Read-Only Memory:リードオンリーメモリ)という。コンピュータ内部に固定的に設置されてファームウェアやBIOSなどを記憶したり、プラチックのパッケージなどに収められてソフトウェアの流通などに用いられる。

このうち、製造時に内容を記録し、以後は内容の消去や上書きが一切できないものを「マスクROM」(Masked ROM)、利用者が特殊な装置を用いて一度だけ内容を記録できるものを「PROM」(Programmable ROM)、特殊な装置を用いて何度も内容の消去、再書込が可能なものを「EPROM」(Erasable Programmable ROM)という。

さらに、特殊な装置が不要で読み出しと同じ装置で消去、再書込ができるようにしたものは「フラッシュメモリ」(flash memory)と呼ばれ、自由に読み書き可能な不揮発メモリとして外部記憶装置(ストレージ)に利用される。

周辺機器 【ペリフェラル】

コンピュータなど中心となる機器に繋いで使用する装置のこと。本体に何らかの機能を提供するために用いられ、単体では使用できないものが多い。

通常は機器本体の外部に設置してケーブルや無線などで接続・通信するものを指し、筐体内に据え付ける部品(パーツ)とは区別されるが、一部の記憶装置のように同じ機能でも内蔵型と外付型が両方存在する場合もあり、厳密に区別できるわけではない。

パソコンの主な周辺機器は入出力装置や外部記憶装置で、キーボードやマウス、ディスプレイ(モニター)、プリンタ、イメージスキャナ、スピーカー、ヘッドフォン、外付型のストレージやドライブ(ハードディスク、SSD、光学ドライブなど)、USBメモリなどがよく知られる。

ブロードバンドルータやWi-Fiアクセスポイント、NAS(Network Attached Storage)などのようにネットワーク上で複数の機器で共用するものや、デジタルカメラやデジタルオーディオプレーヤーのようにデータ管理はパソコンで行うが使用自体は単体で行うものも含める場合もある。

また、スマートフォンやタブレット端末、携帯ゲーム機、デジタルカメラなど携帯機器の場合はメモリーカードなどの電子機器だけでなくストラップやケース、液晶保護シート、タッチペンなどの器具も含まれるため、周辺装置と呼ばずに「アクセサリー」と呼称することが多い。

ストレージ 【外部記憶装置】 ⭐⭐⭐

コンピュータの主要な構成要素の一つで、データを永続的に記憶する装置。磁気ディスク(ハードディスクなど)や光学ディスク(CD/DVD/Blu-ray Discなど)、フラッシュメモリ装置(USBメモリ/メモリカード/SSDなど)、磁気テープなどがこれにあたる。

一般的には通電しなくても記憶内容が維持される記憶装置を指し、コンピュータが利用するプログラムやデータなどを長期間に渡って固定的に保存したり、他の機器へのデータの運搬や複製、配布などのために用いられる。

コンピュータ内には補助記憶装置とは別に、半導体記憶素子などでデータの記憶を行う主記憶装置(メインメモリ)が内蔵されており、利用者がプログラムを起動してデータの処理を行う際には補助記憶装置から必要なものをメモリに呼び出して使う。

同じコンピュータに搭載される装置同士で比較すると、補助記憶装置はメモリに比べて記憶容量が数桁(数十~数千倍)大きく、容量あたりのコストが数桁小さいが、読み書きに要する時間が数桁大きい。一般的な構成のコンピュータではメインメモリ容量の百倍から千倍程度の容量の固定内蔵ストレージを用意することが多い。

記録原理による分類

補助記憶装置装置は駆動装置(ドライブ)が記憶媒体(メディア)を操作して、記憶素子の物理状態に信号を対応付けて記録する。様々な動作原理の装置があり、主に磁気を利用するもの、レーザー光を利用するもの、電荷(半導体素子)を利用するものに分けられる。

磁気記録方式の補助記憶装置には磁気テープやハードディスク、フロッピーディスクなどがある。平たい媒体表面の磁性体の磁化状態を変化させて信号を記録する装置で、媒体を薄いテープ状にしてリールに巻き取った「磁気テープ」と、平たい円盤(ディスク)状にして中心軸(スピンドル)で高速に回転させる「磁気ディスク」に分かれる。

一昔前まで補助記憶装置の大半を占めていた方式で、現在でもパソコンに内蔵される固定補助記憶装置としてハードディスクがよく用いられる。磁気テープは容量あたりの単価が極めて安いという特徴から、現在でも企業や官公庁などの大規模なデータ保管に用いられることがある。

光学記録方式の補助記憶装置はCDやDVD、Blu-ray Discなどの光学ディスクで、信号を媒体表面の細かな凹凸や化学的な状態の変化として記録し、高速で回転させながらレーザー光を照射して反射光の変化を読み取る。

製造時にデータを記録する読み出し専用ディスクと利用時にデータの書き込みや上書きができる追記型や書き換え型のディスクがあり、前者は映像やソフトウェアなどのコンテンツの販売で、後者は映像の録画やデータのバックアップ、機器間のデータの運搬などでよく利用される。

近年では、読み出し専用メモリ(ROM)から発展した書き換え可能な不揮発メモリ(電源を落としても内容が消えない半導体メモリ)であるフラッシュメモリの大容量化、低価格化が進み、補助記憶装置装置として広く普及している。ハードディスクの代わりに固定内蔵ストレージとして用いられる「SSD」(Solid State Drive)、携帯機器の内蔵ストレージ、データの運搬に用いられるUSBメモリやメモリーカードなどがフラッシュメモリを応用した補助記憶装置である。

<$Fig:storagecomparison|center|true>

ハードディスク 【HDD】 ⭐⭐

コンピュータなどの代表的なストレージ(外部記憶装置)の一つで、薄くて硬い円盤(ディスク)の表面に塗布した磁性体の磁化状態を変化させてデータを記録するもの。一台あたりの容量が大きく容量あたりの単価が安いため、パソコンなどに内蔵されるストレージとして標準的な存在となっている。

構造・原理

装置内にはガラスや金属でできたプラッタ(platter)と呼ばれる円盤型の記憶媒体が数枚封入されており、表面には磁性体が塗布されている。これを回転軸で高速(毎分数千回)で回転させ、アームの先端に取り付けられた磁気ヘッドを近接させる。特定の箇所の磁化状態を変化させることでデータを書き込むことができ、状態を読み取ることでデータを読み出すことができる。

プラッタの直径は主流の製品で3.5インチ(約8.9cm)だが、小型の機器向けに2.5インチや1インチの製品も存在する。一台の装置にプラッタが1~8枚程度備え付けられ、通常はその両面を記録に用いる。内部的な制御や区画分けはプラッタごとに行われるが、外部から見た記憶領域としては全体で一つとなる。

他媒体との比較

「ハードディスク」とは硬い円盤という意味だが、これはフロッピーディスクなどのようにプラッタの素材に柔らかいプラスチックフィルムなどを用いる装置と対比した表現である。フロッピーディスクなどは記憶媒体と駆動装置(ドライブ)が分離していてディスクだけを取り外して交換したり持ち運べるが、ハードディスクはディスクとドライブが一体化しているため、「ハードディスクドライブ」(HDD:Hard Disk Drive)とも呼ばれる。

磁気ディスクや光学ディスクなどの中では最も記録密度が高く、同じ世代で比較すると装置(媒体)一台あたりの記憶容量は飛び抜けて大きい。読み書きも高速で、パソコンやサーバなどのコンピュータ製品では基幹的な記憶媒体として広く普及している。ドライブ一体型なこともあり一台あたりの価格が高いことや、振動に弱いという難点もある。

SSDへの置き換え

装置の寸法や接続仕様をハードディスクに揃え、内部の記憶媒体をフラッシュメモリに置き換えた製品はSSD(Solid State Drive)と呼ばれ、ハードディスクの代替として近年急速に浸透している。

読み書き速度が桁違いに速く衝撃にも強いという長所があるが、半導体メモリのため価格が高く一台あたりの容量も少ないという欠点があった。近年では低価格化と記憶容量の向上が劇的に進み、従来のハードディスクの用途を置き換える形で普及が加速している。

接続方式

コンピュータ本体に内蔵されるハードディスクの場合、接続インターフェースとして初期にはIDE/ATA(パソコン向け)やSCSI(サーバ・ワークステーション向け)が、2000年代以降はSATA(Serial ATA)が主に用いられている。独自の筐体を持ちケーブルでコンピュータと繋ぐ外付けの装置もあり、USBやIEEE 1394、eSATAなどの規格で接続される。

USBメモリ 【USB stick】

コンピュータなどのUSB端子に差し込んで使用する、フラッシュメモリを内蔵した小型の外部記憶装置(ストレージ)。着脱・持ち運びが容易な記憶メディアとして、パソコンなどの情報機器間のデータの移動によく用いられている。

一般的なUSBメモリは親指ほどのサイズの箱型や棒状の機器の先端部がUSBコネクタとなっており、パソコンなどのUSBコネクタに差し込むとハードディスクなどと同じように記憶装置として読み書きできるようになる。

内部には通電しなくても内容が消えない不揮発性の半導体メモリの一種であるフラッシュメモリのICチップが実装されており、USB端子を通じてコンピュータ側から供給される電力(USBバスパワー)により駆動する。

2000年前後から普及し始めた製品カテゴリーで、記憶容量は当初は数十MB(メガバイト)程度の製品から普及し始めたが、近年ではハードディスクやSSDなどのストレージ装置に劣らない数百GB(ギガバイト)から1TB(テラバイト)を超える製品まで存在する。

日本では「USBメモリ」の呼称が浸透しているが、英語では正式な場面では “USB flash drive” と呼ばれることが多い。日常的には様々な呼び方が用いられ、“USB drive”“USB stick”“USB flash”“flash drive”などと呼ばれることが多い。

利点と欠点

極めて小型、軽量で記憶容量が大きく、USB端子があれば読み書きのための特別な装置(リーダー/ライター)やドライバソフトなどが不要で、半導体装置であるため衝撃に強く、読み書き速度も磁気メディアや光学メディアより格段に高速などの利点がある。

一方、磁気ディスクや光学ディスクに比べ容量あたりの単価が高い、寸法や形状の規格や標準がないため大量に保管する際は収納や整理が難しい、同じ可搬型フラッシュメモリ装置のメモリーカードよりは大きくかさばるといった難点もある。

<$Fig:storagecomparison|center|true>

また、フラッシュメモリに共通する特徴として、書き込み動作を繰り返すと次第に記憶素子が劣化していくため、頻繁に何度も消去や書き換えを行う用途には向かない。光学ディスクなどは静電気の放電や水濡れに強いが、USBメモリは電子機器であるためこれらには弱い。

USBメモリの利用

USBの規格には元々、「USB Mass Storage Class」という、記憶装置に対する基本的な操作を提供する仕様が含まれており、USBメモリはこれを利用して読み書きを行うようにすることで、特別なドライバソフトなどをコンピュータのオペレーティングシステム(OS)に導入しなくても利用できるようにしている。

特に準備などをしなくても初めて使用するコンピュータに差し込むだけで即座に読み書き可能となるが、内部にファイルシステムを設けてからファイルやディレクトリを作成するため、FAT32、exFAT、NTFSなどファイルシステムの種類によっては特定の機種で読み書きできない場合がある。

一般的なUSBメモリ製品はUSB Type-Aコネクタを備えているが、近年の最新USB規格ではコネクタ仕様がUSB Type-Cに統一されたため、Type-Cコネクタの製品やType-AとType-Cの両対応になっている製品もある。iPhoneやiPadなど米アップル(Apple)社製品で利用できるようにするためLightningコネクタを備えた製品もある。

インターフェース 【I/F】

接点、境界面、接触面、接合面、仲立ち、橋渡しなどの意味を持つ英単語。IT分野では、二つの主体が接続・接触する箇所や、両者の間で情報や信号などをやりとりするための形式や手順などを定めた決まりごとを意味する。

例えば、パソコンと周辺機器はコネクタ(端子)およびケーブルによって接続されるが、端子の形状や電気信号の形式が製品ごとにバラバラでは互いに接続することができない。そこで、「USB」などの標準規格を定めてこれに沿って設計することで、製品の種類やメーカーによらず相互に接続できるようになる。このような複数の対象を繋ぐ接点のことをインターフェースという。

機器(ハードウェア)やソフトウェア、人間(利用者)などが互いに繋がりを持ち情報を伝達する接点のことをインターフェースという。機器間、ソフトウェア間、機器-ソフトウェア間、人間-機器間、人間-ソフトウェア間など様々な類型がある。

機器や装置、回路などの物理的な接続部を「ハードウェアインターフェース」、コンピュータプログラム間の連携仕様を「ソフトウェアインターフェース」、システムと利用者の間で情報をやり取りする仕組みを「ユーザーインターフェース」(主にソフトウェアの場合)あるいは「マンマシンインターフェース」(主に機械の場合)という。

人工物間のインターフェースは、接点の仕様や情報の表現形式、信号の伝送手順などがばらばらでは繋げることができないため、双方が共通の仕様に基づいて設計されていることが重要となる。各分野で様々なインターフェース規格が策定・公開されている。

ハードウェアインターフェース

ハードウェアインターフェースとは、複数の機器や装置、回路などを接続して通信する際の仕様で、コネクタ(端子)の寸法や形状、ケーブルや信号線の数や特性、信号の表現形式や伝送手順などで構成される。無線接続の場合は電波の周波数や信号の形式などが含まれる。

機器内部の部品間の信号伝送、機器本体と周辺装置のデータ伝送、機器間のデータ通信など、目的や用途に合わせて様々なインターフェースが存在する。例として「USB」「SATA」「IEEE 1394」「PCI Express」「HDMI」などの規格、およびこれらの標準コネクタ、ケーブル類などが挙げられる。

また、接続先がコンピュータネットワーク(LAN)の場合は特に「ネットワークインターフェース」と呼ばれることもあり、「イーサネット」(Ethernet)や「Wi-Fi」(無線LAN)などの通信規格、およびコネクタや差込口(ポート)、拡張カード、通信チップなどを指す。

ソフトウェアインターフェース

ソフトウェアインターフェースは、プログラム間でデータや処理依頼などをやり取りする手順や形式を定めた仕様である。代表的なものとして、オペレーティングシステム(OS)やミドルウェア、ライブラリなどの機能を外部から呼び出して利用するため規約である「API」(Application Programming Interface)がある。

他にも、アプリケーションとシステム(OS)を繋ぐ「ABI」(Application Binary Interface)や、実行中のプログラム間で通信するための「プロセス間通信」の仕様なども含まれる。さらに広義には、ネットワークを介してソフトウェア間で連携するためのプロトコル(通信規約)やデータ形式、複数のソフトウェアで共通して利用される汎用的なファイル形式などを含む場合がある。

ユーザーインターフェース

<$Img:Interface2.jpg|right|Edar|https://pixabay.com/photos/touch-screen-mobile-phone-ipad-1023966/>

ユーザーインターフェース(UI:User Interface)は、コンピュータなどの機器が利用者に対して情報を伝達する方式や、逆に、利用者が情報を入力するための仕組みを指す。

古くから使われている方式として、コンピュータが画面(古くはプリンタ)に文字で情報を提示し、利用者がキーボードなどから文字で指示を入力する「CUI」(Character User Interface/キャラクタユーザーインターフェース)あるいは「CLI」(Command Line Interface/コマンドラインインターフェース)がある。現在でも業務システムや技術者向けのシステムなどで広く利用されている。

一方、画面に図形や画像を多用した表示を行い、マウス操作やタッチ操作などで画面上の位置を指示する操作方法を基本とする方式を「GUI」(GUI:Graphical User Interface/グラフィカルユーザインターフェース)という。パソコンやスマートフォンなど一般消費者向けのコンピュータ製品で広く普及している。

「ユーザーインターフェース」は主にコンピュータやソフトウェアと利用者(ユーザー)の間の情報のやり取りに着目した用語だが、より広義に、機械と人間のやり取り、およびその接点となる装置や仕組みなどを表す用語として「マンマシンインターフェース」(HMI:Human Machine Interface)がある。自動車におけるハンドルやペダル、レバー、ボタン類などが該当する。

マウス

コンピュータの入力装置の一種で、平らな面の上で卵大の装置を動かし、移動量や方向を指示するもの。姿がネズミに似ていることからこのように呼ばれる。表側には一つから数個のボタンがあり、決定やキャンセルなどの指示を伝えるのに用いられる。

画面上には現在位置を示す小さな絵記号が表示され、これをマウスポインタ(mouse pointer)あるいはマウスカーソル(mouse cursor)という。面に接する裏側には移動を検知するセンサーが搭載されており、手で軽く押さえて盤上を滑らせると、その方向や速さを検出してコンピュータ本体に伝え、画面上のポインタが同じように移動する。利用者から見て手前側が画面下方向に、奥が上方向にそれぞれ対応している。

表側の指のかかる部分にボタンがあり、これを押して素早く離す動作(クリックという)を行うと、ポインタの指し示す位置にある対象物を選択・指定された状態にすることができる。ボタンが左右に分かれて2つある場合は、右ボタンと左ボタンで機能や役割が異なる。左右のボタンの間に回転する車輪状の部品(ホイールという)が組み込まれた製品もあり、これを回転させたり押し込む操作が利用できる。

最初に実用化されたのは内部にゴムなどでできたボールを仕込んだもので、メカニカルマウスあるいはボールマウスと呼ばれる。内部にはボールの回転を検知するセンサーがあり、裏側からボールの一部を露出させて、面上を動かすと連動してボールが転がる仕組みである。現在普及しているのは、裏面に光源と光センサーがあり、接地面からの反射光の変化を読み取って移動を検知する光学式マウス(オプティカルマウス/レーザーマウス)である。

マウスの感度

マウスの感度(センサーの分解能)を表す性能指標として「カウント数」という単位を用いることがある。物理的にどのくらいの距離動いたら1単位の移動としてコンピュータに伝達するかを表す値で、1インチあたりの検出回数を「dpi」(dot per inch/ドット毎インチ)という単位で表す。

例えば、分解能400dpi(400カウントとも表記される)の製品の場合、手で400分の1インチ移動させるとコンピュータ本体へ信号が送られ、対応する距離だけ画面上のポインタを移動させる。コンピュータ側の設定によるが、1カウントあたり1ピクセル移動させる設定の場合、1インチの移動が画面上で400ピクセルの移動に相当する。

感度が高ければ微妙な動きも検知することができるが、高すぎるとわずかな移動でポインタが大きく動いてしまい、かえって使いにくくなってしまうため、スイッチなどでカウント数を切り替えて好みの値に設定できるようになっている製品も多い。

ディスプレイ

表示(する)、展示(する)、陳列(する)、掲示(する)、露呈(する)、誇示(する)、展示品、飾り付け、見せる、示す、などの意味を持つ英単語。ITの分野では、コンピュータなど情報機器の出力装置の一つで、画面を発光させて像を映し出す表示装置を指すことが多い。

コンピュータの操作画面を映像として電気的に映し出し、処理状況の変化や利用者の操作に即時に反応して表示内容を変化させることができる。データとして記録された動画像を再生・表示することもできる。「モニター」(monitor)とも呼ばれる。

コンピュータ本体とケーブルなどで接続する単体の機器と、コンピュータの筐体の一部に埋め込まれて利用される装置がある。動作原理はテレビ受像機と同じであるため、テレビの中にはコンピュータに接続してディスプレイとして使うことができるものもある。

ディスプレイ以前に主要な出力装置として利用されていたのは印字装置(プリンタ)であり、状況や操作を表示内容にリアルタイムに反映する特徴は画期的で便利な特性だった。現代では対面利用のパソコンなどではほぼ必ずディスプレイを利用するが、サーバなど対面で操作しない用途では用意しないこともある。

ディスプレイの構造

ディスプレイの画面は格子状に規則正しく並んだ微細な画素(ドット/ピクセル)から成り、その発光状態を電気的に制御してコンピュータから受信した映像信号を表示する。初期の装置は明暗2色(白黒や緑と黒など)のモノクロ表示だったが、現在では一つの画素を光の三原色に対応する微細な素子で構成し、カラー表示できるものが一般的となっている。

画面(画素)そのものが発光する方式(CRT、有機ELなど)と、画面の背後に設置した光源(蛍光灯やLEDなど)からの光の透過度を制御して前面に光を発する方式(透過型液晶など)、太陽光など前面からの光の反射を利用する方式(反射型液晶など)がある。

ディスプレイの種類

最初に実用化されたのは「CRTディスプレイ」(CRT display)で、筐体奥の電子銃から電子線を発射し、蛍光面に衝突させて発光させる「陰極線管」(CRT:Cathode Ray Tube/ブラウン管)を利用したものだった。奥行きのある箱型の形状で重量が重く、消費電力が大きいが、発色が鮮明で視野角が広く、応答速度が速いという特徴がある。

近年広く普及しているのは薄型、軽量、低消費電力の「液晶ディスプレイ」(LCD:Liquid Crystal Display)で、据え置き型の機器のほかにも、携帯機器の筐体に備え付けられた表示画面としても幅広く採用されている。当初欠点とされた視野角の狭さや応答速度の遅さ、発色の鈍さなども他の方式と遜色ないレベルに改善され、画面の大型化、画素の高密度化が進んでいる。

近年では、液晶と同じ薄型軽量で、より消費電力が少なく発色が鮮明な「有機ELディスプレイ」(OELD)も本格的に実用化され、スマートフォンなどに採用され普及が進んでいる。

キーボード 【KB】

指で押し込むことができる小さな部品(鍵やボタン)が規則正しく並んだ盤状の装置。楽器の場合は音を発することができ、コンピュータの入力装置の場合は文字や記号を入力したり指示や命令を発行することができる。

音楽の分野では、ピアノのように細長いけんが横一列に並んだ楽器(の操作部分)を意味し、「鍵盤」とも呼ばれる。コンピュータの分野では、正方形や横長の小さなボタンが縦横に整然と並び、文字や記号、コンピュータへの指示などを送信するための入力装置のことを指す。

一般的な製品には100前後のキーが4~5段に渡って並んでおり、各キーの上面(キートップ)に入力される文字や機能などが記されている。文字や記号を入力するキーは小さな正方形になっていることが多く、特殊な機能を与えられたキーは横長になっていることが多い。キートップに指先などで触れて押し込むことで、そのキーが押されたという信号がコンピュータへ送信される。

文字キーにはアルファベットやアラビア数字、記号などが割り当てられており、日本国内で使用される装置にはかな文字が刻印されているものもある。一つのキーには通常複数の文字が割り当てられており、単に打鍵したときと、「Shift」キーを押しながら打鍵したとき、かな入力モードで打鍵したとき、などのように使い分けられる。

文字キー以外に特殊な文字の入力や機能の呼び出しを行うためのキーがあり、スペース(空白)文字を入力するスペースキー(横長のためスペースバーとも呼ばれる)や、タブ文字を入力するTabキー、選択のキャンセルなどを行うEscキー、現在地の文字の削除などを行なうDeleteキー(Delキー)、「↑」など矢印の刻印された方向キー(矢印キー)など様々な種類がある。

また、他のキーと組み合わせて(同時に押して)使用するためのキーは修飾キーと呼ばれ、別の文字を呼び出すShiftキーや、文字キーをソフトウェアの機能の呼び出しに用いるCtrlキー(Controlキー)やAltキーなどがある。WindowsパソコンにしかないWindowsキーやMacにしかないCommandキーなど、機種固有の特殊なキーもある。

キーの並び方にはいくつかの標準があり、アルファベットの配列は「QWERTY」と呼ばれる並べ方が標準的に用いられる。パソコン向けにはこれに記号や特殊キーを追加した101型(英語圏向け)や、さらに日本語入力用のキーを追加した106型や109型などの規格がよく用いられる。かな文字の配列の標準としてはJIS配列や親指シフト配列(NICOLA配列)などがよく知られている。

CPU 【Central Processing Unit】 ⭐⭐⭐

コンピュータの主要な構成要素の一つで、他の装置・回路の制御やデータの演算などを行う装置。演算装置と制御装置を統合したもので、現代では一枚のICチップに集積されたマイクロプロセッサ(MPU:Micro-Processing Unit)を用いる。

CPUはメインメモリ(RAM)に格納された機械語(マシン語)のプログラムを、バスを通じて一命令ずつ順番に読み出し(フェッチ)、その内容を解釈して行うべき動作を決定(デコード)し、内部の回路を駆動して実際に処理を実行する。現代のCPUの多くはマイクロプログラム制御方式を採用しており、機械語の一命令は、より細かな動作(マイクロコード)の組み合わせに分解されてから実行される。

命令セット

CPUは実行可能な命令の体系が決まっており、これを命令セット(instruction set)あるいは命令セットアーキテクチャ(ISA:Instruction Set Architecture)という。記憶装置から読み出されたどのようなビット列がどのような動作に対応するかを定めたもので、機械語のプログラムはこれを用いて記述される。

命令セットは各CPUの機種ごとに固有だが、同じメーカーの同じ系列の製品では同じ命令セットが採用されることが多く、その場合は異なる製品が同じプログラムを実行することができる。同じ命令セットでも製品の世代が下るに連れて新しい命令が追加されることが多く、新しいCPUは古いCPU向けのプログラムも実行できる一方、古いCPUは新しい命令セットのプログラムは実行できないという関係になる(後方互換性)。

有力なメーカーの製品には、別のメーカーが同じ命令セットを採用した互換CPU製品を開発・販売することもある。例えば、米インテル(Intel)社のx86命令セットは広く普及しており対応ソフトウェアが豊富なため、これをそのまま実行できる互換CPUを米AMD社などが製造している。

構造

一般的なCPUの内部は、命令の解釈や他の回路への動作の指示などを行う制御ユニット、論理演算や算術演算を行う演算ユニット(ALU:Arithmetic and Logic Unit)、データの一時的な記憶を行うレジスタ、外部との通信を行うインターフェース回路などで構成される。

また、レジスタとメインメモリのあまりに大きな速度差、容量差を埋めるため、両者の中間の速度と容量を併せ持つキャッシュメモリが内蔵されることが多く、浮動小数点演算に特化した演算ユニット(FPU:Floating-Point Unit)なども標準搭載されることが多い。

以前はマザーボード上のチップセットや単体のICチップとして提供されてきた、メモリコントローラやI/Oコントローラ、グラフィックス処理(GPU)などの機能が統合された製品も数多く登場している。コンピュータに必要な機能のほとんどをCPUの内部に統合した製品はSoC(System-on-a-Chip)と呼ばれる。

性能

内部の演算回路やレジスタが一回の動作でまとめて伝送、保存、処理できるビット数が決まっており、この値が大きいほど一度に多くのデータを処理でき、また、広大なメモリ空間を一元的に管理できる。

一度にnビットのデータを処理できるCPUをnビットCPUというように呼び、CPUが発明された当初は4ビットであったが、8ビット、16ビット、32ビットと拡張されてゆき、現代では64ビットCPUが広く普及している。

また、ほとんどのCPUはコンピュータ内部の特殊な回路から一定周期で発信されるクロック信号に合わせて動作するようにできている。より高い周波数の信号で動作するものほど、単位時間あたりに多くの動作を行うことができ、性能が高い。例えば、2GHz(ギガヘルツ:毎秒10億回)で動作するCPUと1GHzのCPUならば、他の仕様が同じなら約2倍の速度差がある。

並行処理

単純な構造のCPUは一つの命令列から一つずつ順番に命令を取り出し実行していくが、現在のCPU製品の多くは、何らかの形で複数の命令、あるいは複数の命令列を同時並行に処理できる機能を内蔵しており、クロックあたりの性能を引き上げている。

よく用いられるのはパイプライン処理で、一つの命令を複数の段階に分割してそれぞれを別の回路で実行することにより、いくつかの命令の実行を並行して進めることができる。ある命令が実行段階にあるとき、次の命令がデコードを、その次の命令がフェッチを行うといったように、前の命令の完了を待たずに空いた回路に先行して次の命令を投入する方式である。

また、大抵の命令は限られた回路しか利用しないという性質を利用して、空いている回路で実行できる別の命令を同時に投入する方式を同時マルチスレッディング(SMT:Simultaneous Multithreading)という。擬似的に二つのプログラムを並行に実行することができ、最良の場合で数割の性能向上が果たせる。Intel社のCPUに内蔵されるハイパースレッディング(Hyper-Threading)機能が有名である。

一つの半導体チップの内部に、命令の解釈・実行を行うユニット(CPUコア)自体を複数搭載するという手法も広まっており、マルチコアプロセッサ(multi-core processor)という。それぞれが独立して別のプログラムを並列に実行でき、複数のCPUを搭載するのとほとんど同じ効果を得ることができる。ちなみに、一台のコンピュータに複数のCPUを内蔵する方式はマルチプロセッサ(multiprocessor)という。

クロック周波数 【動作周波数】

電子基板や半導体チップなどの内部で、複数の電子回路が信号を送受信するタイミングを揃えるための周期的な電気信号を、単位時間あたり何回発振するかを表す値のこと。単位は「Hz」(ヘルツ)。

クロック信号には様々な形式があるが、最も基本的なものは一定時間ごとに高電圧と低電圧が切り替わる信号で、基板内や回路内に設けられた発振器により生成され、各装置や回路に供給される。

クロック信号を毎秒何回発するかを表すのがクロック周波数で、この値が大きいほど、1秒を短い間隔で区切って信号の処理や伝送を実行するため、他の条件が同じなら装置をより高速に動作させることができる。

クロック信号を毎秒1回発振するのが1Hzで、毎秒1000回を1kHz(キロヘルツ)、毎秒100万回を1MHz(メガヘルツ)、毎秒10億回を1GHz(ギガヘルツ)という。現代のコンピュータのクロック周波数は数百MHzから数GHzが多い。

原則として基板上のチップや回路は単一(同一)のクロック周波数で動作するが、近年ではCPUなど特定のチップの内部だけ、外部からの信号の数倍の周波数を用いて高速に動作させる場合もあり、「CPUクロック」「メモリクロック」「ベースクロック」などのように呼び分ける。

クロック周期 (clock cycle/クロックサイクル)

クロック信号の繰り返し周期一回分にかかる時間の長さをクロック周期(クロックサイクル)という。クロック信号の始まり(電圧の立ち上がりなど)から、次のクロックの始まりまでの時間で、クロック周波数の逆数となる。

例えば、クロック周波数1MHzの信号は毎秒100万回の発振を繰り返すため、一回あたりのクロック周期は100万分の1秒(1マイクロ秒)となり、1GHzならば10億分の1秒(1ナノ秒)となる。

論理回路 ⭐⭐

デジタル信号を処理して論理演算や記憶などを行うための電子回路。単純な論理演算を行う回路を膨大な数組み合わせればCPU(MPU/マイクロプロセッサ)のような複雑な装置を作ることができる。

二状態のいずれかを取るデジタル信号を入力および出力とする論理素子を配線で結び、様々な論理演算や記憶を行う回路を構成する。信号の状態は論理的には2進数の「0」と「1」、あるいは真偽値(真理値/ブール値)の「真」と「偽」に対応し、物理的には電圧の高低で表すことが多い。高電圧を「真」や「1」に対応付ける方式を「正論理」、逆を「負論理」という。

論理素子は「論理ゲート」(logic gate)とも呼ばれ、何らかの論理演算を行う機能を持った単体の素子である。一つ以上の入力を取り、所定の演算を行って一つの信号を出力する。実際の電子回路上では抵抗やトランジスタなど複数の電子部品を組み合わせて実装される。図で表す際の記号には標準規格があり、MIL記号やJIS記号などがよく用いられる。

基本的なゲートとして、否定(NOT)演算を行う「NOTゲート」、論理和(OR)演算を行う「ORゲート」、論理積(AND)演算を行う「ANDゲート」、排他的論理和(XOR)演算を行う「XORゲート」、否定論理和(NOR)演算を行う「NORゲート」、否定論理積(NAND)演算を行う「NANDゲート」などがある。複雑な挙動の論理回路もほとんどがこれらの組み合わせで構成されている。

<$Fig:logic|center|false>

現在の入力のみから出力を決定する回路を「組み合わせ回路」(combinational logic)と呼び、加算を行う加算器のように演算を行う回路などが該当する。一方、内部に状態を持ち、過去の入力で変更された現在の内部状態と入力を組み合わせて出力を決定する回路を「順序回路」(sequential logic)という。フリップフロップ回路(ラッチ回路)やカウンタ回路などが該当する。

集積回路 【IC】

高度な機能を持つ電子部品の一つで、トランジスタ、抵抗、コンデンサ、ダイオードなど、多数の微細な電子部品を一つの基板の上で連結し、全体として複雑な処理を行ったり、大量のデータの記憶を行ったりできるもの。形態が数cm角程度の小片であるため「チップ」(chip)と呼ばれる。

マイクロプロセッサ(MPU/CPU)やマイクロコントローラ(MCU)、メモリ、センサー、電源回路など様々な種類があり、電子機器の中枢部品として広く利用されている。回路の集積度の高いものをLSI(Large Scale Integration)、VLSI(Very LSI)、ULSI(Ultra-LSI)などと分類していた時代もあったが、現代ではLSI以外の呼称はほぼ廃れている。

一般的なICはシリコン(Si:ケイ素)などの半導体でできた数mmから数cm角のチップの表面に、数十万個から多いもので10億個以上の微細な半導体素子と、それらを結ぶ金属配線が実装されている。素子や配線は印刷や写真の手法に由来する光学的な焼付処理(フォトリソグラフィ)によっていっぺんにまとめて形成されるため大量生産に適している。

チップは樹脂などでできた外殻(ICパッケージ)に封入され、その周囲や裏面などに規則正しく並んだ金属端子で外部と接続される。用途に応じて電子基板(プリント基板)の所定の位置に組み付け、あるいははんだ付けされ、電子機器の一部として機能する。

主なICの種類

ICには大きく分けてデジタル信号を扱うデジタルICとアナログ信号を扱うアナログICがあり、デジタルICにはデータや信号の処理を行うためのロジック系ICと、データの記録に用いられるメモリICがある。

アナログICには各種のセンサーや変換回路、増幅器、無線信号処理といったアナログ信号処理用のICと、電源・電力制御を行うための電源ICなどがある。デジタルとアナログの両方の信号用の回路を内蔵したミックスドシグナルICもある。

ロジックとメモリ、デジタルとアナログなど複数の異なる種類の回路を混載し、単体でひとまとまりの大きな機能(機器の制御など)を提供するよう設計されたICを「システムLSI」あるいは「SoC」(System-on-a-Chip)などという。

また、汎用品(汎用IC)か特注品(カスタムIC)かによる分類、一枚のチップで完結した構造(モノリシックIC)か複数のチップや電子部品の複合構造(ハイブリッドIC)かによる分類など、いくつかの分類法がある。

ロジックIC

ロジック系のICは主にデータの演算や変換、処理、伝送、別の装置の制御などの機能を論理回路として実装したIC製品である。MPUやASSP(特定用途向け標準品)のようにメーカーが機能や仕様を決めて設計する汎用品(既製品)と、用途や組み込み対象ごとに個別に設計されるASIC(特定用途向けIC)に分かれる。

コンピュータの心臓部に当たるマイクロプロセッサ(MPU:Micro-Processing Unit)やデジタル機器の制御装置であるマイクロコントローラ(MCU:Micro-Control Unit)、デジタル信号処理に特化したDSP(Digital Signal Processor)、コンピュータグラフィックス関連の演算処理に特化したGPU(Graphics Processing Unit)などの種類がある。

MPUやMCUなどは内部に一時的なデータ保管のための記憶素子を内蔵した構成が一般的で、I/O制御といった従来は別のチップに分かれていた様々な機能や役割が統合されるようになってきているため、単純なロジック系ではなくシステムLSI/SoCに分類されることもある。

チップ製造時には特定の機能は与えられておらず、開発者が内部の論理回路の構成をデータとして与えることで機能するようになる「プログラマブル」(programmable)なICもある。方式や回路規模によってPLD(Programmable Logic Device)、CPLD(Complexed PLD)、FPGA(Field Programmable Gate Array)などの種類がある。

ちなみに、「汎用ロジックIC」といった場合は、MPUなど規格や設計があらかじめ決まっている汎用製品という意味ではなく、NANDゲート、フリップフロップ回路といった単機能の論理回路を単体のICチップとして実装した製品のことを指す。

メモリIC

メモリ系のICは主にデータの記録に用いられるもので、コンピュータやデジタル機器の主記憶装置(メインメモリ)や内蔵プログラム(ファームウェアなど)の記録、永続的なデータ記憶装置(ストレージ)などとして用いられる。

大きく分けて、任意に読み書きが可能な「RAM」(Random Access Memory)と、使用時には記録済みデータの読み出ししかできない「ROM」(Read Only Memory)に分かれる。前者は電源を落とすと内容が失われる「揮発性メモリ」、後者は通電状態に左右されず常に記録内容が維持され続ける「不揮発性メモリ」である。

RAMは記憶素子の内容を維持するために一定間隔で再書き込み動作(リフレッシュ)を行う必要がある「DRAM」(Dynamic RAM)と、リフレッシュしなくても記憶が失われない「SRAM」(Static RAM)に分類される。前者は消費電力は大きいが低コストで高密度化(大容量化)しやすいためコンピュータのメインメモリに使われる。後者は高速性や省電力性が必要な組み込み用途などで使われる。

ROMは製造時に内部の回路に固定的に信号を記録し、以降は内容を変更することができない(現在ではこれをマスクROMと呼ぶ)。しかし、技術の進展でチップ製造時にはデータを記録せず、開発者が特殊な装置でデータを記録する「PROM」(Programmable ROM)が発明された。PROMがさらに発展し、内容の消去と再書き込みを繰り返し行うことができる「EPROM」(Erasable Programmable ROM)が生まれた。

さらに、すべての処理をコンピュータなど(読み出しを行う)機器に装着した状態のまま実行できる「EEPROM」(Electrically Erasable Programmable ROM)に改良され、さらに制御方式や書き換え性能などを向上させた「フラッシュメモリ」となった。フラッシュメモリはUSBメモリやメモリーカード、SSDなどの形で、従来の磁気ディスクや光学ディスクに代わって主流のストレージ装置として急速に普及している。

論理演算 【ブーリアン演算】

真(true)と偽(false)の二通りの状態を取る真偽値(真理値/ブール値)の間で行われる演算。コンピュータでは真を1に、偽を0に対応付けたビット演算として行われることが多い。

入力が一つの単項演算として、入力値の反対の値を出力する「否定」(NOT A:Aではない)がある。入力が二つの二項演算には、どちらかが真なら真を出力する「論理和」(A OR B:AまたはB)、両者とも真の時のみ真を出力する「論理積」(A AND B:AかつB)、両者が異なる時に真を出力する「排他的論理和」(XOR:eXclusive OR)がある。

電子回路などでは、論理和と否定を組み合わせた「否定論理和」(NOR:Not OR)、論理積と否定を組み合わせた「否定論理積」(NAND:Not AND)が用いられることもある。排他的論理和と否定を組み合わせた「否定排他的論理和」(XNOR)は値が同じとき真、異なるとき偽となるため「同値」(EQ:equal)とも呼ばれる。

<$Fig:logic|center|false>

三項以上を計算する際は二項ずつの計算を繰り返すことで結果が得られる。その際、四則演算のように交換法則や分配法則、結合法則、ド・モルガンの法則などが成り立つ。すべての論理演算はNOT、AND、ORの三つの組み合わせで構成できるが、この三つはすべてNANDの組み合わせで構成でき、NANDだけですべての論理演算を記述できることが知られている。

コンピュータでは真偽値自体の演算(プログラミング言語におけるブール型の値の演算など)の他に、真を1、偽を0に置き換えてビット間で論理演算を行うことがある。ビット列について論理演算を行う場合は二つのビット列のぞれぞれ対応する位置にあるビット同士で論理演算を行う。

このような演算方式を真偽値の論理演算と区別して「ビット演算」(bitwise operation)と呼ぶこともある。なお、ビット演算には論理演算に相当する演算以外にも、シフト演算やローテート演算などビット列を左右に移動する操作もある。

プログラミング言語では算術演算などと並んで最も基本的な演算の一つとして論理演算が用意されていることが多く、論理演算子によって式を記述する。演算子は「&&」のような記号を用いる場合と、「and」のような英単語をそのまま用いる場合がある。C言語の「&」と「&&」のように、論理演算と対応するビット演算にはそれぞれ別の演算子が与えられていることが多い。

AND回路 【AND gate】 ⭐⭐

基本的な論理回路の一つで、二つの入力と一つの出力を持ち、入力がいずれも「H」(Hight:高電圧)のときのみ出力が「H」となり、それ以外の場合は出力が「L」(Low:低電圧)となるもの。論理積(AND)演算を行う回路である。

正論理の場合、入力の両方が「H」のとき出力が「H」となり、片方あるいは両方が「L」のとき出力が「L」となる(負論理の場合はこの逆)。「H」と「L」を2進数の「1」と「0」に対応付ければビット論理積(ビットAND)演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のAND演算を行うことができる。

現在の入力のみから出力が決まる組み合わせ回路の一つで、最も基本的な論理ゲートの一つである。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。AND回路が用意されていない場合でも、NAND回路あるいはNOR回路(のみ)の組み合わせでAND回路を構成することができる。

OR回路 【OR gate】 ⭐⭐

基本的な論理回路の一つで、二つの入力と一つの出力を持ち、入力のいずれもが「L」(Low:低電圧)のときに出力が「L」となり、それ以外の場合は出力が「H」(High:高電圧)となるもの。論理和(OR)演算を行う回路である。

正論理の場合、入力の片方あるいは両方が「H」のとき出力が「H」となり、両方「L」のときのみ出力が「L」となる(負論理の場合はこの逆)。「H」と「L」を2進数の「1」と「0」に対応付ければビット論理和(ビットOR)演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のOR演算を行うことができる。

現在の入力のみから出力が決まる組み合わせ回路の一つで、最も基本的な論理ゲートの一つである。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。OR回路が用意されていない場合でも、NAND回路あるいはNOR回路(のみ)の組み合わせでOR回路を構成することができる。

NOT回路 【NOT gate】 ⭐⭐

基本的な論理回路の一つで、一つの入力と一つの出力を持ち、入力の逆の状態を出力するもの。論理否定(NOT)演算を行う回路である。

入力が「H」(High:高電圧)なら出力は「L」(Low:低電圧)、入力が「L」なら出力は「H」となる。「H」と「L」を2進数の「1」と「0」に対応付ければビット否定(ビットNOT)演算を、真理値の「真」(true)と「偽」(false)に対応付ければ論理演算のNOT演算を行うことができる。

最も基本的な論理ゲートの一つで、様々なデジタル回路の構成部品として用いられる。回路図に用いる記号をIEC、MIL/ANSI、DINの各規格がそれぞれ定めており、JIS規格はIEC記号に準拠している。NOT回路が用意されていない場合でも、NAND回路あるいはNOR回路を用いてNOT回路を構成することができる。

半加算器 【ハーフアダー】 ⭐⭐

2進数の加算(足し算)を行う論理回路(加算器)のうち、下の桁からの繰り上がりを考慮せず、単純に二数の和のみを求める回路のこと。より複雑な加算器の構成要素となる。

加算を行う回路を加算器というが、半加算器は2つのビット列の同じ桁の値同士を加算し、その桁の加算後の値と、上位桁への繰り上がりの有無を表す「キャリー」(carry out)の2つを出力する。キャリー出力は繰り上がりがなければ「0」、あれば「1」となる。

2つのビットが両方「0」ならその桁の値として「0」(0+0=0)を、片方が「1」なら「1」(0+1=1, 1+0=0)を出力するが、両方「1」ならば結果は「10」(1+1=10)と2桁の値になるため、その桁の値として「0」を、キャリーとして「1」を出力する。キャリーは隣の上位桁の全加算器に入力される。

半加算器は基本的な論理回路の組み合わせで構成でき、AND回路2つ、OR回路1つ、NOT回路1つで作ることができる。XOR回路が利用可能であれば、XOR回路1つとAND回路1つで構成することもできる。

半加算器は下の桁からの繰り上がりを考慮しないため、そのままでは最下位桁の加算にしか使えない。下の桁からの繰り上がりを入力として受け付けるものは「全加算器」(full adder:フルアダー)と呼ばれ、2つの半加算器とOR回路により構成することができる。最下位桁以外の加算には全加算器が用いられる。

全加算器 【フルアダー】

2進数の加算(足し算)を行う論理回路(加算器)のうち、下の桁からの繰り上がりを考慮し、3つの数の和を求める回路のこと。複数桁の加算機の構成要素となる。

加算を行う回路を加算器というが、全加算器は2つのビット列の同じ桁の値と、隣の下位桁からの繰り上がりを加算し、その桁の加算後の値と、上位桁への繰り上がりの有無を表す「キャリー」(carry out)の2つを出力する。キャリー出力は繰り上がりがなければ「0」、あれば「1」となる。

加算する3つの値の「0」と「1」の組み合わせにより「00」から「11」までの8種類の和が得られるが、下位ビットがその桁の値として、上位ビットが上位桁へのキャリーとして出力される。キャリーは隣の上位桁の全加算器に入力される。

一方、下位桁からの繰り上がりを考慮せず、単純に2つの値の和を求める回路を「半加算器」(half adder:ハーフアダー)という。繰り上がりのない最下位桁の和を求めるのに使われる。全加算器は半加算器2つとOR回路1つを組み合わせて構成することができる。

最下位桁に半加算器を置き、各桁についての全加算器を桁の数だけ並べて連結すると、複数桁の2進数の加算を行う論理回路を構成することができる。例えば、半加算器1つと全加算器7つを並べれば8ビットの全加算器となる。

ビット ⭐⭐⭐

情報量の最小単位で、二つの選択肢から一つを特定する情報の量。コンピュータなどでは0と1のいずれかを取る二進数の一桁として表される。

語源は “binary digit” (二進法の数字)を繋げて省略した表現と言われる。情報をすべてビット列に置き換えて扱うことを「デジタル」(digital)という。1ビットのデータが表す情報量は、投げたコインの表裏のように、二つの状態のいずれであるかを示すことができる。

複数のビットを連ねて一つのデータとすることで、2ビットなら4状態(22)、3ビットなら8状態(23)といったように、より多い選択肢を識別できる。一般に、nビットのデータは2のn乗個までの選択肢からなる情報を表現することができる。

例えば、大文字のラテンアルファベットは「A」から「Z」の26文字であるため、これを識別するのには4ビット(16値)では足りず、5ビット(32値)が必要となる。小文字を加えると52文字であるため、6ビット(64値)が必要となる。

派生単位

データの読み書きや伝送を行う場合、その速さを表す単位として1秒あたりの伝送ビット数であるビット毎秒(bps:bit per second)という派生単位が用いられる。

また、実用上はビットでは値が大きくなりすぎて不便なことも多いため、8ビットをまとめて一つのデータとした「バイト」(byte)という単位を用いる場面も多い。かつて何ビットを1バイトとするか機種により様々に分かれていた(7ビットバイトや9ビットバイトなどが存在した)名残りで、8ビットの集まりを「オクテット」(octet)とも呼ぶ。

倍量単位

大きな量を表す際には、SI単位系に則って接頭辞を付した倍量単位を用いる場合がある。

  • 1000ビットを「キロビット」(kbit:kilobit)
  • 100万ビットを「メガビット」(Mbit:megabit)
  • 10億ビットを「ギガビット」(Gbit:gigabit)
  • 1兆ビットを「テラビット」(Tbit:terabit)
  • 1000兆ビットを「ペタビット」(Pbit:petabit)
  • 100京ビットを「エクサビット」(Ebit:exabit)

という。また、コンピュータでは2の冪乗を区切りとするのが都合が良いことが多いため、独自の接頭辞を付した倍量単位が用いられることもある。

  • 210(1024)ビットを「キビビット」(Kibit:kibibit)
  • 220(約104万)ビットを「メビビット」あるいは「ミービビット」(Mibit:mebibit)
  • 230(約10億7千万)ビットを「ギビビット」(Gibit:gibibit)
  • 240(約1兆1千億)ビットを「テビビット」あるいは「ティービビット」(Tibit:tebibit)
  • 250(約1126兆)ビットを「ペビビット」あるいは「ピービビット」(Pibit:pebibit)
  • 260(約115京)ビットを「エクスビビット」あるいは「イクシビビット」(Eibit:exibibit)

という。この2進専用の接頭辞はIEC(国際電気標準会議)が標準化しており、一般にはあまり馴染みがないが記憶容量の表記などで用いられることがある。

ソフトウェア ⭐⭐⭐

コンピュータを動作させる命令の集まりであるコンピュータプログラムを組み合わせ、何らかの機能や目的を果たすようまとめたもの。プログラムが動作するのに必要なデータも含まれる。

コンピュータを構成する電子回路や装置などの物理的実体を「ハードウェア」(hardware)と呼ぶのに対し、それ自体は形を持たないプログラムや付随するデータなどをソフトウェアという。物理的には記憶装置(ストレージやメモリなど)の記録媒体における電気的あるいは磁気的、光学的な信号として存在する。

ソフトウェアはその役割により、ハードウェアの制御や他のソフトウェアへの基盤的な機能の提供、利用者への基本的な操作手段の提供などを行なう「オペレーティングシステム」(OS:Operating System/基本ソフト)と、特定の個別的な機能や目的のために作られた「アプリケーションソフト」(application software/応用ソフト)に大別される。

これらに加え、ハードウェアに組み込まれ基本的な制御を行う「ファームウェア」(firmware)や、OSとアプリケーションソフトの中間で特定分野の基本機能や共通機能を提供する「ミドルウェア」(middleware)などの分類が用いられることもある。

日本語の外来語としては慣用的に「ソフト」と略称することが多いが、英語の “soft” は「柔らかい」という形容詞の意味しかなく、組織名や製品名のネーミングなどで接頭辞や接尾辞のように用いられる場合などを除き、省略せず “software” と綴る。「SW」「S/W」などの略号で示されることもある。

プログラム以外の用例

コンピュータプログラムは含まないが、何らかの機器を介して内容の再生や鑑賞を行う記録物のことをソフトウェアと呼ぶ場合がある。例えば、音楽CDのような音声の記録物を「音楽ソフト」、DVD-Videoのような動画の記録物を「映像ソフト」のように呼ぶ。

IT関連以外の分野でも、施設や設備、機器、道具などの物理的実体と対比して、組織や業務、事業、催し、知識、技能、情報、記録といった人間の活動に属する無形の事柄をソフトウェアと呼ぶ場合がある。

記録物やイベントなどの用法については「コンテンツ」(content)もほぼ同義語であり、20世紀にはソフトと呼ぶことが多かった分野や業界でも現在ではコンテンツと呼ぶ方が一般的な場合が多い。

OS 【Operating System】 ⭐⭐⭐

ソフトウェアの種類の一つで、機器の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェア。

CPU(MPU/マイクロプロセッサ)や主記憶装置(メインメモリ)、外部記憶装置(ストレージ)、入出力装置などコンピュータのハードウェア資源の管理、外部の別の装置やネットワークとのデータ通信の制御などが主な役割で、コンピュータに電源が投入されると最初に起動し、電源が落とされるまで動作し続ける。

利用者に対するコンピュータの基本的な操作手段も提供し、入力装置による操作の受け付けや出力装置への情報の提示、基本ソフト自体が備える様々な機能の実行、記憶装置内に格納されたプログラムの起動や終了、ストレージに格納されたファイルやディレクトリの操作などを行うことができる。

アプリケーションソフトとの関係

基本ソフトの機能を利用し、OSの上で動作するソフトウェアを「アプリケーションソフト」(application software/応用ソフト)という。アプリケーションの開発者は、呼び出し規約(API:Application Programming Interface)に基づいて基本ソフトの提供する機能を利用することができ、開発の手間を省き操作性を統一することができる。

また、ハードウェアの仕様の細かな違いは基本ソフトが吸収してくれるため、ある基本ソフト向けに開発されたアプリケーションは、基本的にはその基本ソフトが動作する他のコンピュータでも使用できる。ただし、CPUの種類が異なるなど根本的な仕様が異なる場合は、同じOSでも機種ごとに調整されたプログラムが必要となる。

OSの種類

OSは動作する機器の種類や目的などに応じていくつかの異なるタイプに分かれる。最も一般的なのはパソコンやサーバなどの汎用コンピュータ向けの汎用OSで、サーバコンピュータの運用に特化した「サーバOS」、利用者が操作する端末での利用を想定した「クライアントOS」などに分かれる。

汎用OS以外にも、デジタル家電や産業機械などに制御用として組み込まれた特定目的の専用コンピュータの制御に特化した「組み込みOS」がある。中でも、乗り物の駆動装置の制御など、リアルタイム性の高い制御プログラムの実行に特化した設計のOSは「リアルタイムOS」と呼ばれる。

パソコン向けのOSとして広く利用されているものには米マイクロソフト(Microsoft)社の「Windows」シリーズや米アップル(Apple)社の「macOS」(旧Mac OS X)シリーズなどがある。サーバ向けのOSとしては「Linux」などのいわゆるUNIX系OSや、サーバ向けWindowsである「Windows Server」シリーズなどがよく知られる。スマートフォンやタブレット端末などのモバイル機器では米グーグル(Google)社の「Android」とApple社の「iOS」(iPad OS/watchOS)が市場を二分する。

OS 【Operating System】 ⭐⭐⭐

ソフトウェアの種類の一つで、機器の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェア。

CPU(MPU/マイクロプロセッサ)や主記憶装置(メインメモリ)、外部記憶装置(ストレージ)、入出力装置などコンピュータのハードウェア資源の管理、外部の別の装置やネットワークとのデータ通信の制御などが主な役割で、コンピュータに電源が投入されると最初に起動し、電源が落とされるまで動作し続ける。

利用者に対するコンピュータの基本的な操作手段も提供し、入力装置による操作の受け付けや出力装置への情報の提示、オペレーティングシステム自体が備える様々な機能の実行、記憶装置内に格納されたプログラムの起動や終了、ストレージに格納されたファイルやディレクトリの操作などを行うことができる。

アプリケーションソフトとの関係

オペレーティングシステムの機能を利用し、OSの上で動作するソフトウェアを「アプリケーションソフト」(application software/応用ソフト)という。アプリケーションの開発者は、呼び出し規約(API:Application Programming Interface)に基づいてオペレーティングシステムの提供する機能を利用することができ、開発の手間を省き操作性を統一することができる。

また、ハードウェアの仕様の細かな違いはオペレーティングシステムが吸収してくれるため、あるオペレーティングシステム向けに開発されたアプリケーションは、基本的にはそのオペレーティングシステムが動作する他のコンピュータでも使用できる。ただし、CPUの種類が異なるなど根本的な仕様が異なる場合は、同じOSでも機種ごとに調整されたプログラムが必要となる。

OSの種類

OSは動作する機器の種類や目的などに応じていくつかの異なるタイプに分かれる。最も一般的なのはパソコンやサーバなどの汎用コンピュータ向けの汎用OSで、サーバコンピュータの運用に特化した「サーバOS」、利用者が操作する端末での利用を想定した「クライアントOS」などに分かれる。

汎用OS以外にも、デジタル家電や産業機械などに制御用として組み込まれた特定目的の専用コンピュータの制御に特化した「組み込みOS」がある。中でも、乗り物の駆動装置の制御など、リアルタイム性の高い制御プログラムの実行に特化した設計のOSは「リアルタイムOS」と呼ばれる。

パソコン向けのOSとして広く利用されているものには米マイクロソフト(Microsoft)社の「Windows」シリーズや米アップル(Apple)社の「macOS」(旧Mac OS X)シリーズなどがある。サーバ向けのOSとしては「Linux」などのいわゆるUNIX系OSや、サーバ向けWindowsである「Windows Server」シリーズなどがよく知られる。スマートフォンやタブレット端末などのモバイル機器では米グーグル(Google)社の「Android」とApple社の「iOS」(iPad OS/watchOS)が市場を二分する。

ファイル ⭐⭐

コンピュータにおけるデータの管理単位の一つで、ストレージ装置(外部記憶装置)などにデータを記録する際に利用者やオペレーティングシステム(OS)から見て最小の記録単位となるデータのまとまり。

利用者がコンピュータを用いて記憶媒体にデータを保存、読み込み、移動、削除などする際に一つのまとまりとして取り扱うデータの集合を表し、OSの一部であるファイルシステム(file system)によって管理される。

ハードディスクやSSD、USBメモリ、光学ディスク(CD/DVD/Blu-ray Disc)などの記憶装置・記憶媒体を利用する際に用いられるほか、コンピュータと周辺機器の間やコンピュータ間の通信においてもデータの送受信単位として利用される。

ディレクトリとパス

ファイルシステムは記憶媒体内でファイルの作成や削除、上書き、移動、複製などを管理する仕組みで、複数のファイルをまとめて一つの集まりとして扱う「ディレクトリ」(directory)や「フォルダ」(folder)などの入れ物(領域)を作成することもできる。

ディレクトリやフォルダの中に別のディレクトリやフォルダを作成し、入れ子状にすることもでき、記憶媒体全体を階層構造に整理して管理する。装置内でのファイルの位置は、「C:¥Windows¥System32¥cmd.exe」のように最上位から順にディレクトリ名を繋げた「パス」(path)という記法で表される。

ファイル名

ファイルにはそれぞれ固有のファイル名が付けられ、これを用いて識別・指定される。多くのOSではファイル名の末尾にファイルの種類や形式を表す「拡張子」(extension)と呼ばれる数文字の英数字の符号が付与される。

コンピュータの操作画面ではファイルは記憶媒体内での位置(パス)やファイル名で表示され、キーボードなどからパスやファイル名を指定して操作する。グラフィック表示を用いるGUI(Graphical User Interface)を備えたOSでは、ファイルは種類によって異なるアイコン(絵文字)とファイル名によって表示され、マウス操作やタッチ操作でアイコンを指し示して操作を行う。

ファイル属性

ファイルはファイルシステムに記録される際に様々な属性や付加情報(メタデータ)と共に記録される。作成日時や最終更新日時、最終アクセス日時、作成者(所有者)、各利用者やグループのアクセス権限などが記録、設定される。

また、多くのOSではファイルに「読み取り専用」属性を付与でき、解除されるまで削除や上書きができなくなる。「隠しファイル」に設定されたファイルは通常の動作モードではファイル一覧画面などに表示されなくなる(ファイル名を直に指定すれば操作はできる)。

ファイル形式

ファイルに記録されるデータの形式や書式(ファイルフォーマット)は作成したソフトウェアによって様々だが、大きく分類すると「バイナリファイル」(binary file)と「テキストファイル」(text file)に分かれる。

バイナリファイルは特に制約なくあらゆるビットパターンを記録できる自由な形式で、その形式に対応したソフトウェアでなければ何が記録されているか知ることができない。テキストファイルはデータを文字情報として記録したファイルで、文字コード規格で規定されたコードに従ってデータを文字列に置き換えて記録する。対応ソフトがなくてもどのような文字が記録されているかは見ることができる。

拡張子

ファイル名の末尾で「.」(ドット/ピリオド)の後ろにある英数字1~4文字程度の符号。ファイルの種類やデータ形式を表している。

一般的なコンピュータのストレージ(外部記憶装置)では、データを「ファイル」というかたまりに分けて保管している。各ファイルはシステムや利用者が命名した「ファイル名」によって識別されるが、その末尾にある「.」より後の部分を拡張子という。例えば、「新しいテキスト ドキュメント.txt」というファイル名の拡張子は「.txt」(あるいは「txt」)である。

拡張子はファイルの種類や形式を表すために付与されるもので、慣例として1~4文字程度の半角英数字の組み合わせが用いられることが多い。現代のほとんどのファイルシステムには文字数や文字種の制限はないが、かつてパソコン用OSとして普及していた「MS-DOSエムエスドス」には半角3文字(3バイト)までの制約があったため、後継のWindowsや他のシステムでも習慣的に(ピリオドを除いて)3文字の拡張子が多い。

複数のファイル形式が複合的に用いられている場合には「backup.tar.gz」のように二重に拡張子を付与することがある。この例の場合、複数のファイルをtar形式で一つにまとめ(アーカイブ)、gzip形式で圧縮したファイルという意味になる。ファイル形式自体は最後尾(.gz)の拡張子が表している。

拡張子の機能

Windowsではファイルを指定して開くよう指示すると拡張子を元に関連付けられたアプリケーションソフトを自動的に起動するようになっている。このため、システムが内部で使用する特殊なファイルなどを除き、原則としてすべてのファイルに拡張子が付与されている。

LinuxなどのUNIX系OSでは、ファイル名を見ただけで形式が分かるよう利用者にとっての便宜のために付けられるだけで、システム上の動作を指定するような働きはない。macOS(Mac OS X)ではファイルの種類の判別に独自の仕様を用いるが、一部のバージョンでは拡張子も用いる。

OS以外でも、例えばWebサーバやWebブラウザがファイルを送受信する際、データの種類を指定するMIMEタイプが不明な場合などにファイル名の拡張子を頼りにファイル形式を判断するといった用途に用いられている。システムが拡張子を利用しないUNIX系OSでも、ソフトウェアによっては拡張子を見てファイル形式を判断する動作を行うものがある。

拡張子の表示・変更

OSのデスクトップ画面やエクスプローラーなどのファイル管理システムでファイルやフォルダの一覧を表示すると、アイコン画像と共にファイル名が表示される。近年のWindowsやmacOSでは既定(デフォルト)の動作が拡張子非表示となっており、設定を変更しないと表示されるようにならない。

拡張子はファイル名本体と同じで利用者が自由に変更できるが、みだりに変更すると正しいソフトウェアで開けなくなる場合がある。実際のファイル形式と一致しているかチェックする仕組みなどはないため、拡張子を誤読させて利用者に実行させる(内容を閲覧するつもりでプログラムとして実行してしまう)手口を用いるコンピュータウイルスなども存在する。

アプリケーションソフト 【アプリ】 ⭐⭐⭐

ある特定の機能や目的のために開発・使用されるソフトウェア。利用者が目的に応じて導入し、オペレーティングシステム(OS)の上で動作させる。

現代のコンピュータではOSが機器(ハードウェア)を管理・制御しており、アプリケーションソフトはOSの機能を利用して動作する。「アプリケーション」(application)あるいは「アプリ」(app)と略されたり「応用ソフト」と訳されることもある。

用途や目的に応じて多種多様なアプリケーションソフトがあり、日常的に利用される代表的なものだけでも、ワープロソフトや表計算ソフト、画像閲覧・編集ソフト、動画・音楽再生ソフト(メディアプレーヤー)、ゲームソフト、Webブラウザ、電子メールソフト、カレンダー・スケジュール管理ソフト、電卓ソフト、カメラ撮影ソフト、地図閲覧ソフトなどがある。

企業などの業務で使われる、プレゼンテーションソフトやデータベースソフト、財務会計ソフト、人事管理ソフト、在庫管理ソフト、プロジェクト管理ソフト、文書管理ソフト、生産管理ソフトなどもアプリケーションソフトの一種である。

提供方法の違い

アプリケーションソフトは無償配布あるいは販売されているパッケージを利用者が入手・購入してオペレーティングシステム(OS)に組み込む作業を行うことで使用可能となる。この作業を「インストール」(install/installation)という。OS製品の中にはいくつかのアプリケーションソフトがあらかじめ組み込まれている(プリインストール)ものもある。

大企業や官公庁などが自社の業務に用いるアプリケーションソフトの中には、市販のパッケージソフトではなく自社で開発、あるいは外部の専門の事業者に委託して開発させた「カスタムアプリケーション」もある。市販のものに比べ開発コストはかかるが、自社業務に特化した仕様となっている。

業務などで用いる大規模なアプリケーションソフトの場合、コンピュータに導入された単体のソフトウェアで機能が完結しているとは限らず、機能やデータを提供する「サーバ」と利用者が操作する「クライアント」が連携して動作する「クライアントサーバ型」の構造になっているものもある。

モバイルアプリ/Webアプリ

近年ではスマートフォンやタブレット端末などの携帯機器にタッチ操作できるアプリケーションソフトを導入してパソコンなどの代わりに利用する場面が増えている。これらは「モバイルアプリケーション」と呼ばれ、慣用的に「アプリ」(app)と略されることが多い。

スマートフォンなどには機器や専用OSの開発元が「アプリストア」と呼ばれるネットサービスにアクセスするためのアプリをあらかじめ組み込んで販売しており、利用者はストアからほしいアプリを選んで端末に組み込んで使用する。iPhoneなどのiOS端末では米アップル(Apple)社の「App Store」のみが利用でき、Android端末では米グーグル(Google)社の「Google Playストア」が標準的なストアである。

また、SNSやECサイトなどのネットサービスでは、Webサイトに動的な要素を組み込んでアプリケーションソフトのように振る舞わせ、Webブラウザから操作する方式も広く普及している。このような実装形態を「Webアプリケーション」と呼ぶ。

他のソフトウェアとの違い

コンピュータのハードウェアに対する基本的な制御機能や、様々なソフトウェアが共通して利用する機能をまとめたソフトウェアは「オペレーティングシステム」(OS:Operating System、基本ソフト)と呼ばれる。また、OSとしての制御機能は持たないが、多くのアプリケーションソフトが必要とする特定分野のまとまった機能を提供するソフトウェアは「ミドルウェア」(middleware)と呼ばれる。

アプリケーションソフトの中でも、ファイルやフォルダの圧縮・解凍や、コンピュータウイルスの探知・駆除、記憶装置(メモリ・ストレージ)管理など、システムや他のソフトウェアの機能を補ったり、性能や操作性、安全性を向上させたりするものは「ユーティリティソフト」(utility software)と呼び、アプリケーションソフトとは別の分類とする場合もある。

アプリケーションソフトという用語や分類は、パソコンのように利用者が目的に応じて後からソフトウェアを追加して使用できる汎用コンピュータについて主に用いられ、組み込みソフトウェア(家電の制御ソフトなど)や特定用途の専用コンピュータなどでは、OSなどのシステム系のソフトウェアとアプリケーションソフトの区別や境目が明確でない場合もある。

プログラム ⭐⭐⭐

予定(表)、計画(表)、課程、式次第などの意味を持つ英単語。ITの分野では、コンピュータに行わせる処理を記述したコンピュータプログラムのことを略して単にプログラムということが多い。

コンピュータプログラム (computer program)

コンピュータが行うべき処理を順序立てて記述したもの。広義の「ソフトウェア」の一部であるが、実用上はプログラムとソフトウェアはほとんど同義のように扱われることが多い。

現代のコンピュータではプログラムは一定の形式に従ってデータとして表現され、記憶装置(メインメモリ)に格納される。実行時にはCPU(中央処理装置)がプログラムに記述された命令を順番に読み出して解釈・実行していく。

プログラムを作成する作業や工程を「プログラミング」(programming)、これを行う人や職種のことを「プログラマ」(programmer)という。人間がプログラムを記述する際には、人間が理解しやすい人工言語である「プログラミング言語」(programming language)を使うことが多い。プログラミング言語で記述されたプログラムを「ソースコード」(source code)という。

ソースコードはコンピュータが解釈・実行することができないため、コンパイラなどの変換ソフトによってコンピュータが解釈・実行できる機械語(マシン語)などで構成された「オブジェクトコード」(object code)に変換されてから実行される。スクリプト言語のように、この変換処理を開発時には行わず、実行時にインタプリタなどのソフトウェアによって動的に行う場合もある。

ソースコード 【ソースプログラム】 ⭐⭐

プログラミング言語などの人間が理解・記述しやすい言語やデータ形式を用いて書き記されたコンピュータプログラムのこと。プログラムに限らず、人工言語や一定の規約・形式に基いて記述された複雑なデータ構造の定義・宣言などのこともソースコードと呼ぶ場合がある。

コンピュータへの指示や一連の処理手順などをプログラミング言語によって文字データの羅列として表記したもので、そのままではコンピュータ(のCPU)では実行できないため、CPUが直に解釈できる命令コードの体系である機械語(マシン語)によるプログラムに変換されて実行される。

変換後の機械語による実行可能プログラムを「オブジェクトコード」(object code)、「オブジェクトプログラム」(object program)、「ネイティブコード」(native code)、「ネイティブプログラム」(native program)、「バイナリコード」(binary code)などと呼ぶ。

実行可能形式への変換

ソースコードからオブジェクトコードへの変換はソフトウェアによって自動的に行うのが一般的となっている。アセンブリ言語で記述されたソースコードを変換することを「アセンブル」(assemble)、そのようなソフトウェアを「アセンブラ」(assembler)という。

アセンブリ言語以外の高水準言語で記述されたソースコードを一括して変換することは「コンパイル」(compile)と言い、そのようなソフトウェアを「コンパイラ」(compiler)という。実行時に少しずつ変換しながら並行して実行するソフトウェアもあり、「インタプリタ」(interpreter)と呼ばれる。

開発時にソースコードから直接オブジェクトコードへ変換せずに、特定の機種やオペレーティングシステム(OS)の仕様・実装に依存しない機械語風の独自言語による表現(中間コード)に変換して配布し、実行時に中間コードからCPU固有の機械語に変換するという二段階の変換方式を用いる言語や処理系もある。

ソースコードの作成

ソースコードは多くの場合、人間がキーボードなどを操作して文字を入力して記述する。この作業・工程を「コーディング」(coding)という。ソースコードはテキストデータの一種であるため文書編集ソフトで作成することはできず、テキストエディタや統合開発環境(IDE)に付属する専用のコードエディタなどを用いることが多い。

必ずしも人間が記述するとは限らず、何らかの元になるデータや入力からソフトウェアによって生成したり、別の言語で記述されたソースコードを変換して生成したり、オブジェクトコードを逆変換してソースコードに戻したりといった方法で、ソフトウェアが自動的・機械的に作成する場合もある。

ソースコードの公開・非公開

日本を含む多くの国でソースコードは著作物の一種として著作権で保護されている。販売される商用ソフトウェア製品の多くは、ソースコードを企業秘密として非公開とし、人間に可読でない中間コードやオブジェクトコードによる実行プログラムのみを利用者に提供している。

一方、ソースコードを公開し、誰でも自由に入手、利用、改変、再配布、販売などができるようにしている場合もある。そのようなソフトウェアを、ソースコードがオープンになっているという意味で「オープンソースソフトウェア」(OSS:Open Source Software)という。ボランティアのプログラマが個人あるいは共同で開発しているソフトウェアに多いが、企業がOSSを開発・公開している例も多く見られる。

ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる