オープンソースの darwin は mac os x に何をもたらすのか

24
しししししししし <[email protected]> しししししししし Darwin し Mac OS X ししししししししし

Upload: cassandra-wooten

Post on 13-Mar-2016

132 views

Category:

Documents


8 download

DESCRIPTION

オープンソースの Darwin は Mac OS X に何をもたらすのか. 今日話すこと. Darwin とは何か? Darwin の入手方法 Darwin があると、どうメリットがあるのか. Darwin とは?. Mac OS X の基盤部分 APSL というライセンスに基づいたオープンソースの OS. Darwin とは?. Darwin に含まれるもの カーネル Mach BSD UNIX IOKit 基本ライブラリ LibC OpenSSL, zlib コマンドラインツール ls, cat, tcpdump - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

しろやまたかゆき <[email protected]>

オープンソースの Darwin は Mac OS X に何をもたらすのか

Page 2: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

今日話すこと Darwin とは何か? Darwin の入手方法 Darwin があると、どうメリットがあるのか

Page 3: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Darwin とは? Mac OS X の基盤部分 APSL というライセンスに基づいたオープンソースの OS

Page 4: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Darwin とは? Darwin に含まれるもの

カーネル Mach BSD UNIX IOKit

基本ライブラリ LibC OpenSSL, zlib

コマンドラインツール ls, cat, tcpdump GCC, bison, flex...

CoreService ( の一部 ) CoreFounation OpenDirectory Rendezvous

アプリケーション Finder

Aqua

Classic Cabon Cocoa

CoreServices コマンドラインツールライブラリ

Darwin カーネル BSD

MachカーネルIOKit

OS X 独自

Darwin

Page 5: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Darwin とは? その気になれば、こういう事も、一応、可能

コマンドラインツールライブラリ

Darwin カーネル BSD

MachカーネルIOKit

XLib

Gtk + Qt

GNOME KDE

アプリケーション

Page 6: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Darwin の入手方法 Apple Developer Connection からダウンロード

Apple ID の入手 Apple Developer Connection .Mac AppleStore iTunes Music Store

APSL の承認

Open Darwin 等からダウンロード http://www.oopendarwin.org http://www.gnu-darwin.org etc...

Page 7: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Darwin と OpenDarwin OpenDarwin.org

Apple の配布物をベースに独自の OS としてメンテナンス、リリースを行うコミュニティ ISC や Apple が出資しているが、それら組織から独立性を保っている インストール可能な Darwin の CD やフルセットの CVS ツリーを提供 Darwin として便利なツールの提供

DarwinPorts rync_hfs darwine

Apple の Darwin に比べバージョンが少々古い Apple Darwin : 7.5.5 ( Mac OS X 10.3.5 ) Open Darwin : 7.2.1 ( AppleDarwin 7.2 ベース )

Page 8: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Apple Developer Connection からのDarwin の取得 Web ベースのソース閲覧 tarball によるソースのダウンロード

ともに全てのソースにアクセス出来る 履歴を追っかけにくい

CVS でのソースのダウンロード SSH (APSL ライセンスのもの ) pserver ( それ以外のもの )

履歴が追いかけやすい 全てのソースがある訳ではない

基本的にバイナリ配布はない たまにインストール CD が配布される事がある

Page 9: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - download

Page 10: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

ソースのコンパイル方法 Xcode でビルド make

Page 11: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - build

Page 12: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Darwin の利点 ( 一部とはいえ ) Mac OS X のソースコードが手に入る

ソースを見る自由 ソースを直す自由

Page 13: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

ソースが手にはいると何が嬉しいか ? 挙動を調べる事ができる OS X のバグを直す事ができる !! Apple へ具体的な形でバグを示唆することができる

Mac OS X がよりよくなる OS そのものの改善 よりよい 3rd party のソフトウェアの開発促進

Page 14: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav

Page 15: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav (1)

/* Either way, decoded_dir_ref contains a full uri, utf8_decoded * now lets get past the prefix for the uri we will put in the inode * cache */

cache_uri = &decoded_dir_ref[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = &cache_uri[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = strchr(after_dir_ref_hostname, '/');

Page 16: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav (2)

/* Either way, decoded_dir_ref contains a full uri, utf8_decoded * now lets get past the prefix for the uri we will put in the inode * cache */

cache_uri = &decoded_dir_ref[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = &cache_uri[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = strchr(after_dir_ref_hostname, '/');

http://water/dir01/subfolder/http://water.local/dir01/subfolder/

#define _WEBDAVPREFIX “http://”

strlen(_WEBDAVPREFIX) == 7

cache_uri7文字スキップ

Page 17: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav (3)

/* Either way, decoded_dir_ref contains a full uri, utf8_decoded * now lets get past the prefix for the uri we will put in the inode * cache */

cache_uri = &decoded_dir_ref[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = &cache_uri[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = strchr(after_dir_ref_hostname, '/');

http://water/dir01/subfolder/http://water.local/dir01/subfolder/

#define _WEBDAVPREFIX “http://”

strlen(_WEBDAVPREFIX) == 7

cache_uri 7文字スキップ after_dir_ref_hostname

Page 18: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav (4)

/* Either way, decoded_dir_ref contains a full uri, utf8_decoded * now lets get past the prefix for the uri we will put in the inode * cache */

cache_uri = &decoded_dir_ref[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = &cache_uri[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = strchr(after_dir_ref_hostname, '/');

http://water/dir01/subfolder/http://water.local/dir01/subfolder/

cache_uri after_dir_ref_hostname

Page 19: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav (5)

PROPFIND に対して返されるフォルダ自身の情報が URL の解釈ミスでフォルダ自身ではなくファイルと認識される

実際にアクセスするとそんなファイルはないためにアイコンが消える

QuickTime™ and aTIFFÅiLZWÅj decompressorare needed to see this picture.QuickTime™ and aTIFFÅiLZWÅj decompressorare needed to see this picture.

フォルダ一覧を要求(PROPFIND)

フォルダ内の一覧とフォルダ自身の情報を返答

water.localrbo

Page 20: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - mount_webdav (6)

/* Either way, decoded_dir_ref contains a full uri, utf8_decoded * now lets get past the prefix for the uri we will put in the inode * cache */

cache_uri = &decoded_dir_ref[strlen(_WEBDAVPREFIX)]; //after_dir_ref_hostname = &cache_uri[strlen(_WEBDAVPREFIX)]; after_dir_ref_hostname = strchr(cache_uri, '/');

http://water/dir01/subfolder/http://water.local/dir01/subfolder/

cache_uri after_dir_ref_hostname

Page 21: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

直せたとしてどうするの ? 喜びましょう Apple に報告しましょう すると、みんなが幸せになれます

Page 22: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

Demo - BugReporter

Page 23: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

まとめ Darwin : オープンソースになった Mac OS X の一部 Apple のサイトなどからソースコードがダウンロードできる ソースをアクセスすることで挙動や原理を知る

自身のプロダクトへの反映させる事ができる ソースをアクセスすることでバグを捕らえ、治せる

具体的にバグレポートする事でバグが早期に直される ( 事もある )

Mac OS X がより良くなる

Page 24: オープンソースの Darwin  は  Mac OS X に何をもたらすのか

See Also Apple Developer Connection

http://developer.apple.com/ja/ Darwin トップページ

http://developer.apple.com/darwin/ CVS を使ったソースアクセス HOWTO

http://developer.apple.com/darwin/tools/cvs/howto.html BugReporter

http://developer.apple.com/bugreporter/ OpenDarwin

http://www.opendarwin.org/