モード - みる会図書館


検索対象: プロフェショナルBSD
89件見つかりました。

1. プロフェショナルBSD

7 章ソフトウェア開発環境 このとき、指定されたモジュールがディレクトリごと取り出され、カレン トディレクトリ ( ワークスペース ) に作成される。このコマンドを実行した 後、自由にソースファイルを変更することができる。なお、ワークスペース は自分が書き込めるディレクトリならどこでも構わない。 ■ commit checkout コマンドで取り出したソースコードへの変更を CVS に通知する のが commit サプコマンドである。このコマンドには特に引数はなく、カレ ントディレクトリから下の部分で、変更されたファイルを調べ、変更された ファイルを登録する。 ■ update コマンドで変更を登録する際に、他のユーザーが同しモジュールを 修正している場合がある。このような場合に、 CVS に現在登録している状 態をワークスペースに反映させるためのコマンドが update サプコマンドで ある。このコマンドを実行して、変更がぶつかっていないときは両方の変更 が反映される。変更がぶつかったときはて csmerge コマンドで組み合わされ た結果となる。このときには、コマンドの出力の先頭が℃〃となる。このよ % cvs add ファイル名 は次のように使う。 モジュールにファイルを加えるときには add サプコマンドを用いる。これ ・ add うなときはユーザーが手で編集する必要がある。 356 いうことである。あらかしめ、コピーや削除をしていなくてはいけない。 イルが存在している必要があり、 remove のときには、存在してはいけないと こで注意しなければならないのは、 add を使うときには対象となるファ % cvs remove ファイル名 追加する。逆に削除する場合は remove サプコマンドを用いる。 これはカレントディレクトリが含まれるモジュールに指定したファイルを

2. プロフェショナルBSD

6 章生活環境の整備 ースサー / ヾ ュ ースサー / ヾ ュ ネットワーク ースサーノヾ ュ ュースサーバ ユーザー ユーザー ユーザー 図 6 ー 22 ネットニュース プロトコル (NNTP) はそれぞれ RFC1036 と RFC977 で規定されているが、 ューサーインターフェイスについては規定がない。また、 NNTP を使うこと によって IBM PC/AT や Macintosh のようなシステムからも利用すること ができる。 己事は、その話題に応してニュースグループに属している ( 複数に属して も良い ) 。このためューサーは自分の興味に応じてニュースグループを選択 して記事を読むことができる。 ニュースグノレープの名則は、、 comp. os. mach" や、、 t Ⅱ n. 。 s. 44bsd 〃などといった階層的なものになっている。 日本で読めるおもなニュースグループを表 6 ー 4 にあげる。 表 6 ー 4 日本で読めるおもなニュースグループ 名前 一三ロ 内容 おもな使用言語 日本で運用されているグループ。 From Japan の略。さまざま 日本語 なグループがある 日本の IP ネットワークに関するグループ 日本語 商用ネットワーク会社 IIJ が管理するグループ 日本語 コンピュータサイエンスやコンピュータシステム、フリーソフ 英語 トウェアのソースコードに関するグループがある コンピュータサイエンス以外の科学一般の話題に関するグルー 英語 プ。数学や科学、物理などがある JP tnn C01 p SCI 314

3. プロフェショナルBSD

Appendix A 再構築 から起動可能なカーネルを生成する。しかし、この指定は ident で GENERIC を指定していなければならない ( つまり GENERIC カーネルだけ ) 。 A. 1.6 options カーネルのコンバイル時のオプションをここで指定するためのものである。 たとえば options VIP と記述すると、コンパイル時に v 工 p というシンポルが cpp で定義される。また options VIP="vip" と記述すると、 v ェ p の値が vip に 定義される。 ident のときと同じようにコードに #ifdef などを指定すること によって適当な機能を選択することが可能になる。 A. 1.7 controller 周辺装置を指定するキーワードで、他の周辺装置の親となるような装置を 指定する。特に controller isao は必須であり、省略することができない。 また、割り込みレベルや DMA のレベル、 I / O のアドレスもここで指定する。 詳しくは以下で例を使って説明する。 A. 1.8 device サプュニットを持たない周辺装置を指定する。 disk 、 tape はこのキーワー ドと同し意味である。 controller と同じように割り込みレベルなども記述で きる。 A. 1.9 pseudo-device 実体を持たない仮想的な装置を記述する。たとえば仮想端末をこれで指定 する。 A. 2 ( 例 ) gateway の設定 ここでシステムの構成として 2 枚のイーサネットカードを接続して、いわ ゆる gateway ( あるいはルータ ) として構成する場合について説明する。ハー ドウェア構成は SCSI ディスク、 NE2000 ィーサネットインターフェイスが あるものとする。手順の概要は次のとおり。 480

