7. ソフトウェア移植とプログラミング


Contents of this section

7.1 NetBSDやNetBSD/mac68kのソースは、AT&T、USL、またはAppleの著作権やライセンスによって制限を受けていますか?

NetBSDのソースはAT&T、USL、Appleまたその他のいかなる団体・個人からも制約を受けません。ソースの大部分はカルフォルニア大学バークレー校式のソフトウェアライセンスによって配付され(詳しくは http://www.NetBSD.org/Goals/redistribution.htmlを参照)、その他の部分は(すべてカーネルの外)はGNU General Public Licenseにしたがって再配布されています。

7.2 Mac OS側ユーティリティー(Booter、Installer、Mkfs)のソースは入手できますか?

はい、できます。プロジェクトファイルを使うにはCodeWarrior (またはひょっとしてThink C 6.0以降)が必要です。ソースは以下のURLまたはそのミラーサイトから入手できます:

ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-1.5/mac68k/installation/misc/src/

7.3 NetBSD/mac68kは共有ライブラリーに対応していますか?

はい、しています。

7.4 共有ライブラリーは何のためにあるのですか?

W. Richard Stevens著Advanced Programming in the Unix Environmentの第7.7節『Shared Libraries』を参照してください。[訳註:日本語版の情報をkenn@macbsd.comまでお寄せください]

7.5 カーネルソースはどこから入手できますか?

最新版のカーネルソースは、ftp.NetBSD.orgかミラーサイトの /pub/NetBSD/NetBSD-current/src/sys/で入手できます。 また、 NetBSD/mac68kメタFAQにも、currentソースを追いかけるにあたっての情報がありますから、そちらも参照してください。

7.6 NetBSD/mac68k用にクロスコンパイラー環境を作ることはできますか?

できます。この件に関して協力していただいた皆さんに感謝します。Markus Hitter (hitterm@trier.fh-rpl.de)による クロスコンパイラーHOWTOがあります。

また、Alan Palmer (hawks@mcs.com)はSolaris 2.4上でNetBSD/mac68k用にクロスコンパイルを行う環境を整備しました。それについては: ftp://ftp.macbsd.com/pub/NetBSD/contrib/cross-compiling/ を参照してください。

上のHOWTOはちょっと古いのですが、他のプラットフォームでのNetBSD向けのクロスコンパイルを容易にするため作業が行われています。

7.7 カーネルデバッガーのマニュアルはありますか?

あります。カーネルデバッガーのマニュアルページはddb(4)です。

回答を寄せてくれたScott Reynolds (scottr@og.org)とAllen Briggs (briggs@puma.macbsd.com)に感謝します。

7.8 UN*Xカーネル内部を理解するのに良い本はありませんか?

メタFAQの 推薦図書の項を参照してください。

7.9 ハードウェアをサポートするために調査をするようなMac OSユーティリティーはありますか?

あります。Appleは次の場所にかなりの数のユーティリティーを持っています:

ftp://ftp.apple.com/developer/Tool_Chest/Devices_-_Hardware/
この下に、少くとも三つの有用なサブディレクトリーがあります:

上の情報を寄せてくれたAlan Palmer (apalmer@il.us.swissbank.com)に大変感謝します。

7.10 何かコンパイルしようとするといつもsys_errlist[]が再定義されているのですが

伝統的にBSDシステムではsys_errlist[]配列の存在は知られてはいたもののヘッダファイルで定義されることがなかったのです。このため、たくさんの古いプログラムが自前でこの配列を宣言しています(これはシステムのエラーメッセージ文字列の配列です)。しかしNetBSDはシステムヘッダファイルでこの変数を宣言しており、なおかつ型が古いプログラムが仮定していた型と異るために、宣言の衝突が起きるのです。

通常はソースファイル中でこの配列の宣言部分をコメントアウトしてしまえば安全です。システムのヘッダファイルを変更すると、他の新しいプログラムのコンパイルでエラーとなることがありますからお薦めしません。最近のプログラムでは、システムヘッダファイルでの宣言があるかどうか調べて、あれば自前の宣言を行わないようにコンフィギュアできることが多くなっています。

7.11 g++でiostreamsを使ったプログラムをコンパイルすると決まって次のエラーが出ます:

/usr/libexec/ld.so: Undefined symbol "_tgetstr" in testprog:

Jason Thorpe (thorpej@nas.nasa.gov)からの回答:

これはlibg++のとても情けないバグです(まあ、これはNetBSDの共有ライブラリー実装の情けないバグとたまたま変わった形で相互作用しているんですが)。
-ltermcapをライブラリーリストの最後につけ加えてください。

7.12 既にNetBSD/mac68kに移植されたソフトウェアのソースやバイナリーを入手できる場所はありますか?

あります。 pkgsrc には、 インターネットから入手できるポピュラーなソフトウェアを素早く コンパイル・インストールするのに必要なファイル一式が含まれています。 NetBSD packageシステムドキュメント を参照してください。


Next Chapter | Previous Chapter

Table of contents of this chapter, General table of contents

Beginning of this Chapter


(連絡先 - 英語, 日本語: www@jp.NetBSD.org)
$NetBSD: faq-7.html,v 1.2 2007/06/09 20:18:05 dsieger Exp $
Copyright © 1994-2003 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.