連載 /JavaServer Pages—O 図 13 複数のべージで里を構成するアプリケーション 入力フォーム 0 ・ 1 ページ目 オブジェクトを生成 class= <jsp:useBean 1 段目の処理 指定スコープ内に同し名前のオプジェクトがすでに存在 すれば、そのオプジェクトを使う と説明しました。 この振舞いは、 class 属性か指定されているときには、 type 属性カ甘旨定されているか否かにかかわらす当てはま ります。しかし、 type 属生だけカ甘旨定さ class 属性も beanName 属性も指定されていないときには異なる振舞 ・ type 属性て指定したクラスの scope=" スコープ " <Jsp:useBean id = " 名前” type=" クラス” ヨ列を挙げると、 いをします。 ・ 1 ページ目でオプジェクトを作成して、必要なデータを 考えてみましよう。 といった、一漣の流オ、ら構成されるアプリケーションを ・ 2 ページ目で本番の処理をして結果を表示する ・ 1 ページ目で事前処理をおこなってから ・フォームにデータを入力し たとえば、図 13 のように、 ときには、実彳芋に伊外が発生します。 照できます。上の牛を満たすオプジェクトか存在しない ときに、そのオプジェクトを id 属性て指定した名前て参 ・ scope 属生で指定したスコープ内に存在する ・ id 属性て指定した名前をもつオプジェクトが UNIX MAGAZINE 2002.6 そこに保存する 2 ページ目 結果の表示 <Jsp:useBean type= 参照 ・ 2 ページ目でオプジェクトに保存されたデータを参照す る というように実装すれば、必要なデータをベージ間で受け 渡すことができます。 JavaBean でこの仕組みを実現するには、図 13 の 1 ページ目で、 class 属性や beanName 属性を指定した jsp:useBean タグを使ってオプジェクトを生成します。 く jsp:useBean id = ”名前 " class=" クラス 1 ページ目で生成したオプジェクトを 2 ページ目では、 type 属生を単独で指定した jsp:use- 参照します。 Bean タグを使い、 く jsp:useBean id = " 名前” type=" クラス” 89 f 。 rm. html " ページを表示することができます。 プジェクトの参照て例外が発生した " ようなとき、、、 g 。 - と当しておけば、、、 1 ページ目を実行しなかったのでオ く % page errorpage="goform. tml ” % > たとえば、 2 ページ目の JSP ファイルのう可寸近に 設定したページか表示されます。 するべージの URL を言すれば、例外が発生したときに テイプの errorPage 属性に、エラーメッセージを表示 ージを表小することもできます。 JSP の page ディレク のページを呼び出した場合、ユーサーに注意を促すメッセ 工ラーの発生を利用すれば、事前処理を実行せすに途中 ります。 したときには、オプジェクトの参照に失敗してエラーにな オプジェクトを生成せすに ) いきなり 2 ページ目を呼び出 当然ながら、 1 ページ目の処理をおこなわすに ( つまり
連載 /JavaServer Pages— 図 14 免税のあるケースを里するサンカレのべージ構成 taxBean オブジェクト を生成 2 ページ目 ( 課税 ) taxation. JSP 結果の表示 工ラー / ヾーシ goform. html 工ラーメッセージ の表示 入力フォーム taxform. htm ー 0 ・ 1 ページ目 Pre•JSP class= <Jsp:useBean 1 段目の処理 図 15 値札の部頁と税客 / 旅彳赭の区別を入力するフォーム .- 方イル ( 日編集仮 ) 表示検索ジャンプ 0 カクマーク但 ) タスクへプせ 製免税切ををケース - い [ 叩をト 働ホム検常ロカクマゆ、い , 物を、新着、、お勧めメ、′ト 同に、 値札の金額 : 002 外税 ( 、内税 国外からの旅行者ですか ? : はい 6 いいえ 主リの実ー 免税のあるケース ルット type 属生だけを含む jsp:useBean タグで JSP ページ を作り、その動作をみてみましよう。 このサンプルでは、タ粁見と内税の区別に加えて、国外か らの旅行者には免税をするようにします ( 消費税額はつね に 0 円 ) 。図 14 は、このサンフ。ルで使う HTML のペー ジと JSP ページの構成です。 ューザーは、図 15 のフォームに対して、 イ L の金額 言見方式 ( タ粁見・内税の別 ) 国外からの旅行者かどうか を入力します。 このフォームの HTML ファイル (taxform. html) を 90 <jsp:useBean type= 免税の表示 2 ページ目 ( 免税 ) taxfree. html 図 16 に示します。 taxform. html は、図 11 の tax. html に traveler " パラメータを渡すためのラジオボタンを追 加したものです。 事前里のための JSP ページ フォームに入力したデータは pre. jsp ページに渡さ 事前処理がおこなわれます。図 17 は、 pre ・ jsp ペー ジの内容です。 このページでは、国外からの旅行者であれは、 1. nextpage 変数に、 taxfree. html" を設定 2. nextPage てオ旨定したページー、フォワーディング という処理をおこない、旅行者でなけれは、 1. フォーム (beanClass) から受け取ったクラス名を bc 変数に設定 2. nextPage 変数に、、 taxation. jsp を日殳定 3. request スコープを拓正して taxBean オプジェクトを 4. フォームから受け取った値札の金額を price プロバティ 5. nextPage てオ旨定したページへフォワーディング という処理をおこないます。 UNIX MAGAZINE 2002.6
連載 JavaServer Pages—O 図 21 工ラーメッセージを新する HTML ファイル (goform. html) く ! DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4 .0 Transitiona1//EN"> く a href="taxform. html"> 入力フォームく / a > のページに戻って入力してください。 有効でないページにアクセスしました。く b て > く body> く /head> く title > 工ラーが発生しましたく /title> く meta http—equiv="Content—Type" content="text/html ; charset=EUC¯JP"> く head> く tml > く /body> く /html > 図 22 例外が発生したときに表示されるエラー form. html) 万イル編集〒 ( ) 索ジャンプゆプマーり ( 印タスりヘルプ 働。ホーム、強常ロプマ , グ ( い 1 ー物”弊。、新着、お - 、ルバー 有効でないページにアクセスしました。 、エラー工しましを一をいこ 00 う ヘージ (go- 入力フォームのページに戻って入力してください。 く%@ page errorPage="goform. html" % > 20 の 3 行目の孑日疋、 ジェクトを取得できすに伊收トか発生します。このとき、図 http : //tomcat : 8080/unimaga/taxation ・ j sp たとえば taxation ・ jsp の URL 、 goform. html の例です。 に従って goform. html ページか表小されます。図 21 は された HTML ファイルを呼び出していますが、エラー 今回のサンプルでは、伊トが発生したときに内容力墹定 のメッセージか表示されます。 で JSP ページを茁妾呼び出すと、例外が発生して図 22 ・例外を発生したリクエストの情報や状況 発生した例外の不頁 ページを JSP で実装すれば、 UNIX MAGAZINE 2002.6 ☆ たい場合には、 JSP ページでエラーベージを実現しまし ーメッセージを表示したり、柔軟なエラー処理をおこない を知ることができます。デバッグなどのために詳細なエラ 今回は、 jsp:useBean タグの type. 属性と beanName ・ JSP コードを Java のコード ( サープレット ) に変換す ・クラスの継承やインターフェイスの実装 ・ Java のオプジェクト生成 で重川乍を不忍しましたが、 type 属性に関する処理は、 ところで、今回紹介した JSP ページは Tomcat 4.0.3 ることかて、きます。 type 属性を単独で指定して既存のオプジェクトを参照す ョンで、共通のデータをベージ間で受け渡したいときには、 また、複数のページにまたがる処理をするアプリケーシ に重加勺に決めたいときに便利です。 行時に値を解釈するので、生成するオプジェクトを実行時 せか彳殳立ちます。とくに、 beanName 属性は JSP の実 に扱いたいときに、 type 属性と beanName 属の組合 共通のスーパークラスをもつ複数の異なるクラスを統一 - 一的 属性を紹介しました。 JavaBean のクラス継承を利用して う場合は、実際に利用する竟でいろいろと試したはうが て動きが異なる可能生があります。このあたりの機能を使 にすくなからず依存するため、 JSP 工ンジンの実装によっ る方式 よいでしよう。 93 ( あらい・みちこ ASTEC)
2 し inux のプートプロセス 図 9 セグメントイとページ f アクセス許可 アクセス違反発生 アクセス違反発生 クされます ( 図 9 ) 。もし、あるメモリアクセスがセグメン タセグメントの場合は、 CPL か高い特権レベルにあれば トイ描矍に違反した場合、 CPU はページイ描矍のチェックを 低い DPL のセグメントにアクセスできましたが、 CS レ おこなう前にアクセスを拒否します。同様に、セグメント ジスタの場合は CPL と DPL 力一致している必要があり イ描ン以しても、ページイ描夐に違反すればアクセスは拒 ます。 否されます。 ところが、この規則だけでは牛レベルの移行は永遠に 不可能で、しかも、 CPU がユーザープロセスとカーネル ページの保護フラグは、ページディレクトリとページ テープルの両方に設定されます。両者刎描内容力芽盾す を切り替えて実行する UNIX のような OS も実現できな る場合は、アクセス範囲がより厳しい ( 狭い ) はうカ陏効 いことになります。 になります。 IA-32 の 32bit CPU には、異なるキ讚雀レベルのコー 結果として、メモリにアクセスするには、多くて 3 回 ドセグメントに制御を移行するための手段としてゲートと の保護テストにパスしなければなりません (4MB ページ いう掃未な仕組みが用意されています。ゲートには、以下 フレームの場合は、ページテープルがないので 2 回です ) 。 の 4 不頁があります。 まるで、共通 1 次試験と、、足切り " 、そのあとの 2 次試験 ・コールゲート を思い起こさせるような厳しい i 断呈で、それを乗り越えた ・トラップゲート ときの喜びはひとしおでしよう。 ・割込みゲート 前回説明したように、ページディレクトリとページテー ・タスクゲート プルは、 PDE (Page Directory Entry) と PTE (Page ・・とこのまま説明を続けたいと コールゲートとは、 TabIe Entry) から構成されています。図 10 に、 2 つの ころですが、これらのゲートの動作については、今回ク寺 ェントリの橢匿をもう一度示します。 集の趣旨から外れるので説明は省略します。トラッフ。ゲー ページイ描矍に使われるのは、 U/S と R/W の 2 つのフ トと割込みゲートについては彳あします。タスクゲートは ラグです。前号でごく簡単に紹介しましたが、以下にそれ Linux では使用しません。 ぞれのフラグの働きを詳しく説明します。 U/S フラグによるアクセス保護 ページフレームへのアクセス CPU の CPL が 0 、 1 、 2 のいすオ功、の牛雀レベルで動 ページング機能力黝いているときは 4 、ページディレク いているとき、これをスーパーパイサー・モードといいま トリとページテープルに設定されているイ矍フラグ (U/S す。一方、 CPL が 3 の状態をユーサーモードといいます。 と R/W) の内容に従って、ページフレームへのアクセス U/S フラグは、、ユーサー / スーパーバイサー・フラグ " がチェックされます。つまり、前述のセグメントだけでな のことで、ページフレームにアクセスできる牛讚径レベルを くべージフレームもイ隻の対象となり、任意のアドレスへ 指定します。 のアクセスはセグメント・保、ページイ描矍の順番でチェッ スーパーバイサー・モードのプログラムは、すべての 4 前回説明したようにページンク・欟ヒは ON/OFF を設定することがで ページにアクセスできます。一方、ユーザーモードのプロ きます。 37 UNIX MAGAZINE 2002.6
http://www.ascii-store.com/ U 、Ⅸ入門から、サーバ構築まで。 Postfix qmai/ 用 s [ 欣 メールサーバの構築 eb で OK!! リ x 、 BSD. Solaris すべての UN ー X ユーザーに qmail メールサーバの構築 UN Ⅸの便利ワザ 翌・ネットワーク裏技編 ・ファイル小技編 、科つリ の使をワグ Richard Blum 著 ( 株 ) コスモ・プラネット訳 Richard Blum 著 A5 判 / 656 ページ ( 株 ) コスモ・プラネット訳 本体価格 3 , 800 円 A5 判 / 688 ページ Kirk Wainrow 著 CD-ROMI 枚付属 本体価格 3 , 800 円 金田芳明訳 各 : A5 判 / 240 ページ もっとも詳しい Pos ⅲ 'x, メ - ルサー / 「の解説割 qma 〃を使ってネ外ワーク管理を簡便に ! 本体価格 2 , 000 円 ?ostfix のインストールから、設定、運用まで、 設定がカンタン、効率的、安全性が高いという qma ⅱ UN Ⅸでは管理・保守などすべきことは多い。最近は GU ツール あますところなく解説。また、外部データベース から管理を行うことも可能ですが「 00t たるものどんな状況でも の導入から設定、運用までを、 FreeBSD と Linux を パッケージに保存されている情報をルックアッ 管理・保守できなければなりません。より便利なコマンドの利用 取り上げつつ詳細に解説。付属 CD - ROM には プテープルとして使用する方法についても解説。 法、効果的なシェルスクリプトを実際の事例に即して解説します。 FreeBSD 4.4-RELEASE と qmailY—スを収録。 ASCII し inux サーバ入門 Red Hat 系対応 引 ND 入門 PC UNIX の 日本語処理と設定 PC UNIX の 日本語処理と設定 Linux セキュリティ入門 ℃ 5 Linux セキュリティ入門 ー℃ 4 BIND 入門 103 Red Ⅲい系引し [ i れ ux サーバ入門 22 清水正人著 判 / 208 ページ 本体価格 1 , 0 円 Red Hat 系をメ インに PC サーバ 構築のための各 種設定方法をコ ンパクトに解説。 清水正人著 榊正憲著 A5 判 / 204 ページ A5 判 / 192 ページ 本体価格 1 , 800 円 本体価格 1 , 6 円 常時接続をしてい DNS の名前の解 るサーバにおいて、 決の方法、ネーム 最低限行うべきセ サーバの動作、 キュリティ対策やそ bind の各種設定 の検証方法を解説。 ファイルを解説。 GN リ BOOKS Series Ⅳ jndo Ⅳ s 環境に移植した GNLJ Emacs 公式マニュアル。 プロクラム開発のための必須ツール ! G Ⅳ LJ ソフト 200 本以上を収録。 最新版 Ve に 20.6 を訳出。 GNU Make W ⅱ畆′で GNU Emacs マニュアル Dan Hagerty GNU ソフトウェアを使おう ! Melissa Weisshaus Eli Zretskii 著 引地信之、引地美恵子訳 B5 変型判 / ページ CD - ROMI 枚付属 (Windows2000 対応 ) 本体価格 1 , 980 円 富樫秀昭著 A5 判 / 176 ページ 本体価格 1 , 700 円 UN Ⅸの日本語設 定にまとをしほり解 説。すべての P C UN Ⅸユーザー膨 金光雅夫著 A5 判 / 152 ページ 本体価格 1 , 5 円 UN Ⅸの標準スク リーンエデイタⅵ の使い方をコン パクトに解説。 nSCII GNU Make アスキーは F 「 ee Software Foundation のオフィシャルサプライヤーです。 Windows で GNU ソフトウェアを使おう ! GNU Emacs マニュアル 20.6 Emacs Lisp リファレンスマニュアル Emacs Lisp のプログラマのみならす E cs を気劬たいユ - ザ - にも最通な旧 Emacs Lisp リファレンスマニュアル Bil Lewis Dan ー alibert Richard M. Stallman 著 B5 変型判 912 ページ 本体価格 4 , 300 円 er:es マルチリンガルエデイタ Mu 厄 2.0 の初歩から解説。 大木敦雄著 / A5 判 / 224 ページ / 本体価格 1 , 748 円 X やキャラクタなど各環境別に日本語環境設定を解説。 松田晃ー、層本純一共著 / A5 判 / 272 ページ / 本体価格 2 , 136 円 環境設定方法をテーマ別にやさしく解説。 久野犢子、久野靖共著 / A5 判 / 2 ページ / 本体価格 1 , 748 円 tcl/tk で多様な GU 実現。 久野靖著 / A5 判 / 2 ページ / 本体価格 2 , 000 円 〒 1 51-8024 東京都渋谷区代々木 4-33-10 電話 ( 03 ) 5351-8194 http://www.ascii.co.jp/ 弌会社アスキー 第 R. M. Stallman R McGrath 著 荒澤弘樹訳 B5 変型判 / 224 ペー ン 本体価格 1 , 800 円 Richard M. Stallman 著 B5 変型判 672 ページ 本体価格 3 , 88 円 JavaScript プログラミングの入門書。 久野靖著 / A5 判 / 224 ページ / 本体価格 1 , 8 側円 WWW情報発信の核となる正しい技術を解説。 久野靖著 / A5 判 / 256 ページ / 本体価格 2 , 0 円 デバイスドライバなど F 「託 BSD カーネルを初心者向けに解説。 大木敦雄著 / B5 判 / 192 ページ / 本体価格 2 , 0 円 IJN Ⅸの基礎の基礎を習得。 久野靖著 / A5 判 / 220 ページ / 本体価格 1 , 553 円 入門 MuIe UN Ⅸ日本語環境 UN Ⅸの環境設定 入門 tcl / 世 = = 歹 77 了 7 入門 JavaScript 入門 WWW ー UN Ⅸでの情報発信技術ー FreeBSD カ - ネル入門 改訂版 し N Ⅸの基礎概念
2 イ Linux のプートプロセス → [ ] → [ ] → 図 18 プログラムの実行結果 Virtua1 Address 08049000 0804a000 0804b000 0804C000 0804d000 0804e000 0804f000 08050000 08052000 40000000 40001000 40008000 4015d000 bfffe000 bffff000 C0000000 C0400000 C0800000 COC00000 08049fff 0804afff 0804bfff 0804cfff 0804dfff 0804efff 0804ffff 08050fff 08052fff 40000fff ー 40001fff 40008fff 4015dfff bfffefff bfffffff c03fffff c07fffff cObfffff cOffffff t k k k k k k k k k k m m m m PGD CUW] CUW] → [ ] → [UW] → [ w] → → → → → → PTE [U ] CU ] CU ] [U ] [U ] [U ] CU ] CU ] CU ] [UW] PhysicaI Address 00C00000 00800000 00400000 00000000 0aeb0000 page out page out 013fe000 0bf05000 0bf1C000 page out 08e75000 08e32000 0be79000 0bf08000 0bf09000 0bf0a000 0bf0b000 0bf0C000 でも、プロセスからは 4GB のメモリがあるようにみえま す。また、個々のプロセスには独立したメモリ空間か割り 当てらオ t 、プロセスどうしがメモリの奪い合いや譲り合い をすることなく、広大なメモリ空間を独占して使えるよう なイ瓦想空間が作られます。これとは逆に、複数のプロセス が一部のメモリ空間を共有することもあります。 以 E のような説明をしましたが、やはり文をごけではい まひとっ実感カヾ勇かす、 「やつばり、なんかこう、ピンとくるもんがないなあ」 と、心にモヤモヤしたものか残っている人もいるのではな いでしようか。さらに、ページングについていまひとつ 断等できないまま、ページの一隻機能に関する説明を読ん でも、 「書き込めへんべージって何 ? アクセスできひんべージっ て何 ? 」 と、頭からスパークが飛ひ散っている人がいるかもしれま せん。 そこで、プロセスが一尉寺しているべージディレクトリと ページテープルを読み取り、リニアアドレスから物理アド レスへのマップと、それぞれのアクセス権限フラグの内容 を表示するプログラムを作ってみましたにのプログラム は、一 Linux カーネル 2.4.17 でしか重川乍を石忍していませ UNIX MAGAZINE 2002.6 ん ) 。このプログラムは、プロセス ID を引数に指定して 実行すると、カーネルのデータ領域にオ褓内されているデー タ橢匿を読み取り、図 18 のように表示します。 、 VirtuaI Address" のカラムは、リニアアドレスのペー ジフレーム範囲を表示します。次の、、 t " はページサイズの タイプを表し、 4KB べージを k 、 4MB ページを、、 m ' て表示します。、、 PGD" と、、 PTE " のカラムは、それぞれ ページディレクトリとページテープルの U/S フラグと R/W フラグの有無を表示します。 4MB ページの場合、 またはページフレームがスワッフ。デバイスにページアウト されている場合、、、 PTE" は空欄になります。最後のカラ ムは、ページフレームがマップされている物理アドレスを 表示します。ページアウトされている場合は page out" と表示されます。 たとえば、プログラム・ファイルか 1 司しプロセスの ID を 2 っ用意し、次のように実行すると、イ瓦想メモリ空間の う頁のほうか 1 司し物理アドレスにマップされていることが 分かるはすです ( 誌面の都合上、て斬り返しています。 以一日司椥 # diff —c く (. /read-pgd が dl ) く ( . /read—pgd 加 d2 ) ー less : 頁のはうのアドレスはテキスト或なので、たとえば bash プロセスであれば /bin/bash ファイルの内容がメ 0 49
で伝送しなけれはなりません。今回は、コーデックとして RealNetworks の RealVideo を利用しました。 前回紹介した LIVE! ECLIPSE 2001 では Windows Media を使いましたが、当然のことながら Windows を べースに運用せざるをえませんでした。今回は、フォラッ クス 6 からリリースされたオールインワンの RealMedia ェンコーダ「 Crex-b. Box 」を使うことにしました。これ は Micro ATX マザーポードを用いたシステムで、 OS は Linux です。 Windows の場合は、 ENOC からの遠ー篥 作か容易ではありませんが、 Linux であれば遠「也からロ グインし、各種のコマンドを用いて制御することかできま す。これも、 ReaIVideo を採用した大きな理由です。 回線は、各拠点で通常使用されているインターネット専 用線を使用しました。毎道陸男 ! 町では通イ謡合研究所の 研究用回線、広島県東広島市では広島大学の大学用回線、 沖縄県座間日は WIDE プロジェクトによる実験研究回 線をそれぞれ僴用しました。 集信ネットワークのエンドボイントは、衛星中継と同 しく日本科学未来館です。日本不斗学未来館のインターネッ ト回線は、同館が使用している IMnet に相乗りさせてい ただくかたちにしました。ネットワークの言については 担当者と事前に調整し、 / 27 のサプネットを 1 つ割り当 てていただきましたグローバル・アドレスで、ファイ アウォールはなしという工竟てす。 ENOC ではグローバ ル・アドレスを必要とするマシンが多く、 NAT やファイア ウォールなどを経由すると不具合を起こすアプリケーショ ンもあるため、このようなかたちをとっています。最終的 に、 ENOC には集信用のサーバーを 1 台置き、そこから RealPlayer で再生するクライアント PC ( 3 台 ) にデー タを送り、さらにその出力を編集装置の入力として使用し ました ( 写真 1 ) 。 0 連載 /Cyber Kansai Project— 写真 1 ENOC で乍業 ・携帯電話用从 b ページ ( www.442001.jp ) この Web ページのはかに、しし座流星群に関する連絡 団体 ANJLO の Web ページである www.shishi.jp と www.leonids.jp があり、これらについては東京 : た学のシ ステムでホスティングをおこなっていました。 LIVE! LEONIDS の Web ページのうち、 www.live- leonids. jp に関しては東京 : た学と CKP とで、前回も紹介 した Tenbin と RADIX を用いた広域負荷分散をおこな いました。東京大学と CKP の内部でも、それぞれローカ ルに負荷分散をおこなっていました。 ANJLO に関する Web ページと www.442001.jp は東京大学サー / ヾー君 ) みてサービスを提供し、東京大学では www.live-leonids ・ jp と同様の負荷う靖攵をおこないました。 Web サーパーと負荷分散 上記のように、 LIVE! LEONIDS 2001 に関する Web ページは、東京大学と CKP のサーバーで広域負荷分散を おこないました。 東京大学側では、 Web サーバー Web サーバーは、東京大学と CKP の 2 サイトに分散 配置しました。 LIVE! LEONIDS 2001 の Web コンテ ンツは、次の 2 不鶤頁てす。 . PC 用 Web ページ (www.live-leonids.jp) 6 http://www.vorax.com/ PC Type1 (x 3 台 ) ・ CPU : Pentium III 850MHz ・メモリ : 512MB ・ OS : Solaris 8 UNIX MAGAZINE 2002.6 172
SC 翡 竹田善太郎野村直著 B5 変型判 / 3 ページ CD - ROM2 枚付属 本体価格 2 , 600 円 GUI インストール、 KDE の操作、 KO 行 ice の活用、日本語 入力、 Tu 「 boTo 引 s による設定、 USB デバイスの利用術 までを解説した初心者に最適の 1 冊。 はじめての Li 皿 x からピジネス運用まで。 ハッカーズ大辞典 改訂新版 0 ネットワーク技術者必 技術の " 心 " がわかる、ネットワーク Red Hat 00 , ス 2 ( F ア P 版 ) 収録 ! Red Hat Linux 7.2 スタートブック バージョンス x 系の完成形 ビジュアルプログラミングッール励 / 6 ス門書の定版 ! 注目窈内 6 を小さなネ外ワークを作りなカちア寧に解説 —Red Hat Linux ス 2 か登場 ! 0 サー / 「一専用リ 00 、 OS ル「 bO ″ n リ x S 砿「 6.5 ( F ア P 版 ) ノ収銀 ! TurboLinux 7 Turb0Linux Server 6.5 、システム理ププク Workstation スタ - トカク サーバー構築ブック 応市 7 ゴ 6.5 新米「 00t 必修です ! DSL + 固定ー P + Tu 「 bo で実現する インターネットサーハ構築 ! ネッ占多・ - アクノロソー ネットワ - ク・テクノロジ - 5 / 23 発売 THE NEW HACKERS DICTIONARY 新刊 ハッカーズ大辞典 Eric S. Raymond 編、福崎俊博訳 A5 判 / 576 ページ 本体価格 3 , 800 円 播ロ陽ー著 A5 判 / 4 ページ 本体価格 3 , 500 円 の 著名ハッカーたちの英知と皮肉とユーモアを結集した Jargon F 〃 e を完全日本語化 ! Ⅶ T の A けボやスタンフォードの SA に、旧 M や DEC などの大学や企業 本書は単なるハウッ一本ではなく、インターネットの基盤 を舞台に、著名な研究者、開発者が多数登場し、気のきいたスラングや 技術である Etharnet 、経路検索、 ATM 、 xDSL 、 NAT な 抱腹絶倒の歴史的事件、それらの技術的な背景などが数多く紹介され どの技術的な原理から実装例までを数多くの図版を用い、 ています。「伽藍とバザール」で知られるエリック・レイモンド編纂です。 詳細に解説します。 BorIand DeIphi6 と Kylix2 Startup Kit を収録! BorIand DeIphi6 オフィシャルコ - スウェア基礎編 I v6 使って学ぶ 6 ド オフィシ第ルコースウ 1 ア 野村直著 B5 変型判 / 288 ペー ン CD - ROM2 枚付属 本体価格 2 , 600 円 服部誠著 砂原秀樹監修 B5 判 / 306 ページ 増田康人、長橋賢吾、有賀征爾著 CD-ROMI 枚 A5 判 / 256 ページ 本体価格 2 , 800 円 本体価格 1 , 900 円 ビジュアルプログラミングの開発方法から Ob t PascaIDÆN 、コンボーネ 注目のネットワーク技匍 Pv6 の特徴と基礎知識をわかりやすく解 ントの使し防な印師 hi6 を基礎から学べる一冊。 Windows 、 Linux プログラ 説し、 F 「 ee BSD を使用して実際に身近なネットワーク環境を作 マー必見の相 DeIp ⅲ 6 オフィシャルコースウェア応用編も同時発売。 成します。応用として、 lPsec を利用した実際的な事例を紹介。 GLJ インストールから、各種設定ツールの活用術、 USB デ バイスの利用方法、付属ソフトウェア活用までを徹底解説 ! Vine Linux 2 システム管理ブック 堀ロ幹友著 ー B5 変型判 / 320 ページ CD-ROMI 枚付属 本体価格 2 , 800 円 野村直著 B5 変型判 / 288 ページ CD - ROM2 枚付属 本体価格 2 , 600 円 ・ 1 「かんべきノルっかりノインストールと基本操作 Vine 凵 nux におけるシステム管理の初歩をやさしく解説。 ユーザー管理、ディスク管理、セキュリティ管理、 Samba 、 「常時接続十独自ドメイン十 Tu 「 bo ⅱ nux 」でインターネ FTPサービスの提供、さらに T 旧 S 満載 ! ットサーバーを構築するノウハウを完全解説 ! グラミング作法 UN Ⅸの % 世紀 AIX プログラミング作法 リ N ー X の 1 / 4 世紀 オペレ - ティングシステムの概念とシステム醒 AIX SEX リ 05 オヘレーティンクシステムの概と 上シスデム 日本アイ・ビー・エム株式会社 古寺雅弘編著 A4 変型判 / 688 ページ 本体価格 6 , 200 円 Peter H. SaIus 著 QUIPU LLC 訳 A5 判 / 272 ページ 本体価格 2 , 400 円 Brian W. Kemighan 、 Rob Pike 著 福崎俊博訳 A5 判 / 4 ページ 本体価格 2 , 800 円 本書は旧 M の標準 UN Ⅸである A Ⅸの概要とそのシステム管理の解説書です。 AIX カーニハンとバイクによるプログラミング解説書の決定版。 伝説のハッカーが語る LJN Ⅸ誕生と成長の物語。「面白 4.3.3 から大きな拡張機能である 64 ビットカーネルへの対応、 Linux プログラミングをする際に出会う諸問題について、実例コ いからやる」「使いたいから作る」という UN Ⅸ文化の原 飾 n 対 ( L 加 x への ) などを解説し、システムのから実用にふれます。 ードを示して実践的にアドバイス。 点をひもとく員重な歴史書。 伝説のハッカーか語る IJNIX の誕生と成長の物語 [ 加との和性、 6 北外カ - ネルなどの新能を徹底解説 プログラミンク解説書の決定版 企業内研修・引用によるカスタムメイド・ OEM 供給に関してのお問い合わせ先 : 法人営業担当 ( 03 ) 5351-8640 ・表示価格は消費税を含みません。・本製品は書店および書籍を扱っているパソコンショップでお買い求めください。・品切れの際は書店にてご注文いただくか、通信販売を ご利用ください。・通信販売のお問い合わせ先 : 株式会社アスキーイーシー電話 ( 03 ) 5351-8202 http://www.ascii-store.com/ 二舅
2 Linux のプートプロセス 図 11 リアルモードとプロテクトモードにおける害込みハンドラのテーカレ リアルモードの場合 プロテクトモードの場合 割込みハンドラ 割込みハンドラ 割込み デスクリプタ テーブ丿レ デスクソプタ n 灯 割込みべクタ テーブ丿レ べクタ FF Segment:Offset デスクリプタ 02 デスクリプタ 01 デスクリプタ 00 割込み 発生 割込み 発生 べクタ 02 Segment:Offset べクタ 01 Segment:Offset べクタ 00 Segment:Offset 00000H IDTR 00000H のように変化し、スーパーバイザー・モードのプログラム いてはあとで説明します。 がページに書き込もうとすると、 CPU カ甁外を発生しま す。結〕釉勺に、ス→ヾーバイザー・モードからページを保 護できるようになります。 CPU に割込み / 例外が発生すると、 CPU は現在実行 WP フラグによるイ描矍機能は、、℃ opy-On-Write" を しているプログラムを一イ判勺に中断し、別に用意してある : 滝見するために使用されます。 WP フラグを使用し、 2 つ 特別なプログラムを実行し始めます。このような割込み処 以 E のプロセスから共有されているユーサーベージを読出 理は、私たちの日常生活にもあります。たとえは、本を読 し専用として設定しておくと、 OS は CPU の例外発生 んでいるときに電話がかかってきたとか、宴会でピールを によってユーサーベージへの書込みを検出し、その点で 飲みすぎて、、自然の要求 " に逆らえなくなったとか、その 新しいページを割り当ててコピーできるようになります。 ようなことです。 Copy-On-Write の動作については、本題から外れるの CPU の割込みと例外には、発生源や発生の原因によっ で、こオ LJ ユ上の説明は省略します。 ていくっかの不頁があります。 「うーん、なんかよう分からんわ。なんというか、目で見 割込みはおもに外部のハードウェア ( キーポードやハー て分かるようなもんがあったらええねんけど・・ ドディスク、クロックタイマーなど ) から CPU に送ら れる信号によって発生します。また、特別な命令を用いて という方のために、ページディレクトリとページテープル の U/S と R/W フラグを表示するプログラムを作ってみ ソフトウェア的に割込みを発生させることもできます。た ました ( 末尾のリスト 1 ) 。コンパイルの手順と使い方につ とえば、 Linux ではユーザーがシステムコールを呼び出す , 。割込みと例外 39 UNIX MAGAZINE 2002.6
2 Linux のプートプロセス 図 10 ページディレクトリとページテープル (4KB ページ ) (a) PDE (Page Directory Entry) ページテーブルのべースアドレス (b) PTE (Page Table Entry) 12 11 31 ページフレームのべースアドレス 表 4 U/S フラグによるアクセスの可否 AVAIL 9 AVAIL 9 8 0 8 0 7 0 7 0 6 0 6 D 5 5 A 4 4 0 3 3 2 2 1 0 1 0 表 5 表 6 表 7 。スー R/ 、フラグによるアクセスの可否 ユーザー スーパーバイサー U/S = 0 U/S = 1 アクセス不可アクセス可 アクセス可アクセス可 ユーサー スーパーバイサー 言衄ル専用 読み書き可 グラムかアクセス可能なのは U/S フラグがセットされて いるべージだけで、クリアされているべージにアクセスし ようとすると CPU は伊外を発生します。 U/S フラグによるアクセスの可否をまとめると表 4 の ようになります。 前回、 Linux のカーネルはリニアアドレスの C01000 00H に配置されていると説明しました。もし、これらの カーネル領域のメモリ内容がユーサー・プログラムから読 めるとすると、システムの重要な清報がユーザーに丸見え になってしまうことになり、セキュリティ面で好ましく ありません。そこで、 Linux では C0000000H 以降のシ ステム領域を指すべージディレクトリ・エントリの U/S フラグをクリアし、ユーサー・プログラムからはアクセス できないように設定します。一方、プログラムのコードと ヒープ ( 8048000H 以降 ) 、共有ライプラリ ( 40000000H 以降 ) 、スタック (BFFFFFFFH 以前 ) 領域の U/S フ ラグはセットされ、ユーサー・プログラムからアクセスで きるように設定されています。 R/ 、 (V フラグによるアクセス保護 R/W フラグは、ページフレームの読出しと書込み権限 を設定します。 CRO レジスタの WP フラグがクリアされている場合、 イザー・モードのプログラムは、 R/W フラグ の値にかかわらす、すべてのページを読み書きできます。 つまり、書込みー矍設定は無視されます。 一方、ユーサーモードのプログラムか書き込めるのは、 38 WP=O の場合のアクセス権 U/S R/W ユーサー ユーザー ユーザー ユーザー パーバイサー パーバイサー パーバイサー バイザー 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 、 VP=I の場合のアクセス権 U/S R/W ユーサー ユーサー ユーサー ユーサー ハーノヾイサー バイサー ハーパイサー バイサー 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 R/W = 1 読み書き可 読み書き可 アクセス権 アクセス権 翫み書き可 読み書き可 読み書き可 読み書き可 読み書き可 読出し専用 アクセス不可 アクセス不可 読み書き可 読出し専用 読み書き可 読み書き可 読み書き可 読出し専用 アクセス不可 アクセス不可 R/W フラグがセットされているべージだけです。 UNIX MAGAZINE 2002.6 W=O) のユーザーベージ (U/S=I) へのアクセスが表 7 レジスタの WP フラグをセットすると、読出し専用 ( R / ところが、 80486 以降の IA-32 プロセッサでは、 CRO ログラムには適用されません。 によるべージイ機能は、スーパーバイサー・モードのプ れを見れは分かるように、 U/S と R/W の 2 つのフラグ 表 4 ~ 5 を組み合わせると、表 6 のようになります。 ようになります。 R / W フラグによるアクセスの可否をまとめると表 5 の