システム奮闘記:その50



(2006年6月14日に掲載)
はじめに

  「敵に塩を送る」という言葉は、ご存じの通り、
上杉謙信が、ライバルの武田信玄に塩を送った話から由来する。
  甲斐のような内陸部だと海がないため、塩は貴重な物。

   ここでは塩は「Microsoft製品の技術」を意味し「取る」は勉強を意味する。

  Linuxを勉強する過程で、Microsoftの技術も並行して勉強すると、
相乗効果が出て、より勉強になったりする。
  また、お互いの比較できるため、覚えやすかったりする。

  そのため、Linuxの知識を増やすには必然的に・・・

  Microsoftの製品の勉強する必要が出てくる!


  さて、UNIX系の人間で、MS嫌いでMicrosoft製品を触らない人がいます。
  でも、私は、それは良くないと考える。

  こんな事を書くと、私がMicrosoftが好きと誤解されそうだが、
実は大のMicrosoft嫌い。しかも、宗教色も相当かかっている。

  事実、菅教の教典に、次のような教えが書かれている。

菅教の教典の内容
この宗教の信者は、神と崇めるペンギンに対して敬意を持ち、
南極の方向を向かって「偉大なるペンギン様に栄光あれ!」と叫び
Microsoft製品にはバグという祟りがあるので、霊媒師を呼んで、除霊を行なう。
そして、Microsoftのジリ貧のニュースを聞くと、米国本社の方向に向かって
六甲おろしの大合唱を行ない、Microsoft崩壊へのマジックを点灯させる。
そして、Microsoft帝国が崩壊すると、黄色いハッピ姿で、メガホンを持ち、
大騒ぎをしてビールかけをしながら、「絶対、阪神優勝!」と叫び
道頓堀に飛び込んで祝う。

  まさに、オカルトそのものの宗教だ。だが、この教典の便利なのは

  「Microsoft製品を使うな!」とは一切書かれていない。

  つまり、Microsoft製品を使っても教義に反することにはならないのらー!!


  そこで、今回は、私の体験談を交えて、Microsoft製品を触る事によって
Linuxなどの勉強になった話を書く事にしました。

マイクロソフト嫌いになった経緯

さて、本題に入る前に、私がMicrosoft嫌いになった経緯を簡単に説明します。
Microsoft嫌いになった経緯
  MS-DOS時代は、Microsoft嫌いではなかった。
  学生時代、MS-DOSに一太郎Ver4.3。あれは最高のコンビだと今だに思う。
  安定しているし、使いやすかったのを覚えている。

  Microsoft嫌いになったのは、WindowsNTやWindows95の登場になってから。

  安定性は悪くなった。自宅にあったパソコンは、Windows95。よく固まった。
  大学4年の時、大学の計算機センターのシステムが、サーバーがWindowsNTになった。
クライアントはNTworkstation。
  遅い、重い、しかも固まる。時々、サーバーがダウンで使えない。
  それに比べて、研究室のUNIXは固まらない。もちろん落ちない。

  この時に、WindowsNTに対する強烈な不信感が芽生える。
  そして、会社のIT担当者になってからも、深く影響している。

  Microsoft嫌いに拍車をかけたのが社会人になってから。
  仕事でWindowsのパソコンを使う。ワード、エクセルなどを使うが、
資料作成中に「不正な処理」と出て落ちたり、固まると、ムカつく。

  私ならまだしも、オジサン達が慣れない手つきで、一生懸命、文章を作成して、
完成間際で固まると、相当、ショックになる。見ている方も辛い。
  また、女性事務員さんで「自分が悪い」と思い落ち込んでいる姿を見ると
Microsoftに対して怒りを覚える。

  サポートセンターに電話しても、対応に誠意が全くない。
あまりにも無責任なため、ぶち切れて、延々、怒鳴り散らした事もあった。

  まだ、ソフトという製品が、自動車のように、トヨタじゃなくても、
ホンダや日産という選択肢があれば、ここまでMicrosoft嫌いにはならない。
  しかし、OSは独占。文章作成ソフトは互換性を考えれば、
どうしてもワードやエクセルを使わざる得ない。選択肢がない。
  事実上、ワープロソフト関連も独占状態だ。
  独占をいい事に、平気で不良品を押し付ける態度が気に食わない。

  その上、PL法対象外を悪用して、品質向上という義務を怠りながら
「著作権」という権利ばかり主張しているMicrosoftの態度が気に食わない。

  さて、私がMicrosoft嫌いになった経緯を説明した所で、今回の本題である
「Microsoftから塩を取る」に進みたいと思います。
  ガメツクMicrosoft製品を触ることによって、Linuxの勉強に役に立てましょう!

マイクロソフト製品を触ろうと思ったきっかけ

