IT用語

OSSとは?オープンソースソフトウェアの意味やメリット、フリーソフトとの違いを初心者向けにわかりやすく解説

クマノくらげ

はじめに

ITについて勉強していると、OSS(オープンソースソフトウェア)という言葉を目にすることがあります。

LinuxやWordPressなどが代表例として挙げられますが、

  • OSSとはどのようなソフトウェアなのか
  • 「無料で使えるソフト」という意味なのか
  • フリーソフトとは何が違うのか
  • ソースコードを自由に変更してもよいのか
  • OSSを使うメリット・デメリットは何なのか
  • OSSにも著作権やライセンスはあるのか

など、意外と分かりにくい部分もあります。

OSSとは、Open Source Software(オープンソースソフトウェア)の略で、ソースコードが公開され、定められたライセンスの条件に従って利用・改変・再配布などができるソフトウェアです。

一言で表すなら、

「ソースコードが公開され、ライセンスの範囲内で利用・改変・再配布できるソフトウェア」

です。

この記事では、OSSの意味や特徴、代表例、メリット・デメリット、フリーソフトとの違い、OSSライセンスまで、初心者向けに会話を中心にわかりやすく解説します。

OSSとは?

ソースコードが公開されているソフトウェア

OSSって、無料で使えるソフトってことでいい?

無料で利用できるOSSは多いけれど、「無料だからOSS」というわけではないんだ。

どう違うの?

大きなポイントは、ソフトウェアのソースコードが公開されていることだよ。

OSSはOpen Source Softwareの略です。

ソフトウェアは、プログラマーが書いたプログラムによって動いています。

そのプログラムを人間が読み書きできる形で記述したものがソースコードです。

例えば、非常に単純化すると、

もしボタンが押されたら
    メッセージを表示する

といった、ソフトウェアを動かすための設計情報に相当します。

一般的なOSSでは、このソースコードを確認できるだけでなく、OSSライセンスの条件に従って、

  • 利用する
  • ソースコードを調べる
  • 改変する
  • 再配布する

といったことが認められています。

そうか、無料のソフトウェアでも、ソースコードは見れなかったり、改変できなかったりするよね。

そう、無料だからOSSってわけじゃないんだよ。

OSSを料理のレシピで例えてみよう

でも、ソースコードが公開されていることが、そんなに重要なの?

料理で例えてみようか。

例えば、お店でカレーを買ったとします。

普通に完成したカレーだけを購入した場合、

「どういう材料を、どのくらい使って、どうやって作ったのか」

までは分かりません。

これをソフトウェアに置き換えると、

完成したカレー=完成したソフトウェア

レシピ=ソースコード

と考えられます。

OSSでは、この「レシピ」に相当するソースコードが公開されています。

そのため、ライセンスの条件に従えば、

「もう少し辛くしてみよう」

「具材を変更してみよう」

「このレシピを基に別の料理を作ってみよう」

といったことができます。

あぁ、そのままレシピ通りに使ってもいいし、
作り方(ソースコード)をアレンジできるんだ。

そう。それがOSSを理解する大きなポイントだよ。

OSSの代表例

なんかすごい便利そうだけど、身近なものではどんなものがあるかな。

結構幅広く使われているんだ。
有名なOSSはこんな感じ。

OSS主な用途
LinuxOS
Android Open Source Project(AOSP)モバイルOSの基盤
Apache HTTP ServerWebサーバー
PostgreSQLデータベース
MySQLデータベース
WordPressCMS・Webサイト作成
FirefoxWebブラウザ
LibreOfficeオフィスソフト
Kubernetesコンテナ管理
Gitバージョン管理

うーん。Gitとかは聞いたことがある。開発に使うんだよね。

そうだね。OSSはそのものを前面に使うというより、サービスの裏側で使われているものって感じだね。
このサイトもWordPressを使っているよ。

OSSは誰が作っているの?

世界中の開発者が参加することもある

ソースコードって誰が開発しているの?
公開するなんてよっぽど慈善家なんだね。

OSSによって違うよ。個人が作っているものもあれば、企業や世界中の開発者が参加している大規模なプロジェクトもあるんだ。

OSSには、さまざまな開発形態があります。