4. プロフェショナルBSD

7 章ソフトウェア開発環境 通常のソフトウェア開発の行程ては、大まかにいって次のような手順を踏む。 ①要求を分析し、ソフトウェア ( システム ) の仕様を決定 ②仕様にしたがって、プログラミング言語を使ってコーディング ③でき上がったシステムの評価を行い、バグなどがあれば修正。また性能の改善が 必要ならば、改善を行う UNIX ては②および③の作業を支援する環境、すなわち、ソフトウェア開発環境を 提供している。また、実際に利用され多くの支持を得ている。それは、、ツールクと呼ば れる単純な機能を実現した数多くのコマンドを提供しているからてある。特に UNIX そのものが C 言語て記述されていることから C のプログラミング環境が充実してい る。また、近年プロセッサやメモリの性能の向上によリインタープリタ系の処理系も 実用的なものとなっている。 本章ては UN Ⅸにおける C 言語を使った開発環境を説明すると共にインタープリ タ系のシステムも解説する。また C 言語を用いた大規模なプロジェクトの例として UNIX のカーネルの再構築について述べる。 7.1 C コンバイラ■ ご存知のとおり C 言語と UNIX とは切っても切れない関係にある。 では UNIX でプログラムを書くときによくお世話になる C コンパイラの構 造とその周辺の話題について解説する。 main() #include く stdio . > % cat f00. c を実行すればよい。 7.1.1 cc コマンド ューザーがソースコード foo. c をコンパイルするには次のようなコマンド 336 printf("He110 Wor1d\n") ;

5. プロフェショナルBSD

B. 2 インストール方法 ①媒体 ( メディア ) あるいは tar 形式からディスクへの展開 GNU プロジェクトの gzip コマンドが利用されている場合がある。 どで圧縮されているのでこれを展開する。圧縮には compress コマンドのほかに 通常、ソースコードは tar コマンドで 1 つにまとめられ、 compress コマンドな % zcat freesoft . tar . Z ー tar xvf ( 展開例 ) ②コンパイルに必要な手順が書いてあるファイルを読む (README とか INSTALL のような名前が多い ) ③それにしたがって必要なファイルを書き換える、あるいはコマンドを実行する (patch コマンド、 configure コマンド、 xmkmf コマンド ) 通常、 Makefi1e や 2 、 3 のヘッダファイルを変更するだけですむ場合が多い。ま た configure と呼ばれるシェルスクリプトが付属している場合がある。このスク リプトを実行すると自動的に動作環境を調べ必要なファイル ( たとえば M efile ) ・ディスクの容量に注意する どに便利。 OS に付属しているコマンドとは別の場所にインストールするとバックアップな ・コマンドをインストールする場所を決定しておく こで注意すべき点をいくっかあげる。 ⑤コマンドをインストールする ④コンパイルを行う ( cc コマンド、 make コマンド ) を作成してくれる。 489 ・利用可能な国が限定されている場合もある ( 特にセキュリティ関係 ) ・ライセンスが必要な場合もある 不具合があれば作者に報告する。あるいは、自分で直し作者に報告する。 ・かならすしも完全に動作する保証はない ストールされるのかを把握する ・ドキュメント (README 、 INSTALL) をよく読み、どのようなファイルがイン

6. プロフェショナルBSD

