高校「情報Ⅰ」単語帳 - 数研出版「情報Ⅰ Next」 - コンピュータの仕組み

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

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

歴史的には手回しで歯車などを駆動する機械式の自動計算機なども存在したが、現代でコンピュータと呼ばれる機械は一般に、マイクロプロセッサ(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” の原義は金物、金属製品という意味で、機械や生活用品などについて、木製のものなどと対比して金属製であることを表す言葉だった。現代では金属製かどうかはあまり重視されず、工具や冶具、装置、設備、資材、軍用装備品などを広く総称する言葉として用いられることが多い。

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

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

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

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

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

広義には、人間の動作に限らず外界から情報を取り込んで電気信号やデジタルデータとしてコンピュータに伝達する機器全般が含まれる。マイクやイメージスキャナ、ビデオカメラ、デジタルカメラ、バーコードリーダー、指紋センサー、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)と呼ばれ、自由に読み書き可能な不揮発メモリとして外部記憶装置(ストレージ)に利用される。

メインメモリ 【主記憶装置】 ⭐⭐⭐

コンピュータ内部でデータやプログラムを記憶する記憶装置のうち、中央処理装置(CPU)と基板上の電気配線などを通じて直に接続されたもの。「メモリ」「RAM」とも呼ばれる。

CPUの命令によって直に読み書きが可能な記憶装置で、実行中のプログラムコードや当座の処理に必要なデータなどが保存される。外部記憶装置(ストレージ)に比べ読み書き動作は桁違いに高速だが、単価が高いため機器に搭載できる容量は何桁か少ないのが一般的である。

現代のコンピュータでメインメモリとして用いられるのは半導体記憶装置(半導体メモリ)のRAM(Random Access Memory)の一種であるDRAM(Dynamic RAM)がほとんどで、機器の電源を切るなどして装置への通電を止めると記憶内容が失われるという特性がある。

このため、データやプログラムの永続的な保管にはストレージを用い、コンピュータの起動時にメインメモリに必要なプログラムなどを読み込んで実行するという動作が基本となっている。

また、現代のCPU製品の多くは内部にDRAMよりも高速な「キャッシュメモリ」と呼ばれる記憶回路を内蔵しているが、これはDRAMとのやり取りを高速化する一時的な保管場所としてのみ用いられ、プログラムから明示的に動作を制御することはできないようになっている。

パソコン 【PC】

個人向けの小型、低価格の汎用コンピュータ製品。個人が手元に置いて直接操作して利用するもので、利用者がソフトウェアを導入することで様々な用途に利用できる。

現代のパソコンは本体および表示装置(ディスプレイ)、キーボード、マウスなどの機器で構成される。狭義の「パソコン」はこのうち本体部分を指し、プログラムを実行しデータを処理するCPU(マイクロプロセッサ)、プログラムやデータを一時保存するメインメモリ(RAM)、永続的に保管するストレージ(外部記憶装置)、マザーボード、電源ユニット、外部入出力端子などの部品で構成される。

ソフトウェア環境として汎用性の高いオペレーティングシステム(OS)が導入され、利用者が用途や目的に応じて必要なアプリケーションソフトを導入して使用する。OSはWindowsやmacOSなどの製品が本体に導入済みの状態で販売されることが多いため、パソコンの構成要素の一部とみなすことも多い。

形態による分類

<$Img:Laptop-PC.jpg|right|rupeshtelang|https://pixabay.com/illustrations/computer-laptop-worksheet-5433031/>

机上に据え置きで利用する形態の製品を「デスクトップパソコン」(desktop PC)と呼び、その中で、筐体に高さがあり縦置きする形状のものを「タワーパソコン」(tower PC)という。デスクトップ型はディスプレイやキーボードなどの装置が別々に提供され、ケーブルや無線で接続して使用する形態が多いが、ディスプレイと本体が一体化している製品もある。

一方、すべての装置が薄型の小型の筐体に一体化していて持ち運び可能な形態の製品を「ノートパソコン」(laptop PC)という。二枚の板状の部材をヒンジで繋いで開閉できるようにした形状で、内側の片面が液晶ディスプレイ画面に、もう一方がキーボードやタッチパッドとなっている。

