Darwin について語るスレ

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
建てられては落ちる Darwin スレ。
今回は OpenDarwin を中心に OS としての Darwin をインストールして使う、ということに焦点を当
てて語ってみませう。
2名無しさん@お腹いっぱい。: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/
3名無しさん@お腹いっぱい。:2005/11/26(土) 02:41:16
「OS としての Darwin ってどういうこと?」

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

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

一言で言えば、OS としての Darwin を素材とした Distribution のようなもの、と言えますが、Darwin
に関わるプロジェクトは全てひっくるめて Open Darwin Project と呼んでいるようです。
DarwinPorts, DarwinBuild などのプロジェクトが進行中です。また、XPostFacto(OSX 非サポート
の機種に OSX をインスコ出来るようにするアプリ)も OpenDarwin のサイトでホストされています。
5名無しさん@お腹いっぱい。: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 での動作報告例アリ)。
6名無しさん@お腹いっぱい。: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 の行をコメントアウトしてください。
7名無しさん@お腹いっぱい。: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 コマンドです。
8名無しさん@お腹いっぱい。:2005/11/26(土) 02:43:24
「ネットワークの設定は?」

他の *BSD と同じく、ifconfig コマンドが使えます。尚、DHCP サーバーがどこかで起動していれば勝
手にネットワークにつながるようになっています。
尚、Mac では AirPort (AirMac) は使えません。この辺りの事情は後述。
9名無しさん@お腹いっぱい。: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 がどう変化するか見てみると良いでしょう。
10名無しさん@お腹いっぱい。: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/
11名無しさん@お腹いっぱい。: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 だった。でも当然ながら日
本語入力関係などは無し。誰か作っちゃったりしませんか?

他のパッケージシステムに付いては、詳しい人解説おながい。
12名無しさん@お腹いっぱい。: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/
13名無しさん@お腹いっぱい。: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)、単純には解決出来ない問題のようです。
14名無しさん@お腹いっぱい。: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 をあさって見ると良いかも。
15名無しさん@お腹いっぱい。:2005/11/26(土) 03:11:51
「う〜ん、そんな将来性の無さそうな OS インスコしてもしょ〜がねぇ〜じゃ
ん?」

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

あ、DarwinBuild についてもう少し書いた方がいいかな?
17名無しさん@お腹いっぱい。:2005/11/26(土) 03:13:07
ゴメソ、建ててから気付いた…

関連スレ
【技術】Darwinはどうよ?【一筋】
http://pc8.2ch.net/test/read.cgi/unix/1028161945/150
だーうぃん for x86
http://pc8.2ch.net/test/read.cgi/unix/987752248/150

