<前へ><目次><次へ>

○オープンソースの基礎知識

『ソースコードを公開して、プログラムを自由に使用・修正・配布できるようにする』
 この考え方につけられた名前が、オープンソースです。
 いきなり「ソースコード」なんて言葉が登場しても、さっぱり意味がわかりませんね。「ソースコード」は、プログラムの作り方に関する用語です。だから、プログラムがどんなふうに作られるか知っておけば、オープンソースのことがもっとよく分かります。

◎プログラムの作り方

 コンピュータは、単純な処理をものすごいスピードでこなす機械です。一見複雑に見える仕事も、単純な処理を高速で繰り返すことで片づけています。
 プログラムを作るということは、この単純な処理を組み合わせて、複雑な処理手順を定義することです。
 一番単純なプログラムとして、文字を1行だけ表示する例を考えましょう。
 プログラムを作るには、次のよう動作を記述します。

#include <stdio.h>

main()

{

printf("Hello World!\n");  <-文字を表示

}

 これは、"Hello World"という文字を画面に表示するプログラムです。 4行目が文字を表示させる部分で、"printf"が文字を表示する指示になります。プログラムを作ったことがない人でも、「Hello Worldという文字を、画面に出すんだな」ということは、なんとなく想像がつくでしょう。
 このように、プログラムを作るときには、まずプログラマがプログラム言語で記述します。この記述したプログラムが「ソースコード」です。
 ここではたった5行だけですが、実用的なプログラムでは、これが数千行になります。1万行を越えるプログラムも珍しくありません。
 しかし、人間に理解できるソースコードでも、コンピュータは、そのまま処理できません。コンピュータが理解できるプログラムは、0と1の羅列だけなのです。
 そこで、このソースコードを変換します。変換にはいくつかの方式があります。ここでは、コンパイラというプログラムを使って、一括して変換しておく方法を紹介しましょう。
 コンパイラは、人間が書いたソースコードをコンピュータが理解できる形式に変換します。"printf('Hello World');"を変換すると、コンピュータが理解できる処理の手順になります。これは、0と1の組み合わせで表されます。このように変換されたプログラムを「バイナリーコード」と呼びます。

ソフトウェアの作り方


◎バイナリーコードの特徴

 「printf('Hello World');」というソースコードは、コンパイラによってバイナリーコードに変換されます。そのバイナリーコードを実行すると、画面に"Hello World"と表示されます。
 一般のユーザーが利用しているソフトウェアは、ほとんどがバイナリーコードです。Microsoft OfficeもWindowsもバイナリーコードです。
 バイナリーコードは、次のような特徴を持っています

・バイナリーコードがあれば、そのプログラムを利用できる
・異なる実行環境では、それに合わせたバイナリーコードが必要
・バイナリーコードだけ見ても、どう動いているか理解するのは大変

 プログラムの実行時には、使うのはバイナリーコードです。ソースコードは必要ありません。ソースコードを一括して変換する方式では、バイナリーコードだけがあれば良いのです。
 でも、バイナリーコードだけでプログラムが動作する訳ではありません。Windowsのアプリケーションを実行するには、Windowsが動いている必要があります。
 プログラムを実行する時、必ずそのプログラムのターゲットになる実行環境が必要です。Winowsアプリケーションなら、Windowsが実行環境です。Windows自身がプログラムですから、Windows用の実行環境も必要になります。Windows互換のパソコンが、その実行環境になります。
 そして、同じバイナリーコードを実行する時には、この実行環境が共通でなければなりません。この種類が違うと、同じバイナリーコードは動きません。例えば、WindowsとMacintoshは違う種類の実行環境なので、同じプログラムは動きません。
 そのために、実行環境の数だけバイナリーコードを用意することになります(*1-1)。
 このようなバイナリーコードの動作を、人間が理解するのは大変です。
 ソースコードは、プログラマが読めば、その動作を理解できます。そもそも人間が記述したのですから、必要なら不具合を修正したり、新しい機能を追加することもできます(*1-2)。
 一方、バイナリーコードを読んでも、プログラムの動きを理解するのはさらに大変です。例えば、Windows版のOpenOffice.orgをインストールするには、HDDに250Mbyte以上の空き容量が必要です。このかなりの部分がバイナリーコードになってます。ましてや、不具合を修正したり、新しい機能を追加するのは至難の業です。

 

バイナリーコードの特徴


◎ソフトウェアのビジネス

 では、あなたが使っているプログラムとソースコード/バイナリーコードは、どんな関係にあるんでしょう。
 パソコンショップやオンラインショップでは、いろいろなプログラムを販売しています。ユーザーは、それを買ってきて、自分のパソコンにインストールして使います。また、買ってきたパソコンに付属していることもありますね。
 さて、プログラムを開発したら、ソースコードをバイナリーコードに変換するのでした。企業は、優れたプログラムを開発したら、ソースコードを企業秘密にして、バイナリーコードだけ販売します。あなたが買ったプログラムは、このバイナリーコードなのです。ですから、たとえ不具合を見つけても誰も改造できません。修正版が出るのを待つか、バージョンアップに付き合うしかありません。いわば、企業はソースコードを独占しているのです。
 じつは、ユーザーはバイナリーコードを買っているではありません。バイナリーコードを利用する権利を買っているのです。この権利は「ライセンス」と呼ばれます。ライセンスには、ユーザーがどんな条件でバイナリーコードを利用できるのか書いてあります。ユーザーがお金を払うと、そのライセンスの条件内で使用できるようになります。例えば、パソコン1台だけとか、複数のパソコンで利用するなら、同時に利用するなら何台まで、パソコンに最初から付属していた場合は、そのパソコンでだけ使って良いといった具合です。
 このような条件は、ソフトウェアパッケージを買うと、パッケージの外側やマニュアルに書いてあります。インストールの際の使用許諾にも表示されます。この使用許諾に同意するから、利用する権利が得られるのです。
 ユーザーは、使用許諾の範囲を超えて、バイナリーコードを使用してはいけません。複数のパソコンにプログラムをインストールしたり、他の人にコピーさせるのは、ライセンス違反=不正コピーになります。
 これまでのソフトウェアビジネスは、このようにソースコードを独占することで成立してきました。企業は、そのソースコードを押さえることで、ビジネスの主導権を握っています。

 

<前へ><目次><次へ>