近年ではディスプレイに触れてタッチパネルとして操作できる機種も増えており、ディスプレイ側をヒンジから取り外して単体でタブレット端末としても使用できる「2in1タブレット」と呼ばれる製品カテゴリーも一般的になっている。

機種による分類

<$Img:Mac-Image.jpg|right|Mac>

現代のパソコン製品は大きく分けて2系統に分類できる。一方は米マイクロソフト(Microsoft)社の「Windows」(ウィンドウズ)をOSとして使うことが多い「Windowsパソコン」あるいは「PC/AT互換機」と呼ばれる製品群で、米インテル(Intel)社製CPUや他社の互換製品を用いるなど、メーカーが異なっても仕様や設計の多くが共通している。

もう一方は米アップル(Apple)社が一社単独で展開する「Mac」(マック)シリーズ(旧称Macintosh:マッキントッシュ)で、同社が本体および専用のOSである「macOS」(マックオーエス)、主要な周辺機器やソフトウェアを一貫して提供している。

「パソコン」という表現は両者を含む個人向け小型コンピュータの総称とすることが多いが、「パソコンとMac」のようにWindowsパソコンのみを指す狭い意味で用いる人もいる。英語でも事情は似通っており、“PC” という略称でWindowsパソコンのみを表し、“PC vs Mac” のように表記する人がいる。その場合、総称としては省略しない “personal computers” を用いることが多い。

近年では、米グーグル(Google)社の「Chrome OS」(クロームオーエス)を搭載した「Chromebook」(クロームブック)シリーズが第三勢力として台頭しつつあり、Windowsが動作するが英アーム(ARM)社系CPUを採用しIntel系とはソフトウェアの互換性が限られる製品群など、従来の枠組みには収まらない機種も増えてきている。

デスクトップパソコン 【desktop PC】

パソコン製品の形態による分類の一つで、室内に固定的に設置して使用する据え置き型の筐体を持つ機種のこと。ノート型のように持ち運ぶことは難しいが、性能や機能で優れていることが多い。

形態の変遷

もとは、平たい箱型の筐体で、机(desk)の上(top)に横置きして箱型のCRTディスプレイを上に乗せて使用する機種を指していた。近年では、ディスプレイの脇や机の下などに設置する縦長(縦置き)の「タワー型」や「スリム型」、液晶ディスプレイと本体を一体化した「ディスプレイ一体型」(オールインワン型)が一般的となっている。

現代ではディスプレイが薄型の液晶タイプのみとなり、パソコン本体のような奥行きが無くなったこともあり、初期のような横置きしてディスプレイを乗せる設計の製品はほぼ消滅している。このため、「デスクトップ型」といった場合には持ち運びを想定しない据え置き型の総称とするのが一般的だが、稀に歴史的な文脈などではタワー型や一体型と区別して横置きの平たい筐体の機種を指す場合がある。

特徴

デスクトップ型はノート型などに比べ筐体が大きく、内部の空間や側面のパネルの面積も広いため、高性能の部品を搭載することができ、コネクタ類も豊富で、内部のドライブベイや拡張スロットなどによる拡張性も高い。メーカーや機種に固有の独自仕様なども少なく、部品のカスタマイズや追加、交換などもしやすい。

いわゆるWindowsパソコン(PC/AT互換機)では部品の寸法や接続仕様などが標準化されており、様々なメーカーから多種多様な製品が供給されるため、構成によっては同じ性能でノート型などより極端に格安な製品などもある。一方、同時代で最高の機能・性能を実現しようとすれば大きな筐体や拡張性が必須であるため、業務用やゲーム用の極めて高性能な高額機種もデスクトップ型となる。

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

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

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

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

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

記録原理による分類

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

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

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

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

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

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

<$Fig:storagecomparison|center|true>

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

