トップページunix
37コメント24KB

Darwin について語るスレ

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2005/11/26(土) 02:40:28
建てられては落ちる Darwin スレ。
今回は OpenDarwin を中心に OS としての Darwin をインストールして使う、ということに焦点を当
てて語ってみませう。
0002名無しさん@お腹いっぱい。2005/11/26(土) 02:40:54
Darwin
ttp://developer.apple.com/darwin/
要 ADC アカウント(無料だけど)かも?

OpenDarwin
ttp://www.opendarwin.org/

Apple Developer Center
ttp://developer.apple.com/
0003名無しさん@お腹いっぱい。2005/11/26(土) 02:41:16
「OS としての Darwin ってどういうこと?」

一口に「Darwin」と言っても、様々なコンテクストで使われます。
1) MacOSX の基幹技術として
2) Apple から Open Source で配布されている OS として
3) MacOSX 及び 2) の意味で使われる OS の kernel として

ここでは 2) の意味に限定している訳です。
0004名無しさん@お腹いっぱい。2005/11/26(土) 02:41:44
「OpenDarwin って何よ?」

一言で言えば、OS としての Darwin を素材とした Distribution のようなもの、と言えますが、Darwin
に関わるプロジェクトは全てひっくるめて Open Darwin Project と呼んでいるようです。
DarwinPorts, DarwinBuild などのプロジェクトが進行中です。また、XPostFacto(OSX 非サポート
の機種に OSX をインスコ出来るようにするアプリ)も OpenDarwin のサイトでホストされています。
0005名無しさん@お腹いっぱい。2005/11/26(土) 02:42:12
「ふむ、それじゃ暇だしインスコしてみよっかな…で、どこから何を落とせば良いの?」

インスコ自体は簡単です。Apple のサイトから Darwin 8.0,1 installer CD(MacOSX 10.4.0 相当)、
もしくは Open Darwin のサイトから OpenDarwin 7.2.1(MacOSX 10.3.2 相当)を落として CD
に焼き、その CD から起動して後は指示に従うだけです。インスコスクリプトは /etc/rc.cdrom です
ので先にこれを読んでおくと良いでしょう。
尚、Darwin 8.0.1 i386 は SSE2 を使用するようにコンパイルされているらしく(漏れは ppc しか知
らないから何のことか分からん)、ハードの条件がかなり高いようです。Open Darwin プロジェクト
ではこの SSE2 を使用しないようなディストリを開発中の様ですが、具体的なリリースの日程は定まっ
ていないようです。
Mac では MacOSX が動作する機種であればどちらでもインスコ出来ます。XPostFacto を使えば旧機
種でも動作するようです(7600 + upgcard や beige G3 での動作報告例アリ)。
0006名無しさん@お腹いっぱい。2005/11/26(土) 02:42:35
因に漏れの環境 (PowerBookG3 FireWire with G4 upgcard) ではインスコ終了後再起動の際に
SegFault したり反応がなくなったりで強制電源断を強いられました。ML にも複数報告が上がっており、
上がっている筈のサービスが上がっていないことで起きるエラーらしいとのことですが、具体的な解決
策は見当たらず。インスコの際にはターゲット以外の HDD は外しておくなどの対策を講じた方が良い
かもしれません。また、Darwin (MacOSX) はマウント出来るパーティションは全て自動的にマウント
するようになっているため、運用時にも注意が必要かも。また、日本語のサイトでも報告がありますが
i386 では UFS フォーマットは危険なようです。HFS+ にしましょう。Mac では HFS+ パーティショ
ン決めうちです。漏れは rc.cdrom を書き換えて UFS パーティションにインスコしてますが、現在ま
でのところ問題はありません。
ここで Tips。今後も Darwin を使って行くつもりであれば、Case-sensitive なファイルシステムを作
るように rc.cdrom の 270 行目付近、newfs_hfs に -s オプションを追加しておきましょう。また、
OpenDarwin 7.2.1 の場合はジャーナルを有効にするために -J オプションも追加しておくと良いかも
しれません。Mac で UFS パーティションにインスコする場合は、MacOSX のディスクユーティリ
ティーで UFS ボリュームを作成(こうしないと eXternal Bootloader パーティションが作成されない
ため、ブート出来なくなる)し、newfs の行をコメントアウトしてください。
0007名無しさん@お腹いっぱい。2005/11/26(土) 02:43:00
Tips(darwin 7.x, 8.x 共通)

「/etc/passwd を書き換えてもユーザーの追加が出来ないんだけど?」
「/etc/hosts が参照されないのは何故?」