落ちたと思ってたのに…まだあったのか orz...
削除以来出すべきですか?
結構がんがって書いたのに…(泣
18名無しさん@お腹いっぱい。:2005/11/26(土) 03:56:09
UNIX板はどんなスレでも既にあるからね。
削除しろよ。
19名無しさん@お腹いっぱい。:2005/11/26(土) 04:11:24
ブーとローダーのスレを立てたいのですが
20名無しさん@お腹いっぱい。:2005/11/26(土) 12:21:33
>>1-16 に免じて残せばいいじゃない。
21名無しさん@お腹いっぱい。:2005/11/26(土) 14:11:28
向こうにコピペすればいいじゃない。
221:2005/11/27(日) 20:14:43
>>18-21
レスくださった方、有り難うございます。

 さて、スレ建ての後 DarwinBuild のため再インストール(全てのビルドを
するには 'no less than 24GB' という投稿があったためパーティションの切
り直しをしていた)のですが、>>1-16 に幾つか重大なマチガイを発見したの
でご報告を。
231:2005/11/27(日) 20:15:22
 先ず、>>6 で「Mac で UFS は問題ない」としていましたが、パーテを 8G
→ 28G にしたところインスコからしてコケますた…。インスコは通常通り終
了する(最後でだんまりになって強制電源断だけど)のですが、再起動すると
kernel panic。「powerbook なんて機種は知らんぞゴルぁ」とかぬかしやがり
ます。手持ちの Tiger、及びインスコファイルを眺めてみると明らかにインス
コされていないドライバがある。手動でアーカイブを展開するも状況は変わら
ず、どうも UFS ファイルシステム(の実装)に問題があるような感じ。です
ので「大容量になると UFS は問題が発生する可能性があるため、避けた方が
無難」と訂正させていただきます。尚、漏れの環境では 8G のパーテの時は問
題ありませんでした。参考までに、NetBSD を Apple_UFS 12G のパーテで運用
していた時も問題は無かったです。
241:2005/11/27(日) 20:15:47
 また ppc specific ですが同じく >>6 で「Case-sensitive なファイルシス
テムのため、HFSX(newfs_hfs に -s オプションを追加する)を薦めます」と
しましたが、これも Apple_UFS と同じく eXternal Booter パーティションが
必要であることが分かりました。ディスクユーティリティーでフォーマットし
なかった場合、起動出来なくなってしまいます。ディスクユーティリティーで
HFSX(MacOS 拡張、大文字/小文字を区別、ジャーナルはお好みで)で消去し
た後、ターミナルから

$ pdisk /dev/diskX -dump

と入力し eXternal Booter(128MB!)が作成したパーティションの上に作成さ
れていることを確認してください。そして rc.cdrom の newfs_hfs の行はコ
メントアウトしてしまってください。更にインスコ後、OpenFirmware に認識
させるために bless コマンドが必要かもしれません。詳細は man (8) bless
を参照…だけではアレなので。

$ bless -device /dev/diskXsY -setBoot -verbose

 尚、HFSX パーティションは Darwin 7.0(Panther)以降でないとマウント
が出来ません。
251:2005/11/27(日) 20:16:09
 i386 でどのようになっているかは漏れには分からんのですが、例えば
Linux から HFSX パーティションを参照するとき(そんなことする必要も無い
だろうけど)などには注意が必要だと思われます。
261:2005/11/27(日) 20:16:46
 また、インスコ直後の容量ですが、
OpenDarwin 7.2.1955MB(X 無し)
Darwin 8.0.1956MB
でした。

 中身は、一般的なインターネットサーバー (Apache, Bind, LukemFTP,
Postfix)に加えて OpenSSH, MySQL, Perl, Python と言ったメジャーどころ
は入っています。更に、Emacs, Vim も最初から入っています。その他 Darwin
8.0.1 には screen, SQLite, ruby, Apache2 などがインスコされます。あ、
Samba もあったかな。あれ? PHP も入っていたような気がしたけど…。
mod_php だけだったかな?
271:2005/11/27(日) 20:17:15
 あと >>9 の launchd について、/System/Library/LaunchDaemons/*.plist
を直接書き換えるように書いていますが、これにはインターフェースがありま
した。man (1) launchctl してみてください…だけではアレなので。例えば
ssh の場合、

$ launchctl load -w /System/Library/LaunchDaemons/ssh.plist

とすれば O.K です。HUP シグナルを送る必要もありません。
 また、cron が無くなったかのように書いていますが実際はあります。しか
しこれも将来的には無くなる模様(/etc/crontab を参照)であり、launchd
に慣れた方がよろしいかと。
281:2005/11/27(日) 20:17:57
 …で、反応も少ないし、マチガイばっか書いてるし(インスコしてみて『お
かしいな〜』と思ってた人いたらホントごめんなさい)、>>1-9 は改行を間違
えているしで、重複スレもあるんで週央辺りに削除依頼を出そうかと思います。
こんな長文ばかりのスレを読んでいただき、有り難うございました。
29名無しさん@お腹いっぱい。:2005/11/27(日) 20:24:21
なんでこっち伸ばすかな。
301:2005/11/27(日) 20:30:55
またやっちまった…orz

>>26
OpenDarwin 7.2.1 → 955MB
Darwin 8.0.1 → 956MB

です。

>>29
まぁ、このスレに書いたことの報告ですので。
31名無しさん@お腹いっぱい。:2005/11/27(日) 20:48:58
1のDarwin日記でもいい気がしてきた。
32名無しさん@お腹いっぱい。:2005/11/29(火) 00:38:34
とりあえず1乙。
なんかこんだけいろいろ手を替え品を替え人柱人生歩んでる記念碑としては見てて楽しかったよ(w

削除依頼出すなら、ここにポストしたのをちゃんと訂正してDarwinスレのどっかに爆撃するよーに
一つお願い(w
33名無しさん@お腹いっぱい。:2005/11/29(火) 13:09:49
OSX入れてる人にとってDarwin単体を入れる意味はどの辺りにあるのでしょうか?
34名無しさん@お腹いっぱい。:2005/11/29(火) 19:42:51
>>33
とくにないんじゃない?
35名無しさん@お腹いっぱい。:2005/11/30(水) 18:41:41
使えないOSリリースされてもな。
361
では、これから削除依頼を出してきます。

誘導

【技術】Darwinはどうよ?【一筋】
http://pc8.2ch.net/test/read.cgi/unix/1028161945/150

だーうぃん for x86
http://pc8.2ch.net/test/read.cgi/unix/987752248/150

続きは【技術】Darwinはどうよ?【一筋】 の方で…