コンピュータの主要な構成要素の一つで、データを永続的に記憶する装置。磁気ディスク(ハードディスクなど)や光学ディスク(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などの規格で接続される。

フラッシュメモリ

半導体素子を利用した記憶装置の一つで、何度も繰り返し書き込みができ、通電をやめても記憶内容が維持されるもの。近年、データを永続的に保存するストレージ(外部記憶装置)製品の記憶素子として急激に普及している。

フラッシュメモリは半導体メモリのうち、電源を落としても記録されたデータが消えない不揮発性メモリ(nonvolatile memory)に分類される。電気的に繰り返し自由に消去や再書き込みができる特徴はRAMと同じだが、技術的にはROM(の一種であるEEPROM)に由来するため「フラッシュROM」とも呼ばれる。

素子の構造や動作方式により大きくNAND型とNOR型の二種類に分かれる。最初に開発されたのはNOR型で、バイト単位で高速に読み出しができ、信頼性が高いが、後に開発されたNAND型の方が集積度を高めやすく、書き込みが高速であるという特徴の違いがある。

SLCとMLC

初期のフラッシュメモリはメモリセル(記憶素子)の電荷の有無にデジタル信号の「0」と「1」を対応付ける1ビット記録の素子(SLC:Single Level Cell/シングルレベルセル)が用いられた。後に、セルに投入した電荷量を段階的に識別することで1セルに複数ビットを保存できる素子(MLC:Multi-Level Cell/マルチレベルセル)が開発された。

初期のMLCは4段階識別・2ビット記録だったため、現在でもこれを指してMLCと呼ぶことが多いが、8段階識別・3ビット記録の「TLC」(Triple Level Cell/トリプルレベルセル)や、16段階識別・4ビット記録の「QLC」(Quad-Level Cell/クアッドレベルセル)も開発されており、MLCはこれら多値記録方式全体の総称を指すこともある。

特徴と用途

フラッシュメモリは磁気ディスクや光学ディスクなどに比べ、半導体素子に電気的にアクセスするためデータの読み書き速度が桁違いに速く、ドライブ装置に可動部がないため動作音もなく衝撃や振動にも強い。

ただし、素子の構造上劣化の進みが速く、初期には数百回程度、近年でも数万回程度の再書き込みによって素子が破損することが知られている。この点をカバーするため、制御回路により書き込み回数を各素子に均等に分散させる「ウェアレベリング」(wear leveling)と呼ばれる処理が行われる。

他方式のメディアに比べ価格も桁違いに高く小容量の製品しかなかったが、2000年代半ば頃からは量産効果や技術の進歩により飛躍的に低コスト化され、磁気ディスクなどの用途を奪う形で普及が拡大している。

主な用途としては、スマートフォンなどの携帯情報端末の内蔵ストレージや、数cm角の薄いプラスチックケースに収めたカード型の記憶媒体である「メモリーカード」、指先大の短い棒型や角型のケースに収めUSB端子でコンピュータに接続する「USBメモリ」などがある。

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)という。

ビット ⭐⭐⭐

情報量の最小単位で、二つの選択肢から一つを特定する情報の量。コンピュータなどでは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(国際電気標準会議)が標準化しており、一般にはあまり馴染みがないが記憶容量の表記などで用いられることがある。

2の補数

ある自然数を2進数(2進法)で表現した時に、足し合わせるとちょうど桁が一つ増える最小の数のこと。コンピュータにおける負の整数の表現や数値演算などに応用される。

2進数における「基数の補数」と呼ばれる数で、ある数に足し合わせることで桁が一つ増え、最上位桁(値は「1」となる)以外はすべて「0」となるような数を指す。例えば、8桁の2進数「10010110」に対する2の補数は「1101010」であり、両者を足し合わせるとちょうど9桁の「100000000」となる。

これに対し、元の数に足し合わせると桁上りせず最も大きな数(「1111…」とすべての桁が1になる)となる補数は「1の補数」(2進数における減基数の補数)と呼ばれる。コンピュータでは1の補数はビット反転(NOT演算)によって求めることができ、これに1を加えると2の補数となる。

なお、2進数に限定せず2の補数という場合は、3進数における減基数の補数を指す場合もある。元の数に足し合わせると桁上りせず「2222…」とすべての桁が2になる数のことである。

オーバーフロー 【桁あふれ】

あふれ(る)、あふれ出たもの、という意味の英単語。ITの分野では、数値の計算結果がその格納領域に収まる範囲を超えること(算術オーバーフロー/桁あふれ)や、与えられたデータが多すぎて指定の領域に収まりきらないこと(バッファオーバーフローなど)を指す。