以前、私はBLUEのMLで、Microsoft製品を、キン肉マンの主題歌に例えて 走る、すべる、見事に転ぶ♪ と投稿したり、平気で不良品とか欠陥商品と書いていた。 今も、それは変らないけど (^^;; 転機が訪れたのは、2001年5月だった。 BLUEのMLに「Microsoftに物申す場があれば」と書いた時、 たかはしもとのぶさんに、JWNTUGのOpenTalkを紹介してもらった。 実は、この時、たかはしさんが何者か知らなかった (^^;; 後で、Sambaユーザー会の副代表で、Windowsネットワークの第一人者であり UNIXにも相当造詣が深い、とんでもなく凄い人だったのを知った (^^;;; 早速、2001年6月、大阪で行なわれたOpenTalkに参加した。 ネットワーク部門の席に座った。隣に、たかはしもとのぶさんがおられた。 トークが始まったが、話の内容についていけない。 私の頭の上を、知らない用語がポンポンでてくる。 SP(Service Pack)って何? コンポーネントって何? その他、私の知らない用語が飛び交い・・・ 完全に私の頭は破裂していた (@_@) 己れのMicrosoft製品に対する無知さを、嫌でも自覚させられる場になった (^^;; トークが終わり「こりゃ、Microsoftに物申すができへんなぁ」と思っていた時、 たかはしさんに「知らないのに、批判するのは、やめておいた方が良いですよ」 と言われた。 確かに、たかはしさんの、おっしゃる通りである。 そこは素直に受け止める私。そして、次のように思った。 MS製品に詳しくなれば、反MS発言に説得力が増す! そういう意味では、たかはしもとのぶさんは、私を、よりタチの悪い事務員に 成長するキッカケを作ってくださった恩人になる。感謝、感謝 m(--)m OpenTalkに参加しているMicrosoftの人も、キチンと話を聞いてくださる上、 JWNTUGのニューズレターを読んでいると、決して、Microsoftびいきではなく、 物の良し悪しを客観的に書いている記事だ。バランスがとれているため、 それ以来、OpenTalkが気に入って、毎回、参加するようになった (^^) なんと言ってもOpenTalkの際に出たタダ飯、タダ酒は最高だった。 そして、余ったビールを鞄の中に詰め込んで、おみやげに持って帰った。 これこそまさに・・・ ガメツクMicrosoftを利用する方法だ! なのだ (^^)V ← ただのハイエナやろ!

マイクロソフト製品の勉強。その前に・・・

しかし、困った事に、Microsoft製品を勉強するのも、できない状況にあった。 その理由は・・・ 金がないのらー!! (TT) 笑うに笑えない話だが、切実な問題である。 何せ、会社では導入する予定のないシステムなので、予算なんぞ出るわけがない。 例え「勉強のために自腹を切れ」と言われても、安月給のサラリーマン。 仮に、キャリアアップという意味での将来の投資という目的があっても、 勉強よりも目の前の生活費を考えてしまう (TT) こうして、ズルズルと時が過ぎていった。 時の流れに身を任せ〜♪(テレサ・テン) さて「Microsoft製品に詳しくなって、反MSの発言に説得力を増す」という 目的を得たものの、Microsoft製品を勉強するキッカケはなかった上、 何から勉強して良いのかわからなかった。 その上、いくら反MSの御旗の下に、MSに抵抗する崇高(?)な理念があっても、 自分にとって直接的な利点がない。 利点がないと動かない私 (^^;;

ファイルシステムをキッカケにマイクロソフト製品の勉強の必要性を感じる

しかし、意外な所から、Microsoft製品を勉強するキッカケが出来た。 2001年12月、部長の家のコンピューターがおかしくなったと言う。 部長に「すまんけど、時間のある時、見てくれへんか」と言ったので、 私は「では、行きます」と答えた。 そして、部長の家を訪れて、コンピューターを見てみた。 ソフトの削除の時、アプリケーションの削除をせずに、フォルダーを削除したため、 動作がおかしくなっている。下手に触るよりか、再インストールする必要があった。 早速、再インストールを開始した。 ハードディスクの容量は3Gだったのだが、勝手にディスクパーティションができ、 2Gと1Gに別かれた。 なんで、2つに別れるねん(TT) Windows98の説明書を見ていると、ファイルシステムがFAT16の時、 2Gがしか認識しないが、FAT32だと認識する話が書いていた。 ファイルシステムって、そんな違いがあったのか! この時まで、ファイルシステムなど意識した事がなかった。 もちろん、Linuxをインストールする時も全く意識していなかった。 Linuxの場合、当時、ext2のファイルシステムを無意識に入れていた。 この時、Microsoft製品に、システムの事を教えられたなぁと思った。 この事をキッカケに、ファイルシステムを意識するようになった。 実は、Microsoft製品と、ファイルシステムに関する話は、これだけではなかった!! 2000年、会社で「Windows98にパスワードを設けられないか」という話があった。 早速、Windows98のコントロールパネルを開いて、パスワードを設定したが、 ノーパスワードでもログインできる。パスワードの意味がない・・・。 会社には「できない」と回答した。その謎が解けるまで、3年近くかかった。 謎が解けたキッカケは、2003年3月、社内のパソコンに、Windows2000Proを 入れてみた時だった。 ファイルシステムの選択で、FAT2と、NTFSの2つの選択枝があった。 そこで、私は、FAT32を入れてみた。 Windows2000Proの場合、UNIX系のOS同様、ファイルに所有者が設けられ アクセス制限などの設定ができる。 早速、自分の目で確かめる事にしたのだが、 一般ユーザーでも、アドミンファイルが自由にのぞける! この事実を目の当たりにした時、「なんでやねん」と思った。 そこで、試しに、NTFSで再インストールすると、うまくいった。 この時、わかったのが、FAT32だと、アクセス制限などができないが NTFSだとUNIXのようなアクセス制限などの制御ができる! この時は経験則として上のような認識を持ったが、2003年9月に 「システム奮闘記:その23」(危機管理体制強化!)を書いている時 ファイルシステムについてを少し調べる事になった。 ファイルシステムのアクセス制御に関して「パソコン技術体系2002 OS編」に 明確な答えが書かれていた。
FATとNTFSの違い
FAT FATには、ファイルの所有者やアクセス権を記録させる部分がない。
そのため、Windows2000Proであっても、FAT32を使えば、
アドミンのファイルを、一般のユーザーが自由にのぞくことが可能になる。
NTFS NTFSには、UNIX系のファイルシステム同様、ファイルの所有者や
アクセス権を記録させる事ができるため、機密保持ができる。

  3年かけて辿り着いたが、もし、Windows98にパスワードという話がやってきても
単に「できない」と言うよりかは、「システム的にできない仕組みになっています」と
回答した方が、相手も納得してくれる!

  ちなみに、「NTFS」の意味。
  「New Technology File Systems」から由来しているとか。

  確かに、MSが初めて、Windowsに対して、セキュリティー強化した
新しいファイルシステムである事は事実だからだ。
  でも、ふと思う。「MSよ、おめぇーはXENIXというUNIXを売ってたやろ!
単なる技術転用であって、別に新しい技術とちゃうやろ!
どこが新しい技術のファイルシステムやねん!」と突っ込みを入れてみる (^^)


  2001年12月に、FAT16と、FAT32のファイルシステムの存在と
違いを知ったのをキッカケにMicrosoft製品を勉強する目的が一つ増えた。

  Microsoft製品の勉強が、Linuxの勉強にも役に立つ!

  つまり、Microsoft製品を使う時に覚えた事が、Linuxにも応用できるからだ。

  例え、反MS発言に説得性を持たせるという崇高な理念(?)を掲げても、
勉強するための動機づけという意味では、あまり強くはない。
  そのため、勉強した所で、3日坊主で終わってしまう!

  それよりも

  ガメツクMS製品を利用する方が、現実的で利点もある (^^)

UNIX派もWindows派もお互いの技術を知るのが大事

2001年9月。 雑誌「日経オープンシステム」のプロフェッショナル仕事を語るの欄を見る。 その月の技術者は、たかはしもとのぶさんだった。 記事を読むと、普通の人には真似のできない凄い事が書いてあった。
私が凄いなぁと思った内容
心情的には私もUNIX派だったのですが、水掛け論には賛成できません。
冷静になってWindowsの良いところも認めた上で、Windowsのどこが悪いのか
UNIXのどこが良いのかを、Windows文化の人にも分かるように
説明しなければいけない。そんな想いからWindowsの技術も深く習得しようと
心掛けました。

  UNIX派の、たかはしさんだが、冷静にWindowsの良し悪しを見極める。
なかなか普通では真似のできない事だと思う。

  私のような普通の人間は、エクセルが固まると「おのれ、MSめ!」と思うし、
相変わらず「悪の権化のMS帝国」と言っている (^^)

  さて、この記事で、たかはしさんは非常に的を得た指摘をしておられる。

たかはしさんの的を得たご指摘
UNIX文化の人は「Windowsはアーキテクチャが洗練されていないし、
不安定だ」などとWindowsを毛嫌いしますし、Windows文化の人も
「UNIXは古いから駄目だ」とばかり言っている。
でも、実はほとんどの場合、両方のOSを深く分かって言っているわけではない。
これでは水掛け論にしかなりえません。

  確かに、そうかも知れない。
  両方に関して深い知識があれば、両方を比較しながら、何が問題点かを
指摘できるため、説得力が増す。
  だが、そうでない場合は、悪口合戦の域を越えられない。

  ふと、論語を一節が頭をよぎる。

  「君子、和して同せず。小人、同じて和せず」

  まさに、宗教論争が起るのは、小人同士の争いかなぁと思う。
  まぁ、中には、両方の技術をわかっていて、わざと扇る方もおられるが・・・。

  だが、宗教論争を起こすのは、片一方だけを理解している場合だけではない。

  私は、Linuxすらロクに知らないのらー!!

  そうなのです。
  Windowsはもちろんの事、自分が触っているLinuxですらロクに知らないのだ。
  2001年当時はもちろんの事、今でも、Linuxを深く知っているかと聞かれると

  知らない事だらけ (^^)V

  となる  ← 自慢してどーする (^^;;


  ただ、この記事の内容で疑問に残る事がある。
  Windows文化の人がUNIXを批判する部分だが、私自身は聞いた事がない。
  アンチMicrosoftや、UNIX系の人が「Windowsはダメだ!」というのは
よく聞く話なのだが・・・。

  世界は広いので、単に私が出会っていないだけだと思う。もしかしたら・・・

  偉大なるゲイツ閣下に栄光あれ!

  という熱狂的なWindowsの信者もいるかもしれない。

JWNTUGに参加。マイクロソフトの社員の本音

JWNTUGのOpenTalkに参加すると、普段は見る事ができない Microsoftの人達の本音を垣間見る事ができる。 2001年10月、JWNTUGのOpenTalkが大阪で行なわれた。 Microsoftの人が「なんで、うちばかりバッシングされるんや。 OSならわかるが、データベースまで言われる。データベースは オラクルやろ」とボヤいていた。 私は口には出さなかったが「そりゃ、アンタ、OS以外にも、アプリなど 支配しようとしているし、データベースの分野にも攻めとるやろ。 Microsoftは帝国を作っているやん。誰だって脅威は感じるで」と思った。 でも、OpenTalkに参加して、Microsoftの人の本音を聞いていると、 Microsoftアメリカ本社とユーザーの板挟みにあっている実態が垣間見える。
私の独断と偏見「Microsoft日本法人の人達」
  日本が世界で2番目に大きな市場ということで、そこそこ自治権がある。
  しかし、プログラムソースの改良などの権限が全くないので、
不具合があれば、アメリカに報告するしかない。
  だが、アメリカ本社の連中は、自己満足を満たすための機能追加は行うが
不具合対策については、やる気なし。
  怠慢な米国本社と、ユーザーとの間の板挟みに苦しむ日本法人の社員。

  なぜ、そんな板挟みになるのがわかっていてMicrosoftに入るのか。
  まずは、給料が良い! なんと、大卒新人の年俸が私より遥かに多いのら!
  そして、Microsoftの人の話を聞く限り、自分のやりたい事を
結構、自由にさせてもらえる。つまり、やりがいのある職場だという。

  まだ、今みたいに日本法人が大きくなる前は、夜中にエア─ガンを持って、
社内でサバイバル・ゲームをしたりするなど、楽しい職場だったとか。

  色々、話を聞く限り、いつ寝ているのかわからない激務な人達が多いが
それでも辞めないというのは、やりがいがあるのだろうなぁと思う。



  2002年5月、JWNTUGのOpenTalkが大阪で行なわれた。

  同じテーブルの人が「Linuxは脅威を感じるか」をMicrosoftの人に聞いていた。
  Microsoftの人が困惑していたので、私が助け舟を出した。
  「脅威ではなく、良い意味での競争相手であるべきでしょう。
どっちも競争すれば、ユーザーは良い物を使えるからです」と言った。
  その後、なごやかに話が進んだ。

  Microsoftの人と話を聞いて思ったのは、オープンソースの良い部分を
素直に認めている点だと思う。
  アメリカ本社のNo2で、ザビエル頭のバルマ─は「オープンソースは癌」と
ホザいたのは有名な話だ。

私の独断と偏見「Microsoft日本法人とオープンソースについて」
  Microsoft日本法人の人は、アメリカの連中と違い、大人の態度をとっている。
「オープンソースは、ソフトウェアの寄生虫」とホザくアメリカ本社だが、
日本法人の人達は「争いはしたくない」と言っている。

  もちろん、本音には、不毛な争いを避けたい気持ちもあるが、
それだけでなく、Microsoftの社員で、元UNIX技術者や、Linux関係者までいる。
  色々な人がいるため、Microsoft日本法人が、宗教色に染まっていないようだ。
  むしろ、オープンソースの素晴らし部分を素直に受け止めていると思う。

  ところで、Microsoft日本法人のWebサイトは律儀にもIISを使っている。
  しかし、Netcraft社のサイトで調べると、Microsoftのアメリカ本社は
FreeBSDで、Apacheを使っている実態を発見。Linuxを使っている話もある。

  かなり矛盾した所があるが、アメリカ人は日本人には理解しがたい
思考回路を持っていて、便利な物だったら、自社製品を使わずに、
ライバルの製品を使うことを平気で行なう。
  1990年頃、日本の自動車がバッシングにあった時も、
アメリカの自動車会社のトップ達が乗っていた自動車が、
実は日本車だったという話がある。

  「自分が使いたくねぇ物を売るな!」と言いたいが、商売のためなら
平気で粗悪な物を売って、自分だけはライバル社の良い物を使う。
  その辺りが日本人の理解を越えたアメリカ人の思考回路だと思う。

LANで覚えたLinuxとWindowsの共通点

さてさて、話をMicrosoft製品をガメツク利用する事に戻します。 2002年9月、役員のパソコンが天へ召されたため、買い換えた。 この時、初めて会社に、WindowsXP搭載のパソコンが入った。 しかし、質問されても、私自身、WindowsXPは触ったことがないので答えられない。 オマケに社長が自分のパソコンを新しく買い換えた。それも、WindowsXP 「混乱するから、やめてくれー!」と叫びたかったが、止む得ないので、 会社でWindowsXPの入門書を買ってもらい、勉強する事にした。 LANの設定部分を読んでいた時だった。 この時、初めてLANのケーブルに2種類ある事を知った! クロスタイプとストレートタイプの事だった。 もちろん、この時、初めて、2種類のケーブルの違いを知る。 これに関する失敗談はあった。だいぶ前に、社長室に呼ばれた。 社長が「わしのノートとデスクトップとの間でデータ転送したいんや」と 言ったので、私はLANケーブルを持ってきて下図のようにつなげた。
2台のパソコンをつなげた様子
2台のパソコンをつなげた様子

  早速、データ転送をやってみたが・・・

   つながらへん  (TT)

  これを見た社長が、苦笑いしながら「もっと勉強せんとアカンなぁ」と言った。
  この時、原因を考えたら、ハブを使っていないのに気づいた。
  そこで「2台のパソコンをつなげるのに、ハブが必要」を思った。

  そして、月日がたって経ってから、WindowsXPの本との出会いで、
クロスタイプのケーブルを使うと、LANケーブルだけで2台のパソコンを
つなげる事ができる事がわかった。

  早速、クロスタイプのケーブルを買ってきて、2台のパソコンをつなげてみた。

2台のパソコンをつなげた様子

  見事に通信ができた!!

  LANケーブルには、クロスタイプとストレートタイプの2種類がある事を知り
その上、2つの役目の違いも知った。

ストレートタイプとクロスタイプの違い
ストレートタイプは中の配線が
文字通りストレート
クロスタイプは配線が中で
クロスしている。

  WindowsXPの本を読まなかったら、この違いは、今でも、わからなかったと思う。
  それにしても、2種類ある事を知らずに、私は、LANケーブルを買っていたが、
全く問題が起らなかったなぁと不思議に思う。

  もちろん、私だけでなく、上司がLANケーブルを買う事もあったが、
不思議とトラブルがなかった。
  上司に聞いてみた所、上司曰く「以前、ストレートかクロスかの違いを
見た事があったなぁ。クロスの方が値段が高かったので、
安い方のストレートを選んで買ったなぁ」だった。

  上司も私に負けていないのらー!

Sambaを知るにはWindowsの知識が必要

2002年11月。西宮でLILOのセミナーが行なわれた。 日本Sambaユーザー会の副代表の小田切さんの「Samba」の講演だった。 ここでも、私は、己れのWindowsの知識のなさを嫌ほど知る事になった。 講演の内容は、わからない事だらけだった。講演の資料のメモを見ていると 「WINSサーバー機能」の横に、赤ペンで「UNIX版DNS」と書いていた。 「マスタブラウザ機能」の横に「ネットワーク接続の」と赤で書いているが、 メモが取りきれなかったため、その後が書かれていない。 もちろん、当時の私に、PDCや、ActiveDirectoryなんぞ、知るわけがない。 チンプンカンプンのまま終わってしまった (^^;; Windowsを知らないとSambaの導入ができない・・・ この時「Windowsの勉強しないと、OSSの導入や普及の妨げになる」と思った。 うーん、なんだか哲学っぽい感じがする。 ミーハーな私は、セミナーの記念品として、小田切さんの名刺を頂いた (^^)V  私がSambaを使ってNTドメインを構築したのは、2011年だった。  詳しくは「システム奮闘記:その92」(Samba + OpenLDAPの設定入門 ) 再び、JWNTUGに参加するが、開発の話で呆然とする 同じ時期に、もう1つ、私がWindowsの知識のなさを嫌でも知る機会があった。 大阪で行われたJWNTUGのOpenTalkだった。私は「スキルアップ」の席に座った。 ここなら、Microsoft製品の濃い話は出てこないだろうと思ったが、 ところがどっこい、Microsoft製品の話や、開発キットの話など出てきた。 そうなると、私は手も足も出るわけない! ビールを飲んで、つまみを食べて時間を潰すしかなかった。 私に、VB(Visual Basic)や、VC(Visual C)の話はできるわけがない。 そこまで触る能力があれば、今頃、技術者になっていまーす (^^)

Windowsネットワークは覚える必要がある

Windowsに無知な私。1つの転機が訪れた。 2003年1月だった。それは、ルーターの設定の勉強をする時だった。 「NetBIOS over TCP/IP」が出てきた。 一体、これって何やねんという感じで勉強をする事にした。 すると、Windowsのネットワーク共有フォルダーの通信に使われる プロトコルだという事を知った。 ネットワーク共有は設定を行うのは誰でも簡単にできる。 単にマウス操作で「共有」を選べば良いからだ。
共有フォルダー
他者は閲覧のみ、書き込みという設定ができる。
手をさしのべる絵が、いかにも共有というイメージを持つのは私だけかなぁ?

  だが、本格的に勉強しようと思ったら、泥沼にハマる。

  Windowsは見た目の操作性だけで簡単と思いがちだが、実は奥が深い。

  Windowsのネットワークのバイブル書と呼ばれる次の本と睨めっこ。
  「アンドキュメンテッドMicrosoftネットワーク」(高橋基信:翔泳社)

  この時、本を読むための前提となるネットワークの知識やWindowsの知識が
乏しいため、本の理解がなかなか進まなかった。
  四苦八苦の末、今までわからなかったWINSサーバーの役目とかがわかった。

  そして、マスタブラウザーやブラウジングの話を勉強した事によって
Windows98の「ネットワークコンピューター」のアイコンを叩くと
ネットにつながっているパソコンが表示される仕組みがわかったりする。
  また、ネットにつながっているはずのパソコンが表示されていなかったり、
逆に電源を切っているパソコンが表示されているトラブルの原因も
見えてきたりする。
  この知識は、Windowsパソコンが多い社内のLANの管理に役に立つ。

  この話をまとめた物が「システム奮闘記:その17」になった.
 (Microsoftネットワーク入門)

 その後、SambaでWINSやファイルサーバーの構築の下地になっただけでなく
ルーターのパケットフィルタリングの設定などの面での勉強にもなった。

  色々な関連事項を勉強していけば、知識の幅が広がる!

Windowsでサーバー構築とライセンスについて

2003年3月、システム開発用のパソコンを買ってもらった。 早速、LinuxとWindows2000proのデゥアルブートの設定にした。 次の本も買ってもらった。 「Windows XP/2000 インターネットサーバー構築ガイド」(安井健治郎:MYCOM) Windows XP/2000 professional版を使ってサーバー構築する本だ。 Microsoft嫌いだが、Microsoft製品で遊ぶのは嫌いでない私。 早速、本を開いて触ってみる事にした。 IISを使ってWebサーバーを起動させたりした。 七転八倒を特技としている私にとっては、容易にIISの設定できるため、 不気味な感じがした。 まぁ、Linuxを導入した2000年と違って、ある程度のネットワークの知識が 身に付いているので、その違いもあると思う。 本には同時接続は10と書いてあった。 中小企業で同時接続が10を超える場合は少ないと考えた私は、 費用をかけないIT化ができると思った。 「中小企業のIT化にクライアントOSのサーバー利用」という題目で クライアントOSもサーバー利用の話ができるなぁと思った。 だが、そうは簡単に問屋は卸さない事がわかった。 実は、クライアントOSでサーバー使用する際のライセンス問題がある。 2003年4月1日はエープリールフールなので、私は、ここぞとばかりと思い 「Windwos好き事務員にくら替え」でBLUE-FREEのMLに投稿した。 私は「Windows好き事務員というライバルが出現するかなぁ」と書いたら、 まいパパさんが「ライセンス的な問題がありますよ」と指摘してくださった。 この時、私は前もって同時アクセスの問題を知っていたので 「同時アクセスは10までというの知っていますよ」と投稿したら、 たかはしもとのぶさんがJWNTUGのニューズレターの 「間違いやすいクライアントOS」を紹介してくださった。
たかはしもとのぶさんのニューズレター(2002年4月25日号)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Column] 間違いやすいライセンス (5) - クライアントOSのサーバ利用
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

昨今マイクロソフト社のライセンスは複雑度を増している。そこでこの
コラムでは、特に間違いやすい点について記述していきたい。

今回は、よくあがる話題として、Windows 2000/XP Professional もし
くは Windows 9x などのクライアントOSをサーバとして利用する場合の
注意点について説明する。

まず、意外なようだが Windows 9x 系の OS については、サーバとして
利用することに特に制限はない。EULA をみると「ネットワーク サービ
ス」という項に

-----
ソフトウェア製品が ... ネットワークサーバーとして機能させる機能
を有する場合、... 何台でもそのサーバーの基本ネットワークサービス
を呼び出しまたは利用することができます。
-----

という記述があり、これ以外特に制約事項などの記述はない。ライセン

バー利用も含め、許可されているという見解である。

一方 Windows NT Workstation については、明確にサーバー利用が禁止
されている。その項が以下である。

-----
お客様は、... サーバーソフトウェアとしての使用のためにインストー
ルすることはできません。
-----

大変紛らわしい表現だが、マイクロソフト社の見解によると、サーバー
として利用することは、一切禁止という見解である。なお、この後に

-----
ただし、お客様は ... 本ソフトウェア製品のサービスを呼び出し使用す
るため、最大 10 台のコンピュータから ... 接続することができます。
-----

という表現があるため、10台までのクライアントであれば、サーバーと
して利用しても構わないという解釈にもみえる。しかし、10台というの
は、PWS やファイルサーバ機能などの「本ソフトウェア製品のサービス」
を利用する際の上限であるというのがマイクロソフト社の解釈である。
つまり OS に付属するサーバサービスの利用に関しては、10台までのク
ライアントを上限に認めるが、サードパーティのサーバソフトウェアを
インストールしてのサーバ利用は、一切認めないということである。

ただし、そもそも何をもって「サーバ利用」とみなすかという点にはじ
まり、この文面自体の解釈も含めて、この制約には非常に不明確な点が
多いのも事実である。

なお、Windows 2000/XP Professional では、文面が変更され、

-----
お客様は、... ファイルとプリンタの共有サービス、... のためにのみ
本製品のサービスを利用するため、最大 10 台のコンピュータ ,,, か
ら同時に本 ... コンピュータに接続することができます。
-----

となっている。より解釈が明確化されているともいえるが、依然として
解釈の曖昧さは残っている。

文面の解釈の妥当性に関する最終判断は、裁判を起こして裁判所の見解
を確認するしかないため、少なくとも当面は曖昧な点はそのまま残り続
けるだろう。

してもよいだろう。しかし、企業としてマイクロソフト社のサポートを
利用する場合などは、どうしても、無用のリスクを回避するため、曖昧
な部分は安全サイドに倒さざるをえない。

最近マイクロソフト社ではライセンス違反に厳しく対処していくとの方
針を打ち出している。しかしそうであれば、利用者がライセンス違反か
どうかを明確に判断できるようにするため、曖昧なまま放置されている
ライセンス条項の明確化を行なっていくことも強く要望したい。

                             (たかはしもとのぶ@NewsLetter-Staff)

  Microsoftの表現が、わかりにくいというのか、まどろっこしい!
「アメリカは白黒ハッキリさせる文化やろ!  ハッキリしろ!」と言いたくなる。

  ニューズレターを読む限り、Windows9X系のクライアントOSには
サーバー利用の制限はない。WindowsNTのクライアント版は、
サーバー利用禁止になっている。
  が、しかし、Windows2000/XPに関しては表現が曖昧だという。


  そこで実際に、どういうライセンスになっているのか自分の目で
確かめるため、ライセンスの事が書かれたEULAファイルを見てみる事にした。

Windows2000ProfessionalにあるEULAの内容
(C:\WINNT\system32にあります)
・インストールおよび使用
お客様は、本製品のコピー 1 部を ワークステーション、ターミナル、
またはその他のデジタル電子デバイス 等の 1 台の特定のコンピュータ、 
(以下総称して「ワークステーション コンピュータ」といいます) に
インストール、使用、アクセス、表示、または実行することができます。
お客様が Microsoft License Pak によって本契約書を取得した場合、
本製品の追加コピーを本契約書上部に印刷されたライセンス数まで
インストール、使用、アクセス、表示、または実行することができます。
1 台の特定のワークステーション コンピュータ上で、いかなる時点においても
本製品を 2 プロセッサを超えて使用することはできません。
お客様は、10 台のコンピュータまたはその他の電子デバイス
(以下それぞれを「デバイス」といいます)を限度としてワークステーション 
コンピュータに接続し、ファイルおよびプリントサービス、
インターネット インフォメーション サービス、ならびに
リモート アクセス サービス(接続の共有およびテレフォニー サービスを含む)
のためにのみ本製品のサービスを呼び出し利用することができます。
直接本製品のサービスを呼び出し、あるいはこれを利用することのできる
接続数を減じるソフトウェアあるいはハードウェア
(マルチプレキシング、またはプーリング等と呼ばれることがあります)を
利用する場合であっても、間接的な接続数が上記の10 台という制限を
越えてはならないものとします。
お客様は、ワークステーション コンピュータ上のその他の実行可能な
ソフトウェアを、デバイス上で使用、アクセス、表示、
または実行するために本製品を使用することはできず、
またデバイス専用に本製品のライセンスを有していない限り、
本製品のユーザーインターフェースをデバイスに表示することはできません。

  これを読んで思った事。わかったような、わからない文章。
  「もっと、わかりやすく書け!」と言いたくなる。

  もし、Windows2000Proでファイルサーバーを構築する場合は、
同時接続を10台までという意味なのか、それともサーバーに接続可能なマシンを
合計10台までなのか。

  他に「2プロセッサを超えて使用する事はできません」と書いているが
マルチプロセッサーのマシンだとライセンス違反になるのか。

  さて、内容には、Windows2000Proの初期状態で付属しているソフトを
使う場合のみ、サーバー構築するのをできるという風に受け取れる。

  IISなら使っても問題はないが、Apacheなどの他の無償のソフトなどは
ライセンス違反になる可能性がある。

  安易にサーバー利用を行うのは、恐い部分がある。

クライアントOSでのサーバー利用には、ライセンスの問題はあるが、 まぁ、社内で実験する分には問題ないだろうと考え、引続き、 Windows2000Proを触っていく事にした。 本の中で、ネットワークの説明が書いていた。 そこに、ループバックと呼ばれるIPアドレス「127.0.0.1」が書いていた。 私は、「127.0.0.1」が自分自身を表すIPだという事は知っていたが、 なんで、わざわざ「127.0.0.1」を設けているのか知らなかった。 というよりも何も疑問に思わなかったのだ (^^;; 本には次のように書いていた。
本の記述
ネットワークアプリケーションの問い合わせの中で、最も頻繁に行なうのは
自分自身に対するものです。この頻繁に行なう問い合わせをいちいち外に
問い合わせていては、ネットワーク上のデータ通信量をむやみに増やすだけです。
そこで、自分自身に対する問い合わせに対しては、127.0.0.1(localhost)に
行なうようにして、データ通信量を軽減しているのです。

  これを読んだ時、「なるほどなぁ」と思って納得したが・・・。
  よくよく考えるとパケットがLAN内を飛ぶ時、どういう時なのか?

  それに、わざわざループバックのIPを設けなくても、NICにつけるIPを使えば
問題ないはず。

IPアドレスとは
IPアドレスは、パソコンについているNICに割り振られるアドレスであって
パソコンそのものに割り振られるものではない。

そのため、NICがついていないパソコンは自分自身のIPすら持てない。
実際に、NICを外してRedHatなどをインストールしても、IPの設定は行われない。

  調べてみると、NICがついてないパソコンで、通信関係のソフトの
動作テスト等を行うためにあるIPのようだ。

127.0.0.1(localhost)とは
127.0.0.1(localhost)は、NICがないパソコンでも自分自身に対して
ネットワーク接続を行っているような振る舞いを見せる。

そのため、ApacheでWebサーバーを立ち上げて、CGIなどのテストの場合、
NICがついていないパソコンであっても、http://localhost/ という形で
動作テストを行う事ができる。

  今みたいに、NICが1000円ぐらいで購入できる上、LAN接続が当り前だと
ループバックの目的がわからないのだが、昔のように、NICが
数万円という高額なオプションな上、LANが当り前でない時代には
ループバックが必要だったようだ。


  Windowsの勉強のお陰で、ネットワークの勉強になった。

  次の事が言えると思う。
  WindowsとLinuxの共通部分がある。
  だが、Linuxの本には書いていない事が、Windowsの本には書いている事がある。
  このループバックは、その1例だと思う。
  もちろん、Linux関連の本でループバックについて触れている本は
あるかもしれないが、市場に出回っているLinuxの本を全て読めないし、
まさかLinux入門書の類を何冊も買う事もできない。
  そのため、Linuxだけ勉強していると見落としてしまう事がある。

  だが、Windowsの本を読むと、見落とした部分と出くわす事がある。
  Windowsの本を読む事で、見落としていた部分を発見するのを
確率的に増やす事が可能だ。

2003年7月19日を迎えた。 なんと私が三十路になったのら!! H2Oの曲「思い出がいっぱい」の替え歌を思い浮かべる。 オヤジの階段の〜ぼ〜る♪ 君はまだ、信じられないが♪ さて、私の年齢なんぞ、どーでも良いので、この日は「NT-Committee2」という Windows関係のコミュニティーのセミナーだった。 伊原さんが講師で「UNIXな人たちが知るべきWindowsのセキュリティー対策」 という題名だった。 話を聞いていると、実によくわかる (^^)V WindowsのIISを立ち上げる際に、問題のポート135がある。 ポート135はRPCが立ち上がっているため、サービスを停止させたいが IISとの依存関係のため、サービスの停止ができない。
IISとRPCサービスとの依存性

  そのため、Windowsサーバーについているパケットフィルタリングで
ポート135を閉じれば良い話をされていた。

IISとRPCサービスとの依存性の問題を解決する方法
Windowsについているパケットフィルタリング機能を利用して
ポート135を閉じてしまえば、RPCポートを狙った攻撃を防ぐ事ができる。

  他の話として、セキュリティーやバグ修正のためのソフトのHotfixが出ても、
すぐには使わず、数日経った後に、人柱の結果、大丈夫だとわかった時点で
使う話もされていた。

  参加する前は、Windowsの話だから、チンプンカンプンかと不安に思いつつ、
勉強会に参加したのだが、実にわかりやすかったので、面白かった (^^)V


  だが、この時は「WindowsはRPCサービスの問題があり危険だなぁ」と思った。
  それから1年半後の2005年1月に、LinuxにもRPCサービスの問題がある事を知る。

  全然、伊原さんの話を生かせなかった事が発覚した!

  しかも、LinuxのRPCサービスの脆弱性を突くRamenワームが2001年に出ていたのだ。
  ガメツクMicrosoft製品を勉強するのは、難しいなぁと思った (^^;;


ところで、伊原さんの講義は、UNIXな人たち以外だけでなく、 是非、ニセWindowsな人達も受けるべき講義だと思った。 実は、2002年の秋に、こんな話があった。 うちの会社で、電話での注文だと営業事務の効率が悪いので、 FAX-OCRを導入して、FAX注文に移行させて、営業事務の効率を 上げる計画が出た。 そこで、FAX-OCRのシステムを構築のために、R社に外注する事になった。 R社からは、Windows2000サーバーが提案された。 以前なら、無条件で拒否反応を出す所だが、不毛な争いよりも 現実的に導入する上で、まずは発生しうる問題を浮き彫りにして、 解消をはかるために、まずは、サーバー管理の問題を出した。 ここから驚愕の連続だった。 R社の技術者は「我々はプロなのでお任せ」と偉そうに言っていたが 私が「サーバー管理は誰がするの?」と当り前の質問すると、 「どうして、管理する必要があるの?」というマヌケな回答が返ってきた。 もし、何かの拍子に起こる不具合などの対応は必要な上、 LANに接続する以上、全くセキュリティー対策をしないわけにもいかない。 しかも、ベンダーの人からは「今の時代、LinuxやWindowsなど 色々なOSを触れないといけない時代でしょう」と無責任な発言まで出てきた。 私は「アンタら自身は、そこまでできるんか!」と思った。 システムの管理面の問題を考えた場合、色々なOSが乱立すると、 余程の能力がない限り、1人ではカバーできるわけがない。 もちろん、私自身、そんな能力はないし、あったとしても、 事務の仕事もあるため、サーバー管理だけに専念できない。 ここで当り前の事を言いたくなる。 ベンダーよ! Windows技術者と名乗るなら、Windowsの勉強をしろ! 幸い予算の都合で、システムの導入は見送りになった。 だが、あまりにもベンダーの対応の酷さが感じられる。 正直な所、ベンダー名と担当者名を実名で公表したいと思うぐらいだ。
ニセWindows派は百害あって一利なし!
  Windows技術者と名乗りながら、ロクにWindowsの事がわかっていない
ニセWindows派が目立つと感じる。

  表面上の操作性や設定方法を覚えただけで「Windowsを理解した」
と思い込み、客先で「Windowsは簡単」というから困ったものだ。
  「強いWindowsの基本」(伊原秀明:翔泳社)を読めと言いたくなる。

  この本を読めば、Windowsのシステム管理の最低限の事を
行うだけでも、キチンとした知識が必要だという事がわかるし、
安易に「Windowsは簡単」という発言はしなくなると思う。


  中小企業で、管理者不在のサーバーや、管理しきでずに放置されている
サーバーの問題が話題になったりする。
  これらの原因は、ニセWindows派のベンダーが大きいと考える。
  ニセWindows派が客先で「Windowsは簡単」と言ったり、
ひどい場合には「特に管理する必要がない」と言う事もある。
  その言葉を真に受けた中小企業が犠牲になるという図式だ。

  中小企業にサーバー関係の話がわかる人がいれば、
ニセWindows派の言う事に反論できるのだが、そうでない限り、
ベンダーの言う事が正しいかどうか、確認しようがない。
  そのためニセWindows派の「Windowsは簡単」という口車に載せられて、
安易にWindowsサーバーを導入してしまうのが実態ではないかと考える。


2003年といえば、もう1つ、Microsoftをガメツク使う方法を発見した。 その頃、システム奮闘記は、ネットワークネタばかりを書いていた。 自分自身、ネットワークの話がわかり始めたからだった。 google先生で検索すると、TechNetのサイトが出てきたりする。 最初は「Microsoftのページなんか誰が見るねん」と思っていたのだが、 TCP/IPの話は、WindowsでもLinuxでも共通部分は多い。そのため 無料で閲覧できるTechNetを見るようになった。 結構、TechNetの情報は、googleに引っかかる。反Microsoftの私なのだが、 相手が無償で提供する情報は、しっかりと利用するようになった。 利用できる物は利用する。 これこそまさに「敵の塩を奪う」にあたる。 パラサイトできる物は、とことんパラサイトしよう! という訳で、ガメツクMicrosoftを利用する精神にのっとった私は、 個人用のメールアドレスは、しっかりとMicrosoftのHotmailを 使っているのだ (^^)
2004年の初め、SambaでWINSサーバーを構築した。 同じ年の8月に、ファイルサーバーを立ち上げるため、Sambaを使った。 詳しくは「システム奮闘記:その28」(SambaでMicrosoftネットワーク制御)と 「その34」をご覧ください。(Sambaでファイルサーバー構築) SambaはWindowsの知識がないと構築できないサーバーなのだ。 オープンソースを使うため、Windowsを勉強する! そして、オープンソースを普及させるため、Windowsを勉強する! 奇妙な感じだが、Windowsの勉強をする利点だと感じる。
2004年5月、Postfixのお勉強を行う。 その時、メールのお勉強のついでに、Windows2000Proのマシンに メールサーバーソフトを入れてみる事にした。 サーバーソフトには、無償のArGoSoft Mail Serve を入れてみた。 http://www.argosoft.com/からダウンロードできる。 実際に設定してみると、GUIで操作できるので、非常に簡単。
ArGoSoft Mail Server の設定方法
(1) DNSサーバーの記入
(2) メールの中継の許可をする
(3) メールアドレスのドメイン部分を記入

  詳しくは「システム奮闘記:その32」をご覧ください。
 (Postfix入門 メールサーバー構築

  まぁ、メールの配信の仕組みを知った後なので、どこをどう設定すれば
良いのかがわかるため、スムーズに設定できたと思う。

  ふと思った。
  LinuxでもWindowsでもサーバーソフトの動作の仕組みを知っていれば
どっちが簡単かという議論は無意味ではないか。

  Linuxに詳しい人が、Windowsにも詳しかったりするのは、
共通部分をしっかり理解しているのではないか。

  私でもWindowsでサーバーを構築しろと言われると、そんなに構える事なく
構築できるのではないか。まぁ、管理しろと言われると言葉は詰まるが
まぁ、適当に設定を行うぶんには、難しくなさそうと思った。

2004年といえば、Windowsのアップデートの危険性を身に染みて 感じる年でもあった。 私のノートパソコンには、Windows2000ProのSP2が入っている。 SP4をインストールすると、どうなるのか試してみた。 すると・・・ 操作中に、いきなりシャットダウンの画面が出てくる (TT) 操作中に「あと何秒でシャットダウンします」という画面が出てくるのだ。 ウイルス感染かと思って、トレンドマイクロ社の無料チェックを行うが 感染している様子はない。 また、Etherealなど立ち上がらなくなったソフトも出てきた。 この時、初めてコンポーネントの依存性の問題を体験した。 この時は、コンポーネントが何かがわかっていなかったのだが、 下手にSPやHotfixを入れたり、新しいソフトをインストールする際に、 ファイルの更新を尋ねられたりした時に、何も考えずに「更新」をしてしまうと、 トラブルが起こる要因になる事を経験的に学んだ。 それ以来、ソフトをインストールする時に、ファイルの更新の 問い合わせがあっても、更新しない事にしている。 この手の問題は、WindowsXPになってからは「システムの復元」の登場で、 解消される方向にはなってきているが、「システムの復元」を知らないと この手のトラブルはなくならない。 Windowsパソコンが「マニア向け」というのであれば、ユーザーに勉強を 求めるのも理解はできるが、誰でも触れるを前提にしているだけに トラブルがないようにしてもらいたい。 それにトラブルが起こるのを防げないのであれば、キチンと 一般ユーザーにもわかるように説明すべきだと思う。 PL法は製品の欠陥だけでなく、説明書の中身の善し悪しまで及ぶ。 わかりにくいのは、Microsoft製品だけではない。 他社のソフトでも、インストールの説明を端折っていたりする場合がある。 一般ユーザーは、説明書と違う画面が出ると混乱しやすい。 ソフトがPL法の非対象外だからといって、説明書をわかりにくいままにするのは、 如何なものかと思う。 コンポーネントの依存性の問題とは、一体、何なのか。 2004年の段階では、私の頭では理解できなかった。 だが、2005年にLinuxでC言語を勉強していると、徐々にわかってきた。 C言語でプログラムを組み場合、関数という物を呼び出して、 色々な動作を行うプログラムを実現させている。 Linux(UNIX)の場合、カーネルが用意している関数群の事を システムコールと呼ぶ。 システムコールを組み合わせたり、他の関数を組み合わせたりして、 ユーザーに使い勝手を良くした関数群のプログラムの事をライブラリという。 特に、ANSI規格と呼ばれる規格に合わせたライブラリの事を 標準ライブラリ(libc)と呼ぶ。 そして、GNU版の標準ライブラリを、glibcと呼んでいる。 Linuxの場合、ソフトとライブラリやシステムコールの関係は 以下の図のようになっている。
Linuxの場合のライブラリとソフトの関係
Apache、Postfix、BINDなどのLinux上で動くプログラムは
システムコールと標準ライブラリを呼び出して動いている。

その図から、Apacheのバージョンを上げても、glibcに影響を与えたり
ましてやシステムコールに影響を与えるわけではないため、
各ソフトがバージョンを上げたからといって、他のソフトに
不具合が生じる問題が起こらない。

  さて、Windowsの場合はどうなっているのだろうか。

  Windowsの場合もUNIX系同様に、各ソフトが使うライブラリが存在する。
  コンポーネントとも言い、拡張子がDLLのファイルだ。
  そして、Windowsでいうシステムコールは、Windows APIと言う。

  用語の違いに「UNIX系に統一せんかい!」と思ったりするのだが、
それは横に置いておいて、Linuxの時と同様に図にしてみた。

Windowsの場合のコンポーネントとソフトの関係
コンポーネントやWindows APIの関数を呼び出して
ソフトが動作するのは、Linuxと同じなのだ。

  これだけだと、Linuxと変わらないようだが、Windowsの場合は、
ソフトのバージョンを変えると、コンポーネントのバージョンまで
変わってしまう所に問題がある。

Windowsの場合のコンポーネントとソフトの関係
仮に、IISのバージョンを上げた際に、IISが使っているコンポーネントの
C.dllファイルまでバージョンがあがったとする。
もし、IEなどの他のソフトが、C.dllを使っていたとすれば、
影響を受けるのは免れない。

それだけでなく、A.dllがC.dllの関数を利用している場合であっても
A.dllを使っているソフトも影響を受けてしまう。

上の図は単純に書いた図なのだが、実際には、ソフトだけでなく
コンポーネント同士も複雑に依存しあっているため、
1つのコンポーネントが更新されると、色々なコンポーネントに
影響を与え、それが予想もしないソフトに影響を与える事になる。

  ソフトのバージョンがあがったり、HotfixやSPを使うと、
コンポーネントが更新されてしまう問題があり、コンポーネントの更新により
ソフトとの相性が合わなくなった場合、不具合が生じる。
  これが不具合をもたらす仕組みになっているのだ。

  この問題の驚愕すべき点は・・・

  なんとMicrosoftでさえお手上げ状態なのだ!

  呆れる事に、Windowsの製造メーカーが、コンポーネントの依存関係について
全く把握できていないのだ。
  そのため、Microsoftは「Hotfixなどを使う場合は、テストしてください」
としか言わないのだ。


  もちろん、Linuxではライブラリの依存性の問題がないとは言わない。
  インストールするソフトが、他のソフトのライブラリを利用する場合に、
この手の問題が起こる。

  具体例を探すと次の例が見つかった。
  RedHat7.3のマシンに、php-4.2.2-17.i386.rpm をインストールする場合だ。

エラーの内容
[root@server]# rpm -ihv php-4.2.2-17.i386.rpm 
エラー: 依存性の欠如:
        httpd-mmn = 20020628は php-4.2.2-17 に必要とされています
        libc.so.6(GLIBC_2.3)  は php-4.2.2-17 に必要とされています
        libcrypto.so.4  は php-4.2.2-17 に必要とされています
        libdb-4.0.so  は php-4.2.2-17 に必要とされています
        libgcc_s.so.1  は php-4.2.2-17 に必要とされています
        libpng12.so.0  は php-4.2.2-17 に必要とされています
        libssl.so.4  は php-4.2.2-17 に必要とされています
        libstdc++.so.5  は php-4.2.2-17 に必要とされています

  PHPが動くために必要な各ソフトのライブラリがないため、
インストールができずにエラーが出た。

  つまり図にすると以下のような事が起こっているのだ。

Linuxでも起こるライブラリの依存性の問題
ソフトAとソフトBがあるとします。
ソフトBは、ソフトAのライブラリを使って動いているとします。

この場合、ソフトBはソフトAに依存した形になります。

  さて、上の図の条件でも、もし、ソフトAがインストールされていなければ
ソフトBは動かないのだ。  

Linuxでも起こるライブラリの依存性の問題
ソフトBは、ソフトAのライブラリを使って動くため、
ライブラリがないと、動かす事ができません。

RPMの場合、必要なライブラリが存在するのかをチェックし
もし、必要なライブラリが存在しなければ
「依存性の欠如」というエラーでインストールできない仕組みに
なっています。

  だが、必要なライブラリがインストールされていない場合は
インストールすれば良いし、ソフトのインストールをRPMではなく
ソースコンパイルを行えば、ライブラリなどの状態をチェックしてくれる上、
ライブラリに合ったようにソースをコンパイルしてくれる。
  それに、UNIX(Linux)の場合、土台となる標準ライブラリは
ソフトの更新だけでは変わらない。

  だが、Windowsの場合だと、必要なコンポーネントを補充という
単純な問題ではなく、ソフトの更新の際に、コンポーネント自体が
更新されてしまう。つまり土台が入れ替わるために、一見、全く関係のない
ソフトに影響が出たりするのだ。


  さて、Windowsがこんな仕組みになったのか、その利点は何なのか。
  正直な所・・・

  わかりませーん (^^;;

  なのだ。
  メリットの部分を調べたりしたのだが、何せWindowsでソフト開発等の
経験が全くないので、資料などを見てもイマイチ理解できないので
説明もできない。


  ただ、次の事は言える。

  安易にバグフィックスなどを行うと、コンポーネントの依存性の問題により、
ソフトの動作に不具合が生じる場合がある。
  そのため、Windowsは簡単だと主張するベンダーは、ユーザーに対して
この問題を説明した上で、システム管理は簡単と言っているのだろうか。


  さて、Windowsの勉強をする事により、Windowsの問題点を知るだけでなく、
LinuxとWindowsを比較ができるようになる。
  そして、UNIX(Linux)のソフトの依存性の問題も見えてくる。
  これは大きな事だと思う。

Microsoft製品を触って勉強をしていくと、「平和的に拒否」という姿勢が 自然体で、とれるようになる。 2005年1月、BLUEのMLで次のような投稿をした。
私が投稿した内容
 菅@Linux好き事務員です。

 こんばんわ。

> 『Linuxとのセキュリティ対決でWindows Server 2003が勝利』
>  http://itpro.nikkeibp.co.jp/free/NT/NEWS/20050221/3/

 こんな事を書けば、みもふたもないのですが、
「Linux VS Windows」のセキュリティー勝負は、
システム管理者の力量に左右されるため、勝負つかず!

 私の場合は「Windowsは、全く、わかんなーい (^^) 」なので
「下手に、Windows update したら、ソフトの依存性のため、
アプリが使えなくなるのが恐くて、何もできないよ〜」とか、
「レジストリは恐くて触れないよ〜」とか「netshコマンドで、
ファイヤーウォール設定したら、パケットが飛ばなくなったよ〜(TT)」
などと答え、ボロボロのWindowsサーバーにしますと言い切ります。

#Linuxだとキチンとできるのかと言われると、答えに詰まりますが・・・。

 もし、私に「Windowsの方が上だよ」と売り込みがあれば、
アルプスの少女ハイジのように「教えて、おじいさん♪
教えて、おじいさん♪」という感じで、根掘り葉掘り聞くでしょう。

 どこのSIでも良いから、Windowsを売り込みに来ないかなぁ。
 以前みたいに、反MSのイデオロギー的な部分で反論する気はなく、
素直に「私、Windows、わかんなーい」で応対するだけだから (^^)

  Microsoftに有利な記事が流れても、以前みたいに「打倒!Microsoft」という
革命の闘士(?)の面影はなく、すっかり私の頭は平和ボケした世界になっている。

  「打倒! Microsoft」のスローガンを掲げるよりも、平和にアルプス山脈を
連想しながら、ハイジ、おじいさん、ぺーター、ヨーゼフ、クララが
仲良く遊んでいるシーンを思い浮かべる。

  Windowsサーバーが見事に立ち上げれば「クララが立った!」と言って
喜ぶ心境になったと思う。
  自分自身、賢くなったのか、アホになったのか、悩んでしまう (^^;;

Windowsのサーバー管理は簡単か?
WindowsサーバーはLinuxに比べて簡単だという人がいるが、
その意見に私は賛同できない。

以前の私は、本の丸写し程度の知識でLinuxを触っていたため、
表面上の操作性だけしか見ていなかった。
そのため、マウス操作のWindowsの方が簡単だと思い込んでいたのだが、
色々な事を勉強するにつれ、「Windowsの方が簡単」という意見に対して
異を唱えるようになる。

一般ユーザーと違い、システム管理者の場合、トラブルが起こると
原因を追求したり、再発防止を考えなくてはならない。
サーバー関係のトラブルの場合、メールサーバーや、DNSサーバーなど
設定ファイルの点検だけでなく、ソフトが裏で、どんな動きをするのか
知る必要が出てくる。でないと、根本的な解決にはつながらない。

ネットワークの構成やルーター設定になれば、LinuxやWindows関係なく
ネットワークの知識は要求される。
そう考えると、LinuxでもWindowsでも同等の知識は必要となる。

上級者は「Linuxの方が簡単」という。理由は「ソースが読めるから」だ。
これには激しく賛同する。
Windowsではソースが公開されていないため、中身を知りたくても、
動作検証から得られる結果からの推測するしかない。


2005年12月。 「詳解LINUXカーネル」を読んでいると、割り込みの話が出てきた。 割り込みとは、キーボードやマウスなどの操作が行われた時や 通信データを受信した時などに、動作中のプログラムを中断させて、 別の処理プログラムを走らせる事だ。 そして、割り込みが起こる仕組みは以下の通りだ。
割り込みが起こる仕組み
パソコンの周辺にある入出力装置に、キーボードやマウス、
ネットワークカードがある。
これらの入出力装置から入力があると、まずは各機械の信号を受け止める
コントローラー(ハードウェアデバイスコントローラー)に信号が行く。
そこから出力ライン(IRQライン)と呼ばれる信号線を伝わって、
割り込みコントローラーに信号が到達する。
そして、割り込み信号がCPUへ伝わる。

  IRQとは「Interrupt ReQuest」で日本語では「割り込み要求」と呼ばれる。
  各デバイスコントローラーから割り込みコントローラーまでの信号線は
出力ライン(IRQライン)と呼ばれるが、各デバイスによって
番号が割り振られている。

  「ふーん」と思い本を読み私なのだが、本の内容だけでは、
いまいちピンと来ない。
  だからといって、LinuxでIRQラインの番号を表示させる方法を知らない。

  そんな時、ふと思った。

  Windowsの画面を見りゃええやん!

  OSは違っても、CPUは同じインテルを使っていれば、共通点は多いはず。
  そこでWindows98の画面を見てみる事にした。

Windows98の画面
コントロールパネル → システムを選ぶと見れます
IRQのライン番号が表示されている。
この番号をLinuxと比較しても、結構、一致している。
こういう風に目で見える形で表れると、理解が進みやすい。

  こういうWindowsの利用の方法もあったのかと我ながら感心する。
  なにせ、Linuxカーネルの割り込みの勉強に、Windowsを使うなんて
私自身、予想外だからだ!


  その後も「詳解LINUXカーネル」を読み進めると、I/Oデバイスの話が出てくる。
  I/Oポートアドレスと呼ばれる各デバイスの固有のアドレスがある。
  これはCPUと各デバイスの間に16本の信号線がある。
  信号は0か1なので、16本の線を使うと、2の16乗通りの組み合わせができる。

  そして、組み合わせで、各デバイスへの固有アドレスを表現しているのだ。

  さて、これも本を見ただけでは「ふ〜ん」という感じで終わるのだが、
この時も

  Windowsの画面を見りゃええやん!

  という発想で、Windows98の画面でI/Oのアドレスを見てみる事にした。

I/OポートアドレスをWindows98で表示

  そして、Windowsの画面で、個々のデバイスのIRQラインの番号と
I/Oポートアドレスを見る事ができる。

個々のデバイスのIRQラインの番号とI/Oポートアドレス

  こんな感じでLinuxの仕組みを勉強するのに、Windowsを使うのも
奇妙な感じがするのだが、同じCPUで同じハードを使いながら
LinuxとWindowsの仕組みが180度違うなんて考えづらい。

  むしろ共通部分があって当然と考える方が自然だ。

2006年1月、Windows関係の本を読んでいた。 「ウィンドウズの仕組みがわかるとトラブルに強くなる」 (飯島弘文:メディア・テック出版) Windowsが固まる原因に、ドライバが関係している事が書いている。 CPUや、Linuxのカーネルなどの本で、CPUの特権モードの話が出ていたが OSが固まる原因と結び付いていなかった。 でも、よく考えたら、ハードディスクへの読み書きを始め、 ネットワーク通信などは、ハードウェアを操作する必要があるため、 特権モードを使わないと不可能だ。
I/Oデバイスへのアクセスは、カーネルのみ可能
ハードディスクのアクセスをはじめとするI/Oデバイスへのアクセスは
特権レベル「0」の状態で動く、カーネルしかアクセスできない

  I/Oデバイスを操作するために、特権モードで動くドライバが用意される。

  だが、上記の本で、特権モードで動くドライバが悪さをして
Windowsが固まる事を書いていた。

  そこで、LinuxでもOSが固まるのかどうかの実験を行う事にした。
  さすがにドライバを書き換える技術力はないのだが、模擬的実験として
システムコールのソースの中に、バッファオーバーフローを起こす仕掛けを
組み込んで、どうなるかを見てみる事にした。

以下の実験を行った
特権モードの状態でバッファオーバーフローを起こして
実際に、Linuxが固まるかどうかを確かめてみた。

  Linuxでも見事に固まった!!

  詳しい事は「システム奮闘記:その46」をご覧ください。
 (CPUの特権モード。OSが固まる理由)

  やはり、Windowsの本を読むのは大事だと思った。

学習の成果 2006年2月、社内でグループウェアの導入の話があった。 2人のベンダーの技術者との打ち合わせ。 話をすると、物事に対してキチンに答える技術者達だった。 決して、安請け合いはしないし、聞き取り調査もしっかりしているので、 技術がわかっている人達だと思った。 こういう技術者だと私も安心できる。 グループウェアのサーバーは、Windows2003になるという。 そこで、私は正直にWindowsのサーバー管理に対して不安を打ち明ける。 「問題はサーバー管理ですわ。Hotfixなどは慎重に入れないと アプリが動かなくなる可能性がありますし、動かなくなった場合の対処や 不要なサービスは止めないといけないし、停止できないRPCサービスなどの ポートをファイヤウォールで塞ぐ必要はありますから、 うちじゃ、そこまでできる人はいないですわ」と言った。 ベンダーの人は痛い所を突かれたと思ったのか苦笑い。 そして、打ち合わせの後、ベンダーの人に次の事を言われた。 菅さんは詳しいですね おいおいおい! 詳しくないから不安を打ち明けているのに・・・ (^^;; そこで私は「大した事はないですよ。Windowsの事、わかっていないですし」 と答えた。 相手がまともなベンダーであり、かつ、私が的確に問題点を指摘すれば ベンダーとの間で、水掛け論に陥る事はなく、システム導入時の問題点を お互いが認識できるし、それの解決をはかる方向へ話が進められる。 だが、この案件は、予算の都合で保留になってしまった (^^;;
最後に、余談を2つ挙げます 巨大帝国になったMicrosoft。 だが、その巨大帝国を作った原因は、日本政府の腰抜け外交が 大きく影響している事実がある。
Microsoftを太らせた要因は日本政府の腰抜外交にあり!
  Microsoftを今みたいに帝国にした原因の1つに、日本政府の対応がある。
  1991年の日米構造協議で、TRONが制裁品の対象になった。

  これにはアメリカの、えげつない思惑があった。
  TRONとは、東大の坂村先生が作成し、仕様書を無料公開したOSで、
どの国の、どの業界にも秘密にすることなく、公開したものだった。
  そのため、貿易不均衡の問題などに抵触するものではなかった。
  しかし、無料公開されたTRONに危機感を感じたアメリカは
自国のソフト産業を守るため、TRONを叩き潰す作戦に出た。

  日本政府の対応は腰抜けだった。TRONを守ろうとはしなかった。
  そのため、TRONに賛同していた企業も、アメリカの制裁を恐れて
TRONから手を引いたため、一時は、TRONは闇に葬られる事になった。

  もし、日本政府がTRONを守れば、今頃は、Microsoft支配から免れ
使い勝手の良いOS(TRON)が使えたと思う。
  これは日本だけの利益ではなく、世界中の利益になる事なのだ。
  愚かで腰抜けな日本政府に対して怒りを感じる。
  政治家や官僚は、誰の税金で飯を食わしてもらっているのか自覚がない!

  そして、余談の2つ目として、リーナスさんの出身のフィンランドは
親日国なのかについて書きます。

Linuxは日露戦争の恩返し(?)
  巷では、フィンランドは親日国と呼ばれている。
  その話の由来を初めて聞いたのは、高校の地理の授業だった。
  明治時代、ロシアの脅威を直接受けていたフィンランドだったが、
日露戦争で、東郷平八郎率いる聯合艦隊は、世界最強と言われた
バルチック艦隊を撃破した事で、フィンランド人の鬱憤晴らしになり
東郷平八郎を称賛し、現在でも英雄扱いされていると言われ、
そして、フィンランドに東郷平八郎の顔写真をプリントした
東郷ビールがあるという話と言っていた。

  長年、その話を鵜のみにしていた私は、この奮闘記のネタのために
強引にも次の話を作った。
  リーナスさんには意図はないが、Microsoftに支配される日本だったが
Linuxの普及により、Microsoftの支配から解放されていくのは、
まさに、日露戦争の鬱憤晴らしのお返しにという話だ。


  「なんと美しい話なんだ」と自画自賛という感じなのだが、
色々、調べて行くと、東郷平八郎がフィンランドで英雄かどうかが
疑問になってきた。

  東郷ビールがフィンランドにあるという話だが、
過去に、フィンランドで、世界の提督の顔をプリントしたビールを出した際、
たまたま、その1人に東郷平八郎が入っていたにすぎないようだ。
http://suomi.racco.mikeneko.jp/Elama/togo-j.html

  他に調べてみると「東郷ビール」の由来が、東郷平八郎がフィンランドで
英雄だからという話に異論を唱えるサイトを、いくつか発見した。

  そしてフィンランドが親日国かどうかも怪しいようだ。
  実際には、誰に対しても優しい国民という説もある。
真偽を確かめるべくフィンランドへ行くのが良いかもしれないが・・・

  そんな時間と金はないのらー!!

  というのが私の現状なので、謎のままにしておこう。


  親日国からの恩返しの話といえば、エルトゥールル号事件がある。
  明治時代、和歌山沖でトルコ船「エルトゥールル号」が台風で難破した際、
日本人が必死で救助を行い、犠牲者を手厚く葬り、生存者を看護して
日本の船で無事、帰国させた。
  そして時が流れ、イラン・イラク戦争の時、サダム・フセインが
「今から四十八時間後、イランの上空を飛ぶ全ての飛行機を、撃ち落とす」
と宣言した。
  他の国は自分の国民を救うべく救助の飛行機を出したのだが、
なんと、この時、日本政府は日本人を見殺しにする最悪な事をしたのだ。
  万事休すと思われた時、イランから脱出できない日本人を救ったのは、
トルコだった。トルコの航空会社が日本人救出のため飛行機を出したのだ。
  この時、トルコ大使は「エルトゥールル号の借りを返しただけですよ」だった。
  過去の恩を律義に返すトルコには、日本人としては感謝と感動を覚える。
  と同時に、国民の命をないがしろにする税金泥棒の日本政府には
怒りと不信感を抱く。


まとめ 最初、この原稿を書き始めた2002年の半ばくらいでした。 ちょっとしたエッセイ的な話で終わらせるつもりでしたが、 色々なWindows関連製品を触ったり、Windows関連の書籍を読む度に、 あれもこれもと欲張り、どんどん内容が膨らんでいきました。 気がついたら、2006年になっていました (^^;; あまりにもキリがなさそうなので、この辺で載せる事にしました。 Microsoftは嫌いだからと言って、触らないのは勿体ない話です。 Linuxの勉強だけでなく、Windowsの勉強をすれば、両方の製品の 共通部分を見落とす確率が減る効果がありますし、両方の技術を 比較できるので、学習に相乗効果が生まれます。 そのためMicrosoft嫌いな人に「Microsoftにパラサイトしよう!」と言って、 とことん利用できる部分は、ガメツク利用した方が賢いです (^^)V

次章:iSeriesAccessを活用したODBC経由のAS400(iSeries,i5)とLinuxの連動に挑戦」を読む
前章:ftpクライアントのソフト作成」を読む

システム奮闘記に戻る