例えば、

  • 個人の開発者
  • 有志の開発者コミュニティ
  • 非営利団体
  • IT企業
  • 複数企業による共同プロジェクト

などです。

世界中の開発者がソースコードを確認し、機能追加やバグ修正などへ参加するOSSプロジェクトもあります。

ただし、

「OSSなら誰でも無条件で公式版を書き換えられる」

というわけではありません。

一般的には、プロジェクトの管理者などが変更内容を確認し、採用するか判断します。

利用者がOSSに改良を入れることもあるんだね。

無条件じゃないけどね。

OSSは無料なの?

「オープンソース」と「無料」は別の話

最初に言ったけど、OSSの本質は「無料」ではなく「ソースコードが公開され、ライセンスに従って利用などが認められていること」なんだ。

ここはOSSで特に誤解しやすいポイントです。

OSSには無料で利用できるものが多くあります。

しかし、

OSS=無料ソフト

という定義ではありません。

OSSそのものを利用できても、

  • 導入支援
  • 技術サポート
  • 運用支援
  • クラウドサービス
  • 追加機能
  • 企業向け機能

などが有料で提供される場合があります。

つまり、

ソースコードが公開されているか

と、

お金がかかるか

は別の問題です。

有料のOSSもあるんだね。

OSSとフリーソフトの違い

一番混同しやすいポイント

有料のものもあり、ソースコードを確認できるのがフリーソフトとの違いってことでいい?

そうだね。
フリーソフトは一般的に「無料で利用できるソフトウェア」を意味するけれど、ソースコードまで公開されているとは限らないんだ。

例えば、無料で使えるアプリがあったとします。

利用料金は0円でも、プログラムのソースコードが公開されていなければ、自由に内容を確認したり改変したりできません。

一方、OSSではソースコードが公開され、ライセンスに従って利用・改変・再配布などが認められています。

項目OSSフリーソフト
主な意味オープンソースのソフトウェア無料で利用できるソフトウェア
ソースコード公開されている公開されているとは限らない
改変ライセンスに従って可能原則として開発者の条件による
再配布ライセンスに従って可能開発者の条件による
利用料金無料とは限らない基本的に無料

試験対策でも、

OSS=無料

とだけ覚えないように注意しましょう。

OSSにも著作権はあるの?

自由に使えるなら、OSSには著作権がないの?

そこも重要なところ。OSSにも著作権はあるよ

OSSは、

「著作権を放棄したソフトウェア」

という意味ではありません。

ソフトウェアの著作権者が、OSSライセンスによって、

「この条件を守るなら、利用や改変、再配布を認めます」

と許可していると考えると分かりやすいでしょう。

そのため、OSSを利用・改変・再配布するときには、そのOSSに適用されているライセンスを確認する必要があります。

OSSライセンスとは?

OSSにも利用するためのルールがある

ソースコードが公開されているからって、好き勝手に使っていいわけじゃないんだね。

そう。OSSにはライセンスがあって、その条件を守る必要があるんだ。

代表的なOSSライセンスには、

  • GNU GPL
  • MIT License
  • Apache License 2.0
  • BSD License

などがあります。

ライセンスによって、

  • 著作権表示が必要
  • ライセンス文を残す必要がある
  • 改変したソフトウェアを配布するときにソースコードの提供が求められる場合がある

など、条件が異なります。

そのため企業がOSSを製品やサービスへ組み込む場合には、OSSライセンスの確認やライセンス管理も重要になります。

GPLとは?

改変・再配布するときの条件に注意

例えば、どんなルールがあるの?

GPLなんかは、代表的なOSSライセンスの一つだよ。

GPLでは、GPLの対象となるソフトウェアを改変して一定の形で再配布する場合などに、対応するソースコードの提供やGPLの条件を引き継ぐことが求められます。

このように、

「自由に利用・改変できる代わりに、再配布するときには一定の条件を守る」

という考え方があります。

ただし、OSSライセンスごとに条件は異なるため、

「すべてのOSSは改変したら必ず公開しなければならない」

というわけではありません。

コピーレフトとは?

GPLと関連して覚えておきたいのがコピーレフト(Copyleft)だよ。

コピーライトと名前が似ているね。