算術オーバーフロー

コンピュータ内部で一般的な数値データを格納するメインメモリ上の領域やCPU内部のレジスタは、一つの数値を決まったデータ量で表すようにできており、取り扱える数値の大きさや桁数に上限がある。

数値を計算した結果がこの上限を超え、正しく格納・表現できなくなってしまうことを「オーバーフロー」という。例えば、1バイトの符号なし整数型は0から255までの整数を表現できるため、「150×2」という計算の結果を格納しようとすると上限を超えてしまいオーバーフローとなる。

オーバーフローが発生した際の対処方法として、例外を引き起こして例外処理ルーチンによって何らかの対処を行う場合、実行時エラーを出力してプログラムを停止する場合、表現可能な上限値を設定する場合、上限を超えたことを示す特殊な値を格納する場合、単に無視する場合などがある。

オーバーフローを無視してそのまま処理を続行した場合、あふれた上位の桁が消滅して奇妙な値が計算結果となったり、メモリ領域上の隣接する無関係の区画にあふれた数値データの一部を書き込んで内容を破損させてしまうといった事象が起きる場合もある。

負数や浮動小数点数の場合

オーバーフローが起きるかどうかは桁の大きさの問題であるため、符号付き整数の場合には負数の値が下限を超えた場合(絶対値の桁数が上限を超えた場合)にも発生する。また、浮動小数点の場合には指数部の大きさが上限値よりも大きくなった場合にそれ以上大きな値を表すことができずオーバーフローとなる。

アンダーフロー(underflow)

浮動小数点数において、値の絶対値が小さくなりすぎ(小数点以下の0の桁数が長くなりすぎ)て正しく値を表現できなくなる現象を「アンダーフロー」(underflow)という。指数部が下限値より小さくなることで発生し、0に置き換えられてしまうことで除算や乗算の結果が大きく狂うといったことが起きる。

メモリ領域のオーバーフロー

外部からデータを受け取ってメモリ上の領域に保存するようなプログラムで、指定された領域のサイズを超えてデータを受け取ってしまい、隣接する別の区画にデータをあふれさせてしまうことを「オーバーフロー」あるいは「オーバーラン」(overrun)ということがある。

無関係の領域にデータを書き込んでしまうことにより、処理が停止したり、予期しない動作が発生することがある。バッファ領域について発生するものを「バッファオーバーフロー」、スタック領域について発生するものを「スタックオーバーフロー」という。

ネットワークを通じて外部からコンピュータを乗っ取る攻撃手法の一つとして、不正なデータを送りつけて受信プログラムにわざとオーバーフローを発生させ、攻撃用のプログラムコードを実行するよう仕向ける手法があり、「バッファオーバーフロー攻撃」と呼ばれる。

端数処理 【丸め処理】

長い桁の数から、特定の短い桁の概数を求めること。「丸め処理」「丸め」とも言う。規定の桁数を超える部分をどう扱うかによっていくつかの方法がある。

例えば、「123.45」という数値を整数に丸める場合、整数部分だけを残して「123」とする処理を「切り捨て」、小数部分を「1」とみなして「124」とする処理を「切り上げ」という。また、小数部分が0.5以上なら切り上げ、0.5未満なら切り捨てる処理を「四捨五入」という。

負数を丸める場合、「-1.5の切り捨て」を絶対値の小数部分を切り捨てて「-1」とするか、正数と同じ方向に値を減らして「-2」とするか考え方が分かれる。通常は前者を採用するが、正確に伝えたい場合は前者を「0への丸め」、後者を「負の無限大への丸め」と呼ぶことがある。

切り上げについても、絶対値に着目して「-1.5」を「-2」とする考え方を「無限大への丸め」、値の増減に着目して「-1.5」を「-1」とする考え方を「正の無限大への丸め」という。四捨五入は正数と同じく最も近い値に丸めるのが原則だが、コンピュータでは端数がちょうど0.5の場合の処理が処理系によって異なる場合がある。

切り上げ、切り捨て、四捨五入の他にも、四捨五入で端数がちょうど0.5の場合は結果が偶数になるように丸める「偶数への丸め」、端数が0.5の場合に奇数になるように丸める「奇数への丸め」、端数0.5までは切り捨てて0.5よりも大きければ切り上げる「50捨51入」などもある。