Appendix A 再構築 こでは「 7.8 カーネルの再構築」で述べたカーネルの再構築について実 例をあげながら説明を行う。 A. 1 再構築 BSD / 386 をインストールした直後のカーネルは GENERIC カーネルと呼 ばれている。このカーネルにはべンダーがサポートしているありとあらゆる デバイスドライバとカーネルの機能が含まれている。こうしておかないとさ まざまなユーサーの環境で起動しないからである。しかし、ユーザーから見 れば不必要なコードが含まれているため、カーネルの消費するメモリが増え て不経済な場合がある。このようなときには再構築によってカーネルを小さ くしてやればよい。また、標準でサポートされていないデバイスや機能を追 加する場合にもカーネルを再構築すればよい。 BSD / 386 のカーネルは普通 / bsd という一般のファイルである。カーネル を作るには通常のプログラムと同じように C コンパイラでコンパイルし、 ld でリンクすれは生成できる。 * 1 しかし、カーネルともなるとソースファイル の数も 300 近くになる。もちろんコンパイルには make コマンドを使うにし ても、必要な機能やデバイスに応して Makefi1e を作るのはたいへんな作業 となる。ところが、これだけの複雑な環境でも簡単にシステムの再構築が可 能になっている。この環境を実現しているのが c 。 nfig コマンドである。ュー ザーがシステムを再構築しオい場合には、必要なシステムの構造 / 機能を記 述したファイル ( 、、 configfile ) を 1 つ用意するだけで、あとは c 。 nfig コマン * 1 正確にいうと、少しオプションの指定が必要。 476

7. プロフェショナルBSD

8 章文書処理 表 8 ー 5 関連したフィルタ indxbib lookbib col colcrt 説明 文献データベースから逆引きインデックスを作成 文献データベースの検索を行う 逆改行コードを含む文書を CRT で正しく見るためのフィルタ ( tbl と一緒に使うこと が多い ) col と同し。 C01 は version 6 で登場したが、 colcrt は Bill Joy 氏が作った 8.7 g 「 0 幵 BSD/386 や 4.4BSD に付属の roff システムは GNU プロジェクトの groff システムをイ吏っている。 groff コマンドはこのシステムのフロントエンドの コマンドとなっており、上で説明したようなパイプで各コマンドを記述しな くてもオプションで指定することができる。また、サポートしている出力 デノヾイスも PostScript 、 'IbX の dvi ファイル、 X ウインドウシステムでの preview や通常の” c ⅱファイルなど多岐にわたっている。 % g て 0 土 f —R —p —t —e —ms —Tps thesis. ms ー 1p て 8.8 マニュアル・・ 最近 UNIX を用いた文書処理は ' I びやいがよく利用されるが、それ でも roff は依然オンラインマニュアルに利用されている。この節では r 。 ff を用いたマニュアル * 3 の書き方について述べる。 408 * 3 ただし英語。 ノヾッケージを使っていた 8.8.1 mdoc マクロ しかし、 BSD/386 や 4.4BSD では mdoc と呼はれ これまで BSD ではマニュアルを作るために man マクロと呼ばれるマクロ

8. プロフェショナルBSD

7.2 make ータでも快適な BSD / 386 の環境を使うこ いノート型のノヾーソナルコンピュ とができる。 7.1.6 アーカイプファイル 話をライプラリからアーカイプファイルに戻そう。 ar コマンドはライプラ リファイルを作るだけではなく、本来の複数のファイルを 1 つにまとめると いう機能を利用することもできる。たとえは ftp や uucp でファイル転送を 行うときに複数のファイルを ar コマンドでまとめて 1 つにして転送し、転 送先で展開するということもできる。 また ar コマンドはあるディレクトリの下を全部まとめるという機能はな いが、似たようなコマンドで tar コマンドや cpio コマンドがある。これらの コマンドはディレクトリごとまとめることができるので、バックアップなど に使うことができる。 tar や cpio で用いるファイル形式は異なっているが、 BSD/386 ではこれらを統一的に扱うことのできるコマンド pax コマンドが 提供されている。このコマンドは tar や cpio といったさまざまな形式のアー カイプファイルを扱うことが可能になっている。 7.1.7 st 「 ip コマンド cc 、 1d で生成された実行形式ファイルには実行コードや初期化データのは かにシンポル情報と呼ばれる情報が付加されている。これにはアセンプラや リンカやデバッガが使う情報が含まれている。この情報はデバッグの途中で は重要であるが、デバッグが終了して実際に使う場合には必要ない。このシ ンポル情報を取り除くのが strip コマンドである。ファイルにシンポル情報 があるかどうかを調べるには file コマンドで調べることができる。 % file a. out a. out : 386 compact demand paged pure executable not stripped このように not stripped と出力されればシンポル情報が含まれている。 ファイルによってはファイルサイズが激減する場合もあるので問題がないよ うなら strip するとディスクの節約になる。ただし、カーネルである /bsd は strip してはいけない。 343