そうだね。
コピーレフトとは、ソフトウェアを自由に利用・改変・再配布できるようにしつつ、派生物を配布するときにも一定の自由を維持することを求める考え方だよ。

元々のOSSを改変してもいいけど、改変した後に再配布禁止とかにできないんだね。

OSSを利用するメリット

導入コストを抑えられる場合がある

OSSには無償で利用できるものが多く、ソフトウェアのライセンス費用を抑えられる場合があります。

ただし、保守や運用、サポートなどを含めると必ずしも総コストが安くなるとは限りません。

ソースコードを確認できる

ソースコードが公開されているため、どのような処理を行っているか確認できます。

必要に応じて、自社向けに機能を変更することも可能です。

特定企業への依存を減らせる場合がある

ソースコードが公開されているため、特定のベンダーだけに技術や製品を依存する状態を避けやすくなる場合があります。

これはベンダーロックインの軽減につながることがあります。

多くの開発者によって改善されることがある

大規模なOSSプロジェクトでは、世界中の開発者が開発やレビューに参加します。

バグ修正や新機能の追加が活発に行われるプロジェクトもあります。

OSSを利用するデメリット・注意点

必ずサポートを受けられるとは限らない

商用ソフトウェアでは、販売企業から問い合わせ対応などのサポートを受けられることがあります。

一方、OSSでは公式の有償サポートが用意されていない場合もあります。

問題が発生したとき、自分たちで調査・対応するための知識が必要になることがあります。

OSSだから安全とは限らない

世界中の人がソースコードを見られるなら、OSSは安全?

それは違うよ。OSSにも脆弱性は存在するんだ。

でも、多くの人が問題を発見できるからすぐ修正できるんじゃ?

そうだね。
でも、むしろ、広く使われているからこそ、脆弱性が見つかれば攻撃対象が多くなるんだ。

OSSにもセキュリティ上の脆弱性が見つかることがあります。

そのため、

  • セキュリティアップデート
  • バージョン管理
  • 脆弱性情報の確認

などが必要です。

そうか、脆弱性がすぐ修正されたバージョンが公開されてたとしても、アップデートをちゃんとしないと、攻撃対象にされやすいんだね。

開発が終了する可能性がある

OSSプロジェクトによっては、開発者が減少したり、更新が停止したりする場合があります。

企業システムへ採用する場合には、

  • 開発が継続しているか
  • コミュニティが活発か
  • セキュリティ更新が行われているか

などを確認することも重要です。

ライセンス違反に注意する必要がある

OSSだから自由に使ってよいと考え、ライセンス条件を確認せずに製品へ組み込むと、ライセンス違反につながる可能性があります。

特に企業では、利用しているOSSとそのライセンスを把握しておくことが重要です。

OSSのメリット・デメリットを整理

メリットデメリット・注意点
無償で利用できるものが多いサポートが保証されない場合がある
ソースコードを確認できる専門知識が必要になる場合がある
改変できるライセンス条件の確認が必要
ベンダーロックインを軽減できる場合がある開発が終了する可能性がある
多くの開発者が参加するプロジェクトもある脆弱性への対応が必要

OSSとSBOMの関係

脆弱性管理が大事なのはいいけどOSSをたくさん使っていると管理が大変そう。
アップデート忘れもしちゃうんじゃない?

そう、だからSBOMが大事なんだよ。

近年のソフトウェアでは、多数のOSSライブラリやパッケージを組み合わせて開発することが珍しくありません。

そのため、

「自分たちのソフトウェアに、どのOSSが含まれているのか分からない」

という問題が起こることがあります。

そこで重要になるのがSBOM(Software Bill of Materials)です。

SBOMは、ソフトウェアを構成するコンポーネントを一覧化したものです。

OSSを把握しておけば、特定のOSSに重大な脆弱性が発見されたとき、

「自社製品にそのOSSが含まれているか」

を調べやすくなります。

そのため、OSS管理は現在のソフトウェアサプライチェーンセキュリティでも重要なテーマになっています。

OSSについてよくある誤解

OSSはすべて無料

OSSの本質は価格ではありません。

ソースコードが公開され、OSSライセンスに基づいて利用・改変・再配布などが認められていることがポイントです。