Darwin (MacOSX) では /etc/passwd や /etc/hosts などのファイル(BSD-flat-file などと呼ばれて
います)はシングルユーザーモードの時以外は使われません。代わりに NetInfo というデータベースで
集中管理する仕組みになっています。詳しくは man (1) nicl などを参照…だけではアレなので。

nidump, niload コマンドを使えば他の *BSD などと同じ感覚で使うことが出来ます。先ずは
$ nidump passwd .
としてみてください。見慣れた出力が現れたと思います。これをファイルにリダイレクトし、編集した

$ niload passwd . < passwd.txt
などとして読み込めば完了です。他にも group, hosts なども同じ感覚で使用出来ます。nidump を引数
なしで起動すれば使える format が分かります。
尚、ユーザーの password の変更は他の *BSD などと同じく passwd コマンドです。
0008名無しさん@お腹いっぱい。2005/11/26(土) 02:43:24
「ネットワークの設定は?」

他の *BSD と同じく、ifconfig コマンドが使えます。尚、DHCP サーバーがどこかで起動していれば勝
手にネットワークにつながるようになっています。
尚、Mac では AirPort (AirMac) は使えません。この辺りの事情は後述。
0009名無しさん@お腹いっぱい。2005/11/26(土) 02:43:50
Tips (Darwin 8.0.1 特有)

「 各デーモンを起動時に起動したいんだけど、/etc/rc.local はないの?」
「ssh でつながらない!」「ftp サービスを起動したいんだけど」「cron はどこ?」

Darwin 8.0 (MacOSX 10.4) 以降、/sbin/init が無くなり代わりに /sbin/launchd が PID=1 として起
動します。各デーモンの起動は /sbin/launchd に統合されています。詳しくは Apple Developer
Center のドキュメントを参照…だけではアレなので、例として ssh でつなぐための設定を。

/System/Library/LaunchDaemons/ssh.plist を編集します。
<key>Disabled</key>
<true/>
この2行を削除してください。
尚、漏れの環境では HUP シグナルを launchd に送っても駄目で、システムごと再起動する必要があり
ました。何でだろ?

