目次は here ここをクリック、申し込みはここ here 。
1999年以降の全文はhttp://www.linuxjournal.com/lj-issues/mags.html.で読める。
R最新版はオンラインでhttp://interactive.linuxjournal.com/. でのみ申し込み可能
The May/June issue of Embedded Linux Journal 2001年5/6月号は、新規インターネット・コンピュータ(NIC)に基づくクロス開発の特集で第二回 ELJ コンテストの概観を含む。北米サインアップの有資格申込者はhttp://embedded.linuxjournal.com/subscribe/. で登録無料。
focuses on Cross Development and includes an overview of the second ELJ contest, based on the New Internet Computer (NIC). Subscriptions are free to qualified applicants in North America - sign up at http://embedded.linuxjournal.com/subscribe/.
ALT Linux is a decendant of Mandrake Linux. The creators of this distribution were previously
Caldera Systems, Inc. は The Santa Cruz Operation, Inc. (SCO)の合併を完了したと発表した。Calderaはこれで「専門サービスを拡張して特注ソリューションを offer 出来る。さらに、Calderaは Acrylis Inc. から WhatifLinux の資産を取得した。WhatifLinux技術は迅速で信頼性のあるソフトウエア管理のためインターネット配布のツールを提供する。
Caldera はCalderaデベロッパ・ネットワークの発足を発表した。Calderaデベロッパは、UNIX上、Linux上、両者結合のプラットホーム上で開発出来るようにする。これにネットワークの世界的サポートとサービスが加わって、メンバーは世界的に移植可能な製品を開発し市場をいち早く獲得出来る。
MandrakeSoft は、その最新版8.0がダウンロードで入手出来ると発表した。これは最新グラフィック環境KDE (2.1.1) とGNOME (1.4)を含む。
ROCK Linux のバージョン1.4の活動準備が出来た。発表ではマイナーな次の発表を待つよう警告しているが、このバージョンは生産使用を目的とする。ROCKは「搭載が困難」と言われて来たが、そうでもない。バイナリ搭載は容易だし、経験者にとってソース搭載は論外だ。ROCKの哲学philosophy はその案内guideを読むと判る。
SuSE Linux 7.2 が6月15日に入手出来る。kernel 2.4.4, KDE 2.12とGnome 1.4を含むほか、インテルのItaniumベース (64-bit)システム用7.2が6月20日にリリースされる。このバージョンはSuSEのみから入手出来る。
IBM はAS/400の後継、iシリーズが5月25日に入手出来ると発表した、IBMのiシリーズ用LinuxOSはSuSE Linux が最初で唯一である。PowerPC用SuSE Linux 7.1がIBMのiシリーズ用LinuxOS としてSuSE ftp サーバーから無料でdownloadedできる。
SuSE Linux, はまた日本語SuSE Linux 7.1 パケージが無料で download 出来ると発表した。
SuSE はCompaqの AlphaServer用 SuSE Linux 7.1 を5月末に発表する。
TeamLinux | explore は6個の新ユニットを含む完全製品系列が$1,499 から$6,500で直ちに入手出来ると発表した。kioskは各種ビジネス環境用に設計されており、ユーザーのマルチメディア及び転換要求に合わせて最適特性のパケージを提供する。TeamLinux | exploreの新kiosk系列には、タッチスクリーン、プリンタ、磁気カード装置、モデモ、キイボード、ビデオ会議、無線接続などの各種周辺オプションが含まれる。
IBM は、「Kデスクトップ環境」つまりKDEを使うデスクトップベーシック上の無料 tutorial を加えた。tutorialはLinuxユーザーにKDE GUIを自分用特製にする方法を教える。2月にリリースしたKDE 2.1はLinux用インターネット接続デスクトップが対象。
Times N Systems は a technology breakfast series を主催しており、参加者を募っている。彼らの技術はIP-SAN と記憶仮想化が主でLinuxで働く。
経済悪化はオープンソースには良い good 。
マイクロソフトがオープンソースを非難 denounces 。
mamalinux はモントリオールの最大linuxポータルの一つである。
5月 9日は (1996) ペンギンがLinuxのマスコットになった誕生日。誕生祝いに A Complete History of Tux (So Far) を覗いては!
ssh 2.9がリリースされた released. 物語は LWN へ。
Aladdin Systems, Inc. がその圧縮技術StuffIt と、圧縮ユティリティStuffIt Expanderのベータ版をLinuxとSunのsolaris用に、発表した。Stuffltは、ウインドウズ又はマックのプラットホームからアーカイブを自動抽出してZip, StuffIt, Binhex, MacBinary, Uuencode, Unix Compressを作るのに使うことが出来る上に、これら全部のに加えてtar files, bzip, gzip, arj, lha, rar, BtoAtext ,Mimeに拡張することが出来る。www.aladdinsys.com/StuffItLinux/、にLinux用公開ベータ、http://www.aladdinsys.com/StuffItSolaris/.にはsolaris用に公開ベータ。
XFce はGnome 又は KDEより軽い(メモリの少ない) GTKベースのデスクトップ環境である。アプリケーションにはパネル(XFce)、ウインドウズ・マネージャ(XFwm)、ファイル・マネージャ、バックアップ・マネージャなどが含まれる。バージョン3.8.1はドラッグアンドドロップとセッション管理をサポートする。
Heroix Corporation は、Windows 2000、Windows NT、UNIX、Linuxシステムを統一するHeroix eQ Management Suiteを発表した。新製品ファミリは各種プラットホーム環境の傍受と管理を統一してeビジネスや重要アプリケーションの性能と利用性を向上する。
Wolfram Research Inc. は、近くwebMathematicaを発表する。これはWebに会話的計算を持ち込むソリューションである。公式にはリリースされていないが、以前のプログラムの下で顧客をえらぶため現在入手することが出来る。
試験期間中 webMathematica に絶大な関心が寄せられた。その結果、Wolfram Research.の選んだ銀行、技術会社その他が既にwebMathematicaを使って提携している。可能な用途については http://library.wolfram.com/explorations を見られたい。
Men & Mice がLinuxシステム用包括的DNS、 QuickDNS 3.5をリリースする。QuickDNSは5年近く主要なマック用DNSマネージメントシステムであった。QuickDNSは、使用が容易なインターフェイスを用いて、異なるプラットホーム上のDNSサーバーを同時管理することが出来る。 BIND 8.2.xの上で働くので設定は容易である。
QuickDNS 3.5は1ライセンス$495、2ライセンスのパックは$790で販売 retails する。ダウンロードも可能available。
Opera Software は Opera for Linux.の新バージョンを立ち上げた。Opera 5(ファイナル)はLinuxプラットホームに楽なインターネット経験を提供する。今日の発表でクロスプラットホーム・ブラウザ開発におけるOpera Softwareの優位が固まった。
速度、大きさ、安定性などのOperaの特性に加え、ユーザー設定を特注に出来るなどウインドウズ版になかった数々の特徴がある。Opera5は無料ダウンロードで available 入手出来る
PlugSys は、Max 2.0 無料版が入手出来ると発表した。LinuxとWindows用の32-ビットXベース・コンパイラで世界中の開発者に無料登録を提供する。クラシックXベースコマンドとファンクションを使って、Max開発者は、データをFoxPro, dBASE 及びClippeからアクセスする文字ベースの申し込み書を書く。スケーラビリティ確認のためMaxはすべてのポピュラーなSQLデータベースに接続する。製品はPlugSys.comウェブサイトからダウンロードすることが出来る。
Nokia と Loki は、デジタルビデオ放送、インターネットアクセス、個人ビデオを結合する技術、新"infotainment" 装置、Linux GameをNokia Media Terminalで配信する Agreement 協定を結んだ。協定の一部として、LokiからのLinuxベースゲームが Media Terminalにプレインストールされる。 Media Terminalの開始はヨーロッパで秋から。
Loki Softwareは, MindRoverヨーロッパ計画が5月23日に出荷されると発表した。CogniToy のMindRoverは 3D戦略/プログラムゲームで、プレーヤは自動ロボットを自分で完成することが出来る。$29.95のSRPがあり新Loki webstoreに予約することが出来る。小売り店一覧も入手出来る available.
オープンソースAudio Library Projectの0.7.1.ベータ版がリリースされた(Linux, Solaris Sparc及び FreeBSD)。OSALPライブラリはC++クラスライブラリで高レベルオーディオプログラムに必要な機能性を備えている。基本クラスはオーディオ機能性をチェインで作ることが出来、誘導クラスはこれらをエディット、ミックス、タイマー、再生、記録、高率サンプルコンバータをサポートする。0.7.1.で新しいのは FreeBSDのサポート、各種バグフィックス、新メークファイル、新mp3リーダーである。
7月号へようこそ
7月号へようこそ!如何お過ごしでしたか?僕は地理の勉強が段々忙しくなりました。余り成功しそうにはありませんが。
DLUG (Dorset Linux Users Group)が「Linuxの日」を設けて、デスクトップにLinuxを搭載する人の手伝いをしました。当日の様子は DLUG siteへ。
学校が忙しくて、記事が「詳しく」ないのをお詫びします。
LWM メイルボックス
以下は、頂いたe−メイルです。皆様のご意見を見て下さい。
◇Thomas Nymanさんから 「メカニック」が好きです。二つ申し上げます。
1) windowsを搭載しようとすると色々問題がありますが、モニターやグラフィックインターフェイスには全く問題がありません。Xwindows ではモニター画面を満足に扱えません。サイズ変更がうまく行かないのです。解決法が分かりません。
2) telenet経由でログインしてxwindowsを別のマシンで動かす方法を書いて下さい。
◇ nomi さんからX、主としてXF86Configファイルの設定方法を教えて下さい。
◇ Don Reid さんから「シェル環境の特注」の記事はコマンド行初心者の参考になりました。 ただ、既存コマンドに別名を付ける方法は、面倒を起こします。
これらコマンドのうち一つを用いるスクリプトを使うとき、働きが変わります。
新コマンドのタイプに手を慣らす方がよいでしょう。 会話的シェルから別名を引き出す方法もありますが、ソーススクリプトには無効です。
◇root さんから.bashrcのショートカットをいじりました。最初はうまく行かなかったのに、
リブートしたらうまく行くようになり、以後は別のショートカットでも大丈夫です。
何故でしょう? [へえ。変ですね。リプートしなくても、bashは変更を直ちに取り上げる筈です。いずれにせよ、うまく行って良かったですね。 -- Thomas Adam ]
◇ Paul Rowlandさんから お前の言うことは全部 geekdom(間抜け)だ。自分勝手だ!
Nymanさんからのe−メイル(上記)で、Xuindowを使うとモニターがうまく働かぬことがあるとのご指摘があった。私自身に問題がなかったので詳しく述べなかった。
Linuxを最初に搭載したとき、直ぐにAnotherLevel (FVWM2)にブートし、画面解像度が 640x480に設定され、ウインドウを開こうとする度にクリックして設定変更するのが良く分からなかった。何故か??800x600画面解像度を要求していたのだ。同様の問題ならば、簡単に直せる。
1.<Ctrl><Alt><Fx> ("Fx" はファンクションキイ)を押して、予備ターミナルに変える。ここでルートとしてログインする。
2.好みのテキストエディタを使ってファイル"/etc/XF86Config"をエディットする。
3.XF86ConfigはLinux毎に異なるので、どのセクションとは言えないがScreenのラベルのついたセクションを探す。次のようになっている筈だ。
Section "Screen"
Driver "SVGA"
SubSection "Display"
Depth 8
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 32
Modes "800x600" "640x480"
EndSubSection
Monitor "Primary-Monitor"
Device "Primary-Card"
DefaultColorDepth 8
EndSection
4.ここですべきことは、使用する各カラーデプスについて解像度を変えることだ。それには、 "Modes"の次の値を変える。このためのシンタクスは、最初の値が最初にアクチベートされる値で、第一に失敗したときの第二はバックアップで、以下同様だ。
Xに特定のカラーボックスを使うことを告げるには、"DefaultColorDepth" を望みのカラーデプスに変えなければならない。注意:指定は一つだけだ!
したがって、16ビットモード 800x600表示で働かせたいなら、次のように設定する。バックアップとして次の解像度も入れる。
Modes "800x600" "640x480"
続いて、もしそうなっていなければ、 "DefaultColorDepth" を16に変える。
これで終わりだ。ファイルをセーブしてXディスプレイをブートする。
これを行う"Xconfigurator"のようになプログラムもあるが、自分でエディットする方が遙かに早い。
Xwindowの設定とカスタマイズ
この記事は、Xでなくコマンド行を使うのが好きだが、方法の分からぬ人に役立つ。Xを満足に働かせたい人にも役立つ。これの話題ははLinux Gazetteの早い号でも取り上げたが直接聞かれたので、書くことにする。
まず、Xディスプレイを走らせる方法を決める。二つ方法がある。異なるrun-levelに入りそれでXDM, GDM, KDMのようなXログインクライアントを走らせる方法と、ログインの後コンソールでコマンド startx & をタイプする方法だ。
第一の方法を使う利点は、殆ど常にXwindowsを使うなら、設定に気を遣う必要がないことだ。
KDMは、ログオン前にWindow Manager を選べる特徴があり、便利だ。そのためのコンフィギュレーションはプログラム"kcontrol" を使ってKDE自体からおこなう。"Applications --> login"をクリックすると、KDM構成方法を示す下の画面が出る。
代案はXDMを使うこと。これはKDMより作業が一つ多いが、簡単なので私が使っているログインクライアントだ。
ファイル
使うべきファイルの一覧を示す。これらは"/etc/X11/xdm"ディレクトリにある。
/etc/X11/xdm/Xresources
/etc/X11/xdm/Xservers
/etc/X11/xdm/xdm-config
/etc/X11/xdm/window-managers
カスタマイズ
各ファイルを順に取り上げて、最良のカスタマイズ法を述べるy。
Xresources
このファイルは、主ログインウインドウの見掛けと感触をカスタマイズする。一定のキイストークを有効にしたり無効にしたり出来る。多分最も重要なファイルだ。
カスタマイズの必要はないが、出来ることを述べる、行毎には説明しないが、このファイルの情報は、自ずから分かる筈
1.ログインボックスの頭にあるテキストを変えるには、値を変える
xlogin*greeting: Welcome to this console
"Welcome to this console" を"Welcome to CLIENTHOST"に変えた。ホームネットワークで私の使っているターミナルを知るためだ。"CLIENTHOST"は変数で、ホスト名の最初の部分に相当する。私の場合はGrangedairy だがLinux設置以来ホスト名を変えていない人なら"CLIENTHOST" はLocalHostを返すだろう
余談だが、ホスト名を変えるには、"/etc/hostname"と、もしあれば "/etc/sysconfig/network"ファイルに記憶された値を変える。注記:変更を有効にするには、 run-level 6 (init 6)に切り換えなければならない。
2.この挨拶の色も変えられる。次を見よ。
xlogin*greetColor: CadetBlue
私は"CadetBlue" の値を "Yellow" に変えた。
3.ログインウインドウの各種フレームの色も変えられる。
xlogin*borderWidth: 2 xlogin*frameWidth: 0 xlogin*innerFramesWidth: 1
最初のものは、ログイン画面の全体borderコマンド幅を変える。
二番目は、borderのフレーム幅を変える。
三番目は、主ログインウインドウの各入力フィールド、つまりログインとパスワード、について内部フレーム幅を設定する。
主画面の背景色のようなものや、エラーメッセージ「不正ログイン」の色も変えられる。
xlogin*failColor: red *Foreground: black *Background: #c0c0c0
最初のものは説明を要しまい。この型の値を変えるときは、ファイル名を指定してもよいし、 #RRGGBBフォーマットを書いてもよい。
第二と第三のコマンドは、前景と背景だ。
Xservers
このファイルについては、仮想コンソールが変えられること以外に余り言うことはない。設定を変えようとするVT上で mingetty が走っていないと分かっているとき設定を変えるよう助言する。前に変な経験をした。 "/etc/inittab"の中の設定を見る。
:0 local /usr/X11R6/bin/X :0 vt07
だから、この値をカスタマイズするには、"vt"の後の数字を変える。 "/etc/XF86Config" ファイルに設定された以外を使うとき、使用するカラーデプスを規定することも出来る。それには、 "vt07" の後を次のように変える、
:0 local /usr/X11R6/bin/X :0 vt07 -bpp 16
:0 local /usr/bin/X11/X :0 vt9 -bpp 24 -deferglyphs 16 dpms :1 local /usr/bin/X11/X :1 vt10 -bpp 24 -deferglyphs 16 dpms -Mike.]
xdm-config
このファイルはXDMの各種コンフィギュレーションを設定する。カスタマイズしたことはないし、その必要もないと思う。
window-manager
このファイルにはXが使うwindow-managerのリストが入っている。幾らでも次々に一行毎に規定出来るが、トップだけが実行される。それがないとき次のものを実行し以下同様に続く。私のコンフィギュレーションは、以下である。
/usr/bin/X11/AnotherLevel /usr/bin/X11/twm #file below symlinked from "/usr/openwin/bin/openwin" /usr/bin/X11/openwin
終わりに
これで今月のLinux Weekend Mechanicは終わり。読んで頂いて有り難う。色々なご意見をお待ちします。
Mailfilter はメイルボックスから迷惑メールを遠ざけるツールである。ダウンロードされた後篩い分けるprocmail と異なり、mailfilterはfetchmailの前にPOP3 アカウントから直接検出してオンラインで不要メイルを篩い分ける。(procmailの使用例はLinux Gazetteの記事 http://www.linuxgazette.com/issue62/okopnik.html.参照)
この利点は、迷惑メイルをダウンロードしないことだ。帯域幅の節約になる。
Mailfilterは良いツールで、搭載と維持が容易だ 。 .fetchmailrc にも追加出来て、ダウンロード前に不要メイルの検出を自動化する。
2.Mailfilterの搭載
Mailfilterの搭載は、http://mailfilter.sourceforge.net/ からソース(.tar.gz ファイル) としてダウンロードし、次のステップにしたがう。
Mailfilterを働かせるにはプロンプトでmailfilter とタイプするだけ。 Mailfilterは有効なコンフィギュレーション・ファイルが働く必要がある。
3. Mailfilterコンフィギュレーション・ファイル
3.1ファイルのコンフィギュレーション
このファイルはmailfilter.sourceforge.net,からサンプルコピイ出来るが、ここではスクラッチから作って見る。
mailfilterを使いたいユーザーは .mailfilterrコンフィギュレーションファイルを必要とする。ホームディレクトリに置く。次のステップで作る。
ここでコンフィギュレーションファイルに内容を追加する。Mailfilterはコンフィギュレーション・ファイルがないと働かない。
3.2 Mailfilterコンフィギュレーション・ファイル内のコメント
#で始まる行はコメントなのでmailfilterは無視する。空白行も同様。
3.3 Mailfilterコンフィギュレーション・ファイルに基本事項を追加
コンフィギュレーション・ファイルの最重要部分にはメイルアカウントが含まれる。 mailfilterrcファイルに次の行を加えると一つ以上のアカウントを規定出来る。
mailfilterrcは今のところPOP3アカウントしかサポートしない。
行の順序を変えないことが重要。
別の重要なオプションは次の行を使うログファイルの規定である。
これはmailfilterコンフィギュレーションの微妙な部分である。ここでコマンドを追加してメイルに有用なことをさせる。
これはコンフィギュレーション・ファイルに特殊なコマンド行を追加しておこなう。Mailfilterは篩い分けに規則的表現を用いる。
3.4.1 篩い分けの際、Mailfilterがケース・センシティブであるか否かを規定
これを行うにはコンフィギュレーション・ファイルに次の行を追加する。
・REG_CASE=no
コンフィギュレーション・ファイルに次の行を追加する。
同一アドレスから迷惑メールを受け取るとき便利。次のシンタクスを使う。
ドメイン全部を殺すことも出来る。次のシンタクスを使う。
お分かりのように、 mailfilter になすべきことを告げるのは簡単だ。 CC, BCC, TOによってもメールを阻止することが出来る。
3.4.5 特定発信者を受け入れる
これは他のフィルタのうち一つが適用されるときでも、特定発信者が送ったメイルについてはmailfilterがそれを無視するようにする
Fetchmailはメールを取出す前に篩い分けプログラムを呼び出す特性を有する。次の.fetchmailrcを加えてメールをダウンロードする毎にmailfilterを呼び出す。
preconnect mailfilter
注意!mailfilter が失敗(config file破損、パスワード不一致など)すると、fetchmail はつながらない。. だから 新命令を加える毎に mailfilter コンフィギュレーションだけをテストすること。
5.結び
Mailfilterは良いツールだ。fetchmailにメール本体を篩い分けさせることは出来なかったが、少なくとも、迷惑メールのアドレスが有効な限り、迷惑メール撃退に役立った。
これは大変良く働く。とくにインターネットリンクが低速で迷惑メールが多いときには、mailfilterを試すことを薦める。
コンピュータ使用のインストラクションには無料OSの入手方法が書いてあるとは限らない。Debian GNU/Linux は無料ネットワークOSである。(".iso" 又は".raw") Debian CDイメージファイルを無料でインターネットからダウンロード出来る。次いで、ブート出来るインストールCDを".iso" ファイルから作ることが出来る。ftp と rsync プログラムを使う必要がある。
Debian CDイメージファイルの入手方法を聞こうとすると、重労働になる。重労働は「迅速な答」を貰っていらいらに変わる。「迅速な答」ではcdimage.debian.orgを読めreadと言われる。だが、オープンソース王国の話とソースコードには夢中になる筈だ。
「迅速な答」の幾つかは「これの方法を知りたいか?」と聞く。行間を読みなさい。手掛かりがある。直接のコマンドが欲しい人が rsyncでDebianを得る方法は、
rsync -rv trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.iso /right/here
Debian CD作製を早くしたければ costarの pseudo-image kitに行くことが出来る。
rsync -av trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.list /right/here
http://cdimage.debian.org/cd-images/2.2_rev3/i386/binary-i386-1_NONUS.list
家でDebianアーカイブのミラーを作ることが出来るmake a mirror 。pseudo-imageキットを使ってミラーにアクセスしたいとき、パスをミラーに告げ、"debian"ディレクトリをインクルードすると、下に"dists"ディレクトリが待っている、
/mnt/mirror/debian ftp://ftp.us.debian.org/debian
./make-pseudo-image binary-i386-1_NONUS.list /mnt/mirror/debian --又は-- sh make-pseudo-image binary-i386-1_NONUS.list ftp://ftp.us.debian.org/debian **
**dists ディレクトリがミラーディレクトリの真下にある筈。
mv pseudo-image binary-i386-1_NONUS.iso
rsync -av trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.iso /right/here
不要になったMD5SUMS が幾つかある。
MD5 (my-fine-new-iso-file.iso) = 9ce8f9fd8f5f1f47efe3eb77d5aae96b
これらはファイル名とsumを持つが、これらのファイルに"md5sum -c"は使えない。以下のように見える。
9ce8f9fd8f5f1f47efe3eb77d5aae96b my-fine-new-iso-file.iso
sumとファイル名との間に一つか二つのスペースがある。三つ以上置くとファイル名の一部になるので置かないこと。
md5sum -c MD5SUMS
これら全部を自分でおこなう理由
早くするためである。
数個のCDイメージサイトのうち一つからデータのリリースに消費する時間:途中で送信が中断される。
多くのDebianパケージミラーサイトのうち一つからデータのリリースに消費する時間:途中で送信が中断される。
CDイメージはローカルミラーから直接でもftp経由で作られる。flp世界をうろつかないでもリストを入手してCD作製に必要なファイルを捕まえられる。スマートだ。
既存CDの更新
CDイメージを更新するのに、rsync は両端で同一のファイル名を必要とする。
手持ちCDのddを作ったとする。
dd if=/dev/cdrom of=/here/is/mynewfile.iso
これをそのまま保存しrsyncを用いて更新する。
rsyncサーバー上の同一CDファイル名を知る必要がある。
次いでこの新isoを正しい名に付け替える。
ファイル名を見出す
ファイル名を見出すには:
rsync server を見出す
rsync -avn the.server.goes.here::
でそのモジュールが現れる。
rsync -avn ftp.fifi.org::
debian又は debian-cdと言う名のモジュールが見付かるので、そのdebian-cdが欲しいイメージを多分含んでいると推定することが出来る。
そこでそのcdimagesモジュールのリストを入手する。
rsync -avn the.server.goes.here::cdimages/ rsync -avn ftp.fifi.org::debian-cd/
でそのモジュールへの各エントリが示される。CDイメージファイルの名前とディレクトリ位置が明らかになる。
暗号化を得る、セキュリティだ
欲しいイメージは非米バージョンだ。それにはセキュリティpgpと暗号化ソフトウエアがついているからだ。米国内から非認証実体に売る訳ではないので、非米イメージを探す必要がある。
rsync -rvn the.server.goes.here::cdimages/ | less rsync -rvn trumpetti.atm.tut.fi::debian-cd/ | less
でリストが入手出来て小さいpagerにパイプされる。
小さいpagerは巨大なリストの遅いロードを待つ間にブランクになるのでファイルに出力する。
rsync -avn the.server.goes.here::cdimages/ | less -o my-list-file rsync -avn ftp.fifi.org::debian-cd/ > my-list-file
偶にある大きい−大きいリスト:
rsync -avn ftp.fifi.org::debian/ > my-new-list-file
ファイルのDebian ミラーリスト全体を得ようとすると、7メガバイト必要になる。ここにはDebianの全世界がある。
fifiサイトにはDebianと呼ばれるモジュールがあって、ここからファイルのリストを入手しようとすると、全く大きいファイルを入手する。
名称変更をしてCDに合わせる
更新 rsync を選るには、ファイルを同一名にしなければならない。
mv mynewfile.iso /right/here/potato-i386-1_NONUS.iso
コマンド行長さは巻き込むことから始まって、バックラッシュ・ニューライン・キャラクタを用いて短くすることが出来る。
rsync -rv --block-size 8192 the.server.goes.here::cdimages/2.2_rev3/i386/potato-i386-1_NONUS.iso /mnt/here/is/where/it/goes
There is a space between "iso" and "/mnt".
rsync -rv --block-size 8192 \ the.server.goes.here::cdimages/2.2_rev3/i386/pot\ ato-i386-1_NONUS.iso /mnt/here/is/where/it/goes
短く切って、行を短くすることが出来る。
更新するには、rsyncをおこなう
rsync -rv trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.iso /right/here
上のコマンドは、potato-i386-1_NONUS.isoを /right/here/ ディレクトリに引き込む。
二つのファイルの違いのみが送信される。帯域幅が節約出来る。
自分のための更新、チェックリスト
670 MB ファイルを作るにはf670 MB 自由スペースが必要
CDイメージファイルに加えてその670MBがディスクにあるとする。
rsync -av --timeout 999999 --block-size 8192 the.server.goes.here::cdimages/2.2_rev3/i386/potato-i386-1_NONUS.iso /right/here rsync -av --timeout 999999 --block-size 8192 \ the.server.goes.here::cdimages/2.2_rev3/i386/po\ tato-i386-1_NONUS.iso /right/here
There is a space between "iso" and "/right".
スペースが足りなくなった、臨時ディレクトリが必要
働くディレクトリに余裕がないときは -T を用いて臨時ディレクトリを割り当てることが出来る。入手するCDと御名に大きさの巨大な影ファイルを必要とする。
type df スペースを見るには rsync -av --timeout 999999 --block-size 8192 -T /my/temp/dir \ the.server.goes.here::cdimages/2.2_rev3/i386/pota\ to-i386-1_NONUS.iso /right/here 警告:
自分で治められる危険が少しある。
rsync -av the.server.goes.here::cdimages
はcdimageの内容全部をダンプしようとする!
行の終わりに / を置く.
"-n" オプションは "--dry-run" で、何をしたかを示す
rsync -avn the.server.goes.here::cdimages/
はリストを示すだけである。
rsync -av trumpetti.atm.tut.fi::debian-cd
で16ギガバイトのCDイメージがあらゆるアーキテクチャで得られる。
rsync -av trumpetti.atm.tut.fi::debian-cd/ | less
は大きいリストを示す。ファイルを探すときは "-n" を使うのが安全だろう。
今直ぐ大きい更新を
rsync -av --timeout 999999 --block-size 8192 -T /my/temp/dir \ trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/potato-i386-1_NONUS.iso \ /mnt/here/is/where/it/goes
で新CDイメージファイルが /mnt/here/is/where/it/goes.にダンプされる。
ここで示した例はマニュアルにない。
rsyncプログラムの用意が調った
バックアップが出来る、sshを使える、遠隔でコマンドを実行しファイルリストが出来る、ファイルが実行できる、臨時ディレクトリを移せるなど。これはプログラムの立派なコピイで同一名称のファイルの間の唯一の違いは帯域幅を通じて送信されることだ。
同一名称のファイルをローカルに入手した。このrsyncはミラーの仕事をやり遂げたが、ftpをおこなうとき沢山の新ファイル名がある。
以下は初心者の入門書だ。
多くの人は新CDファイルをつかむためrsyncを使おうとする。元のCDファイルを活用しよう。rsync経由で違いだけを入手して新バージョンに更新することが出来る。
rsyncを使ってサイトの更新とバックアップ
ここで諸君を分析したい。帯域幅を使い過ぎる。常にWebサイトをエディットし少し変更しているか?それならrsyncを使ってWebサイトをミラーし給え。各ペイジのいたる所に50kの文書を加えたいなら、同一ファイル名を保ちrsyncを使ってミラーし給え。新isoファイルをダウンロードして新CDを作っているなら、その名を変えてrsyncを使い最新バージョンで更新し給え。何を得するか?
rsyncは帯域幅を節約する
Debian CDを入手しようとすると、巨大なファイルのリストがメモリにロードされ、大変時間が掛かる。我慢して待て。これら沢山のファイルは、送信の必要があるか否かチェックするため開かれる。
md5sum.txtファイルを入手し給え。rsyncの後これがディレクトリに入ったら、
md5sum -c md5sum.txt
とタイプすると、ファイルは正確にチェックされる。
costarの pseudo-image kit
pseudo-image kitをここで here.入手する。
pseudo-image kit.についてのリストを入手する。
rsync -rv --timeout 999999 --block-size 8192 -T /my/temp/dir \ trumpetti.atm.tut.fi::debian-cd/2.2_rev3/i386/binary-i386-1_NONUS.list \ /mnt/here/is/where/it/goes
でリストファイルが /mnt/here/is/where/it/goesに入る。これは binary-i386-1_NONUS.listと呼ばれる。
このbinary-i386-1_NONUS.list はCDイメージの構築に使用される。Debian のパーシャルミラー(14 ギガバイトあるぞ)を持っていれば、pseudo-image kitがローカルミラーからCDを作る。極めて早い。ディスクドライブの値段が安くなったので、利用出来るドライブをアップすべきだ。引き留める努力 effort は知らないだろうが、公平使用の自由の時代は終わりつつある。
ftpを使わない理由
670MB以上のftpサーバーと数時間の作業をを締め出そう。
J.A. Bezemerから引用すると
" > 殆どの人はネットワークよりも早くローカルハードディスクからビットを得る
> pseudo-image kit は、殆どの接続上で、数時間でなく数分で終わる。 " これは物語の一面で、他面では僅かなCDイメージと約250個のパケージミラーをえるので、Kitはミラーの間で公平に使用帯域幅を配分する。 Debianミラーから流れる各ビットは誰かがスポンサーになっていることを想起すると、こんなことをしていてはCDイメージに投資した人達はネット接続から余り返して貰えないことになる。
"
参考書
rsync.samba.org -- rsyncとその Faq-O-Maticの故郷
NSBD -- Bell LabsのNot-So-Bad-Distribution がrsync を使って確実にアップデートする
rsync resources -- rsyncを使った多重システムインストールとアップデート
rsync resources -- 匿名 rsync サーバー設定
Help File for Captives -- 自由を求めるなら
オープンソース・マーケットの危機はLinuxサイト崩壊を意味するか?
前Linux Todayフランス語版編集長Cédric Godartとの会見
OLinux: 経歴をお話し下さい
Cédric Godart: 大学卒業後ラジオアナウンサと新聞記者を3年やりました。25歳で住所はブラッセルです。コンピュータ経験は大したものでありません。Linuxとオープンソースに興味を持ちました。私のホームコンピュータは二つのOS、LinuxとMacを使ってい
OLinux: Linux Todayフランス語版廃止の主な理由は何ですか?
Cédric Godart: 年初から広告収入が減りました。今ではInternet.comが唯一の黒字サイトです。そのLinuxとオープンソースの国際版も黒字ではなくなりました。予想はされましたが、Linux Todayフランス語版は9ヶ月しか経っていないので、突然でした。
OLinux: Webサイトには何人いましたか?廃止にどう反応しましたか?
Cédric Godart: 私は LinuxTodayフランスで働く単なるジャーナリストでした。毎日の新聞ニュースと週5回位の記事がサイトの役目でした。私が休暇のとき学生がニュース概要を手伝って呉れました。技術的問題は、米国internet.comのLinux & Open Source Channel で働く二人Scott COURTNEYと Paul FERRIS の手にありました。
OLinux:Linux today 英語版とフランス語版の最も大きい違いは何でしたか?
Cédric Godart: 英語版がニュース概観に時々特徴を出しながら焦点を当てたのに対し、フランス語版はニュース概観と毎日の記事を提供しました。記事は有名なFrance.Internet.Comにも投稿しました。
OLinux: フランスLinux Today が早期に成功すると思いましたか?
Cédric Godart: 1-2ヶ月でサイトが黒字になったのには正直驚きました。会社もLinuxユーザーも酔っていました。フランス人はLinuxとオープンソースに関する専門ニュースサイトを必要としていました。英語版の成功も刺激になりました。"LinuxToday"のブランドが信用保証になっり、有名なLinux Mandrake Frenchも我々のニュースをホームペイジに載せてくれました。
OLinux: 相互作用が生産性と編集方針に影響しましたか?
Cédric Godart: 決して!編集長のREICHARDは私を信頼していました。
OLinux: フランスlinuxtoday.comの消滅について沢山のe-メイルが来ましたが、linuxtoday.com が変わるとおもいましたか?
Cédric Godart: いいえ。Linuxとオープンソースの財産を彼らの公式フランスサイト、フランスinternet.com. に「委譲」する積もりでした。だがこうした国際版には時期が悪かった。Yahooは広告モデルは将来必ず儲かると言い続けましたそうならなかった。
OLinux: オープンソース企業も巻き込んだ経済危機はLinuxとオープンソースニュースサイトに影響するでしょうか?
Cédric Godart: 勿論。Linuxマーケットは未だ成熟していません。今はIT産業全体にとって悪い時期で、Linuxとオープンソースで利益が上げられるのは少数の企業でしょう。
OLinux: LinuxTodayフランス語版には月当たりどの位のらpage views がありましtか?毎日幾つ記事を発行しましたか?
Cédric Godart: Pageviews は秘密です。済みません。毎日、プレスレビューに関して15位と少なくとも一つの記事でした。包括的プレスレビューを作るのに信頼出来る情報源を見出すのに1-2ヶ月掛かりました。
OLinux: internet.com がサイトのアーカイブを保存すると決めて、貴方を招聘したら、仕事を続けますか?何故ですか?
Cédric Godart: 夢は見られますが、そんなことはないでしょう。
OLinux: 世界中でLinuxが「広範に採用」されていることを考えて、Linuxは政府や産業のため経済的進歩に適切なソリューションだと思われますか?
Cédric Godart: 「広範な採用」は信じません。Linuxはデスクトップ市場の5%です。主OSとして使うのは限られた人です。毎回リブートしたくないので、大部分の人はWindowsを使っています。Linuxは専門家のOSに止まるでしょう。MacOS Xだけが真の消費者向けOSだと主張出来るでしょう。政府と企業の予算とソースコード入手可能性が、大衆のLinux採用の鍵でしょう。フランス政府が最近オープンソース技術の支援を決定したと発表したのはご存じでしょう。
OLinux: Linux ニュースサイトは何を持つべきでしょう?フランス語Linux Today編集者の間に学んだヒントを教えてください?
Cédric Godart: 1/ 別のOS (Windows / MacOS X and BeOS)に注目すること; 2/ 文法とシンタクスの間違いをしないこと; 3/ 馬鹿らしいOS戦争に巻き込まれないこと、Linuxフォーラムへの投稿するOutolook Expressを使う太ったアヒルのままにしておくこと ; 4/ どの会社にも依怙贔屓しないこと。
OLinux: OLinux ユーザーへのメッセージは?
Cédric Godart: ポルトガル語で返事しなくて御免なさい。会見の申し込みには驚きました。ヨーロッパにあるフランスサイトが何千マイルも離れた人の興味を引くとは思っていませんでした。私のメッセージ「流行だからでなく好きだからLinuxを使ってください。Outlook Expressを使ってメッセージを送るとき、決して"WindBlows"の言葉を使わないでください」
余り知られていないが、日常役立つツールを集めた。殆どの人が知らないと思う。本当は秘密でも何でもなく、ネットで無料で手に入る。少数の人しか知らないだけだ。
xsnap やxclipなどを実行するアプリケーションを探すときでさえ、なかなか見付からない。showbook や splitvt などのユティリティは全くのおとぎ話だ。
'Snap!' を何年も使った後Linuxに移ったとき、置き換えのためハイとローを検索したアプリケーションがこれだ。'Snap!'の一部であった xsnapにOCR能力はないが、とにかく役に立つ。
Xsnap はスクリーンショットを取るアプリケーションだ。同じことをするプログラムは沢山ある。違いは、 xsnap を使うと画面の任意の場所(全画面を含む)を捕捉することが出来て、しかも早いことだ。
xsnapを使うと、マウスカーソルが変わって角形になるので、そのカーソルをドラッグして画面の切り取り範囲を示す矩形を書くだけでよい。出てきたウインドウで'p' 又は'w' を押すと番号付きのスナップショットがホームディレクトリに入る。
画像の一部だけをe-メールしたりWebサイトの一部を取り込んだりするだけで大したことはなさそうだ。実際は、切り抜きは xsnapの最低限の用途で、文書、e−メール、マニュアルの切り抜きが数分で出来るのが xsnapの本領だ。
ここに切り抜きがある:
私に言わせれば、xsnapは全く有用だ。'print screen' のようなhot-keyに割り当てたとき、特にそうだ。
世界のhot-keyにxsnapがないのは損失だ。残念ながら、ファイルを'xpm'としてセーブする。
そんな欠点をさけてスクリプトすることが出来る。fly上でファイルを処理するようにスクリプトを作る。hot-key:に付けたスクリプトの例を示す。
#!/bin/bash # xsnap-jpg. Runs xsnap, converts to jpg and loads electric eyes. xsnap -stdout | xpmtoppm | cjpeg -quality 75 >~/snap.jpg;ee ~/snap.jpg タイプするのを節約するにはここhere. をシフトクリックする。次いで、出てきたダウンロード上で 'chmod 755 filename' とタイプして実行可能にする。これで、ファイルがjpegであることを除いてxsnapと同じように働くので、 ee が出来ること全部が出来る−またホームディレクトリが番号付きファイルで荒らされることもない。'-quality 75' はcjpeg規定値である。 '75'を別の数字に変えると好みの大きさ/品質のファイルになる。
xsnapのコンパイルには余分のステップが少しある。作業用mekefile又はconfigureスクリプトと一緒には来ないことに気付く筈だ。Makefileを作るには 'xmkmf' とタイプするだ
けだ( xが makefileを作る)。続いて普通通りに作る。
xsnapをダウンロードする同じ頁にいる間に、 Lupe は、色と位置に関するエキストラの大変良いmagnifierだ。(それにスマートなHUDディプレイもある)
Xclip は極めて簡単なアプリケーションで今までLinuxユーザーが手に入れていないのが不思議な位だ。
極めて簡単に、何でもでも望みのものをクリップボードペリオドに置く。
簡単な例は、友達にディレクトリリストを送るとしよう。近くのコンソールで"ls | xclip"とタイプし、中クリックしてe-メールの中にペーストする。実際はどのプログラムのstdoutもxclipにパイプされる。 'whois', 'showbook.pl' 何でもだ。
現在選ばれたテキストを捕捉するスクリプトとの組合せで、更に有用になる。ソートされていないリストをタイプしたがアルファベットでソートしたいとしよう。マウスを使ってリストをハイライトする。例えばalt-shift-S を押し、中クリックすると、新たにソートされたリストがペーストされる!この仕掛けは、カラム数合計、バナー型コメントブロックの作成、など、色々なことに使える。
上記全部をおこなうため wxWindows ライブラリを使うpythonスクリプトがここHere's にある。適切なコマンド行スイッチを用いて、これを各種hotkeysに付着するだけだ。(例えばコメントブロックを作るには'clipmanip.py -c' )
この宝石は、ブックマークが沢山ある時に欠かせない。showbook.plはNetscapeブックマークファイルを覗いて、そこで見出したURLを返す。Netscapeを数ヶ月使わなくとも、ブックマークファイルをKonqueror から輸出する。
showbook.plを使うサンプルサーチを示す:
[paul@oremus paul]$ showbook.pl wxwin == Misc == <A HREF="http://web.ukonline.co.uk/julian.smart/wxwin/">wxWindows</A>
そうだ。wxWindows に必要なURLを捕捉するのに使ったのだ。
number.pl
Landon Curt Noll. E-メール: "number-mail at asthe dot com"による。
恐れ入った。この人は山ほどの学位を持っている。Noll氏の傍ではどんな履歴書も価値なく見える。
number.pl は、「数から語」スクリプトを今まで見た中で最も慎重に扱う。小切手でも書かない限り、毎日は使わないだろうが、素晴らしいperlだ。
[paul@oremus paul]$ number.pl 123456789123456789.12 one hundred twenty three quadrillion, four hundred fifty six trillion, seven hundred eighty nine billion, one hundred twenty three million, four hundred fifty six thousand, seven hundred eighty nine point one two
未だ間違いそうだ。
Splitvt はコンソールを水平に二つに分けて一つのコンソールを二つにする。サムネイルを左にクリックすると、コマン行構築中にマニュアルを見るため如何に便利か分かるだろう。ウインドウ間を往復ぬるには'Control-W' を用いる。
Splitvt はどこでもうまく働く。実際のコンソールから何でも konsoleのノートに切り取ることが出来る。全く問題がなく、重宝だ。
英語を使う人は誰でもWordNetのコピイをマシン上に持つべきだ。WordNetは辞書だが、スペルのチェックでなく、文脈上の意味もついた本当の辞書である。
ダウンロードにほぼ10メガバイトを要するが、十分にその価値があるし、1回で済む。語 'date'を使って、'wn'(WordNetと一緒に来る実行可能プログラム)からのサンプルを示す。
名詞dateのOverview 名詞 date には 8ヶの意味がある (最初の 8 ヶはタグ付きテキストから) 1. date, day of the month -- (the specified day of the month; "what is the date today?") 2. date -- (a particular day specified as the time something will happen; "the date of the election is set by law") 3. date, appointment, engagement -- (a meeting arranged in advance; "she asked how to avoid kissing at the end of a date") 4. date -- (a particular but unspecified point in time; "they hoped to get together at an early date") 5. date -- (the present; "they are up to date"; "we haven't heard from them to date") 6. date, escort -- (a participant in a date; "his date never stopped talking") 7. date -- (the particular year (usually according to the Gregorian calendar) that an event occurred; "he tried to memorize all the dates for his history class") 8. date -- (sweet edible fruit of the date palm with a single long woody seed) 動詞dateのOverview 動詞 date には5ヶの意味がある(最初の 3 ヶはタグ付きテキストから) 1. date -- (go on a date with; "Tonight she is dating a former high school sweetheart") 2. date, date stamp -- (stamp with a date, as of a postmark; "The package is dated November 24") 3. date -- (assign a date to; determine the (probable) date of; "Scientists often cannot date precisely archeological or prehistorical findings") 4. go steady, go out, date, see -- (date regularly; have a steady relationship with; "Did you know that she is seeing her psychiatrist?" "He is dating his former wife again!") 5. date -- (provide with a dateline; mark with a date; "She wrote the letter on Monday but she dated it Saturday so as not to reveal that she procrastinated")
どうだ!完全だろう!それに上の出力は実際には切り詰めてある!
WordNet には、働かせたことはないがtcl/tk front-endがついて来る。 tcl/tkの旧版を使わせるようだ。私は通常、入出力にgdialogを使うこの this 小さいスクリプトの付いたhot-key (control-shift-E) から呼び出している。gdialog は殆どのディストリビューションと一緒に来ると思う。 Xdialog も大変良く、ドロップイン交換である。
同様の線で、容易にスクリプトに取り込めるのは、WORDS for LINUX (i86)で、同じように使えるラテン語辞書である。スクリプトはここhere.。showbook.pl.を使うそれのコピイを作るべきだったかも知れない。
これらツールに好奇心をかき立てられたことを望む。WordNet 以外はダウンロードの大きさも小さい。
Exploitsにはkernelアップデートと同じ位の実りがある。それほど共通ではないが、プラットホームに関わらずどんなOSにも沢山の弱点がありLinuxも例外ではない。Linuxルータプロジェクトには、PCハードウエアとLinux Kernelの性質のため、Cisco その他私有ルーターにはない、独特のセキュリティ問題がある。例えば、ハードウエアルーターは殆ど影響されないバッファオーバーフローがLinuxには共通である。LRPシステム管理者はこれら弱点を認識して解決すべきである。
そこで他方、あらゆるものについて、それぞれ装置が独特で、ルーティングアプリケーションに特化したISDN、イーサネット、フレームリレーT1、xDCL、PPPなど各種のルーターを持っている。ソースコードやハードウエアも秘密な私有財産である。
他方では、正しいソフトウエアを用いて何でも出来る一般目的 x86プロセッサを持っておりLinuxルーターは完全なアプリケーションである。Linuxを私有ユニシスの代案にした草の根運動と同様にを私有ルーターに代わるオープン代替案を作りつつある。LRPはあらゆる形でのルーティングを可能にしあらゆるネットワーク状態に対応する実際のLinux Kernel である。
従来、ファイアウォールとルーターは一つのボックスをルーターとし別のボックスをファイアウォールとする個別実体であった。特別設計の独特のハードウエアをそれぞれの機能に合わせて有していた。最近、これら装置が合体し始めた。
結局、これら多目的ルーターはセキュリティに新しい概念を持ち込み−セキュリティは沢山のことを意味するようになった。物理的セキュリティ、コアセキュリティ、ネットワークセキュリティがある。産業が私有ハードウエアを無視するなら、セキュリティを再考しなければならない。ここに計画の一部を示す。
1.物理的セキュリティ
Linux kernel とルータールーターとの間の弱さは異なる。最も一般的な攻撃はサービスの否定(DoS)とスキャニングであると、CERT dataは報告する。DoS攻撃はやり易く守り難い。バッファオーバーフローとDoS攻撃は両世界で可能である。ポートスキャニングは外からも内からも来る。スキャニングは本来の攻撃ではないけれども、程度いによりネットワーク偵察として、或いはサービスの否定としてさえも容易に法廷に持ち込むことが出来る。私の知識では未だに告発されている。
これら二つの問題をkernel内で、セキュリティパッチとnmapを用いて解決する。メインLRPディストリビューションに関しては、Oxygen kernels が Openwall patchを含み、Oxygenは連続的にアップグレードされている。 David Douthittによれば、Oxygenの後ろでKernel自体が「IP揶揄に対して、通常のパケットアドレス(martians)を保護し, ICMP リダイレクトと ICMP エコーリクエストを拒絶する」。それでも標準篩い分け(下記のネットワークセキュリティ)にはこれらの規則を含まなければならない。
nmap:私はこれをSATANの子孫と呼ぶ。これは試金石セキュリティツールである。nmapは何れのIPアドレス上のTCP 又はUDPの組をいずれもスキャンし、ネットワークの弱点を試験して見出す。nnmpはLRPボックス上で働く不要サービスを暴露する。ボックス外LRPディストリビューションには不要サービスが働いているものがある。 SecurityFocus.com 又は Rootshell.com を一寸覗くと探索方法が分かる。
CERTは、ファイルシステムセキュリティや嗅ぎ回りのような、ネットワーク上のユーザーの他の共通弱点は論じない。 fdisk, mke2fs 又はfstabの様なファイルシステム内容はここでの議論を保証しないし、嗅ぎ回りはコンソールからだけLRPにログインするなら問題ではない。
イーサネット嗅ぎ回りは危険だ。共有ケーブルモデモ上の他の論理ネットワークを嗅ぎ回るのは可能だ。君の隣人の別のダイアルアップからのダイナミックPPP接続でもそうだ。ウイルスとスキャンと一万もの"UNICODE バグ"は既に猖獗しているので嗅ぎ回りがもっと頻繁になると思われる。−CERTの範疇に入るだろう。IPアドレスの欠損がクラッキングを促進するのは興味がある。
暗号化と認証(ssh, ssl, smime, PGP)が嗅ぎ回りを包囲する。だが、どんな暗号も何時かは破られるので、最良なのは我々のデータが暗号より早く陳腐化することだ。テレネットセッションのような最重要のウインドウのデータを保護する。一年以内に誰かが解読するのに注意する。多くのルーターがパスワード認証に頼り過ぎ、これがインターフェイスによっては野蛮な攻撃を受ける。ここでLRPが勝つ。これはsshをサポートする。
III.ネットワークと外部ルーティングのセキュリティ
典型的ビジネス環境インフラストラクチャについての概要は:
短かい答は「全部阻止」である。Webサーバー用ポート80、ssh用ポート22など、サービスが働いているポートへのアクセスを許す。可能なときは何時でもWrap してchroot する(例えばBIND)。インターネットにつながるマシンでXを走らせるのは絶対駄目。
ルーティングに戻る。ルーティングは、初心者には易しい仕事ではない。Circuit City ルーターなどのためHTMLインターフェイスを持っているからだ。Windowsも持っている。他の人のためにはLRPを持っている。テキストベースのLRPメニューインターフェイスは、慣れた注釈付き/etc/conf.filesを提供する−Linux (Unix, Freenix)ユーザー用には簡単だが、他人には暗号コマンド行として誰をも脅威になる。その他のワンディスクルーターアプローチは同じような欠陥のある習熟曲線を有している。しかし、LRPは、他のルーターより愚かなルート決定をすることがある。コマンドは見慣れたものである。Cisco コマンド行'conf term'と異なり、LRPコンフィギュレーションとコマンドは1年触らなくても古く無効にならない。数千ドルのルーターで愚かでなくなるかLRPかはお金と時間の問題である。
だから、ルータールーターを買うか、何でも吸い込むハードウエアをひねって特性を追加しモジュールをLRP kernelにコンパイルして、特注化することである。取引は融通性とセキュリティである。LRPはkernelを用いて非揮発性ラムをフロッピイと埋め込みハードウエアで置き換える。特殊セキュリティ問題を心に留めるだけだ。
UMLケースツールを用いるオープンソースソフトウエアモデルの改造
統一モデル言語(UML)を用いるコンピュータ使用ソフトウエア工学(CASE) ツールはオープンソースのソフトウエアモデル支援機構を強化し複合デザイン問題の解決を助けた。得られる生産性レベルは、ソフトウエア技術者に詳細解析と設計の能力を与える生産的 UML CASE ツールの選択を通じて著しく向上させることが出来る。本論文では、ソフトウエア作成過程中にオープンソース・ソフトウエア・モデルと UML CASE ツールを用いる利点を示す。ソフトウエア・モデルを説明して在来の大規模ソフトウエア作成技術と比較する。またモデル開発段階とソフトウエア保守がオープンソースのカスタマベースのための完全対策の定義と如何に絡み合うかを説明する。オープンソース・ソフトウエア開発用に利用出来る主なCASEをソフトウエア技術者に紹介する。
オープンソース・ソフトウエア・モデル
オープンソース・ソフトウエア・モデルは、正確には新技術や新手順ではなく、在来の商業開発モデルに適用されるソフトウエア作成技術(Godfrey & Tu, 2000, p. 2)を別の面から眺めただけである。オープンソース計画は1960年頃からあったが、インターネットの通信及び情報媒体としての利用が増えたため、今日大いに普及する傾向にある。ソフトウエア作成手順には、次が含まれる。
オープンソース・ソフトウエア・モデルはこれら手順のすべてをサポートし、技術者に顧客要求を満たす高品質製品を作るため踏むべき方法論を提供する。オープンソース・モデルの決定的な利点は、「研究結果として扱われるコードを有し厳密な審査のため発表される科学的開発モデル」(Bezroukov, 2001, p.10)への拡張と密接な関連性である。したがって、このモデルの強味は、在来のソフトウエア作成モデルより広いユーザーベースを通じてサポートされるとの事実にある。その主たる弱点は「オープンソース・ソフトウエア・モデルは既に成功したソフトウエアで最も良く働くことにある。ユーザーベースを持たないソフトウエアのためには存在しない」との事実にある(O'Brien, 2001, p.20)。
オープンソース製品は単一のマネージャ、開発チーム、及び関連ユーザーベースを持つ傾向にある。それぞれが要求解決策につき独自の見識を有するので、手順は通常システム保守問題につき幅広い試験ベースを備える。方法論の土台は、生産品質、成熟製品に関心のある開発者の大共同社会に支えられた分散モデルに基づくことである。参加者は、殆どのソフトウエア開発者に取って主要な動機であるコードを書く機会、及びこのような共同社会がフトウエア作成手順を改良することを、楽しむ。
モデルは問題とそれを通じる制限を共有するので、分散されたソフトウエア手順自体を巡って回る。開発者の大部分は共同者と同じ場所にいないので、ソフトウエア開発期間中の保守はインターネットを通じてなされる。この事実は、オープンソース・ソフトウエアの民主的傾向と相俟って、製品開発を遅らせる傾向がある(Bezroukov, p.6)。プロジェクトが大きい程、克服すべき障害が大きくなる。同じ場所でのオープンソース・ソフトウエア製品は、集中して作業をし開発サイクルを通じて動きを確認出来るので、この現象を受けない。Linux Gnome, KDE, 及びEazel プロジェクトは、このような組織化オープンソース作成作業を採用しており、これがモデルを今日の開発の第一線に置いた。
オープンソースのソフトウエア・モデルは、既存ソフトウエア作成モデルに伴う強度の洗練と定義することが出来る。他のモデルと同様、現在使われているソフトウエア作成モデルの弱点を除いてからの強度を伸ばそうと試みる。これはオープンソース運動主要開発者間のオープン通信とアイデア共有により達成された。モデル構造は、プロジェクト保守者、開発チーム及びユーザー又はデバッガとの間に周期的通信パスを作ることにより、インクレメンタル、ビルトアンドフィックス及び迅速プロトタイプのモデル上で改良される。図1を参照。例えば、統一モデル言語(UML)ツールコンセプトが開発され、オープンソース。プロジェクトのためのインターネット・レポジトリ、オープンソース開発ネットワークSurgeForce (http://www.surgeforce.com/)に登録された。プロジェクトが開発チームを引き付けた後、保守者が、試験と特性追加のため、初期リリースを彼らに提供する。開発者はプロジェクトマネージャに強化につき通知し、アプリケーションにコードすると製品試験のためユーザーベースが同定される。ユーザーベースもまた設計瑕疵修正を申し出て、保守者が製品に織り込むことを望む新規特性を提案するる機会を有るる。改良製品は、次いで開発チームに戻され、この循環はプロジェクトが安定なリリース出来る製品に成熟するまで繰り返される。
![]() |
比較モデル
オープンソース・ソフトウエア・モデルは、お互いの各種方法論を組み込むことにより在来のソフトウエア作成モデルとの絆を保つ。
同期・安定化モデル:このモデルの強味はOSとソフトウエア産業におけるマイクロソフトの支配により明らかである。このモデルはプロジェクト端でなく開発プロセスの各部分の間に、プログラマが開発した事項を同期し定期的に安定化する。これとオープンソース・モデルとの違いは、マイクロソフトモデルが単一顧客でなく市場又は問題領域に焦点を絞ることにある。この相違のため、オープンソース・ソフトウエア・モデルは一般的に市場調査要求が不完全で文書は少なくシステムレベルの詳細設計はほとんどない (Malik & Palencia, 1999)。焦点の欠如は多重プロジェクト活動を停止する。幸いに、その後にはソフトウエア作成技術は確立し、有用なニーズを満たし、製品が成功が続く。
ウォーターフォール(滝)モデル:このモデルは、何れのソフトウエア開発手順の間にも適用出来る古典的システム開発仕様を作成する。このモデルは、他のすべてのモデルの背景となっておりオープンソース・モデルも例外ではない。試験はウォーターフォール方法の各段階で完了し、オープンソース・ソフトウエア・モデルのを用いてプロジェクトの成功に導く。これは全プロセスの間点検と平衡を必要とするのでオープンソース・モデルは、機能性改善のためのユーザー相互作用を増やすことで、この考えを拡張する。
ビルトアンドフィックス・モデル:Schach (p.64) は「多くの製品がビルトアンドフィックス・モデルを使って開発されるのは不幸である」と言う。オープンソース・プロジェクトの大多数は、プログラマ又はシステムエンジニアの経験した特定問題解決のため設計されるので、このモデルの下で開発を開始する。製品が成熟すると、結局はこのモデルから、ユーザーニーズに合致し設計要求を満たす製品に開花する。プロジェクトが確立されたライフサイクル方法論をモデル自体に適用するので、計画によりオープンソース・ソフトウエア・モデルの限界を克服することが出来る。Apacheプロジェクトは、NCSAウエブサーバーへのつぎはぎを分担して、webmastersから出発しインターネットに接続される今日では最も有名なサーバーに発達したた(Behlendorf, 1999)。
急速プロトタイプ・モデル:急速開発モデルは、突き止めたシステム設計問題のための典型的な解決策である。ユーザーに最も仕事のし易い製品を提供し設計改良への協力を奨励するので、オープンソース・プロジェクトの幾つかがこのモデルに基づいて開発している。初期リリースの間に急速プロトタイプとして出発したオープンソース・プロジェクトは、普通このモデルの下での進行に失敗する。開発的リリースが増えるにつれ、膨大な試験解析が必要となるか又はプロジェクト開発参加者が欠乏するからである。
スパイラル・モデル:スパイラル・モデルは、大規模ソフトウエア・アプリケーションに関するソフトウエア開発全期間を通じる広範なリスク解析である。多重プロトタイプシステムは、完成製品の運営リリースの準備が整うまで、適合検証とリスク解析によって、開発される。他のモデルと同様、オープンソース・ソフトウエア・モデルは、プロジェクト規模とユーザー数によって、通常スパイラル・モデルとの関連で使用される。オープンソース・リレーショナル・データベースは、ビジネスユーザーのためのデータベース不具合に結合するリスが著しく壮大するので、スパイラル・モデルの検証とリスク解析機能をその開発段階に組み込む。
オープンソース・ソフトウエア・モデルが備える保守機能性は、このモデルがサービスと発展への生産性に依存するので、その最強の証拠である。製品ユーザーがソフトウエア保守をおこない強化は通常アプリケーションにコードされて後刻開発者に提供される。コードベースは、ユーザーが製品限界を発見し開発者に解決策を提出するので、通常定常安定状態に止まる。、
オープンソースの最弱点は、製品市場受容、及び主流組織のための実際のビジネスニーズ発見に関連する。ほとんどのオープンソース・プロジェクトは、プログラマの「日常業務」関連で経験した問題に関する解決策としての基礎はほとんどなくて発足する。Perlプログラム言語は、 Larry Walが1986年にWebペイジをプログラムで書く方法としてこの言語を書いて以来著しく成長した製品であった。「会社がこの製品の実行に熱心であったら、オープンソース戦略を成功させるためこの製品が必要とすることを正確に判定する研究をする必要があった」(Behlendorf, paragraph 38)。この見通しがオープンソース・ソフトウエア・モデルを強化する。
オープンソースとUML
オープンソース・プロジェクトは、私有財産プロジェクトと同様、一定レベルの要求解析と解決策実行を成功させるモデル化を必要とする。UMLは、健全な手順と頑丈なアーキテクチャを組み込んだ、モデル駆動開発の構築に決定的な方法である。仕様は、開発者がモデルシステム成分、作用及びユーザーに標準命名法を使うのが便利になっている。UML用オブジェクト・モデリング・グループは次のように言う:
「統一モデル言語 (UML) は、ソフトウエア相互作用システムの作品を視覚化、規定、構築及び文書化するためのグラフィック言語である。UMLは、ビジネス過程及びシステム機能のような概念的なものと同時にプログラム言語、ステートメント、データベース計画、及び再使用可能ソフトウエア成分のような創造的なものとを含むシステムの青写真を書く標準方法を提供する」(OMG, 2001)。
OMGのUMLに関する主要点は、システムが達成すると思われることを明確にするための「言語」であって、特定の課題を達成する方法でも手順でもないことである。この言葉は、各種の方法で開発全期間にソフトウエアをサポートするため使用することができるが、システム青写真として役立つために作られたものである。要求解析が、ソフトウエア又はシステム問題に関して実行され、次いでUMLを経由してモデル化され概念的解決策として提出される。UML明細書は、問題解決のため使用すべき方法論も手順も規定しないで、問題に関し解析者が理解したことを設計チームに解り易く概説する。
UMLは、以下の型の問題解決策について記号法とセマンチックを定義する(Erriksson & Penker, 1998):
UMLはオープンソース・ソフトウエア・モデルに、個人用の簡単なソリューションアプリケーションを産業規模システム要求を解決する大規模ソリューションに発達させる能力を与える。開発者には、国際OMG規格に合致するモデル要素、記号法及び指針を与える。UMLが開発組織に与えるプロセスは、その開発作業をこれら複雑な問題の容易な理解に向けて結集することが出来るようにすることである。
UMLが「私有財産でなくオープンである」(OMG, 1997, paragraph 24)との事実により、標準記号法オープンソース開発に使用する各種のツール及び言語に組み込むことが可能になる。UMLはApacheグループhttp://www.apache.org/、及びCommon ObjectRequest Broker Architecture (CORBA), http://www.corba.org/ に関連するオープン開発作業を成功に導き、多重OS上の開発者が使用するためベンダー中立の仕様を提供する。
オープンソース・コンピュータエイデッド・ソフトウエア作成(CASE)ツールの大多数は、三つの主要方法論Grady Booch, James Rumbaugh, 及びIvar Jacobson の機能を結合した方法論、UMLのみをサポートする。他のオブジェクト指向方法論と異なり、UMLは、何年も掛けて発展した他の多くの方法論の強味を結合した、オープンモデリング規格になることを目標としている。多くのツールがUMLバージョン1.2をサポートするので、
古い方法に慣れた開発者をUMLに移らせるため、ユーザーがBooch, OMT (オブジェクト指向モデリング言語)及びUML の視覚表示の間で変わることが出来る、
オープンソース・ツール
システム設計用にオープンソース・ツールを選ぶのは、それ程易しいことではない。利用出来るほとんどのツールは、開発段階が異なり複雑な問題を解くのに必要な設計レベルを備えるものは少ないからである。進歩的ツールは一つの言語だけを目標にしているので、C, C++ 及び Java のためのオープンソース・ソリューションを設計することはは問題を複雑にするだけである。予算措置無しではツール開発は通常長い過程になるので、ほとんどの設計ツール開発者が受ける予算制限が、ツール選択機能性とともに明るみに出る。
現在、linuxOSを目標とするSurgeForce (UML, 2001)がホストになって、色々な開発段階の28ヶの異なるUMLツールがある。一方、大学又は総合開発企業(IDE)会社がそのIDEを促進するため幾つかのWindowsUML を提供している。オープンソース社会は、UMLサポートを単一開発者利用から大規模組織化作業までの範囲のプロジェクトに統合するため幾つかのツールを維持している。問題は特定の言語又はライブラリのためのツールを見出すことでなく、完全な往復ソフトウエア作成サポートを実際に提供することの出来るアプリケーションを見出すことである。
オープンソース・ソフトウエア・モデルは、UMLモデリングツールに関して開発者サポートを享受している。「UMLは、互いに近いけれども、ツールインターフェイス、記憶、又はランタイムモデルでなく、セマンチック・メタモデルを定義する」(OMG, 1997, paragraph 13)からである。オープンソース・ツールの実際は、ツールがなさねばならないことに関するアイデアを持つことだけに欠け、不完全開発又は貧弱な保守の状態に止まることが極めて多いことである。プラットホームに無関係に設計されたツールもあるので、展開の容易さがツールのプログラム言語をJavaに制限する。残りのツールは、特定OSを目標にしているので、ソフトウエア開発期間中の広範な設計サポートを提供するものは少ない。
Dia とUML
Diaは、UML 1.2仕様に基づくUMLモデリングの用プラットホーム無関係のアプリケーションである。このアプリケーションは元々Microsoft Visioに対するLinux代替案として開発され、システム設計過程全体に広範なサポートを提供する。このツールはしかし公式アプリケーションではなく、システム活動、使用事案、協力及び構成部品ダイアグラムに使用することが出来るのみである。
ErikssonとPenker (1998, p.35-36)によれば、Diaは、図面作成用機能を備え、レポジトリとして働き、モデルナビゲーションをサポートし、あらゆる抽出レベルのモデルをカバーするので、近代的CASEツールである。これはしかし、コード作成、逆エンジニアリング、二次CASE統合の機能を備えておらず、互換性のあるCASEツールモデルを含むので、進歩的ツールの仕様には合致しない。このツールは、使用が用意でナビゲーションが簡単なのでオープンソース・システム・モデリングには貴重である。
DiaはUniversity Library System Use Case シナリオ、図2参照、及び同じシステムの部分的クラスダイアグラム、図3参照、のモデル作成に使用された、UML仕様の何れの公式バージョンも、ユーザーがその特殊仕様の制限内に止まる限り、Diaを通じてモデル化することが出来る。Diaの機能性はいずれの公式コンポーネント仕様のサポートをも含む、図4参照。
図2.Diaライブラリシステム Use-Case ダイアグラム |
図3. Diaクラスダイアグラム |
|
図4.Dia コンポーネントダイアグラム |
kUML
kUML は、 Linux SuSe 6.2 OS 用に特に設計されたオープンソースUMLソリューションである。kUMLはUML 1.3 仕様をサポートするため開発されたのでUse-Caseとクラスダイアグラムの記述のみに限定されている。多くのオープンソース製品のように、搭載はユーザーの正しく働かせる能力に依存するので、コンフィギュレーションが克服すべき最大課題である。このツールはSuSe 6.2上で開発されたので、その上で働くよう最適化されているが、kUMLは、適切なKDEとQTライブラリを有するか又はRedHatのパケージマネージメント(RPM)スキムを用いるものなら二つの追加SuSe 専用RPM (libcms.so.1 and libmng.so.0)もまた搭載されている限り、どのLinuxにも搭載することが出来る。このツールの弱点は、免疫性、開発者の不足、及び機能性にある。このツールはkOfficeプロジェクト関連の1200クラス以上をうまく組み込むと開発者が教えられても、アプリケーション完全性は機能性強調試験に際して「ひっくり返る」。
kUMLの強味は、UML仕様をサポートしていることである。このツールは仕様の一部を占め、その部分の開発に重点を置く。クラスダイアグラムが簡単に作成され、図5参照、取扱えて、図6参照、設計すべきシステムを反映する。ファンクション、アトリビュート、及びアブストラクション設計仕様に合うよう図形化される。このツールは、余り有用でないが、kUMLが成熟するとオープンソース開発者の効率的ソフトウエア作成ツールになるであろう。
図5. kUML クラス図形化機能. |
図6. kUML クラスアトリビュート編集機能 |
オープンソース・ソフトウエア・モデルは、TigrisのArgoUML CASE によりUML1.3仕様の満足度を大きくした。このツールは、UML (Tigris, 2001)用OMG規格への合致を残しながら全部がJava 1.2 とJava 基礎クラスで書かれておりプラットホーム無関係である。ArgoUMLは、扱い易いユーザーインターフェイスを通じてあらゆるプロジェクトの完全な室テムとコンポーネントモデル化を提供する。クラス図形化、図7参照、は直観的で依存性の関連クラスへのマップが容易である。オープンソース社会はTigrisから全面的UMLサポートを受けており、小型プログラムから大型プログラムへの移植が容易である。
図 7. ArgoUML クラス図形化 |
図形化初期化は、ツールの見易いサポート特性により容易におこなわれる。これは設計プロセスの間ダイナミック"To Do"リストを維持し、完成図形化に基づいて可能な改良を示唆する。ArgoUMLは、設計者にプロジェクトの完全な概観を示す多重、重畳ダイアグラムを提供することと出来るその能力により、利用出来る最強のオープンソース・ソフトウエア・モデリング環境を有している。設計過程全体を通じて、設計過程を完了してときはいつでもスケルトンJavaコードが維持される。オープンソース・ソフトウエア・モデリング環境には、ソフトウエア技術者に生産的モデリング環境の与える前に進むべき幾つかの開発サイクルがあるが、ArgoUML は、開発プロジェクトに関する完全なCASEツールサポートのため必要なインターフェイスを与える。
xFig
xFigisは、利用出来る最弱のオープンソースUMLツールである。これはシステム設計者がそのプロジェクトに組み込むインターフェイスを殆ど与えないしまた、扱い難い。Use-Case, Activity及びクラス図形化のサポートのためツールに含まれるUML記号は限られている。xFigは、どのオープンソースパケージもこの機能を持たないためUML記号から継承した旧式のX11ベクトル描画パケージである。 xFig,を用いて基本的システム設計は完成出来るが、xFigがソフトウエア技術者に提供出来るものを超えた重要な改良を備えた既存アプリケーションには駄目である。xFigの機能不足に関する不具合は、ツールや設計者のものではなく、多くのオープンソース開発プロジェクトに、嘗て製品にUML記号を書いたユーザーがいてUML図形化の必要があったためである。だがUMLサポートに関するその機能は、Dia やArgoUMLのようなツールが成熟して広い範囲のシステム設計要求をみたすので、必要なくなった。
OpenTool 3.1
OpenTool 3.1は、UMLバージョン1.3に基づく強力なプラットホーム無関係UMLモデリングツールであって、これもまた完全なシステム開発ソリューションパケージを提供する。このツールの強味は、C++, Smalltalk, 又はJavaのソースコードの作成、ドキュメンテーション作成、及びJavaアプリケーションの逆作成の能力にある。UML図形化サポートにはパケージ、クラス、シーケンス、ステート、 Use-Case及び協力ダイアグラムが含まれる。オープンソース・モデルをサポートするこのツールの能力は低コストで完全なパケージ統合にある。ツール自体は、私有財産製品なので、オープンソース基準に反する方向に進むが、Linux, Solaris, 及びWindows マシン上での開発が出来る。
まとめ
オープンソース社会の躓きの石は、多くの開発者が壮大な絵を想像して着手すると信じることである。ツール宣伝みを通じてUMLは容易にプロジェクトに組み込まれ、開発時間を短縮しプロジェクト展開時間を短くする。
Martin Fowlerの設計の性質は染めることだとの提案(Fowler, 2001, p.43-46)には、プログラミング技術が、ソフトウエア開発を計画的設計過程ではなく発展的設計をバックに展開されるExtreme Programming (XP)に向かって発展しているので、根拠がなくなった。XPは、設計パターンの知識を保ち、次いでこの知識を必要な場合にのみ使いながら、コードを常に出来るだけ明確に簡単に保つの能力である。
オープンソースUMLサポートに伴う重大問題は、多くの私有ベンダーがUML1.4をサポートするか又はUML2.0仕様をサポートするツールを準備しているとき、UML 1.2仕様をサポートするとの選択にある。「UML 1.3 は、最初の成熟したモデル化言語使用のリリースであった」 (Kobryn, 1999, p.36) ので、UML 1.2 に導いた仕様が未熟であっても、開発者は可能な最も成熟した仕様をサポートするツール使わなければならない。最新UML設計基準に合致し損ねたことにより、オープンソースプロジェクトは、別のOMGモデリング規格を有する改良アーキテクチャ・アライメントをサポートすることはなく、理解し難くてEntity Java Beans 又はCOM+のような主流コンポーネント・アーキテクチャをサポートすることはないであろう。
オープンソース・ソフトウエア・モデルは、ソフトウエア技術社会に取って生き生きとした代案である。30年以上も存在し、依存する技術的変化に許容範囲を作りながら、UML
参考文献
Behlendorf, B. (1999, January) Open Sources: Voices from the Open Source Revolution. www.oreilly.com/catalog/opensources/book/brian.html から2001年2月10日回収。
Bezrouov, N. (2001). Open Source Software: Development as a Special Type of Academic Research (Critique of Vulgar Raymondism). www.firstmonday.dk/issues/issue4_10/bezroukov/から2001年2月11日回収。
Erriksson, H., & Penker, M. (1998). UML Toolkit. New York. John Wiley & Sons.
Fowler, M. (2001, April). Is Design Dead?. Software Development Vol. 9, No. 4, 43-46.
Godfrey, M.W. & Tu, Q. (2000). Evolution in Open Source Software: A Case Study. Proceedings of the International Conference on Software Maintenance (ICSM-00), IEEE, 3. 1063-6773.
Kobryn, C. (1999, October). UML 2001: A Standardization Odyssey. Communications of the ACM, Vol.42, No.10, 29-37.
LinuxCare. (2000, February). Demystifying Open Source: How Open Source Software Development Works. http://www.linuxcare.com/ から2001年2月15日回収。
Malik, S. & Palencia, J.R. (1999, December 6). Synchronize and Stabilize vs. Open-Source. (Computer Science 95.314A Research Report). Ottawa, Ontario, Canada: Carleton University, Computer Science.
O'Brien, M. (2001, January). Linux, the Big $, and Mr. Protocol. Server/Workstation Expert. 20.
Object Modeling Group. (2001). http://www.omg.org/から2001年2月15日回収。
Object Modeling Group. (1997). Press Release. www.omg.org/news/pr97/umlprimer.html 2001年2月15日回収。
Schach, S.R. (1998). Classical and Object-Oriented Software Engineering: With UML and C++. 4th ed. WCB/McGraw-Hill.
Tigris.org. (2001). ArgoUML Features. http://argouml.tigris.org/features.html 2001年2月19日回収。
UML. (2001). UML Notes. www.lut.ti/~hevi/uml/projects 2001年3月11日回収。
要約
awk言語はもっと強力なPerlの前で見過ごされて来たが、Perlより普及しており、Perlより早く習熟出来、効率が重要なシステムモニタスクリプトでは至る所で使うことが出来る。この簡単な指導書はawkプログラミングの開始を助けるため書いた。
基本
awk言語は、規則的にフォーマットされたテキストの処理用に設計された小型のC型言語である。これは、通常データベースダンプとシステムログファイルを含む。これは規則的表現とパターン取扱を巡って構築され、Perlと似ている。事実、Perlはawk言語の孫の見られている。
awkと言う変な名前は、作者の名前 Alfred V. Aho, Brian W. Kernighan, とPeter J. Weinberger.に由来する。KernighanはC言語の父でUNIX世界の有力者だ。
awk を一行で使う
これは私が、特定のフィールドを出力にプリントするため、qwkを使い始めた方法である。これは驚くほどよく働くが、完成に数分要する大きいスクリプトを書くとき効率は最低になる。
しかし、これで成功する、時には有用である。
ls -l /tmp/foobar | awk '{print $1"\t"$9}'
これがおこなうことは、次のような入力から、
-rw-rw-rw- 1 root root 1 Jul 14 1997 tmpmsg
次のような出力を出すことである。
-rw-rw-rw- tmpmsg
おこなったことは極めて分かり易い、一番目と九番目のフィールドだけプリントした。行データ抽出が普及する理由が分かるだろう。だが、awkプログラムに巣立ちしよう。
awk プログラム構造
awkについて私が好きなのは、Perl 又はPythonに比べた力に関わらない読み易さにある。どのawkプログラムにも三つの部分がある。何らかの入力を読む前に一度は実行するBEGINブロック 、入力各行に付き実行する主ループ、及び入力全部を読んだ後実行するENDブロックである。この通り、極めて分かり易い。
これは言語のある特性を強調極めて簡単なawkプログラムである。解説の前に、していることを拾い出して見てほしい。
#!/usr/bin/awk -f
#
# check the sulog for failures..
# copyright 2001 (c) jose nazario
#
# works for Solaris, IRIX and HPUX 10.20
BEGIN {
print "--- checking sulog"
failed=0
}
{
if ($4 == "-") {
print "failed su:\t"$6"\tat\t"$2"\t"$3
failed=failed+1
}
}
END {
print "---------------------------------------"
printf("\ttotal number of records:\t%d\n", NR)
printf("\ttotal number of failed su's:\t%d\n",failed)
}
分かっただろうか?入力ファイルの一般行のフォーマット(sulog, from, say, IRIX)の理解に役立つだろう。行の典型的なペアを示す。
SU 01/30 13:15 - ttyq1 jose-root
SU 01/30 13:15 + ttyq1 jose-root
スクリプトの意味が分かるだろう。BEGIN ブロックはすべてを設定し、ヘッダをプリントし、変数(この場合はフィールド)をゼロに初期化する。次いで主ループが(su attemptsのログ、sulog fileである)入力各行を読んで、第4フィールドをminuサインに対して比較する。整合したら、試みが失敗したからなので、カウンタを一つ増やしてどの試みが何時失敗したかを記録する。最後に入力行の数をレコード数(NR、awk内部変数)及び記録したフィールドsu attemptの数として示して最終結果を与える。出力は次のようになる。
failed su: jose-root at 01/30 13:15
---------------------------------------
total number of records: 272
total number of failed su's: 73
Cでおこなうのと殆ど同じ、printfの働き方が分かった筈だ。短く言うと、awkはむしろ直覚的な言語だ。
規定値ではフィールドセパレータは空白だが、ひねることも出来る。パスワード・フィールドではコロンに設定したが、これは0のIDとみなされ(同等ではない)るのでパスワードはない。
#!/usr/bin/awk -f
BEGIN { FS=":" }
{
if ($3 == 0) print $1
if ($2 == "") print $1
}
awkからの別の中身はレコードセパレータ用のRS(規定値は新ライン、又は\n)、出力フィールドセパレータ用のOFS(規定値はなし、と思う)及び出力レコードセパレータ用のORSを知って使うことだ。これら全部は勿論スクリプト内で設定することが出来る。
規則的表現
awk言語は、今まで知った述べる規則的表現にgrepより良く合う。例えば、私はインテルLinuxシステム上で類似exploitの存在を探すため次のawkサーチパターンを用いる。
#!/usr/bin/awk -f
{ if ($0 ~ /\x90/) print "exploit at line " NR }
grepでは8進数値 0x90を探すことは出来ないが、0x90はインテルexploitでは、シェルコード部分でパディングとして使われるNOP呼出で、広く使われる。
ddを数値として\xddで8進数を、十進数値を使った\dddで十進数(つまりASCII)値値を探せるし、勿論通常表現のテキストに基づいてもよい。
乱数 awk ビット
awkの乱数は容易に発生されるが、面白いことがある。rand()