インフラエンジニアのためのOSS入門

スピーカー

ゆたかさん

発表資料

こちらです  2018/3/3公開

講義

OSS(Open Source Software)

  • ソフトウェアの使用は無料(定義が存在するわけでは無いため有料なのもある)
  • ソースコードは公開されている

OSS = フリーソフト+ソースコード

シェアドソース = 商用ソフト+ソースコード
※お金を払うとWindowsのソースコードが読める

OSSは2001年のLinuxブーム頃から国内に登場したことば

OSSライセンスを理解しよう

  • OSSのソースコードは、
    • 趣味のプログラムに組み込んでもよいのか?
    • 業務のプログラムに組み込んでもよいのか?
    • ソースコードに問題があった場合の保証はどうなるのか?
    • ソースコードを改変した場合、公開義務はあるのか?

これらの疑問に答えるためにOSSライセンスが用意されている。

ソースコードの取扱に関する規定をライセンス(license)と呼ぶ

これは作った人によって異なる

  • 改造したやつは公開してほしいなぁ...
  • 使うのは良いけど、著作権表記はしてほしいなぁ...
  • 完全自由でオッケーーー!!

訴訟になった場合に、ライセンスは開発者を守る盾になる

使用と利用の違い

  • 使用(use)
    • OSSをそのまま実行する
    • ソースコードを参照する
    • ソースコードをビルドする
  • 利用(exploit:セキュリティの脆弱性でよく出てくる言葉)
    • OSSを複製・改変・再配布すること

OSSの利用(exploit)はライセンスにより制限される

代表的なOSSライセンス

  • Apache License
  • BSD License
    • 最も制限がゆるいライセンスと言われている
    • 利用した場合、ソースコードの公開は必要ないがライセンス文の明記が必要
    • PS4やNintendo Switchのファームウェアに採用されてる
  • GPL(GNU General Public License)
    • 制限は厳しいけど一番有名なライセンス
    • 利用した場合、ソースコードの公開が必要(開示請求には絶対答えないとダメ)
    • 業務に利用した場合(に限らず)、ソースコードを公開しないと訴訟になるケースがある
    • LinuxカーネルがGPLを採用
  • LGPL(GNU Lesser GPL)
  • MIT License
  • Mozilla Public License
  • Eclipse Public License

Linux開発の疑問

Q. LinuxカーネルがGPLだから、アプリケーションやデバイスドライバを開発した場合、ソースコードを公開しないといけないの?

A. いいえ!

  • アプリケーション=GPL以外の好きなライセンスを付与できる。プロプライエタリも可能。
  • デバイスドライバ(動的リンク)=GPL以外でも良いがグレー
  • デバイスドライバ(静的リンク)=GPLであること

Linuxカーネルのライセンスには例外あり

「システムコールの利用にはGPLは適用されない」との記載がある。
これによりライブラリやアプリケーションにGPL以外のライセンスを付与することができるようになっている。

ハンズオン

Tera Termのビルド

  • ビルドに必要最低限のツール
    • Visual Studio(Sdtandard Edition以上)
      • MFC(Microsoft Foundation Class)の対応が有料版以上にしか無い為
      • Express EditionではMFCに未対応
        • MFC:マイクロソフトがVisual C++用に開発した、Windows用のアプリケーション構築のためのアプリケーションフレームワーク(クラスライブラリ)である。
    • ActivePerl
  • ビルド手順
    • ソースコードを入手する
    • ビルドする

Visual Studioの種類

バージョン価格動作OS
2005有料Windows98,Me,2000,XP,Vista,7,8,10
2008有料2000,XP,Vista,7,8,10
2010有料XP,Vista,7,8,10
2012有料Vista,7,8,10
2013無料版ありWindows7,8,10
2015無料版ありWindows7,8,10
2017無料版ありWindows7,8,10
※無料版=Community Edition

Windows95もサポートしている
開発者のこだわり

OSSをソースコードからビルドしてみよう

ライブラリの説明

  • Oniguruma
    • 正規表現ライブラリ
    • Rubyでも使われている
  • zilb
    • 圧縮ライブラリ
    • SSHのパケット圧縮等で使用される
  • SFMT
    • 疑似乱数列生成ライブラリ
  • OpenSSL
  • PuTTY(正式名称は"ぱてぃ")
    • Pageant連携ライブラリ

バージョンは合わせておかないとビルドできない場合がある

ビルド

バッチの実行で一括ビルドができる

makearchive.bat rebuild >build.log 2>&1

ライセンス

Tera Term はBSDライセンスを採用している。