OSSには著作権がない

OSSにも著作権があります。

著作権者がOSSライセンスを通じて、利用者へ一定の権利を認めています。

OSSなら何をしてもよい

OSSライセンスの条件を守る必要があります。

利用するOSSによって条件が異なるため、特に再配布や商用製品への組み込みでは確認が重要です。

OSSは改変したら必ずソースコードを公開する

すべてのOSSに当てはまるわけではありません。

GPL、MIT License、Apache Licenseなど、ライセンスによって条件が異なります。

OSSは商用利用できない

OSSでも商用利用できるものがあります。

ただし、それぞれのライセンス条件を守る必要があります。

OSSは必ず安全

OSSにも脆弱性は存在します。

継続的なアップデートや脆弱性管理が必要です。

IT系試験で覚えておきたいOSSのポイント

ITパスポート・基本情報技術者・応用情報技術者試験などでは、OSSについて細かな製品名を大量に覚えるより、まず基本的な特徴を整理しておくと理解しやすくなります。

特に重要なのは、

「OSS=無料ソフト」ではない

という点です。

また、

  • ソースコードが公開されている
  • ライセンスに従って改変・再配布できる
  • OSSにも著作権がある
  • GPLとコピーレフト
  • フリーソフトとの違い
  • ライセンス条件を守る必要がある

といったポイントを押さえておきましょう。

まとめ

OSS(Open Source Software:オープンソースソフトウェア)とは、ソースコードが公開され、定められたライセンスの条件に従って利用・改変・再配布などができるソフトウェアです。

LinuxやWordPress、Apache HTTP Server、PostgreSQLなど、多くのOSSが世界中のITシステムで利用されています。

OSSには無償で利用できるものが多いため、

「OSS=無料ソフト」

と思われることがあります。

しかし、OSSの本質は価格ではありません。

フリーソフトは「無料で利用できること」に重点があるのに対し、OSSではソースコードが公開され、ライセンスに基づいて利用や改変などが認められていることが重要です。

また、OSSだから何でも自由にできるわけではありません。

OSSにも著作権があり、GPLやMIT License、Apache Licenseなど、それぞれのOSSライセンスの条件を守る必要があります。

試験対策では、

「OSS=ソースコード公開」

「フリーソフト=無料で利用できる」

という違いを軸に整理しておくと分かりやすいでしょう。

OSSの要点整理

項目内容
正式名称Open Source Software
日本語オープンソースソフトウェア
最大の特徴ソースコードが公開されている
利用・改変ライセンスの条件に従って可能
再配布ライセンスの条件に従って可能
料金無料とは限らない
著作権OSSにも存在する
フリーソフトとの違いフリーソフトは主に無料で使えることを意味する
代表例Linux、WordPress、Apache HTTP Server、PostgreSQLなど
代表的ライセンスGPL、MIT License、Apache License、BSD Licenseなど
GPLの関連語コピーレフト
メリット改変可能、コスト削減、ベンダーロックイン軽減など
注意点ライセンス、サポート、脆弱性、開発継続性など
関連用語SBOM、ソフトウェアサプライチェーン
覚え方「無料」ではなく「ソースコードがオープン」

OSSって、単純に無料のソフトという意味じゃなかったんだね。

そう。名前の通り「Open Source」、つまりソースコードが公開されていることが大きなポイントなんだ。

ソースコードが公開されているから、自由に何をしてもいいってわけじゃないんだよね。

そこは注意だね。OSSにも著作権があるし、GPLやMIT Licenseなどのライセンス条件を守る必要があるよ。

じゃあ「OSS=無料」じゃなくて、「OSS=ソースコード公開+ライセンスに従って利用・改変・再配布できる」と覚えればいいんだね。

その理解でOK。さらに「フリーソフトは無料かどうか、OSSはソースコードと利用条件に注目する」と区別できれば、試験でも迷いにくいよ。

ABOUT ME
クマノくらげ
クマノくらげ
難しいIT用語やビジネス用語を、できるだけ身近な例えで解説するブログです。 「専門用語を見ると眠くなる人」でも読めるように、画像や会話形式を多めにしています。 AWS12冠達成済み。
記事URLをコピーしました