ITパスポート単語帳 - ソフトウェア
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が機器(ハードウェア)を管理・制御しており、アプリケーションソフトは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の分野では、何らかの対象に関する属性や設定などの情報を列挙した、ひとまとまりのデータ集合のことを指す場合が多い。
ソフトウェアの設定などで、複数の設定値のグループを作り、用途などに応じてグループごと切り替えて一括して設定値を変更できるような仕組みが提供されることがある。この目的ごとに作成される設定値などの集合のことをプロファイルという。
例えば、一台のコンピュータや一つのソフトウェアを複数の利用者で共用する際に、それぞれの利用者ごとの設定情報や個人的なデータなどを「ユーザープロファイル」としてまとめておき、ログイン時に切り替えることで、各々が自分専用のシステムであるかのように使用することができる。
一般の外来語としては「プロフィール」(またはプロフィル)と表記するのが一般的だが、これは英語の “profile” に対応するフランス語 “profil” が由来で、人物紹介、自己紹介などの意味で用いられる。
技術仕様や標準規格のプロファイル
ある技術についての仕様や標準規格などで、適用場面の限られたオプション仕様や、用途や対象などに応じて選択された複数の要素や項目の組み合わせのことをプロファイルということがある。製品の想定用途に応じて実装する機能を柔軟に絞り込むことができる。
例えば、動画圧縮形式の標準規格である「MPEG-4」では様々な圧縮技術や色表現などが利用できるが、それらの組み合わせがいくつかのプロファイルとしてまとめられており、機器や用途に適したものが選択・適用できるようになっている。
また、表示装置や印刷装置の発色具合など、機種によって特性が異なる場合、出力値を補正するためのパラメータなどを記述したデータのセットをプロファイルということもある。機種ごとに適切なプロファイルを適用することで発色のズレなどを防ぐことができるようになる。
アカウント
口座、勘定、帳簿、説明(する)、釈明(する)、占める、責任を取る、記述、報告書、顧客、得意先、信用取引などの意味を持つ英単語。ITの分野では、コンピュータやネットワークなどの利用者ごとに発行される利用権や属性値の集合などのことを指すことが多い。
現代のコンピュータシステムやネットサービスのほとんどは、ある人物が使用しているシステムを他人が勝手に操作したり、本人に関する情報の覗き見や改竄ができないよう、利用者をあらかじめ登録し、操作者を識別して本人であると確認する仕組みを備えている。
ユーザーアカウント(user account)は個々の利用者や利用者の集団ごとに登録・発行され、登録番号や識別名(ユーザー名、アカウント名)などの識別情報(ID:IDentifier)と、本人確認のための暗証番号やパスワードなどの認証情報、システム上の機能やデータなど様々な資源に対する権限(アクセス権)などの設定情報で構成される。システム側でこれらの情報をひとまとめに構造化して保存したものをアカウントということもある。
ネットサービスなどでは、各アカウントに識別や認証に必要な情報だけでなく、氏名や住所などの個人情報、クレジットカード番号や銀行口座などの決済情報、サービス上の利用設定や利用履歴などが紐づけられて保管される場合もある。
アカウントごとに記録された情報を用いて、利用者ごとにサービス内容を変化させたり、毎回同じ情報を入力する手間を省いて円滑にサービスを利用できるようにすることができる。ただし、アカウントが乗っ取られた際の被害も大きくなるリスクがある。
利用者がシステムに識別名と認証情報を提示・入力して接続や利用開始を申請することを「ログイン」(login)あるいは「ログオン」(logon)という。最も広く普及している認証方式はアカウント名と秘密の文字列を入力する「パスワード認証」である。
他にも、人体の特徴的なパターンを利用する「生体認証」(バイオメトリクス認証)や、登録したスマートフォンなどにその場限りの秘密の番号を送る「SMS認証」などが用いられることがある。異なる認証手順を2つ組み合わせる「二段階認証」、異なる種類の認証を2つ組み合わせる「二要素認証」も用いられる。
UID 【User Identifier】
複数の利用者を一意に識別するための識別子。または、一意の識別子。具体的な仕様や規約はシステムの種類によって異なる。
アカウントのUID
システムやサービスに利用者登録(アカウント作成)を行う際に設定する利用者名(ユーザー名/アカウント名)のことをユーザーIDということがある。氏名やメールアドレス、ニックネーム、本人が任意に設定する英数字の組み合わせなどが使われることが多い。
UNIXのUID
UNIX系OSで登録利用者を一意に識別するために割り振られた識別番号をUIDあるいは「ユーザー識別子」という。16ビットあるいは32ビットの整数値が用いられ、0は必ずスーパーユーザー(rootユーザー)を表し、1から100(OSによって異なる)はシステムによって予約されている。
携帯電話のUID
携帯電話事業者が個々の契約者に割り当てた契約者固有識別子や、個々の端末に割り当てた端末固有識別子などをUIDということがある。
文脈により、SIMカードなどに記録された契約者ごとに固有の識別番号(端末が変わっても引き継がれる)などを指す場合と、端末内部に記録された個体ごとに固有の製造番号(利用者が変わっても引き継がれる)などを指す場合がある。
アクセス権 ⭐⭐⭐
システムの登録利用者や利用者のグループに対して設定される、そのシステムの管理する資源を使用する権限のこと。アクセス権を設定し、これに基づいて資源の利用を許可したり拒否することをアクセス制御という。
何に対するどんな権限を設定できるかはシステムの種類によって様々だが、単にアクセス権といった場合はOSのアカウント管理システムやファイルシステムなどを通じて設定される、ストレージ(外部記憶装置)内のファイルやフォルダ、周辺機器などに対する利用権限を指すことが多い。
多くのOSでは、ファイルやフォルダに対しては「読み込み」「書き込み」「作成」「削除」などの動作について、また、実行可能ファイルはこれに加えて「実行」について可否を設定できるようになっている。
アクセス権は特定のユーザーアカウントやアカウントのグループを単位に設定するようになっていることが多いが、「管理者」「全員」「システム」「作成者」など特別な組み込みアカウントやグループを指名できる場合もある。
アクセス権を変更する権限を持つのは一般に管理者や管理者グループに属するユーザーで、一般の利用者は与えられたアクセス権に従って資源を使用するのみになっていることが多い。
仮想メモリ 【仮想記憶】 ⭐
オペレーティングシステム(OS)によるメモリ管理の方式の一つで、メモリ領域に物理的なアドレス(番地)とは別に仮想的なアドレスを割り当てて管理する方式。
細切れのメモリ空間を連結して一つの連続した空間として利用したり、ストレージ(外部記憶装置)上にも仮想的なメモリ領域を確保することで、メインメモリ(物理メモリ)の容量を超えてメモリ空間を利用することができる。
物理メモリと仮想メモリの対応付け
OSは物理メモリ上の領域と仮想メモリ上の領域の対応付け(マッピング)を行い、コンピュータ内部のMMU(Memory Management Unit)と呼ばれる制御回路によって相互のアドレスの変換を行う。かつてはMMUが独立したICチップなどとして提供されることもあったが現在ではほとんどの場合マイクロプロセッサ(CPU/MPU)に内蔵されている。
物理メモリ空間でのアドレスを「物理アドレス」(physical address)あるいは「実アドレス」(real address)、仮想メモリ空間内におけるアドレスを「論理アドレス」(logical address)あるいは「仮想アドレス」(virtual address)と呼ぶ。
OS上で動作するプログラム(プロセス)には仮想メモリ領域が割り当てられ、OSを介してメモリにアクセスする。こうすることで物理メモリ上で細切れの領域を集めて一つの大きな仮想メモリ領域を確保することができる。個々のプログラム側でも自ら物理メモリ領域を管理する必要がなくなり、OSから連続したアドレス空間が与えられたように見える。
ストレージ領域の利用
ハードディスクやSSDなどのストレージ装置上に専用の領域(スワップファイル、ページファイル、スワップ領域などと呼ばれる)を設け、仮想アドレスを割り当てることにより、仮想メモリ空間を物理メモリ空間より大きく取ることができる。
ストレージ上の領域に実際にアクセスするには物理メモリ上にその内容を読み込まなければならないため、物理メモリの中で現在使われていない領域との入れ替え(スワップ)がOSによって行われる。
メインメモリの物理容量に対してあまりに大きな仮想メモリを確保すると、このスワップ処理が頻繁に発生するようになり、ついには処理がほとんど進まない状況に陥る「スラッシング」(thrashing)現象が発生することがある。
ページとセグメント
仮想メモリの管理を一定の大きさの領域を単位として行う方式を「ページング方式」、プログラムやデータのまとまりごとに不定長の大きさで管理する方式を「セグメント方式」と呼ぶ。
現代ではほとんどの場合ページング方式が用いられる。ページング方式の仮想記憶では、ページと呼ばれる決まった大きさ(4KBを採用しているシステムが多い)の領域にメモリを分割し、ページごとに仮想メモリ空間と物理メモリ空間の対応付けを管理する。
Windows
米マイクロソフト(Microsoft)社が開発・販売している、コンピュータのオペレーティングシステム(OS)製品のシリーズ名。単にWindowsといった場合にはパソコン向けの製品系列を指すことが多いが、他にサーバ向けや携帯機器向けなども展開している。
小型の個人用コンピュータであるパーソナルコンピュータ(PC/パソコン)を使用するためのOSとして全世界で支配的な市場シェアを有し、事実上の標準として広く普及している。単体のパッケージとして販売もされているが、多くのパソコン製品にはあらかじめ同梱されており、パソコンを購入して起動するとすぐにWindowsを使うことができるようになっている。
米インテル(Intel)社のx86系マイクロプロセッサ(CPU/MPU)を対象にした製品がメインで、同社製プロセッサや他社の互換プロセッサを搭載したパソコンの標準仕様である、いわゆるPC/AT互換機で動作する。Intel製プロセッサとWindowsの圧倒的な普及率から、両者を組み合わせたコンピュータ製品(や両社の強い結びつき)を「Wintel」(ウィンテル)と呼ぶことがある。
Windowsの標準の表示・操作体系はGUI(グラフィカルユーザーインターフェース)を基本としており、図形や画像などによる表示、マウスやタッチパネルによる画面上の位置を指定する操作法を多用する。OSの管理するデスクトップと呼ばれる画面上で、各アプリケーションソフトにウィンドウと呼ばれる矩形の表示領域が与えられ、複数のソフトを並行して起動・表示し、切り替えて操作することができる。
長年の間に数多くのバージョンが開発され、製品系統も派生や統合を繰り返してきたが、現在中心となっているのはデスクトップ向けのWindows 10とサーバ向けのWindows Serverシリーズで、これにスマートフォン向けのWindows 10 Mobile、組み込み機器向けのWindows 10 IoTなどが加わる。
歴史
最初のバージョンは1985年に発売され、1992年の「Windows 3.1」までは当時の同社の基幹OS製品であるMS-DOSのGUI拡張ソフトだった。1995年の「Windows 95」からは単体のOS製品として開発され、家庭やオフィスへのパソコンの爆発的な普及の波に乗って一気に社会に浸透していった。
一般市場向けのWindows 95、「Windows 98」(1998年)、「Windows ME」(Windows Millenium Edition/2000年)は「Windows 9x」と総称され、MS-DOS時代の古い設計を引きずった「9xカーネル」と通称されるOSの中核部分で動作していた。
一方、初期のWindowsと並行して完全にゼロから設計された新しい「NTカーネル」を基盤に開発されたのが「Windows NT」シリーズで、高いセキュリティや堅牢性、安定性が求められるワークステーションやサーバなど業務用の小型コンピュータ向け市場に投入された。
2001年の「Windows XP」からは一般向けWindowsもNT系列の設計が採用され、古い9x系統の製品は廃止となった。同時期にWindows NTの名称も廃止され、業務向けは2000年に「Windows 2000」(Workstation/Server)が発売されたが、業務用デスクトップ用途はWindows XP以降の一般向けWindowsの上位エディション(Professional/Business/Ultimate等)に統合され、サーバ向けのみが「Windows Server」シリーズとして独立した。
Windows XP以降のデスクトップ向け製品は「Windows Vista」(2007年)、「Windows 7」(2009年)、「Windows 8」(2012年)、「Windows 10」(2015年)とバージョンアップしていった。Intel社や米AMD社のプロセッサ製品が64ビット化(x86-64/Intel 64)していくのに伴い、これらの製品には32ビット版と64ビット版(x64版)が用意された。Windows 8と並行してARMプロセッサを内蔵した安価なタブレット端末向けとして「Windows RT」が展開されたが、Windows 10世代には引き継がれず終息した。
Windows Serverシリーズは初代の「Windows Server 2003」(2003年)、「Windows Server 2008」(2008年)、「Windows Server 2008 R2」(2009年)、「Windows Server 2012」(2012年)、「Windows Server 2012 R2」(2013年)、「Windows Server 2016」(2016年)とバージョンアップしていった。当初はデスクトップ版同様32ビット版とx64版が並行してリリースされたが、Windows Server 2008 R2から32ビット版が廃止され64ビット版のみの提供となった。
組み込み向けWindows
汎用コンピュータ向けとは別の系統として、デジタル家電や産業機器などの組み込みシステム向けとして1996年に「Windows CE」(2006年以降は「Windows Embedded」)が生まれた。POSシステムやカーナビゲーションシステム、家庭用ゲーム機などに採用された。
Intel製プロセッサだけでなくMIPSやPowerPC、ARMなど組み込み向けの様々なプロセッサに対応し、携帯情報端末向けの「Handheld PC」「Pocket PC」、車載機器向けの「Windows CE for Automotive」、携帯電話向けの「Windows Mobile」、スマートフォン向けの「Windows Phone」など用途に応じた派生製品が展開された。
2015年のWindows 10の登場時に組み込み向けも再編・統合され、スマートフォン向けはWindows 10 Mobile、他の組み込み機器向けはWindows 10 IoTの名称で展開されることになった。
macOS 【Mac OS X】
米アップル(Apple)社がパーソナルコンピュータ「Mac」シリーズ向けに提供しているオペレーティングシステム(OS)製品。コンピュータの各種装置の制御やストレージ(外部記憶装置)の管理を行い、同機上で使用される様々なアプリケーションソフトの実行基盤となる。
旧世紀のMac OSから基本設計が刷新され、中核部分(カーネル)に業務用コンピュータなどで使われてきたUNIX系OSの技術(NeXT社買収により獲得したOPENSTEP由来のもの)が取り込まれ、動作の安定性、堅牢性が大幅に向上した。
Mac OS時代から定評のある洗練された表示・操作感(ユーザーインターフェース)などは引き継がれ、iTunesやiCloudを通じて同社のiOSデバイス(iPhone/iPadなど)との緊密な連携が可能となっている。初期には旧Mac OS向けのソフトウェアをそのまま動作させる「Classic」環境を内蔵し、旧システム利用者の円滑な移行を促した。
当初はCPU(マイクロプロセッサ)に米モトローラ(Motorola)社(当時)や米IBM社などと共同開発した「PowerPC」を搭載したMac製品(Power Macシリーズや初期のiMac等)向けに設計されていたが、2005年にMacシリーズのCPUを米インテル(Intel)社のx86系製品に切り替える大幅な仕様変更(いわゆる「Intel Mac」への移行)が行われ、macOSも同年のバージョン10.4(Tiger)からIntel CPU向けに切り替えられた。
2020年の「macOS Big Sur 11」では再び対象CPUの切り替えが行われ、「Apple M1」などApple社自社開発のCPU製品(Appleシリコン)が主な動作環境となった。Appleシリコンは英アーム(ARM)社の命令セットに基づいて設計されており、Intel系CPU向けのソフトウェアは動作しないが、移行措置として従来のソフトウェアの大半がAppleシリコン上で動作する変換機能を内蔵している。
主な付属ソフトウェア
OS標準の機能として、ファイルマネージャ(ストレージ管理ソフト)の「Finder」、ランチャ兼タスクバーの「Dock」、ウィジェット動作環境の「Dashboard」、UNIXシェル(コマンドライン)の「Terminal」(日本語版は「ターミナル」)、操作を自動化するスクリプト実行環境の「AppleScript」および「Automator」、バックアップツールの「Time Machine」、ファイルを暗号化して保護する「FileVault」などがある。
また、標準で導入済みのアプリケーションとして、Webブラウザ「Safari」、電子メールクライアントの「Mail」(日本語版は「メール」)、動画や音声を再生する「QuickTime Player」、テキストエディタの「TextEdit」、語学辞書などが引ける「Dictionary」(日本語版は「辞書」)、カレンダー・スケジュール管理の「iCal」、グラフ計算機「Grapher」、写真(画像)の閲覧・管理を行う「iPhoto」、画面にメモ書きを残せる「Stickies」などがある。
Mac OS時代には他社システムとの連携などはあまり考慮されなかったが、macOSにはWindowsのファイル共有サービス(SMB/CIFS)へ接続する機能が内蔵されたり、同社製の追加ソフト(Boot Camp)によりWindowsと切り替えて起動できるようになるなどの変化が見られる。
また、macOS自身の基盤部分がUNIX系OSに由来することもあり、Linuxなど他のUNIX系OS向けのソフトウェアの導入や利用、あるいはこれらのシステムへの接続や連携が容易である。UNIX系が主流のサーバ向けソフトウェアの開発環境などとしても人気が高まっている。
バージョン番号と愛称
<$Fig:macosxcodenames|right|false>最初のバージョン「Mac OS X 10.0」は2001年に発売された。「X」はローマ数字の10を意味し、旧Mac OSの最終版であるバージョン9の後継でありながら、技術的にはまったく刷新されて新しく生まれ変わったという二重の意味が込められている。バージョン番号も「10.0」から始まり、「10.1」「10.2」と小数点以下の部分がMac OS Xとしての番号を表している。
10.0は “Cheetah” (チーター)、10.1は “Puma” (ピューマ)、10.2は “Jaguar” (ジャガー)といったように各バージョンにネコ科の動物名を表す開発コード名が付けられ、これがそのまま各製品の愛称としても広まった。10.9の “Mavericks” (マーベリックス)からはネコ科動物に代わって同社の所在するカリフォルニア州の地名が付けられている。
名称の変遷
もともと同社はMacシリーズのパーソナルコンピュータが事業の中核だったが、2000年代半ば以降はiPod、iPhone、iPadなどiOSを搭載した携帯端末が爆発的に普及し、事業の中心がそちらへ移った。これを反映して2012年のバージョン10.8 “Mountain Lion” からは正式な製品名称が「OS X」に変更された。
さらに、2016年のバージョン10.12 “Sierra” からは、「iOS」(iPhone向け)、「iPadOS」(iPad向け)、「watchOS」(Apple Watch向け)、「tvOS」(Apple TV向け)など他製品向けOSの名称に揃えて「macOS」に変更された。これらは純粋にブランド戦略上の改称であり、旧Mac OSからMac OS Xのような技術的に大きな再編が行われたわけではない。
Chrome OS
米グーグル(Google)社の小型コンピュータ向けオペレーティングシステム(OS)製品の一つ。主に同社と提携コンピュータメーカーが共同で展開するノートパソコン「Chromebook」シリーズのOSとして使用されている。
Linuxカーネルを基盤とするOSで、基本のユーザーインターフェースをWebブラウザとし、Web上の情報閲覧とWebアプリケーションの利用に特化したユニークな設計となっている。独自のウィンドウシステムを搭載し、標準のデスクトップ画面はスマートフォンやタブレット端末のようにアプリのアイコンが並んでいる。
アプリケーションのほとんどはWebアプリケーションとして実装され、インターネットを通じて呼び出して使用する。データの保存なども原則として同社のクラウドサービスなどを利用し、端末内にはソフトウェアもデータもほとんど存在しない状態で使用する。
2014年以降のバージョンではAndroidアプリの導入・実行に対応するようになり、Google Playストアなどで公開されているスマートフォンやタブレット端末向けの豊富なアプリを入手あるいは購入して利用することができる。また、開発者モードに限定されるがLinux向けのソフトウェアを動作させる機能(Project Crostini)も提供されている。
対応するCPUはパソコン製品で一般的なx86/x64系とスマートフォン・タブレット端末で一般的なARM系で、液晶ディスプレイとキーボード、タッチパッドを備えたノートパソコンでの利用が中心だが、デスクトップパソコン(Chromebox)やタブレット端末、電子黒板などでの利用も想定されている。
Chrome OS自体はChromebook等の製品に組み込み済みの状態でしか提供されず、原則として単体で入手することはできないが、同社ではオープンソース版の「Chromium OS」を公開している。大半の部分は同等だが同社サービスとの連携部分(Google Playストア等)が取り除かれるなど一部が異なっている。
UNIX 【ユニックス】
1969年にAT&T社ベル研究所(当時)で開発が始まったオペレーティングシステム(OS)。また、その流れを汲むOSの総称。
現代では「UNIX」という名称の商標権は業界団体のThe Open Group(オープングループ)が保有しており、同団体の策定した共通仕様「Single UNIX Specification」を満たすと認定されたOSのことをUNIXという。正式にUNIX認証を得ているOSのほとんどは企業が製品として開発・販売しているもので、これを「商用UNIX」と呼ぶことがある。
これ以外に、UNIX風の仕様や操作感、振る舞いのOSが数多くあり、それらを「UNIX系OS」(UNIX-like OS)と呼ぶ。Linuxなど有力なUNIX系OSの多くはオープンソースソフトウェアとして公開されており、誰でも自由に開発に参加したり、入手、使用、改変、再配布などができる。広義には、正規のUNIXシステムとUNIX系OSすべてを含む総称としてUNIXという語を用いることもある。
特徴
UNIXは当初から、異なる機種間の移植性や、複数のプログラムを並行して動作させられるマルチタスク、複数の利用者が一つのシステムを利用できるマルチユーザーなどの特徴を重視して開発されてきた。
基本の操作体系は利用者が文字による指示(コマンド)を打ち込んでプログラムを実行し、実行結果を画面に表示する対話的なCLI(コマンドラインインターフェース)である。パイプやシェルスクリプトなどの連携機能によって単機能のプログラムを組み合わせて複雑な処理をさせる手法が定着しており、巨大な多機能プログラムを開発する手法と対比して「UNIX哲学」と呼ばれる。
初期のUNIXは特定機種向けのアセンブリ言語で開発されていたが、移植性と開発効率を高めるために高水準プログラミング言語の「C言語」が考案され、UNIX本体および対応ソフトウェアの開発で標準的に用いられた。CはUNIXの枠を超えて様々なシステムや分野で広く普及し、多くの派生言語を生み出した。
歴史
1960年代末にベル研究所で大型コンピュータ(メインフレーム)向けの大規模OS「Multics」(Multiplexed Information and Computer Services)の開発に携わっていたケン・トンプソン(Kenneth L. Thompson)、デニス・リッチー(Dennis M. Ritchie)、ブライアン・カーニハン(Brian W. Kernighan)らが中心となり、当時ミニコンピュータと呼ばれた小型コンピュータ向けのOSとしてUNIXの開発が始まった。
複雑で巨大なMulticsのアンチテーゼとして軽量で軽快なOSを目指していたことから、接頭辞「Multi-」(多数の)を「Uni-」(単一の)に置き換えた「Unics」(Uniplexed Information and Computing Service)という名称が考案された。理由は不明ながら程なくして「UNIX」という表記に変更され、これが定着した(発音は同じ)。
1970年代、UNIX System VやBSD(Berkeley Software Distribution)といった初期のUNIXは大学や研究機関で主に教育・研究用として広く普及した。1980年代になるとSunOS/SolarisやAIX、HP-UXといった商用UNIXが台頭し、企業や官公庁などの情報システムの分野でメインフレームからシェアを奪って普及した。
1990年代にはLinuxやFreeBSDといったフリー/オープンソースのUNIX系OSの開発が活発になり、普及が始まったインターネット向けのサーバなどを中心に広まっていった。これらは厳密には商標としての「UNIX」は名乗れない派生OSで「UNIXそのもの」とは区別される。
2000年代にはこうしたUNIX系OSが商用UNIXのシェアをも奪って業務システムでも本格的に採用されるようになり、現在ではスーパーコンピュータからパソコン(macOSなど)、スマートフォン(Androidなど)、デジタル家電や産業機械の組み込みシステムに至るまで、幅広い用途で広く普及している。
Linux 【リナックス】 ⭐
世界で最も普及している、オープンソースのオペレーティングシステム(OS)。いわゆるUNIX系OSの一つで、主に業務用コンピュータシステムやデジタル家電、携帯端末などで利用されている。
主にネットワーク上で他のコンピュータに機能やサービスを提供するサーバコンピュータ用として利用されるが、スマートフォンなどの携帯端末、家庭用ゲーム機やデジタル家電、スーパーコンピュータ、メインフレームまで、様々な種類や用途のコンピュータ製品に組み込まれ広く普及している。一般的なパソコンでも動作するが、パソコン向けOSはWindowsやmacOSなどの製品が強く、熟練者以外はあまり使わない。
非営利団体のリナックス・ファウンデーション(Linux Foundation)が開発を主導し、世界中の有志の開発者たちが共同で開発や修正に取り組んでいる。「GPL」(GNU General Public License)と呼ばれる利用規約(ライセンス)に基づきオープンソースソフトウェアとして無償配布されており、誰でも自由に入手、使用、改変、再配布、自らのソフトウェアへの組み込みなどを行うことができる。
Linuxカーネル
狭義のLinuxは、コンピュータのハードウェアの制御や管理、プログラムの実行制御などを行う中核部分である「Linuxカーネル」(Linux kernel)を指す。
先行するUNIX系OSを参考に設計や仕様が決められたが、既存のソフトウェアのプログラムコード自体は流用せずにゼロから開発されている。開発には主にC言語が用いられ、わずかな手直しで様々なCPUや機種で動作させることができる。
当初は一般的なパソコン製品に搭載されていた米インテル(Intel)社のx86系32ビットCPU(IA-32)向けに開発されたが、徐々に対応機種を増やし、現在では64ビットCPUのx86-64系や、モバイル機器・組み込み機器で一般的なARM系、IBM製メインフレームのz/Architecture系など、20種類を超えるプロセッサに対応している。
全体的な構造としては「モノリシックカーネル」となっており、実用上の性能や限られたメモリ容量でも効率的に動作することを重視している。「カーネルモジュール」と呼ばれるソフトウェア部品の追加や入れ替えにより、用途に応じて柔軟に構成を変更できるようになっている。
Linuxディストリビューション
カーネルだけがあってもそのままでは利用者がコンピュータに導入して操作可能な状態にはできないため、OSとして機能するよう必要なプログラム群をまとめた配布パッケージが作成されており、これを「Linuxディストリビューション」(Linux distribution)という。
ディストリビューションにはカーネルの他に、シェルやライブラリ、コンパイラなどの開発ツール類、テキストエディタ、ブートローダなど、起動や操作、ソフトウェアの導入・実行に必要なソフトウェアが含まれる。用途に応じて、各種のサーバソフトウェアやアプリケーションソフト、GUIを提供するデスクトップ環境(ウィンドウマネージャなど)が同梱されることもある。
Linuxディストリビューションは誰でも自由に開発・配布できるため、個人や数人のグループから企業、大規模オープンソースプロジェクトまで様々な開発主体が様々な機種・用途向けのものを提供している。パソコン向けやサーバ向けとしてはDebian GNU/LinuxやUbuntu Linux、Red Hat Enterprise Linux、CentOS、Fedoraなどがよく知られる。
組み込みLinux
汎用のディストリビューションをパソコンやサーバなどで使用する以外にも、電子機器などのメーカーが自社製品を制御するコンピュータの組み込みOSとしてLinuxカーネルをベースとしたシステムを独自に開発して組み込む事例も数多くあり、単純な普及台数ではそちらの方が多いとも言われる。
テレビやビデオレコーダー、家庭用ゲーム機などのデジタル家電製品の多くがLinuxベースの組み込みシステムを採用している。カーネルの一部を改変してリアルタイムOS化し、乗り物や産業機械などの制御に用いるシステムもある。
最も有名な例としては、スマートフォンやタブレット端末のOSおよびソフトウェア環境として米グーグル(Google)社が主導した開発された「Android」(アンドロイド)がある。Linuxカーネルのカスタム版を基盤としたモバイル機器向けOSで、米アップル(Apple)社のiOSと市場を二分している(汎用プラットフォーム化しているため狭義の組み込みLinuxからは外れているとする考え方もある)。
起源
1991年に当時フィンランドのヘルシンキ大学の大学生だったリーナス・トーバルズ(Linus B. Torvalds)氏が、教育用のシンプルなUNIX系OS「MINIX」(ミニックス)を参考に独自のOSを開発し始めた。
“Linux” の名称は氏のファーストネームと、MINIXを含む当時のUNIX系OSの多くが “~x” (~ックス)というネーミングを好んだ(商標権の問題で「~ UNIX」とは名乗れなかった)ことに由来する。ただし、そのように命名したのは当時の関係者で、本人ではないとされる。
氏は初期のLinuxをGPLによりオープンソースとして公開し、主に大学や研究機関が接続されていた初期のインターネットを通じて様々な人が開発に参加するようになった。カーネル以外に必要なツール類はGNUプロジェクトが開発していたものを取り込むことで、カーネルの開発に集中することができた。
GNU側も独自カーネル(GNU Hurd)の開発が難航していたため、Linuxカーネルを取り込むことで、大目標としていた「GPLで公開可能な完全なOSパッケージ」を作成できるようになり、両者は相互補完的な関係で共に発展・普及していった。
iOS 【Apple iOS】
米アップル(Apple)社の携帯情報端末に内蔵されているオペレーティングシステム(OS)製品。このOSで動作するiPhone、iPad、iPod touchなどの同社製品は「iOSデバイス」と総称されることがある。
同社のMacシリーズのパソコン製品に内蔵される「Mac OS X」(現macOS)から派生したOSで、共通の基盤部分に携帯端末向けの機能などを追加して再構成したソフトウェアである。画面に触れて操作するタッチパネルを前提とした表示・操作方式(ユーザーインターフェース)が大きな特徴である。
OSの設計上は同時に複数のソフトウェアを実行状態に置けるマルチタスクとなっているが、パソコン向けOSのウィンドウシステムとは異なり起動したソフトウェアが全画面を占有する操作体系を採用しているため、実質的に同時に実行できるアプリケーションは一つである。
ただし、あるアプリの実行中にホーム画面に戻ったり他のアプリに切り替えてもバックグラウンド(非表示)状態で実行状態を維持することができ、音楽を再生しながら他のアプリで作業をするといった使い方はできる。
iOSアプリ
携帯端末で実行されるアプリケーションソフトは「アプリ」(英語では “App” )と略されることが多い。端末に追加・導入するには同社の運営するオンラインソフトウェア販売サービスである「App Store」(アップストア)にインターネットを通じて接続し、ダウンロードして入手あるいは購入する必要がある。
通話、Webブラウザ(Mobile Safari)、電子メール、メッセージ、地図(マップ)、時計、カレンダー、計算機、メモ、音楽再生、動画再生、カメラ撮影・録画、写真閲覧、ビデオ通話(FaceTime)、アドレス帳(連絡先)、電子書籍リーダーなど基本的なアプリはiOS自体にあらかじめ組み込まれて出荷されている。
アプリの開発には同社の提供する開発環境が必要で、macOSで動作する統合開発環境(IDE)の「Xcode」や、プログラミング言語の「Objective-C」、近年ではこれに代わる新しい言語「Swift」などを用いる。
歴史と派生製品
2007年の初代iPhone発売の頃には名称がはっきり定まっておらず「OS X iPhone」などと呼ばれていたが、2009年3月のバージョン3から「iPhone OS」という名称が確定し、さらに2010年6月のバージョン4から「iOS」と改称された。
派生OSとして、Apple Watch向けの「watchOS」、Apple TV向けの「tvOS」がある。iPadは当初iOSを利用していたが、2019年に「iPadOS」として分離された。
なお、米シスコシステムズ(Cisco Systems)社のネットワーク機器に内蔵されているOSも「Cisco IOS」(シスコ・アイオーエス)と同じ名称だが、互いにまったく無関係で、名前が似ている以外の共通点や関連性は無い。Cisco社の製品の方が古く、Apple社は「iOS」と先頭のアイが小文字だがCisco社は「IOS」と大文字で綴る。
Android ⭐⭐
米グーグル(Google)社が開発した、スマートフォンやタブレット端末など携帯情報機器向けのオペレーティングシステム(OS)。主にスマートフォンのOSとして広く普及しており、世界的に米アップル(Apple)社の携帯機器向けOSである「iOS」と市場を二分する。
携帯機器のハードウェアの管理、移動体通信網(4Gや5Gなど)や無線LAN(Wi-Fi)などの通信・通話の制御、利用者への表示・操作環境(ユーザーインターフェース)の提供、ソフトウェアの実行制御などを行う。
パソコン向けOSなどとは異なり、利用者がAndroid自体を入手して端末に導入することは稀で、端末メーカーが機種ごとに調整したAndroidを独自に用意し、端末にすでに組み込まれた状態(プレインストール済み)で出荷する。各メーカーや携帯電話事業者(携帯キャリア)が開発したソフトウェアがあらかじめ内蔵されていることも多い。
Android標準のユーザーインターフェースは用意されているものの、ホーム画面や日本語入力ソフトなど、基本的な操作画面やユーティリティソフトもメーカーが独自開発したものに置き換えることが多いため、同じAndroidでもメーカーや機種によって見た目や操作感が大きく異なることが多い。
Androidアプリ
Androidを導入した端末はパソコンと同じように汎用コンピュータとして使用でき、外部からアプリケーションソフト(「アプリ」と略されることが多い)を追加して実行することができる。通話や設定、SMS(ショートメッセージ)、電子メールの送受信、内蔵カメラによる撮影、Webブラウザなど基本的なアプリは標準で内蔵しているが、端末メーカーが独自開発したものと置き換えられている場合もある。
アプリはパソコンなどから直接取り込むことができるほか、インターネットを通じてアプリの販売や配布を行うアプリストアへ接続して入手する方法もある。標準のアプリストアとしてGoogle社の運営する「Google Play」(グーグル・プレイ)が用意されているが、端末メーカーや携帯キャリアなどが独自に用意したストアを利用することもできる。
表示・操作
基本的な操作手段として、指先や専用のペン型装置(タッチペン)で画面に触れて位置を入力するタッチパネル方式を採用している。基本的なタッチ操作として、指示したい位置に軽く触れてすぐ離す「タップ」(マウスのクリックに相当)、タップを素早く二回繰り返す「ダブルタップ」(マウスのダブルクリックに相当)、触れたまま画面をなぞる「スワイプ」(マウスのドラッグに相当)、二本の指で触れて近づけたり離したりする「ピンチ」(表示の拡大・縮小を指示)などがある。
操作画面は上から三つの領域に分割されており、上段の細長い部分が各種の状態表示や通知などが表示される「ステータスバー」、中段が実行中のソフトウェアが使用する表示領域、下段の細長い部分が「戻る」ボタンやホームボタン、アプリの切り替えボタン(マルチタスク)の三つが並んだ「ナビゲーションバー」(初期のAndroidには存在せず画面下に物理的なボタンが並んでいた)となっている。
起動時に最初に表示されるOSの基本の操作画面としてホームスクリーン(ホーム画面)が用意され、GoogleによるWeb検索が行える検索バーや日付・時計、よく使うアプリのアイコンが並んでいる。アイコンをタップすると対応するアプリを起動することができる。アプリの表示中にホームボタンを押すとすぐにホーム画面に戻ることができる。
構造・機能
OSの中核部分にはオープンソースとして公開されているLinuxカーネルに手を加えたものを採用しており、その上にソフトウェアの実行環境(ランタイム)や携帯機器での動作や操作に必要なライブラリ、フレームワークなどが組み込まれている。機器に搭載されるAndroidそのものとは別に、Android対応ソフトウェアを開発するためのツール類も提供される。
世界で使用される様々な携帯電話・移動体データ通信方式(W-CDMA、CDMA2000、LTE、LTE-Advanced、5Gなど)での通話や通信に対応しており、無線LAN(Wi-Fi)やBluetooth、USB、SDメモリーカードなどによる通信や入出力にも対応する。
携帯機器の多くに内蔵されているGPS(全地球測位システム)や加速度センサー、NFC(近距離無線通信)などの機能を利用することもでき、端末の傾きを計測して画面の向きを自動的に回転させるとといった制御にも対応する。
Androidを構成するプログラムは「Apacheライセンス」と呼ばれる利用規約に基づいてオープンソースソフトウェアとして公開されており、誰でも自由に入手、修正、再配布などをすることができる。携帯機器が内蔵するAndroidはオリジナルのものに開発元が機種固有の改変を加えている場合もある。
対応するCPU(マイクロプロセッサ)の機種は当初は英アーム(ARM)社系のみだったが、MIPS系や米インテル(Intel)社のx86系にも対応している。多くのパソコン向けOSなどと異なり、各アプリのプログラムはJava言語の仮想マシン向けの中間コードで構成されるため、Androidが実行時に機種の違いを吸収し、どの機種でも同じように実行してくれる。
開発環境
アプリはAndroid向けに調整されたJava言語を用いて開発できるが、他のプログラミング言語からもAndroidの仮想マシンが実行できるプログラム形式に変換するソフトウェアが数多く提供されている。2017年頃からはJavaに代わって「Kotlin」(コトリン)言語がAndroid開発の標準的な地位を獲得している。
標準の統合開発環境(IDE:Integrated Development Environment)として「Android Studio」(アンドロイド・スタジオ)が提供されているが、開発ツールやライブラリなどをまとめた「Android SDK」(Software Development Kit)も用意されており、他のIDEなどを使って開発することもできる。「Xamarin」や「Apache Cordova」のようにiOSと共通のプログラミング言語およびコードで開発できる開発環境もある。
開発環境としてパソコンなど非Android環境を用いるクロス開発が基本となるため、Android端末での動作を開発環境上で確認できるよう、「AVD」(Android Virtual Device)と呼ばれる端末エミュレータが同梱されている。実機に送ってテストする前にパソコンなどである程度の動作確認を行うことができる。
ファイルシステム 【FS】 ⭐⭐
オペレーティングシステム(OS)の機能の一つで、永続的にデータを保存できる記憶装置(ストレージ/外部記憶装置)内部の記録状態を管理・制御し、人間に分かりやすいファイル単位でデータの書き込みや読み出しができるようにするシステム。ストレージ以外のシステム上の資源もファイル単位で取り扱えるようにするものもある。
ファイルシステムはストレージ内に設けられた連続した領域(ディスクなどの記憶媒体そのものや、その内部を分割したパーティション、ボリュームなど)を等容量の微細な領域に区画分けし、そのどこに何が記録されているかを記録する管理領域を作成する。
データは「ファイル」(file)と呼ばれる単位で管理され、任意の長さ(最大長に制限がある場合がある)のデータをストレージ上の空いている領域へ記録する。データは連続した領域に記録されるとは限らず、一つのファイルが複数の空き領域に分散して記録される場合もある。
ファイルには任意のファイル名を付けることができ、作成日や最終更新日(タイムスタンプ)、ファイルシステム上での位置(どのディレクトリに含まれるか)、登録利用者やグループごとのアクセス権限などの情報が管理領域に記録される。
人間や実行中のプログラムがストレージを操作する際は、いきなり内部の特定の位置を読み書きするのではなく、ファイルシステムに対してファイル名やパス(path:ストレージ内の位置情報)などを指定してファイルの作成や書き込み、読み込み、上書き、削除などの操作を依頼する。
ファイルシステムは管理領域を参照して既存のファイルの記録位置を割り出し、読み込みや書き込みを行なったり、新しいファイル用の領域を確保して管理領域に追加したり、削除されたファイルの領域を解放して管理領域から抹消したりといった操作を行う。
ファイルシステム上には複数のファイルを格納し、分類・整理することができる「ディレクトリ」(directory)あるいは「フォルダ」(folder)と呼ばれる保管場所を任意に作成することができる。ディレクトリの中にはさらにディレクトリを作成することができ、ファイル群を階層型に分類して管理することができる。
ファイルシステム上の別のファイルへの参照を表すリンクと呼ばれる特殊なファイルを作成できる場合もある。このうち、ファイルの実体は一つで、ファイルシステム内の複数の箇所に実体を指し示すファイル名(パス)を置くことができる機能を「ハードリンク」、別のファイルへの参照を表す特殊なデータを記録したファイルを作成する機能を「ソフトリンク」という(システムによってショートカット、エイリアス、シンボリックリンクなどと呼ばれることもある)。
ファイルシステムにはファイルやディレクトリの作成や管理といった基本機能の他にも、暗号化や利用者ごとのアクセス権限の設定などのセキュリティ機能、ファイル単位やストレージ単位の透過的なデータ圧縮、チェックサムやスナップショット、ジャーナリングなどの信頼性向上機能といった付加機能を持つものもある。
多くのOSは標準で一つ以上のファイルシステムに対応し、追加的に複数のファイルシステムに対応している場合が多い。Windowsでは「FAT」(FAT16/FAT32/exFAT)や「NTFS」が、macOS(Mac OS X)では「HFS+」や「APFS」が、Linuxでは「ext3」や「ext4」が標準的に用いられている。光学ディスク(CD/DVD/Blu-ray Disc)では独自のファイルシステム仕様が規定されており、「ISO 9660」(CD)や「UDF」(DVD/BD)がよく用いられる。
ファイル
コンピュータにおけるデータの管理単位の一つで、ストレージ装置(外部記憶装置)などにデータを記録する際に利用者やオペレーティングシステム(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(アクティブディレクトリ)が特に有名である。
ルートディレクトリ 【ルートフォルダ】 ⭐⭐
コンピュータがストレージ(外部記憶装置)の内容を整理するファイルシステムにおいて、装置やシステム全体の最上位のディレクトリのこと。すべてのファイルやディレクトリはルートディレクトリを根とする木構造のディレクトリ階層のいずれかに収まっている。
今日一般的なコンピュータのファイルシステムでは、ストレージの内部にファイルを格納するディレクトリ(directory)と呼ばれる領域を任意に作成することができる。ディレクトリの中にディレクトリを、さらにその中にディレクトリを作ることもでき、ディレクトリ構造全体は上位階層から下に向かって順に枝分かれしていく木構造(ツリー構造)となる。この中で、最上位のある唯一のディレクトリのことをルートディレクトリという。
Windowsのルートディレクトリ
Windows(や前身のMS-DOS)ではドライブ(一台の記憶装置あるいはその内部を区切ったパーティション)ごとにルートディレクトリが存在し、「C:¥」のようにドライブレターのみで表されるディレクトリがそれぞれのドライブのルートとなる。複数のストレージやパーティションがある場合にはそれぞれに対応するルートディレクトリが存在する。
Windowsではファイルシステムのディレクトリを含むシステム資源の保管場所をフォルダ(folder)と呼ぶのが一般的であるため、ルートディレクトリのこともルートフォルダ(root folder)と呼ばれることが多いが、意味上の違いはない。
UNIX系OSのルートディレクトリ
UNIX系OSではストレージ装置の物理的な構成は抽象化されており、「/」で表されるシステム全体で単一のルートディレクトリにすべての要素が収まっている。また、ストレージ内のファイルやディレクトリだけでなく、ファイル入出力と同じように扱えるよう抽象化された様々なシステム資源(周辺機器との入出力を扱う/devなど)も配置されている。
ちなみに、UNIX系OSの多くには「/root」というディレクトリもあるが、これはシステム管理者を表す組み込みユーザーアカウントの「root」(ルートユーザー/スーパーユーザー)のホームディレクトリを表すもので、ディレクトリのルートという意味ではない。
カレントディレクトリ 【カレントフォルダ】 ⭐⭐
実行中のソフトウェアなどがストレージ(外部記憶装置)のファイルシステム中で現在位置として指し示しているディレクトリのこと。相対パスでファイルやディレクトリなどを指定する際の基準の位置となる。
シェルやコマンドラインインタプリタなど主にOSへの操作を受け付けるソフトウェアが内部的に持つ状態の一つで、ストレージのファイルシステムを(UNIX系OSではストレージ以外のシステム上の資源も含む)階層構造で表したディレクトリツリーの中で、「今どこにいるのか」を表している。
利用者がツリーの根本からの絶対位置である絶対パスを指定せずにファイルやディレクトリなどを指定すると、カレントディレクトリからの相対的な位置関係を表す相対パスであると解釈される。この仕組みにより、深い階層にあるファイルなどを指定する際にいちいち長い絶対パスを毎回入力しなくても、当該ディレクトリに「移動」すればファイル名を指定するだけでよくなる。
パスの表記法には特殊な表記として、カレントディレクトリを表す「.」が用意されており(UNIX/Windows共通)、これを用いて相対パスであることを明示的に指定することができるようになっている。例えば「./sub/file.txt」という表記は、カレントディレクトリ中のsubディレクトリ中のfile.txtというファイルを指す相対パスとなる。
シェルなどにはカレントディレクトリを移動したり現在位置を表示したりするコマンドが用意されており、MS-DOSやWindows、ほとんどのUNIX系OSのシェルでは「cd」あるいは「chdir」コマンドにより別のディレクトリに移動できる。現在位置の表示はUNIX系OSでは「pwd」、Windowsでは引数なしの「cd」コマンドが用いられる。
拡張子
ファイル名の末尾で「.」(ドット/ピリオド)の後ろにある英数字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の分野では、まとまったデータや記憶領域などを小さな単位に分割したり、意図せず小さな断片に分断されてしまうこと(および、そのような状態になったデータや領域自体のこと)などを意味する。
ストレージのフラグメンテーション
ハードディスクなどのストレージ(外部記憶装置)にファイルの書き込み・消去を繰り返していくと、連続した大きな空き領域が次第に少なくなり、新たに記録するファイルが小さな断片に分割されて記録されるようになってしまう。
このような状態のことを「ディスクフラグメンテーション」という。これを解消する操作のことを「ディスクデフラグメンテーション」(disk defragment)あるいは短縮して「ディスクデフラグ」「デフラグ」と呼ぶ。
メモリのフラグメンテーション
長時間コンピュータを起動して様々なプログラムを使用していると、メモリ領域についてにも似たような現象が起きることがあり、これを「メモリフラグメンテーション」という。
固定長の領域を割り当てていくシステムで割り当てられた領域内に未使用の断片が生じることを「内部断片化」、可変長の領域を割り当てていくシステムで空き領域が細かく分割されすぎて連続した大きな領域の割り当てができなくなることを「外部断片化」という。
OSなどがメモリの占有領域の再配置などを行ってメモリの断片化を解消することをデフラグメンテーションあるいは「コンパクション」(compaction/メモリコンパクション)という。
通信におけるフラグメンテーション
ネットワーク通信において、送信したいパケットやフレームのサイズが通信回線や転送方式の制限よりも大きい場合に、これを送信可能なサイズの複数の単位に分割して送信する処理のことをフラグメンテーションという。特に、IPデータグラムの場合は「IPフラグメンテーション」という。
受信側では分割されたすべてのデータの到着を待ち、先頭から順番に連結してもとのデータに組み立てる処理が必要となる。
ファイル共有
複数のコンピュータや利用者間で、ストレージ(外部記憶装置)に保存されたファイルやディレクトリ(フォルダ)を共有すること。狭義には構内ネットワーク(LAN)を通じて行われるものを指すが、広義にはインターネット上のサービスなどを通じて行われるものを含む。
LAN上で行われるファイル共有はOSのネットワーク機能の一部などとして提供されるもので、ネットワークを介して他のコンピュータ上のストレージ領域の一部に許諾を得てアクセスし、ファイルやディレクトリの読み込みや書き込み、複製、移動などを行うことができる。
コンピュータの利用者や管理者は相手方のコンピュータや利用者ごとにアクセス権を設定することができ、特定の利用者や利用者のグループのみにアクセスを許可したり、読み込みのみ、読み書きの両方が可能など、相手によって権限を細かく指定することができる。
WindowsではSMB/CIFSと呼ばれる仕様を用いたファイル共有が標準で提供され、macOS(Mac OS X)やUNIX系OSからアクセスできるようにするソフトウェアもある。LinuxなどのUNIX系OSではNFSと呼ばれる仕様が有名である。
OSの機能とは独立にネットワーク上でファイル共有機能を提供するソフトウェアもあり、特に、インターネット上で不特定多数の相手と一対一の相対接続(Peer to Peer)を行い互いが持っているファイルを共有・交換できるファイル共有ソフトはP2Pソフトとも呼ばれる。
インターネット上で複数の機器(デバイス)間や特定の相手やグループ間でファイル共有が可能なネットサービスもあり、オンラインストレージやSNS、クラウドサービスの追加機能として提供されることが多い。
絶対パス ⭐⭐
ファイルなどの所在を書き表すパス(path)の表記法の一つで、階層構造の頂点(最上位階層)からの位置関係を記述する方式。
現在位置とは無関係に、ドライブやシステムの最上位ディレクトリ(ルートディレクトリ、ルートフォルダ)から目的のディレクトリ(フォルダ)やファイルまでの道筋を省略なくすべて記述する方法で、途中にあるディレクトリを区切り記号で繋いで並べる。
UNIX系OSでは頂点はルートディレクトリ(「/」で表される)で、「/」(スラッシュ)を区切り記号として「/usr/bin/sh」のように途中にあるディレクトリを順に示す。WebサイトやFTPサーバなどネット上の資源を記述する際も(サーバがWindows等でも)この形式が用いられる。
MS-DOSやWindowsではドライブ名(「C:¥」など)を頂点に、日本では「¥」(円記号、実際には半角文字)、海外では「\」(バックスラッシュ、同)を区切り記号として記述する。Windowsネットワークのファイル共有ではコンピュータ名を頂点に「¥¥コンピュータ名¥共有名¥パス」といった形式で記述するUNC(Universal Naming Convention)を用いる。
一方、システムが現在操作対象としているカレントディレクトリ(カレントフォルダ)を起点に、相対的な位置関係を記述する方式は「相対パス」(relative path)という。
絶対パスとフルパス
絶対パスとフルパスは通常同じ意味として用いられ、特にコンピュータ上でファイルシステムを扱う際には技術的な区別は存在しない。
ただし、Webサーバ等の運用においては、URLのパス部分の絶対指定のことを「絶対パス」(現在位置起点を「相対パス」)とし、サーバ内部でのファイルシステム上でのパスの絶対指定を「フルパス」と呼び分ける場合がある。
例えば、「https://www.example.com/mydir/myfile.html」というURLで参照されるファイルを、サーバ内の別のWebページなどから「/mydir/myfile.html」と指定したものが絶対パスにあたる。一方、このファイルがサーバ内部では実際には「/var/www/html/mydir/myfile.html」という位置に置かれている場合に、これをフルパスと呼ぶ。
相対パス 【相対パス指定】 ⭐⭐⭐
ファイルなどの所在を書き表すパス(path)の表記法の一つで、現在位置からの相対的な位置関係を記述する方式。起点となる位置から目的の位置までの道筋にある要素を順に並べて記述する。
システムが現在操作対象としているカレントディレクトリ(カレントフォルダ)を起点に、指し示したいディレクトリやファイルの相対位置を記述する方法で、途中にあるディレクトリを区切り記号で繋いで並べる。区切り記号はWindowsの場合、日本では「¥」(円記号、実際には半角文字)、海外では「\」(バックスラッシュ、同)を用い、UNIX系OSやWebサーバなどでは「/」(スラッシュ)を用いる。
カレントディレクトリは省略可能だが明示したい場合は「.」で表し、一階層上位のディレクトリは「..」で表す。「..」を繰り返し記述することでディレクトリ階層の親子関係をたどって上へ移動することができる。例えば、「../../foo/bar.txt」という記述は、現在のディレクトリの二階層上のディレクトリの中にある「foo」ディレクトリの中にある「bar.txt」というファイルを指し示している。
一方、現在位置とは無関係に、ドライブやシステムの最上位ディレクトリ(ルートディレクトリ、ルートフォルダ)からの絶対的な位置関係を記述するパスの指定方法を「絶対パス」(absolute path)という。
バックアップ ⭐⭐
応援、予備(の)、代替(の)、支援、支持、擁護、後援、渋滞、後退などの意味を持つ英単語。ITの分野では、機器の故障などに備えて用意された代替設備や予備品、データの複製などのことを意味することが多い。
単にバックアップといった場合は、データの破損や損失に備えてデータの写しを取って保管する「データバックアップ」のことを指す場合が多い。データをコピーする作業や工程のことをバックアップという場合と、作成されたデータの複製(を記録した装置など)のことをバックアップという場合がある。
コンピュータの記憶装置に保存されたデータを別の装置や記憶媒体へ複製して別に保管するもので、機器の故障や破損、人為ミス、不正行為などによってデータの消失や改変などが起こった場合に、複製した時点のデータに復旧させることができる。
また、「バックアップ回線」「バックアップサーバ」などのように、通常時に使用している機器などが何らかの原因で正常に稼働できなくなった時に、その機能を肩代わりするための機器や設備、施設などのことをバックアップということもある。
世代管理
データの複製を保存するバックアップの手法の一つで、過去の複数の時点のデータを保管しておき、指定した時点のデータを復元できるようにすること。
単純なバックアップ方式では新たに複製を行うと以前に複製したバックアップデータは破棄され、常に最も最近にバックアップしたデータのみを復元することができる。
一方、世代管理バックアップでは新しく複製を作成しても以前に複製したデータも残しておき、復元時には過去のどの時点のデータを復元するか選択することができる。データに問題が生じたが、それに気づかないままバックアップを実行してしまった場合などに、問題が起きる前のデータに戻すことができるようになる。
世代数
世代管理において過去何回分までのデータを残しておくかを「世代数」(保存世代数)という。これを超えて新たに複製を行う場合は最も古い世代のデータが代わりに削除される。
フルバックアップ方式の場合は単純にバックアップの回数が世代数となるが、差分バックアップの場合は一定期間や一定回数ごとに行われるフルバックアップの回数が世代数となる。例えば、毎週1回フルバックアップを取り、これに対して毎日1回差分バックアップを取る場合、週に1回のフルバックアップの時点で世代が更新される。
アーカイブ ⭐
保存記録、記録保管所、書庫、公文書館などの意味を持つ英単語。ITの分野ではデータを長期保存するための保管場所や記録形式、保管用にひとまとめに整理されたデータなどを指すことが多い。
すぐには使わないが後で取り出して参照するかもしれないデータを長期的に保管するため、専用の保存領域や記録装置に移動させることや、そのような保管領域、蓄積されたデータ自体のことをアーカイブという。
例えば、電子メールのクライアントソフトやWebメールサービスの操作画面などで、長期間保管しておきたいメッセージを受信ボックスなどから専用の保管領域に移動させることがある。そのような領域やメッセージ群のことをアーカイブという。
コンピュータシステムではすぐに参照しないが長期間残しておきたいファイルなどを、データ圧縮して容量を減らしたり複数のファイルやディレクトリをまとめたりして特定のファイル形式に変換して保管することがある。そのようなファイルを「アーカイブファイル」(archive file)と呼び、これを作成するためのソフトウェアを「アーカイバ」(archiver)という。
ハードディスクやSSDなどコンピュータの内蔵ストレージの空き領域を増やすため、アーカイブファイルは専用の記憶媒体(記録メディア)やストレージシステムに移して保管することが多い。個人用途ではCDやDVD、Blu-ray Discなどの光学メディアが、業務用のシステムでは磁気テープなどがアーカイブ用途に用いられることが多い。
なお、一般の外来語としては、将来に残すために施設や制度を設けて長期保存された記録物や文書類、また、それらの保管設備・施設などを指すことが多い。これらをコンピュータに取り込んでデジタル化し、データとして保管するようにしたものを「デジタルアーカイブ」(digital archive)という。
オフィスソフト 【オフィススイート】
ワープロソフトや表計算ソフトなど、主にオフィスで利用されるアプリケーションソフトを一つにまとめたパッケージのこと。個々のソフトウェアはそれぞれ単体でも提供され、個別に導入して利用することもできることが多い。
どのようなソフトウェアが含まれるかは製品やバージョンによって異なるが、最も典型的な構成はワープロソフト、表計算ソフト、プレゼンテーションソフトの3つで、これに作図ソフトやデータベースソフト、フォトレタッチソフト、メールソフト、グループウェアクライアント、DTPソフト、Web制作ソフト、メモソフト、工程管理ソフト、データ共有ソフトなどが含まれる場合がある。
1980年代からパソコン向けの人気ソフトウェア製品であり、パソコン本体にバンドル販売されることも多い。その名に反して家庭においても広く利用されている。
マイクロソフト(Microsoft)社の「Microsoft Office」(マイクロソフト・オフィス)シリーズは同社の看板商品の一つとして世界的に広く普及しており、他社製品の多くは同社ソフトのファイル形式と互換性を持たせている。
2000年代にはApache OpenOffice(旧OpenOffice.org)などのオープンソースソフトウェアや、GoogleドキュメントなどのWebアプリケーション型(SaaS/クラウド型)のソフトウェアなども登場し、選択肢が多様化している。
パッケージソフト 【プログラムプロダクト】 ⭐
既成品として販売されているソフトウェア製品。または、物理的な記憶媒体に記録され、箱などに梱包されて販売されるソフトウェア製品。
既成品という意味のパッケージ
既成品という意味のソフトウェアパッケージは、開発元が自ら設計・開発して完成品として流通事業者や顧客に販売しているソフトウェア製品を指し、利用者の要望に応じて個別に設計・開発されるオーダーメイドのソフトウェアと対比される。
個人が購入・利用するソフトウェアのほとんどはパッケージだが、企業などの情報システムでは構想時にパッケージと個別開発を比較検討してどちらにするか選択することがある。ソフトウェアパッケージの中には機能を改変したり追加できる仕組みを提供しているものもあり、これを利用して一部を自らの必要に応じて作り変える(カスタマイズ)場合もある。
ソフトウェアパッケージはすでに完成して販売されている製品であるため、利用者側にとっては設計や開発にかかる時間を省いてすぐに購入して利用することができる。他にも利用者がいるため、使用ノウハウなどの有益な情報を開発元から得るだけでなく利用者間で共有できる場合がある。多数の利用者が日々使用することで問題点なども早期に発見され、速やかに修正されることが期待される。コストも同規模、同機能、同性能で比較すればほとんどの場合既成品の方が安い。
ただし、仕様は開発元が策定し、潜在的利用者が共通して求めると想定される最大公約数的な内容であることが多いため、個々の利用者にとっては自らにとって必要な機能が不足していたり、不要な機能ばかり多く費用対効果が低かったりする場合もある。当然ながら自分(自社)しか使用しない特殊な機能などが標準で実装されることは期待できない。
物理的な梱包という意味のパッケージ
提供方式としてのソフトウェアパッケージは、プログラムやデータがCD-ROMやDVD-ROM、Blu-ray Discなどの物理的なメディアに記録され、マニュアルや保証書、利用許諾契約書(ライセンス)などと共に紙箱やプラスチックケースなどに梱包されて利用者に届けられるものを指す。店頭で販売され利用者が購入して持ち帰る場合と、オンラインで注文して宅配便などで配達される場合がある。
インターネットを通じてプログラムなどを配布するダウンロード販売(オンラインソフト)や、Webブラウザなどを介してインターネット上のサービスとしてソフトウェアの機能を提供するSaaS/クラウドサービスなどと対比される。
インターネット回線が低速だったりWebシステムの機能が貧弱な時代にはソフトウェア製品の標準的な提供手段だったが、現代ではスマホアプリのようにネットワークを通じた提供が一般的になり、パッケージ販売はパソコン向けの一部の製品で行われるのみとなっている。
マクロ 【マクロ言語】 ⭐
関連する複数の操作や手順、命令などを一つにまとめ、必要に応じて呼び出すことができるようにする機能のこと。アプリケーションソフトの定型的な操作の自動化などに用いられる。
ソフトウェア操作のマクロ
アプリケーションソフトの操作を自動化する機能の一つにマクロがある。利用者が複数の操作手順を一連の手続きとして記録したもので、簡単な操作で繰り返し実行することができる。
利用者はマクロ登録開始に操作の後、操作画面上で登録したい一連の操作を行い、記録終了の操作を行う。この間の操作はデータとして記録され、録音した音声を再生するように簡単な操作で何度も繰り返し呼び出すことができる。
業務上何度も繰り返し行わなければならない定型的な作業を自動化することができ、文書内の複数の個所や複数の文書に同じ操作を行わなければならない場合などに利用される。
Microsoft Excelのマクロ機能など、表計算ソフトでよく利用される機能で、記録した操作をスクリプト言語などで表し、後から編集できる機能を持ったソフトもある。キー操作を記録して再生できるようする機能は「キーボードマクロ」と呼ばれる。
プログラミングのマクロ
プログラミングの分野では、ソースコード中に繰り返し登場する特定の記述を、別の(短い)記述に置き換えることができる機能をマクロという。
複数の命令をまとめて一つの命令のように記述したり、複数の箇所で参照される定数の値を後からまとめて変更できるようシンボル名で記述するのに使われる。
関数のようなプログラミング言語の持つ仕様や機能ではなく、アセンブラやコンパイラなどの機能として提供されるもので、コンパイルなどの前処理としてソースコードを単純に文字列置換することにより実現される。C言語などではプリプロセッサと呼ばれる専用のプログラムで処理される。
ワープロソフト 【文書作成ソフト】
文章主体の文書を作成・編集し、紙面上での見栄えの調整を行うことができるソフトウェアのこと。図表や画像を埋め込んでレイアウトする機能を持つものもある。
もともと「ワードプロセッサ」(word processor)と呼ばれる文書作成・編集専用のコンピュータ製品があり、その機能を汎用のパソコンなどの上で動作するソフトウェアとして実装したものであるためこのように呼ばれる。
特定の大きさの紙面に文章や見出し、箇条書き(リスト)などを配置し、文字の大きさや書体(フォント)を指定したり、字間や行間を調整したり、複数の段に分けて表示したり、画像や図表を埋め込んだりすることができる。
同じ文字入力・編集ソフトでも、紙面の構成を前提とせず、文字データの表示、入力、編集のみができる(見栄えを指定する機能がない)ソフトウェアは「テキストエディタ」(text editor)と呼ばれ、区別される。
1980年前後のパソコン(当時はマイコンとも呼ばれた)黎明期から存在するソフトウェアで、業務用の高価なワープロ専用機の機能を安価な個人用コンピュータでも利用できるとあって、家庭向け、オフィス向け共にパソコンの主要なアプリケーションとして広く普及した。現代では表計算ソフトなどと共にオフィスソフト(オフィススイート)の主要な構成要素として提供されることも多い。
歴史
欧米では1980年代には米ワードパーフェクト(WordPerfect)社の「WordPerfect」の人気が高かったが、1990年代になるとマイクロソフト(Microsoft)社の「Microsoft Word」(マイクロソフト・ワード)が同社のWindowsと共に劇的に普及し、事実上の標準に近い存在となった。現在でも他社製品がWordのファイル形式(.docファイル/.docxファイル)の読み書きに対応するなど標準的なソフトとなっている。
日本では日本語の扱いの特殊性などから1980年代の黎明期に国産ソフトが主流となり、管理工学研究所の「松」やジャストシステムの「一太郎」、ワープロ専用機の流れを継ぐ富士通「OASYS」などの人気が高かった。1990年代にはWindowsの普及と共にWordが優勢となった。
クリップボード
コンピュータの操作画面で、利用者がコピー(複製)やカット(切り取り)などの操作を指示したデータの断片を一時的に保管しておく記憶装置上の領域のこと。オペレーティングシステム(OS)によって用意され、管理されている。
画面上で利用者が文字列や画像などの範囲を指定してコピーやカットなどの操作を実行すると、指定されたデータは一時的にクリップボードに保管される。その後、利用者が位置を指定してペースト(貼り付け)操作などを実行すると、クリップボードに保管されていたデータがその位置に出現する。
一度クリップボードに保存されたデータは利用者が他のデータを新たにコピーあるいはカットするまで保存され続けるのが一般的で、何度も繰り返し呼び出して複製することができる。アプリケーション間で共有されるメモリ領域であるため、コピーしたデータを他のアプリケーションへ移転することもできる。
OSが提供するクリップボード機能では直近に保存された一つのデータしか保存できない場合が多いが、Microsoft Officeアプリケーションのように独自のクリップボードを用意し、複数のデータを保存してペースト時にどれを呼び出すか指定できるようになっている場合もある。
表計算ソフト 【スプレッドシート】 ⭐⭐⭐
データが並んだ表を作成・編集することができるアプリケーションソフト。表中の項目間で集計や解析を行ったり、グラフに表したりすることができる。
縦横に並んだマス目(セル)の広がる表を用い、各セルにデータや計算ルールなどを入力・設定していくと、ソフトウェアが自動的に計算や処理を実行し、所定の位置に計算結果を代入したり、グラフを描画したりしてくれる。
このマス目の並んだ表のことを「スプレッドシート」(spreadsheet)あるいは「ワークシート」(worksheet)と呼び、一つのファイルに複数のシートを収めることができる。表計算ソフト自体を指してスプレッドシートと呼ぶこともある。
計算ルールには特定範囲の合計や平均を算出するといった単純なものから、数学的な関数や統計関数、財務関数などが利用できる。数値を扱う関数以外にも、日付や時刻を扱う関数、論理式を扱う関数、文字列を操作する関数、特定の条件を満たす値を数え上げる関数など、様々な種類がある。
表に貼り付けるように矩形の領域を設けて内部にグラフを描画する機能があり、特定の範囲のデータを対象にして折れ線グラフや棒グラフ、円グラフ、散布図などを描くことができる。セルの内容を変更すると、追随してすぐにグラフに反映されるようになっている。
行や列の幅や高さを変更したり、先頭のセルに項目名を記載したり、表やセルに枠線や背景色、文字書式、表示形式などを設定して見栄えを整える機能もあり、ファイルとして配布して入力フォームに利用したり、そのまま印刷して資料や帳票などとして用いる場合もある。
製品
パソコン向けの表計算ソフトとしては、米マイクロソフト(Microsoft社)のオフィスソフト「Microsoft Office」の一部として提供される「Microsoft Excel」(マイクロソフト・エクセル)が世界的に最も有名でシェアが高く、「Excel」を表計算ソフトの代名詞のように扱うこともある。
他にも、米アップル(Apple)社の「Numbers」や、オープンソースのLibreOfficeやApache OpenOfficeに含まれる「Calc」などが知られる。米グーグル(Google)社の「Google Sheets」(日本名は「Googleスプレッドシート」)のようにWebブラウザで操作できるネットサービスもある。
セル
細胞、気泡、マス目、小区画、個室、小部屋、独房、小集団、班などの意味を持つ英単語。何らかの大きな構造が均質の小さな単位の組み合わせでできているときに、その単位を生物の細胞になぞらえてこのように呼ぶ。
表計算ソフトのセル
表計算ソフトや文書作成ソフト、Webページなどで、表(テーブル)を構成する一つ一つのマス目のことをセルという。通常は表計算ソフトのマス目をセルと呼ぶ。
表計算ソフトは碁盤の目のように内部が分割されたスプレッドシート(spread sheet)と呼ばれる表を用いてデータの整理や計算を行うが、表の内部のひとつひとつの小さな区画のことをセルという。セルには数値や文字列、日付、計算式、関数などを記述でき、演算を行う場合は他のセルの内容を呼び出して用いることができる。
セルの位置は行番号と列番号の組み合わせで識別される。Microsoft Excelなど多くのソフトでは列番号にアルファベット(A,B,C,…)、行番号に自然数(1,2,3,…)が割り当てられ、これらを組み合わせて「A1」「C10」のように位置を指定する。列数が26行を超える場合は「Z,AA,AB,…,AZ,BA,…,ZZ,AAA,…」のように桁数が増えていく。
相対参照と絶対参照
<$Img:Cell-2.jpg|right|[PD]|https://commons.wikimedia.org/wiki/File:X-office-spreadsheet.svg>あるセルから別のセルを参照する際、セル間の相対的な位置関係を指定することを「相対参照」、特定のセルの絶対的な位置を指定することを「絶対参照」という。多くのソフトでは「A1」のような記法は相対参照とみなされ、「$A$1」のような記法が絶対参照を表す。
例えば、B1セルに「=A1*2」という式を書くと内部的には「左隣のセルの2倍」という意味になり、これを一段下のセルにコピーすると自動的に「=A2*2」に書き換わる。一方、「=$A$1*2」と記述すると常にA1セルを指し示す絶対参照となり、「A1セルの2倍」という意味になる。一段下にコピーしても「=$A$1*2」のままである。
移動体通信のセル
<$Img:Cell-3.png|right|[PD]|https://freesvg.org/vector-clip-art-of-honey-icon>携帯電話・移動体データ通信で、一つの無線基地局がカバーする通信可能な範囲をセルという。数百mから数km程度のセルを隙間なく配置して通話エリアを形成したものを「セルラーネットワーク」(cellular network)と呼び、そのような無線通信方式をセルラー方式という。
地上に基地局を配置する現代の移動体通信網のほとんどがこの方式を用いており、英語で携帯電話のことを “mobile phone” 以外に “cellular phone” あるいは略して “cell phone” と呼ぶほど定着している。
範囲による分類
一つのセルの範囲は通信規格などによって異なり、一般的な携帯電話基地局では最大数キロメートルの「マクロセル」(macrocell)を用いるが、PHSのように数百メートル程度の「マイクロセル」(microcell)を多数設置する方式もある。
また、近年では電波の届きにくい場所や建物内に数メートルから数十メートルをカバーする「ナノセル」(nanocell)あるいは「ピコセル」(picocell)を補完的に設置したり、家庭などで光ファイバーなどの固定回線に接続して使う「フェムトセル」(femtocell)が使われることもある。
四則演算 【加減乗除】
算術計算で最も基本的な4つの計算法である足し算、引き算、掛け算、割り算のこと。
数値の足し算(add:加算/加法)、引き算(subtract:減算/減法)、掛け算(multiply:乗算/乗法)、割り算(divide:除算/除法)の4つを合わせてこのように総称する。
それぞれの計算の結果を「和」(sum)、「差」(difference)、「積」(product)、「商」(quotient)という。除算では商の他に、割り切れないときの「余り」である「剰余」(remainder)を出すこともある。
算術の計算式ではそれぞれ「+」「-」「×」「÷」の演算子で表すが、「×」は「・」で代用することもある。除算記号が「÷」の国は日米英中韓など少数派で、世界的には「/」(スラッシュ)で表す国が多い。剰余は「5÷2=2…1」のように商の後に「…」を付けて記載する。
コンピュータ上での表記
コンピュータ上では、ASCIIなど欧米の文字コード標準には「×」や「÷」が存在せず、乗算を「*」(アスタリスク)、除算を「/」(スラッシュ)で表すのが一般的となっている。プログラミングで用いられる「整数除算の剰余を求める演算」(剰余演算)は「%」で表されることが多い。
プログラミング言語や表計算ソフトの関数、CPUの命令セットなどでは、記号ではなく英略語で各演算を表すことがある。それぞれを表す単語を元に、加算を「add」や「sum」、減算を「sub」や「diff」、乗算を「mul」や「prod」、除算を「div」(または商を「quot」余剰を「rem」や「mod」)といった略号で表すことが多い。
関数 【ファンクション】
コンピュータプログラム上で定義されるサブルーチンの一種で、数学の関数のように与えられた値(引数)を元に何らかの計算や処理を行い、結果を呼び出し元に返すもののこと。
プログラム上で関連する一連の命令群を一つのかたまりとしてまとめ、外部から呼び出せるようにしたサブルーチンやプロシージャ(手続き)の一種である。呼び出し時に引数(ひきすう/argument)と呼ばれる値を指定することができ、この値をもとに内部で処理を行って、結果を返り値(かえりち/return value)あるいは戻り値(もどりち)として呼び出し元に通知する。
プログラミング言語によって、返り値を持つものを関数(ファンクション)、処理を行うだけのものをサブルーチンやプロシージャとして区別する場合もある(Pascalなど)が、C言語やJavaScriptのようにすべてが関数で引数や返り値が省略可能になっている言語もある。
多くのプログラミング言語は開発者が自由に関数を定義してプログラム中で呼び出せる構文や記法を定めているほか、算術関数や文字列処理などよく使われる基本的な関数言語仕様や標準ライブラリなどの中であらかじめ実装済みとなっている(組み込み関数)。
関数といっても数学のように計算を行うものには限られず、「利用者に入力を促して入力値を返す」関数といったものもあり得る。途中で画面に何かを表示するなど、引数や返り値と直接関係ない処理を行ってもよい。
プログラムは内部に変数の値など実行状態を持つため、これを反映して同じ引数から異なる返り値が得られる場合もある。また、関数が行う処理によって状態が変化することもあり、これを関数の持つ「副作用」という。多くの算術関数のように副作用のない関数もある。
ピボットテーブル
米マイクロソフト(Microsoft)社の表計算ソフトのMicrosoft Excel(マイクロソフト・エクセル)でクロス集計を行う機能。
複数の項目からなるデータの集合があるときに、そのうちの2つ(ないし3つ)の項目を組み合わせて2次元の表の形で集計する。項目間の関係や相関、傾向などを見やすくまとめることができる。
マウス操作などで矩形の集計範囲を指定すると、その中から項目名や値を自動的に抽出し、クロス集計表を作成してくれる。ダイアログで縦軸と横軸に設定する項目を選択したり、集計値を積算値とするかパーセンテージとするかといった設定を行なうこともできる。
クロス集計の結果をグループ化された棒グラフ群や積み上げ棒グラフなどの形で一覧表示するグラフ作成機能もあり、「ピボットグラフ」(pivot chart)と呼ばれる。
プレゼンテーションソフト
講演や会議などで発表する資料を作成したり再生するためのアプリケーションソフト。文字や図表、画像を組み合わせた「スライド」を単位に資料を作成し、発表時にはスピーチに合わせて表示するスライドを順に切り替えていく。
スライドプロジェクタで映写するスライドフィルムを作成するためのソフトウェアが起源で、見出しや文章、箇条書き、図、表、画像、背景などをレイアウトして発表用の資料を一枚ずつ作成する。動画や音声を配置して適宜再生する機能を持つものもある。
作成した資料は全画面表示モードで一枚ずつ順に再生することができ、大画面のディスプレイやプロジェクタで投影する。発表者の話の展開に合わせて、本人あるいはコンピュータ操作の担当者がスライドをめくっていく。一枚のスライドの中で操作によって順に新しい要素が登場するといった仕掛けを組み込むこともできる。
多くのソフトは発表のジャンルやデザインごとにテンプレート(雛形)を用意しており、ゼロからすべての要素を配置しなくても、雛形に発表内容を組み入れていくだけで手軽にスライドを作成することができる。特定のソフトウェア向けのテンプレートを提供・販売しているWebサイトなどもある。
米マイクロソフト(Microsoft)社のMicrosoft Officeファミリーに含まれる「PowerPoint」(パワーポイント)が代表的なソフトウェアであり、スライド方式のプレゼンテーション資料を指して「パワポ資料」のように呼ぶことも多い。他に、米アップル(Apple)社のiWorkに含まれる「Keynote」(キーノート)や、米グーグル(Google)社のGoogle Workspaceに含まれる「Googleスライド」などがよく知られている。
Webブラウザ 【ウェブブラウザ】 ⭐
Webページを閲覧するためのアプリケーションソフト。利用者の指定したWebページを管理するWebサーバへデータの送信を要求し、送られてきたHTMLファイルや画像ファイルなどを読み込んで指定されたレイアウトで表示する。
利用者の指定したアドレス(URL)にアクセスし、WebサーバからWebページを構成するHTMLファイルやスタイルシート(CSS)、スクリプト(JavaScript)、画像、音声、動画などのデータを受信して、一枚のページに組み立てて画面に表示する。
入力フォームを使用して利用者側からデータやファイルをWebサーバに送信したり、表示されたページの保存や印刷を行ったり、簡易なプログラム(スクリプト)の実行機能を利用して制作されたソフトウェアやアニメーションなどを再生・動作させることもできる。
主要なWebブラウザには、「プラグイン」「アドオン」「拡張機能」(エクステンション)などの名称で、第三者の開発した機能を追加する仕組みが備わっており、様々な企業や個人が開発した追加機能が公開されている。
読み込むWebページの指定は、URL(Webアドレス)を表示欄に利用者が直接入力するか、表示されたページ中にある他のページへのリンク(ハイパーリンク)を指定するか、利用者の保存したURLの一覧(ブックマーク/お気に入り)から選択するなどの方法で行う。
サーバとの通信はHTTP(Hypertext Transfer Protocol)と呼ばれる通信規約(プロトコル)によって行われ、その基盤としてインターネットなどで標準のTCP/IPが用いられる。SSL/TLSを用いて通信経路を暗号化(HTTPS)したり、ローカルファイルを読み込む機能も備えていることが多い。
Webブラウザの種類
一般的なフル機能のWebブラウザ製品の他に、画像や動画などメディアデータは無視して文字(テキスト)部分だけを抽出して表示する「テキストブラウザ」、文字情報を音声合成機能で読み上げる「音声ブラウザ」(読み上げブラウザ)などがある。
パソコン向けでは、米グーグル(Google)社の「Google Chrome」(グーグル・クローム)や米マイクロソフト(Microsoft)社の「Microsoft Edge」(マイクロソフト・エッジ)、米モジラ財団(Mozilla Foundation)の「Firefox」(ファイアーフォックス)が人気で、Mac(macOS)では開発元の米アップル(Apple)社の「Safari」(サファリ)が標準的に使われる。
スマートフォンやタブレット端末の場合、Androidでは標準で組み込まれるAndroid版Chromeが、iOS(iPhone/iPad)でもやはり標準で組み込まれるiOS版Safariが使われることが多い。また、これらの環境では標準ブラウザの機能を部品(モジュール)化したものをアプリケーションソフトに組み込む「WebView」(ウェブビュー)という仕組みがあり、多くのアプリがこの仕組みを利用してWebブラウザの機能を内蔵している。
検索エンジン 【サーチエンジン】
あるシステムに存在するデータやファイルを取得して内容の索引付けを行い、利用者がキーワードや条件を入力して検索できるようにしたシステム。そのような機能に特化したソフトウェアなどのことを指す場合と、Web上の情報を検索するネットサービスやWebサイトを指す場合がある。
広義には、ある情報システムやストレージ(記憶装置)などに保管されたファイルやデータの集合を読み込んで、どのような情報がどこに存在するといった索引(インデックス)を作成し、利用者が入力したキーワードや検索条件に合致するデータを探し出して列挙するシステム全般を指す。
特に、外部のソフトウェアなどに組み込まれて検索機能を提供する、部品化されたソフトウェアのことをこのように呼ぶことが多い。企業内のデータベースなどを検索するシステムや、コンピュータ内に保存された文書ファイルなどを検索するシステムが存在する。
Web検索エンジン
狭義には、Web上で公開されているWebページや画像、動画、文書ファイルなどを対象に、ソフトウェアによって自動的に様々なサイトのデータを収集して索引付けし、様々な条件で検索できるようにしたインターネット上のサービスのことを検索サイトという。現代では単に検索サイトといった場合はこちらを指すのが一般的となっている。
検索サイトはWebクローラー(crawler)あるいはロボット(bot)と呼ばれる巡回ソフトを用いて日々Web上で公開されている情報を収集し、テキスト(文字)情報などを抽出して索引付け(インデクシング)している。
利用者は検索サイトのサイト上のフォームから検索したい語やフレーズなどを入力すると、それらが含まれるページの一覧を作成して返答する。このページはSERP(Search Engine Result Page)と呼ばれ、検索ソフトウェアによって検索条件との関連度が高いと判断されたページやサイトから順番に、ページのURLやタイトル、内容の要約などが表示される。
2000年前後のインターネット普及期にはアメリカを中心に様々な検索サイトサービスが勃興し覇を競ったが、2010年代には世界的には米グーグル(Google)社の「Google」が支配的な地位を確立し、二番手の米マイクロソフト(Microsoft)社「Bing」(ビング)を大きく引き離している。
日米Yahoo!(ヤフー)のようにかつては自前の検索サイトを開発・運用していたが、自社製システムは廃止してWeb検索機能をGoogleやBingに委託するようになったネット大手も多い。中国の「百度」(Baidu/バイドゥ)や韓国の「NAVER」(ネイバー)、ロシアの「Yandex」(ヤンデックス)のように、国内大手の方が強い国もある。
AND検索 【アンド検索】
情報を検索する際の条件の指定方法の一つで、複数の条件をいずれも満たすものを検索すること。
条件AとBがあるとき、検索条件を「A and B」と指定すると、「AとBの両方の条件を満たす」という意味になる。条件が3つ以上の場合も同様で、挙げられたすべてを満たすという意味になる。
Web検索エンジンのキーワード指定では、キーワードを半角スペースで区切るとAND検索の指定を意味することが多く、列挙したキーワードすべてを含むページを検索せよという意味になる。例えば、「スクリーンショット Android」と検索すると、「スクリーンショット」と「Android」の両方を含むページが検索される。
一方、挙げられた条件の少なくとも一つを満たすものを検索することは「OR検索」、ある条件を満たさないものを検索することは「NOT検索」という。
OR検索 【オア検索】
情報を検索する際の条件の指定方法の一つで、複数の条件のうち少なくともいずれか一つを満たすものを検索すること。
条件AとBがあるとき、検索条件を「A or B」と指定すると、「AとBのいずれかの条件を満たす」という意味になる。条件が3つ以上の場合も同様で、挙げられた条件の少なくともいずれか一つを満たすという意味になる。
Web検索エンジンのキーワード指定では、キーワードを「|」(縦棒、縦線、バーティカルバーなどと呼ばれる)で区切るとOR検索の指定を意味することが多く、列挙したキーワードのいずれかを含むページを検索せよという意味になる。例えば、「iPad|Androidタブレット」と検索すると、「iPad」と「Androidタブレット」のどちらか、あるいは両方を含むページが検索される。
一方、挙げられた条件のすべてを満たすものを検索することは「AND検索」、ある条件を満たさないものを検索することは「NOT検索」という。
NOT検索 【マイナス検索】
情報を検索する際に条件を指定する方法の一つで、ある条件を満たさないものを検索すること。
条件Aについて検索条件を「not A」と指定すると、「Aを満たさない」という意味になる。通常は他の検索条件と組み合わせ、得られた検索結果から特定の条件に一致するものだけを除外するために用いられる。
一方、複数の検索条件を列挙して「すべてを満たす」ものを検索する指定方法は「AND検索」(アンド検索)、「少なくとも一つを満たす」ものを検索する指定方法は「OR検索」(オア検索)という。
検索エンジンのマイナス検索
Web検索エンジンのキーワード指定では、キーワードの先頭に「-」(ハイフン、マイナス記号)を付けるとNOT検索の意味になる記法を採用していることが多く、「マイナス検索」とも呼ばれる。
通常は他のキーワードや検索条件と組み合わせて検索結果を絞り込むのに用いられる。例えば、「アリ -シロアリ」と検索すると、「アリ」を含むWebページから「シロアリ」を含むものを除外したページ一覧が表示される。
オープンソースソフトウェア 【OSS】 ⭐⭐⭐
開発者がプログラミング言語などで書かれたソースコードを公開し、自由に取り扱えることを宣言しているソフトウェア。誰でも制約なくソースコードを入手、利用、複製、再配布、改変などをすることができる。
ソフトウェア開発では人間に理解しやすいプログラミング言語などを用いて「ソースコード」(source code)というコンピュータプログラムを作成し、これをコンピュータが解釈・実行しやすい形式のプログラムに変換して実行する。
企業などが製品として開発するソフトウェアなどの場合、ソースコードは企業秘密として公開せず、実行可能プログラムのみを販売する方式が多い。このようなソフトウェアを「プロプライエタリソフトウェア」(proprietary software)と呼び、利用者はソースコードを入手できないか、できても契約により強い制約が課される。
一方、オープンソースソフトウェアではプログラムの著作権者である開発者が著作権の一部の行使を凍結し、誰でも自由にソースコードを入手して、使用だけでなく販売を含む再配布、動作の解析や一部の改変、自作ソフトウェアへの同梱や機能としての組み込みなどを行うことができる。これらは無償で行うことができ、開発者へ問い合わせたり許諾を得る必要もない。
ただし、著作権が放棄されたわけではなく、著作者や利用者の権利や制限などを定めた「オープンソースライセンス」(open source license)という利用許諾契約に基づいて配布される。利用者はソフトウェアの取り扱いに際して、このライセンスに書かれた条項を遵守する法的な義務を負う。
オープンソースソフトウェアは個人や小規模な開発者集団が自作のソフトウェアを善意で公開する例が多く、インターネット上にはボランティア開発者が集う「オープンソースコミュニティ」が数多く存在する。企業などが製品をオープンソース化して普及に努め、法人ユーザーとのサポート契約や関連ネットサービスの利用料などで利益を得るという「ビジネスとしてのオープンソース」も定着している。
ソースコード 【ソースプログラム】 ⭐
プログラミング言語などの人間が理解・記述しやすい言語やデータ形式を用いて書き記されたコンピュータプログラムのこと。プログラムに限らず、人工言語や一定の規約・形式に基いて記述された複雑なデータ構造の定義・宣言などのこともソースコードと呼ぶ場合がある。
コンピュータへの指示や一連の処理手順などをプログラミング言語によって文字データの羅列として表記したもので、そのままではコンピュータ(の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を開発・公開している例も多く見られる。
再配布 【再頒布】
コンピュータプログラムやデータなどを著作者や販売者以外の者が複製し、第三者に渡すこと。元来は有償(販売/実費頒布)か無償かは問わないが、文脈によって無償の場合のみを指すこともある。
ソフトウェアや映像、音声、画像、文章などがインターネットなどで無償で公開されている場合、権利者からデータを取得した本人が利用することは自由にできるが、必ずしも再配布の自由を認めているとは限らない。利用規約(ライセンス)で再配布を禁止あるいは制限(販売は禁止など)している場合があるため注意する必要がある。
なお、著作権が放棄されているか、ライセンスで明示的に許可されているか、著作者に直に許諾を得た場合を除き、他者の著作物を再配布する行為は各国著作権法により禁じられており、配布されているデータは海賊版(違法コピー)ということになる。
物品と異なりデジタル化された情報は所有者が簡単に複製することができ、インターネットの普及により知人など限られた範囲に留まらず無差別・大規模に提供することも可能になった。オープンソース運動など複製や配布を奨励する立場からは好ましい変化だが、商用の著作物の権利者にとっては容易に海賊版が流通する受難の時代となった。
近年では自由な再配布を認めないデータについて、暗号化などにより複製や送信を技術的に制限したり禁じる措置が取られることが増えており、そのような手法を「デジタル著作権管理」(DRM:Digital Rights Management)と総称する。
オープンソースライセンス 【OSSライセンス】
ソフトウェアの利用許諾契約書(ライセンス)の一種で、ソフトウェアのソースコードを誰でも自由に入手、利用、改変、再配布等してよいとする内容を示したもの。
ソフトウェア開発では一般に、人間が理解しやすいプログラミング言語を用いて開発者が「ソースコード」(source code)を作成し、これをコンピュータが直に解釈可能な形式(ネイティブコード/実行可能形式)に変換して実行することが多い。
販売されているソフトウェア製品などの多くは利用者に実行形式のプログラムのみを提供するが、ソースコードを公開・配布して誰でも自由に改変や再配布できるようにする考え方があり、これを「オープンソース」(open source)という。
オープンソースライセンスはオープンソースソフトウェア(OSS:Open Source Software)の作者(原著作者)が利用者や他の開発者に対して提示する利用許諾条件をまとめたもので、許可事項や禁止事項、要請事項、免責事項などが含まれる。
ライセンスによって具体的な条件は異なるが、多くに共通する事項として、ソースコードの自由な利用や改変、再頒布(販売を含む)を許可すること、無保証であり損害が生じても作者は免責されること、作者名などの著作権表示を付すこと、再頒布時にソースコードとライセンス文書を添付することなどが定められている。
元のソフトウェアを改変した二次的・派生的ソフトウェアの扱いはライセンスによって異なり、派生物のソースコードを公開してオリジナルと同様のライセンスを適用しなければならない「コピーレフト」(copyleft)を要請するものと、派生物の独占的な利用やソースコードの非公開を認めるものに分かれている。
具体的なライセンスとして、原著作者が自身で作成したオリジナルのライセンスと、多くのソフトウェアに適用できるよう汎用的な条件を記述した著名なライセンスがある。後者としてはGPL(GNU General Public License)やBSDライセンス、MITライセンス、Apacheライセンス、MPL(Mozilla Public License)などがよく知られる。
GPL 【GNU General Public License】
ソフトウェアの利用許諾条件などを定めたライセンスの一つ。主にフリーソフトウェア(自由なソフトウェア)の開発・配布のために用いられるもので、FSF(Free Software Foundation)が公開している。
もともとFSFが主催するGNUプロジェクトで開発されたソフトウェアの利用条件を提示するために作られたものだが、同プロジェクト以外にも多くのフリーソフトウェア、オープンソースソフトウェアで採用されている。
一般にソフトウェア開発では人間が理解しやすいプログラミング言語でソースコードを記述し、これをコンピュータが解釈可能なネイティブコードなどに変換して実行するが、GPLではこのソースコードの公開を大原則とし、誰でも自由に入手、使用、改変、再頒布(販売も含む)することを認めている。
また、GPLに基づいて公開されているプログラムを改変したり、自らのプログラムの一部として組み込んだ場合など、派生的・二次的なソフトウェアを作成した場合には、これにもGPLを適用して公開しなければならないと定めている。
このような派生著作物にGPLの適用を強制する方式は「コピーレフト」(copyleft)と呼ばれ、他の多くのオープンソースライセンスには見られない特徴的な条件となっている。この点を忌避してGPL以外のライセンスを採用する開発者も多い。
GPLは主として利用者のコンピュータ上で独立に実行されるプログラムに適用することを想定したライセンスだが、GNUプロジェクトでは他の形態のプログラムや著作物にも適用できるよう派生的なライセンスをいくつか用意している。ライブラリ向けの「LGPL」(Lesser GPL)、サーバソフトウェア向けの「AGPL」(Affero GPL)、文書向けの「GFDL」(GNU Free Documentation License)などである。
コピーレフト
著作物の権利に関する考え方の一つで、著作物の自由な利用・改変・再配布を認め、また、そこから派生した著作物についてこれらの行為を制限してはならないとするもの。
コンピュータプログラムのソースコードの配布などに際してよく用いられる考え方で、GPL(GNU Public License)などのソフトウェアライセンス(利用許諾契約)がこの考え方を取り入れていることでよく知られる。
著作権(copyright)に反対する権利概念であるため、“right” の反対で “left” という言葉遊び的な名称となっている。シンボルマークも○に「C」を入れた著作権マーク © を左右反転させたものになっている。
著作者によってコピーレフトが宣言された著作物は、誰でも自由に入手、使用、改変、複製、(販売を含む)再配布が可能で、この点は著作権が放棄された著作物などと同様だが、コピーレフトでは原著作物を改変したり組み込んだりした二次的、派生的な著作物について、その作者が第三者による自由な使用、改変、再配布を制限することを禁じ、同じ条件で公開しなければならないと定めている。
例えば、企業がソフトウェア製品を開発する際にコピーレフトのプログラムを複製して組み込むと、自社開発部分を含む製品全体のソースコードをコピーレフトとして公開しなければならないことになる。この点は自社の開発物についての著作権や企業秘密などを守りたい企業などから敬遠される要因となっている。
オープンソースソフトウェアのライセンスではGPLやMPL(Mozilla Public License)がコピーレフトの考え方を取り入れているが、同じGNUプロジェクトのライセンスでもライブラリなどに適用されるLGPL(Lesser GPL/Library GPL)では、リンクによって機能を使用する場合はリンク元のソフトウェアの公開を免除している。MITライセンスやBSDライセンスはコピーレフトではなく、派生物を非公開とすることができる。