MacOSX Tiger を持っている方は システム環境設定の「共有」の項目を開き、各サービスの起動、停
止をして /System/Library/LaunchDeamon/*.plist がどう変化するか見てみると良いでしょう。
0010名無しさん@お腹いっぱい。2005/11/26(土) 03:08:50
「X Window System は?」

OpenDarwin 7.2.1 では最初から含まれていますが(注)、Darwin 8.0 では含
まれていません。また、Darwin 8.0 上では Xorg、XFree86 のサイトからソー
スを落としてコンパイルしても、DarwinPorts の Xorg でもビルドは出来ても
起動しません…。i386 でも動かないようです。必要な CF が無いのが原因の
ようですが、現状、解決策は見つからず。今のところ screen で凌ぐしかない?

(注)漏れが落とした時は含まれていなかった…何でだろ? まぁ下記 URL
から落としてインスコすれば良いだけのハナシだが。
ttp://www.opendarwin.org/downloads/7.2.1/
0011名無しさん@お腹いっぱい。2005/11/26(土) 03:09:33
「他の *BSD や Linux のようなパッケージ管理システムは?」

MacOSX で利用出来るパッケージ管理システムは以下のようなものがあります。
fink
ttp://fink.sourceforge.net/
pkgsrc
ttp://www.jp.netbsd.org/Documentation/software/packages.html
gentoo
ttp://www.gentoo.org/doc/en/macos-guide.xml
darwinports
ttp://darwinports.opendarwin.org/

漏れは DarwinPorts を使ってます。Ports ファイル(ビルドのレシピ)を見
ると puredarwin というエントリがあり、MacOSX だけではなく OS としての
Darwin の場合も考えられているためです(ML を見ていると今後に付いてはど
うなるか分からないけど…)。パッケージ数で他のシステムに劣る
DarwinPorts ですが、取り敢えず w3m が動いたから漏れはこれでいいや。:)
あと、OpenDarwin 7.2.1 では WindowMaker も OK だった。でも当然ながら日
本語入力関係などは無し。誰か作っちゃったりしませんか?

他のパッケージシステムに付いては、詳しい人解説おながい。
0012名無しさん@お腹いっぱい。2005/11/26(土) 03:10:06
「MacOSX は現在 Darwin 8.3 ベースだけど、ウpグレはどうやるの? まさか、
Apple のサイトにあるソースの tarball をいちいち落として展開しなきゃい
けないの?」

いえ、そのまさかです。しかも、実は更に難しいんです。ソースを落としても、
そのままではビルド出来ないものが多々あります…。

この辺りの事情は Apple の Open Source に対する姿勢、MacOSX と Darwin
の関係を理解する必要がありますが、取り敢えずソースからのビルドに関して
は DarwinBuild Project を参照してください(ここで Case-sensitive ファ
イルシステムを構築した意味が出てきます)。

ttp://www.opendarwin.org/projects/darwinbuild/
0013名無しさん@お腹いっぱい。2005/11/26(土) 03:10:46
「なるほどね。で、その『事情』とやらは何よ?」

では、先ずは MacOSX と Darwin の関係から。

一般的には、「Linux + X Window System」と同様な関係で「MacOSX = Darwin
+ Aqua」と捉えられがちですが、実際は「Darwin = MacOSX - CoreFoundation
から色々抜いて取り敢えず OS として体をなすように再構築したもの」です。
Apple としてはまずプロダクトとしての OSX ありきで、Open Source である
ことを謳うために OS としての Darwin をリリースしているに過ぎない、とも
言えます。

この CoreFoundation(要は Shared Library です)の再構築の際に、非 Open
Source 化されている部分が増えてきてしまっているのです。Darwin 6.x で使
えていた AirPort が Darwin 7.x で使えなくなり、Darwin 7.x で使えていた
PowerManagement が Darwin 8.x で使えなくなっているということが起こって
います。また、ソースを落としてもこの失われた部分に依存する部分のあるソー
スはビルド出来なくなってしまっているのです。これは Apple 内で開発が
Xcode Project へ移行しているという事情もあり(Xcode は勿論非 open
source)、単純には解決出来ない問題のようです。
0014名無しさん@お腹いっぱい。2005/11/26(土) 03:11:26
こういった Apple の姿勢に対し、当然コミュニティー側からは非難の声が上
がっている(ML でも定期的に出てくる話題のようです)訳ですが、Apple の
Project Goal を見れば分かる通り、Apple は OS としての Darwin を *BSD
や Linux Distribution と伍してゆくためのプロダクトとは考えておらず(勿
論そういった役割を担っているのは MacOSX 及び X Server)、Apple から公
開されているソースをどのように料理して楽しむかはコミュニティー次第であ
る、という結論になっているようです。この辺りについては OpenDarwin
hackes ML の <we were opensource, once> で始まるスレッドや、Discuss ML
の <Apple's Darwin comittment> で始まるスレッドを読んでおくと良いでしょ
う。Jordan K. Hubbard 氏(FreeBSD の創始者、現 Apple 社員)の投稿もあ
り、興味深いものになっています。

ttp://www.opendarwin.org/pipermail/hackers/2005-June/thread.html
ttp://www.opendarwin.org/pipermail/discuss/2005-September/thread.html

また、現在は休刊している BSD Magazine (すごく残念、復刊してくれないか
な〜)では「Darwin をハックする!」という連載があり、筆者である H 氏の
新しい OS に対する期待感と、Apple の姿勢についてのいらだちが微妙に交錯
する文章が初期の Darwin コミュニティーのふいんきを伝えています(そして
焼肉で爆発してる…)。バックナンバーの DVD が出ていた筈なので、興味の
ある方は Amazon をあさって見ると良いかも。
0015名無しさん@お腹いっぱい。2005/11/26(土) 03:11:51
「う〜ん、そんな将来性の無さそうな OS インスコしてもしょ〜がねぇ〜じゃ
ん?」

まぁ、確かにその通りです…。否定はしません。が、例えば NetBSD-Current
の追っかけをするのと同じ感覚で、Darwin とお付き合いしてみるというのも
一興ではないでしょうか? 開発者のコミュニティーが小さい分、そして
Apple のせいで逆風が吹き荒れている分、コミュニティーは密度の濃いものと
なっています。特に Kevin Van Vechten 氏(darwinbuild やその他幾つかの
プロジェクトリーダー、Apple 社員)の貢献はすばらしいものです。とにかく
インスコしてみて、このコミュニティーに関わってみませんか?
0016名無しさん@お腹いっぱい。2005/11/26(土) 03:12:15
スレ殺陣終了っす。i386 の方、インスコ報告してくれるとうれすい…

あ、DarwinBuild についてもう少し書いた方がいいかな?
■ このスレッドは過去ログ倉庫に格納されています