○オープンソースの基礎知識『ソースコードを公開して、プログラムを自由に使用・修正・配布できるようにする』 この考え方につけられた名前が、オープンソースです。 いきなり「ソースコード」なんて言葉が登場しても、さっぱり意味がわかりませんね。「ソースコード」は、プログラムの作り方に関する用語です。だから、プログラムがどんなふうに作られるか知っておけば、オープンソースのことがもっとよく分かります。 ◎プログラムの作り方 コンピュータは、単純な処理をものすごいスピードでこなす機械です。一見複雑に見える仕事も、単純な処理を高速で繰り返すことで片づけています。 プログラムを作るということは、この単純な処理を組み合わせて、複雑な処理手順を定義することです。 一番単純なプログラムとして、文字を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台だけとか、複数のパソコンで利用するなら、同時に利用するなら何台まで、パソコンに最初から付属していた場合は、そのパソコンでだけ使って良いといった具合です。 このような条件は、ソフトウェアパッケージを買うと、パッケージの外側やマニュアルに書いてあります。インストールの際の使用許諾にも表示されます。この使用許諾に同意するから、利用する権利が得られるのです。 ユーザーは、使用許諾の範囲を超えて、バイナリーコードを使用してはいけません。複数のパソコンにプログラムをインストールしたり、他の人にコピーさせるのは、ライセンス違反=不正コピーになります。 これまでのソフトウェアビジネスは、このようにソースコードを独占することで成立してきました。企業は、そのソースコードを押さえることで、ビジネスの主導権を握っています。 |