トップページ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 がどう変化するか見てみると良いでしょう。
■ このスレッドは過去ログ倉庫に格納されています