OSSとは、「Open Source Software」の略称です。
これはオープンソースソフトウェアを指し、一般に誰でも自由に利用・改変・再配布ができるソフトウェアのことを言います。
オープンソースソフトウェア(以下、OSS)は、そのソースコードが一般に公開されており、コミュニティや開発者によって自由に改良や修正が行われています。
ソースコードがオープンということは、常に『お天道様が見ている』のと同じです。(^.^)
透明性が高いため、「ズルを働く」ことは困難な仕組みなのです💦
この記事を読めば、OSS「Open Source Software」について、さらに詳しく知ることができます。
オープンソースソフトウェアの概要
代表的なOSSには、オペレーティングシステム(OS)であるLinuxをはじめ、データベース管理システムのMySQL、プログラミング言語のJava・PHP・Python、WebブラウザのFirefoxなどがあります。
OSSは手軽に使えるソフトウェアでありながら高い性能を備えたものもあり、企業が商用利用として、OSSをもとに開発するケースも少なくありません。
OSSに対して、ソースコードへのアクセスや改変が制限されているソフトウェアは「プロプライエタリソフトウェア」と呼ばれます。
The Open Source Initiative(OSI)
OSSは無償でソースが公開されているソフトウェアですが、利用条件や規約がないわけではありません。
「The Open Source Initiative(OSI)」という非営利団体が、OSSのライセンスを管理しています。
OSIによってライセンスが承認されると、そのソフトウェアはオープンソースであると公式に認められ、「OSI認定マーク」が付与されます。
Open Source Software の定義
オープンソースソフトウェアの定義は以下のとおりです。
- ソースコードを無償で配布しなければならない
- 派生ソフトウェアの配布を許可しなければならない
- ライセンスは技術的に中立でなければならない
- オリジナルのコードを実装する場合は、どの部分が該当するかを明確にしなければならない
- 個人やグループに対する差別をしてはならない
- 使用分野に対する差別をしてはならない
- プログラムに付随する権利はすべての再頒布者に平等に与えなければならない
- 特定の製品だけに限定したライセンスにはしてはならない
- ほかのソフトウェアを制限するライセンスにしてはならない
- 再配布を自由に認めなければならない
一極支配の大手クラウドとは対極にあると言っていいでしょう。
オープンソースソフトウェアの魅力
OSSは、誰でも自由に改良でき、かつ再配布もできます。
また、世界中の有志とそのコミュニティにより、開発や改良およびバグ改修など常時行われています。このことによってソフトウェアの安定性は高くなり、低コストで高品質な開発が行えることがOSSの最大の魅力と言えます。
OSSのように、製品の内容や情報を公開しながら開発を進める考え方は、「オープンソースムーブメント」と呼ばれています。
OSSのメリットとデメリット
メリット
信頼性と安定性:ソースコードが公開されていることで、脆弱性や不正なプログラムといった問題点を常に確認できます。したがって、バグや脆弱性の早期発見と早期修正につながり、ソフトウェアそのものの高い信頼性に繋がっています。さらに、OSSはユーザー主体で開発やメンテナンスを行うソフトウェアです。したがって、ベンダー都合で勝手にサービスが終了したり、サポートが打ち切られたりすることはないため、安定性も高いと言われています。
コスト削減が可能:OSSのライセンスは無償でなので、ライセンスにかかるコストを削減できます。初期費用だけでなく、導入後のライセンス管理や定期的なリプレース費用などのランニングコストもかかりません。
カスタマイズが容易:OSSのソースコードは自由に改変でき、拡張機能も豊富に用意されています。必要な機能の追加やソフトウェア間の連携など開発の自由度が高いのも魅力です。したがって、いつでも環境に合わせてカスタマイズできます。
オープンなので情報を得やすい:高品質で優れたOSS製品は世界中にユーザーがいます。利用者同士のコミュニティが用意されているケースも少なくありません。したがって、情報収集がしやすくトラブルが発生した場合も解決策が見つけやすいという利点があります。
デメリット
サポートの限界:コミュニティーから情報が得られる反面、公式なサポート窓口がない場合も多いため対応が遅れるリスクがあります。
専門知識が必要:環境設定やカスタマイズには高い技術力が求められることがあり、ドキュメントが不十分な場合は自力での問題解決が難しいケースもあり得ます。
法的リスク:ソースコードを改変して再配布する場合など、ライセンスの種類や契約内容を正しく理解しておかないとトラブルになるリスクが生じるため注意が必要です。
プログラム言語
プログラミング言語とは、コンピュータに対して指示を出すコンピュータ専用の言語のことです。
OSSとして公開されているプログラミング言語の中で、特に有名なのが、Java(ジャバ)とPHP(ピーエイチピー)です。
Java(ジャバ)
Javaは、デスクトップ向けのWebアプリをはじめ、金融機関の基幹システムや精密機械の組み込みシステムなど様々な場面で活用されているプログラミング言語です。
現在はソフトウェア開発に必要なツールをひとまとめにしたオープンソースのパッケージ「Open JDK」が公開・配布されています。
安定した処理速度と、対応OSを選ばない汎用性の高さを兼ね備えているのがJavaの特長です。
PHP(ピーエイチピー)
PHPとは、動的なWebページやWebアプリなどの開発によく使われるプログラミング言語です。
動的なWebページ・Webアプリとは、アクセスした条件によって表示内容が変わるページまたはアプリを指し、ECサイトで商品の検索や購入を行った時に表示画面が切り替わる場合や、SNSや掲示板サイトでユーザーによる書き込みにより内容が更新されるケースなどが該当します。
Python(パイソン)
Pythonは、高度な計算処理能力を持つプログラミング言語です。
膨大なデータをスムーズに収集・解析する作業も得意としており、高度な解析能力を活かして、AI開発の分野で特に高い支持を得ています。
Ruby(ルビー)
Rubyは、日本人である「まつもとゆきひろ氏」によって開発されたプログラミング言語です。
プログラミング初心者でも習得しやすい、シンプルな文法を特徴としています。
また、Ruby on Railsに代表されるフレームワークも充実しており、多様な分野でのWebサービスが開発可能です。
OS(オペレーティングシステム)
ご存知のとおり、デバイスやアプリを操作するための基本ソフトウェアがOS(オペレーティングシステム)と呼ばれるものです。
Linux(リナックス)
Linuxは、1991年に最初のバージョンが公開されたオープンソースのOSです。
当初はパソコン用OSとして開発されましたが、現在ではサーバや組み込みシステムの開発にも活用されています。
ディストリビューション(専用のアプリやライブラリがセットになったもの)が豊富に用意されていることもLinuxの魅力でもあります。
Android OS(アンドロイドオーエス)
Android OSは、スマホやタブレットなどのモバイルデバイス向けのOSです。
オープンソースとしてコードが公開されているため、同じモバイルデバイス向けOSであるiOSと比較すると、開発の自由度が高いのが魅力です。ライセンスに準拠すれば、Android OSをベースとしたWebアプリを開発できます。
これがAndroid端末が安価な理由のひとつでもあります。ちなみにiOSは完全クローズドです💦
CMS(コンテンツ・マネジメント・システム)
CMS(コンテンツ・マネジメント・システム)とは、Webサイトの管理や更新および編集を簡単に行えるソフトウェアのことです。
詳しくは、こちらの記事が参考になると思います。
WordPress(ワードプレス)
CMSの中で特に高いシェアを持つのがWordPressです。
個人ブログから企業・官公庁のホームページまで、幅広いシーンで活用されており、無料で利用できるというのが最大の強みです。本記事もWordPressを使って作成しています。
baserCMS(ベーサーシーシーエムエス)
日本発のCMSツールとして根強く支持されているのが「baserCMS」です。
Webサイトに必要な機能がデフォルトで搭載されており、日本語を標準として管理画面が設計されているのでわかりやすいです。また、ユーザー同士の交流コミュニティも充実していることも特長です。
Drupal(ドゥルーパル)
Drupalは、官公庁や大学、大企業などのWebサイト構築でよく採用されているCMSです。
約100語の言語に標準対応しており、多言語対応のWebサイトの構築に適しています。
EC-CUBE(イーシーキューブ)
名称が示すとおり、ECサイトの構築や運営専門のCMSです。
プラグイン(拡張機能)が充実しています。また、外部システムとの連携がしやすいという特長があります。
その他
GitHub(ギットハブ)
GitHubはソースコード管理およびバージョン管理のためのウェブベースのプラットフォームです。
多くのOSSプロジェクトがここでホストされ、開発者がコードを共有、レビュー、コントリビュートしています。
分散型SNS
Mastodon、Discord、Bluesky などがあります。
リアルタイムチャット
Rocket.Chat、Mattermost、Zulip などがあります。
以下のOSSについては、弊社でも運用していますので、ご興味ある方は是非ご連絡下さい
まとめ
他人(管理者)に委ねるのではなく、自ら、管理・運用することで正真正銘の『安心・安全』を手に入れる。それこそが、OSS(オープンソースソフトウェア)の魅力です。
とは言っても、自宅にLinuxサーバーを立てるのは現実的ではありません。電気代や安定したネットワーク環境など安定した稼働環境を構築するとなると、それなりのランニングコストがかかります。
したがって、Linux(Ubuntu)サーバーをレンタル契約し、本記事で紹介したようなOSSをインストールして運用することになります。
弊社で運用しているOSSを以下に紹介します。
WordPress:ブログによる情報発信のために、エックスサーバーで運用しています。
Mastodon:SNS(ActivityPub)による情報発信のために、Xserver VPSで運用しています。
Bluesky:SNS(AT Protocol)による情報発信のために、Xserver VPSで運用しています。
Zulip:チャットによるコミュニケーションツールとして、Xserver VPSで運用しています。