9. プロフェショナルBSD

9.8 ネットワーク管理 ・ Uniform Resource Locator (U RL) URL はリソースに一意に名前を付けるための手法であり、現在、 draft になっている。 http 、 ftp などによるファイルアクセスを Scheme//hostname [ :port] [ / path] lnternet のような形で指定できる。たとえば JPNIC ( 1.1 節参照 ) の g 叩 her 上にあるド キュメントリストは gopher://gopher ・ nic ・ ad ・ jp/00/ftp/INDEX と表される。 9.7.4 mosaic WWW などのネットワークで情報を提供しているサービスにアクセスす るツールとして NCSA によって作られた mosaic がある。 mosaic はその名前 が表すようにさまざまなプロトコルを使うことができ、非常に便利なツール である。 UNIX 上では X ウインドウシステムの上で動く xmosaic を利用できる。 xmosaic は M 。 tif を使って書かれており、コンパイルできないサイトが存在 するため、ソースコードと同時に多くのアーキテクチャ用のバイナリでも配 布されている。 xmosaic の使用例を図 9 ー 21 に示す。 9 ネットワーク管理 UNIX のシステムを管理していてトラブルがいちばん多いのはファイルシ ステム周辺とネットワーク周辺である。ネットワークを管理する上で重要な ことはその機構をしつかり理解しておくことである。トラブルシューティン グをするときに現在の状況を見極め、どこがおかしいかを発見するのには多 少の経験とシステムについての完全な理解が必要になる。また、そのための ツールを使いこなす知識も必要になる。本節ではどのようにしてトラブルを この場合、相手のホストまでの間にあるルータが故障しているか、経路制 9.8.1 相手のホストまでの到達性が得られない場合 発見し、どう対処すべきかについて述べる。 469

10. プロフェショナルBSD

7 章ソフトウェア開発環境 ■ POSIX 上記のように POSIX の導入にともなって、いくつかのシステムコールや ライプラリが変更 / 追加されている。移植時に問題になるのは恐らく端末周 りとシグナル関係であろう。このような場合には、マニュアルや POSIX の 解説本などを参考に書き換えていくしかない。 ・その他 移植したいプログラムが実はシェルスクリプトであるような場合、システム で提供されているコマンドの仕様が違うと動作が異なる場合がある (/bin/echo は System V と BSD で仕様が異なる ) 。そんなときはスクリプトのほうで考 慮するか、利用しているコマンドを置き換えるなどの対応が必要である。 OS ではなく、利用している計算機のアーキテクチャに依存する間題もあ る。有名なのはバイトオーダーである。特に IBMPC ではバイトオーダーが リトルエンディアンであるのに対して Sun や SONYNEWS 、 Omron LUNA のようなワークステーションはビッグエンディアンである。工ンディアンと は、数値を 1 バイトを単位としたメモリに格納するときの形態のことであ る。たとえば 16 進数で、、 12345678 クという 8 桁 ( = 4 バイト ) の数値をメモ リに格納する際に、ビッグエンディアンの計算機ではアドレスの小さい順に [@、、画、と格納される。ところが、リトルエンディ アンでは、画、、と逆順に格納されてしまう。この データをファイルに保存した場合を考えると、異なるエンディアンの計算機 間で正しくデータを交換することができない。 また、データの交換はファイルに限らずネットワークでも行われるのでネッ トワークでのバイトオーダーも重要となる。ネットワーク上を流れるデータ はビッグエンディアンと決められているので、リトルエンディアンの場合に はオーダーを変更しなければならない。行儀のよいプログラムであれは変換 のためのライプラリ関数を使っているが、行儀の悪いものは省略している場 合があるので注意をする必要がある。また、似たような問題にコンパイラに 依存したコードもある。これは問題を見つけるのが非常に困難である。自分 でプログラムを書くときにはなるべく行儀のよいプログラムを書くようにす べきである。 384