スマートフォンのアプリケーションやECサイトなど、世の中には多くのサービスがあります。それらの開発に役立っているのが、オープンソースとOSS(オープンソース・ソフトウェア)です。オープンソース、OSSとは一体どのようなものなのか、今回はスマートフォンのOSを例にあげつつ紹介します。
キャリアマップ編集部 文/ライター 西村友香理
身近なものに使われているオープンソース
ICT分野専門の市場調査コンサルティング会社である株式会社MM総研の調査によると、国内のスマートフォン出荷台数シェアは、Appleが48.8%と半数近く占めていることがわかります。2位はAQUOSシリーズなどのスマートフォンを展開しているSHARP、3位には折りたためるスマートフォンとして話題になったGalaxyシリーズのサムスン電子など、名だたるメーカーがランクイン。とはいえ、iPhoneの根強い人気が如実に現れる結果となっています。
いずれのスマートフォンも高スペックであるにもかかわらず、なぜここまでの差が出るのでしょうか。
その背景には、Appleのブランド力や端末のデザインなど、さまざまなものがありますが、中でも「操作が簡単」であることが大きく関わっていると言えます。
その背景にあるのは、OS(オペレーティングシステム)の違いです。iPhoneにはApple独自のOS「iOS」が組み込まれており、古い端末から新しいものへと機種変更をした際にも、基本的な操作は変わりません。直感的に使えるように作られているのも特徴で、一度iPhoneの操作をマスターすれば、端末を変えたとしても難なく使用できるのです。
一方で、AQUOSやGalaxyといったスマートフォンには、Googleが開発したオープンソースのOS「Android」が組み込まれています。大きさや機能は企業によって異なり、数ある中から好みの機種を選べるのは、Androidスマートフォンの大きなメリットです。加えてiPhoneよりも柔軟に画面をカスタマイズできるため、自分仕様のスマートフォンにすることもできます。しかし、カスタマイズするためには一定の知識が必要であり、iPhoneの直感的な操作に慣れている人からは「Androidスマートフォンは操作が難しい」といった声があがっているのも事実です。
スマートフォンで見る、オープンソースとクローズドソース
操作性に違いがある理由はOSにあるとわかった上で気になるのは「Googleが開発したOSなのに、なぜ他社のスマートフォンに組み込むことが可能なのか?」という点でしょう。その理由は簡単で、Androidがオープンソースだからです。オープンソースとは、その名の通り「ソースコードが公開されているもの」を指します。オープンソースは開発者自身でなくとも、定められた条件を満たした上で改良や再配布が可能なため、Google以外の企業がAndroidを利用してスマートフォンを開発することができるのです。
対して、iOSはOS自体のコードが公開されていません。そのため、iOSが組み込まれたスマートフォンは、Appleが開発しているiPhoneのみ。このようにソースコードが公開されていないものをクローズドソースと言います。
オープンソースのOSを活用することで、製造にかかるコストをカットできるため、Androidスマートフォンは価格帯の幅が広いのも特徴です。
ちなみに、スマートフォンのOSはiOSとAndroid以外にもあり、日本で見かける機会は少ないかもしれませんが、中国のHuaweiが開発したスマートフォンには同社独自の「HarmonyOS」が搭載されています。そのほか、過去にはMicrosoftから独自OSを搭載したスマートフォンが出ていましたが、現在は販売されていません。
OSSはIT業界にとって発展のキーとなる
先述した通り、ソースコードが公開されているソフトウェアはオープンソースソフトウェア(以下:OSS)と呼ばれています。先述のiOSについても一部はOSSに基づいて構築されており、そのほかに身近なところでは、多くのWebメディアやWebサイトで活用されているWordPressもOSSの一つ。ソフトウェアではありませんが、RubyやPythonなどのプログラミング言語などもオープンソースです。
つまり、スマートフォンのアプリケーションやWebサービスなど、私たちの生活に身近なものはOSS、オープンソースを使用して開発されており、IT業界の発展に欠かせないものであると言えます。
OSSをひと言で表すとすると「多くの開発者が協力して開発することで技術を効率よく発展させようとするもの」であり、「Wikipediaのようなもの」と考えるとわかりやすいかもしれません。Wikipediaのページが誰でも編集できるように、開発者がソースコードを公開することによって、第三者が改変したりバグを修正したりできるようになるのです。
ただ、厳密にいうと、OSSの著作権は開発者が持っていて、ライセンスごとにルールが異なります。Wikipediaのように“誰しもが自由に利用・編集できる”訳ではなく、ルールを無視した場合は著作権侵害として訴訟の対象となることもあるため、その点は注意が必要です。
なお、無料で使用できるソフトウェアとして「フリーウェア」と呼ばれるものがありますが、改良や再配布できないものはOSSではありません。
OSSを活用する上でのメリット・デメリット
ここからは、開発をする上でOSSを活用するメリットとデメリットについても見ていきましょう。
~メリット~
(1)開発コストを抑えられる
OSSは基本的にライセンス料が発生しないものが多いため、開発にかかるコストを抑えることができます。コストを抑えられることで開発のハードルが下がり、新たなサービス誕生を促進する効果もあると言えます。
(2)信頼性がある
多くの人がソースコードを見られる状態であり、不正なプログラムやバグがあった場合、すぐに発見できるのもメリットの一つ。そのため、高品質であることが多く、信頼性が担保されています。
(3)開発生産性が向上する
例えばAndroidのようなOSをゼロから開発しようと思うと、非常に時間がかかってしまいます。しかし、OSSを使用することで開発の時間を短縮することができることに加え、開発生産性が向上することでエンジニアとして向き合うべき課題に取り組めるようになります。
~デメリット~
(1)サポートがない
企業が提供するソフトウェアとは異なり、OSSを使用する上でのサポートはありません。トラブルが発生した際には、有識者が発信している情報をもとに利用者自身で解決しなくてはいけないため、エンジニアリングに関する一定レベルの知識が求められます。
(2)リスクを考慮する必要がある
セキュリティ面ではいくつかの課題があるのも事実。OSSの脆弱性を利用したサイバー攻撃が原因で、個人情報の漏えいに繋がるケースもあります。そのため、近年はOSSのセキュリティリスクに対応するサービスやツールも登場しています。
時間の融通が利く学生のうちに挑戦したいOSS活動
既存OSSのバグを報告するなど、OSSの発展に貢献することを「OSS活動」と言います。OSS活動をする人は「コントリビューター」と呼ばれていて、スキルの高いエンジニアが多いのも特徴。コントリビューターの中には、OSS活動を通してOSSの開発企業からスカウトを受ける人もいます。
特定のOSSにおいて、ソースコードを変更する権利(コミット権)を持っている場合は「コミッター」と呼ばれています。コミッターとしてカンファレンスの開催や講演を積極的に行う人も多く、彼らは日本の技術発展をけん引する存在です。エンジニア界隈の有名人でもあり、著名なコミッターを技術顧問として迎えている企業も存在します。就職活動をする際には、コミッターが技術顧問をしている企業を軸にするのも一つの考え方として有効です。
組織方針としてOSS活動を推進している企業も少なくないので、時間の融通が利く学生のうちからOSSに触れておくのも良いかもしれません。その上で注意すべきは、OSSプロジェクトには国内外のエンジニアが参加するため英語でやり取りされることが多く、OSS活動をするためには英語スキルが求められるという点です。裏を返すと、OSS活動に挑戦することは英語力を磨く機会だとも言えます。スキルの高いエンジニアが書いたソースコードを読むことで、スキル向上にもつながるでしょう。
経済産業省が支援する組織「日本OSS推進フォーラム」という組織では、よく利用されているOSSの鳥瞰図を1年ごとに作成しています。そのほか、Appleが開発もしくはAppleプラットフォームに関連するOSS情報を確認できるサイト「Open Source at Apple」もあるので、OSS活動に関心がある人は、ぜひチェックしてみてはいかがでしょうか。