プログラミング言語や表計算ソフトなどでは、四捨五入を表す関数名やメソッド名には「round」が、切り上げには「ceil」(「天井」の意)または「roundup」が、切り捨てには「floor」(「床」の意)あるいは「rounddown」が用いられることが多い。

丸め誤差 ⭐⭐

長い桁や無限桁の小数を扱う際に、これを有限桁で表すためにある桁以降の値を捨ててしまうことにより生じる誤差のこと。コンピュータでは浮動小数点型の数値計算などで現れる。

循環小数や無理数、長い桁の小数などを計算する場合に、浮動小数点型や整数型の数値として表すため、これらのデータ型で表現可能な桁数より後ろの値を切り上げや切り捨て、四捨五入などによって捨て去ることがある。このような下位桁を削る処理を「丸める」(丸め処理)と呼び、このとき捨てた値によって本来の値との間に生じるズレを丸め誤差という。

コンピュータは数値を2進法を用いて限られた桁数で表現するため、丸め誤差は整数と実数の間だけでなく、仮数部の桁数の異なる浮動小数点型(float型とdouble型など)の間や、十進数では有限桁の小数値を2進数で表現しようとすると循環小数になってしまう場合(十進数の0.1を2進数で表すと0.00011001100110011…となる)などでも生じることがある。

丸め誤差は取り扱える桁数の制約から仕方なく生じるため、完全に回避することは困難だが、数値の表現形式や計算手順を工夫して影響を小さく抑えることは可能な場合もある。

ソフトウェア ⭐⭐⭐

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

コンピュータを構成する電子回路や装置などの物理的実体を「ハードウェア」(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)から見て最小の記録単位となるデータのまとまり。

利用者がコンピュータを用いて記憶媒体にデータを保存、読み込み、移動、削除などする際に一つのまとまりとして取り扱うデータの集合を表し、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)に分かれる。

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

ディレクトリ ⭐⭐

電話帳(phone~)、住所録、名鑑、要覧、指導書、規則集などの意味を持つ英単語。IT関連では、多数の対象をその所在などの情報と共に一覧できるよう整理したものを意味することが多い。

ファイルシステムのディレクトリ

ストレージ(外部記憶装置)のファイルシステムなどで、複数のファイルを格納し、ファイルを分類・整理することができる保管場所のことをディレクトリということがある。OSによっては同様の仕組みを「フォルダ」(folder)ということもある。

ストレージ内部を論理的に区切って名前をつけて区別する仕組みで、ディレクトリ名によって識別される。ディレクトリ内には任意のファイルを置くことができるほか、別のディレクトリを作成して入れ子状にすることができる。ディレクトリ内に作られたディレクトリは「サブディレクトリ」(subdirectory)あるいは「子ディレクトリ」などと呼ばれる。

ディレクトリの入れ子関係は、システムやストレージ領域の全体を表すディレクトリを頂点とする階層構造(あるいは木構造)として表すことができ、これを根本から先端に向かって枝分かれする樹木の形になぞらえて「ディレクトリツリー」と呼ぶことがある。

UNIX系OSでは、ストレージや他のシステム資源全体を包含する「ルートディレクトリ」(root directory)を頂点として、Windowsでは各ドライブごとにその内部を包含する「ドライブルート」(drive root)を頂点として、それぞれディレクトリの位置を指し示す。

ストレージ内でのディレクトリやファイルの所在は、「/foo/var/hoge.txt」のようにルートからの経路を順に並べた「パス」(path)によって表す。UNIX系OSでは区切り文字として「/」(スラッシュ)を用いるが、Windowsでは「C:\foo\var\hoge.txt」のように「\」(バックスラッシュ)を用いる。日本語版では同じ文字コードを共有している円マーク(¥)になる。

ディレクトリサービス (directory service)

情報システムの一種で、ネットワーク上に存在する機器やサービスについての情報や、利用者の識別や権限に関する情報を一元管理する仕組みのことを「ディレクトリサービス」(directory service)あるいは単にディレクトリという。

