インフラエンジニアのための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(Sdtandard Edition以上)
- ビルド手順
- ソースコードを入手する
- ビルドする
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ライセンスを採用している。