原義の電話帳に近い役割をコンピュータネットワーク上で果たすシステムで、登録利用者のアカウント情報(ユーザー名やパスワード、各種の権限など)、ネットワーク上のサーバコンピュータが提供する機能、共有データ(共有ファイル、共有ディレクトリなど)、プリンタなどの周辺機器についての情報を集めて単一のデータベースに登録して管理する。

利用者はディレクトリにアクセスすることでネットワーク上の資源の所在を知ることができ、個々の資源に対して権限の確認をしなくても、一度のログイン操作で許可された資源を自由に利用できるようになる。米マイクロソフト(Microsoft)社がWindows Serverなどで提供しているActive Directory(アクティブディレクトリ)が特に有名である。

拡張子

ファイル名の末尾で「.」(ドット/ピリオド)の後ろにある英数字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では既定(デフォルト)の動作が拡張子非表示となっており、設定を変更しないと表示されるようにならない。

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

プログラム ⭐⭐⭐

予定(表)、計画(表)、課程、式次第などの意味を持つ英単語。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を開発・公開している例も多く見られる。

TRON 【The Real-time Operating system Nucleus】

あらゆる機器、施設、設備にコンピュータが内蔵され、それらが相互に通信して連携動作する社会の到来を想定し、その中核となるコンピュータやソフトウェアのアーキテクチャ(基本設計)を構築することを目指すプロジェクト。1984年に当時東京大学助手だった坂村健氏が開始した。

人間を取り巻く様々なモノにICチップやコンピュータシステムが組み込まれ、それらがネットワークで接続され協調動作することで社会インフラとして機能するシステムを「HFDS」(Highly Functionally Distributed System:超機能分散システム)と呼び、その実現に向けて各種技術のオープンな仕様の策定を推進した。特に、電子機器に組み込まれてその制御を司るリアルタイムOSの共通仕様の策定・普及で大きな役割を果たした。

TRONでは主にデータ形式やインターフェース仕様、利用者の操作体系(HMI:Human Machine Interface)などの仕様を策定し、ソフトウェアやハードウェアそのものの仕様や実装はほとんど規定していない。これは、システムを構成する要素間の互換性や接続性が確保されていれば、個々の製品の仕様は開発者が自由に決定すべきとする基本方針による。

TRONプロジェクト全体はいくつかのサブプロジェクトに分かれており、

  • CPU仕様を策定する「TRONCHIP」(TRON仕様チップ)
  • 組込み機器用リアルタイムOSの仕様を策定する「ITRON」(Industrial TRON)
  • パソコンなどの人間が直接操作するコンピュータの装置やOSの仕様を策定する「BTRON」(Business TRON)
  • 通信機器のOSやネットワークシステムの技術基盤を確立する「CTRON」(Communication and Central TRON)
  • HFDSの構成要素を有機的に結びつけ連携させるOSの実現を目指す「MTRON」(Macro TRON)

などの研究・開発プロジェクトが置かれた。最も広く産業応用が進んだのはITRONで、後にITRONを核として「μITRON」や「JTRON」「eTRON」「T-Engine」などの派生プロジェクトが誕生した。

μITRON (micro ITRON)

TRONプロジェクトが策定している、産業機器などへの組み込みシステムに搭載するリアルタイムOSの標準仕様をμITRON(マイクロアイトロン)という。同仕様を策定するTRONプロジェクトのサブプロジェクトの名称でもある。

産業機器や輸送機械、家電製品、情報・通信機器などに組み込むコンピュータシステムを制御するためのOSの標準仕様を定めたもので、この仕様に準拠したOSを企業などが開発している。μITRON準拠のOSは様々な機器・プロセッサ向けに数十種類が存在すると言われる。

組み込みシステムの事情に即し、詳細で厳密な標準化やハードウェアの抽象化を避け、個々のOSの実装によりハードウェアの性能や機能を発揮できるようになっているが、μITRON準拠OS間の互換性が低く、ソフトウェアの移植性や再利用性が低いという問題もある。

最初のITRON仕様は1987年に発表され、1989年に後継のフルセット規格ITRON2と、小規模システム向けに仕様を絞り込んだμITRON2が発表された。その後、μITRONの方が広く普及したため、バージョン3.0からはμITRONが規格名称となり、仕様の縮小に関する規約も仕様本体に取り込まれた

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