IntelとAMDからついに1GHzのCPUが発表されました。我々消費者の手に入るようになるのはいつのことでしょうか。でも1GHzのCPUを手に入れたら何に使いましょう。
Linux Jounal 3月号発売中。特集はトレーニング。
Linx Real-Time Systems は Linx バージョンの BlueCat Linux を発表。BlueCat Linux は組み込みシステムの開発環境、LinuxWorks スイートの一部分で Red Hat 6.1 互換。
www.bluecat.com
Corel から Linux 用の Macromedia Flash
▽Hard Hat▽Monta Vista Software は 組み込み用途のHard Hat Linux を搭載した GoAhead WebServer を出荷。組み込み JavaScript を使用しており、Active Server Pages (ASP) を使った唯一のオープンソース。
GoAhead
Windows から起動できる Linux for Windows がリリースされた。ベースはLinux-Mandrake 6.1。
Macmillan software
Linux-Mandrake 7.0 が Macmillan USA からリリースされた。初心者、中級者を対象としたパッケージ。
▽Red Hat▽Red Hat はヨーロッパでの事業強化。
▽Storm▽Storm Linux 2000 がヨーロッパでリリースされた。
▽SuSE▽スウェーデンの Sysdeco Mimer と提携。Sysdeco Mimer は MIMER DBMX を開発している企業。Mimer のパーソナルエディションがダウンロードできる。
http://www.mimer.com/download
SCO と SuSE は SCO の Tarantella を SuSE の顧客へ提供。
▽TurboLinux▽Turbo Linux に E-Commerce Suite
|
Linux Open Source Expo and Conference |
March 7-10, 2000 Sydney, Australia www.linuxexpo.com.au |
|
Game Developers Conference |
March 10-12, 2000 San Jose, CA www.gdconf.com
|
|
Software Development Conference & Expo |
March 19-24, 2000 San Jose, CA www.sdexpo.com
|
|
Singapore Linux Conference (SLC) |
March 23-25, 2000 Singapore www.slc.com.sg
|
|
Colorado Linux Info Quest |
April 1, 2000 Denver, CO thecliq.org
|
|
Montreal Linux Expo |
April 10-12, 2000 Montreal, Canada www.skyevents.com/EN/
|
|
Spring COMDEX |
April 17-20, 2000 Chicago, IL www.zdevents.com/comdex
|
|
HPC Linux 2000: Workshop on High-Performance Computing with
Linux Platforms |
May 14-17, 2000 Beijing, China www.csis.hku.hk/~clwang/HPCLinux2000.html (In conjunction with HPC-ASIA 2000: The Fourth International Conference/Exhibition on High Performance Computing in Asia-Pacific Region)
|
|
Linux Canada |
May 15-18, 2000 Toronto, Canada www.linuxcanadaexpo.com
|
GetTux.comが資金調達ができずに閉鎖されることになった。Linux の普及とドキュメントの整備とを目的に設立されたのだが融資先の目途がたっていない。
▽Linux-Net プロジェクト▽Linuxが家電関連機器のインテリジェント端末に利用されることを目的にしている。例えば冷蔵庫のミルクが切れそうな場合、サーバーに通知を出してショッピングリストにミルクを追加する。そうすればいつでもPDAなどで確認できる。
▽Cobalt Qube 2 と Phoenix Aaptive Firewall<▽新しいファイアウォール、Phoenix Adaptive Firewall が発表された。ICSA、LinuxLabs、Cobalt Qube 2サーバーの認定を受けている。対象は小規模から中規模のビジネス、ワークグループ、支店、学校、政府機関など。Phoenixの採用でより使いやすく高機能になる。Phoenix Qube の価格はユーザー数無制限で2495ドル。
▽OpenTape.org 開設▽オープンソースをサポートする OpenTape.org が開設された。Linux用のデータバックアップハードウェア、ソフトウェアの技術情報を提供する。
▽Hotmail に対抗するフリー e-mail サービス、Linuxlinks.com▽LinuxLinks.com はウェブベースのフリーメールサービスを開始。ユーザーはウェブブラウザがあればメールの送受信ができる。添付ファイルやPOP3の受信も可能。その他メッセージ検索、シグナチャ、アリアスなどの機能を提供。
▽LinuxベースのDSLモデム▽Silicon Automation Systems はLinux 用のxDSLモデムを開発した。Synpase G.lite モデムの速度は下りが1.5Mb/s、上りが512Kb/s。
www.sasi.com
Phone はインターネット電話を可能にするクライアントプログラムだ。要求される機能は次の通り。
Sun-Netscape 連合から iPlanet ウェブサーバーが発表された。iPlanet Web Serber と FastTrack Edition 4.1 は開発者向けでフリーで提供される。FastTrack Edition 4.1 は Netscape Enterprise Edition 4.1 のコアアプリケーションと管理機能を有している。iPlanet Web Serber, FastTrack Edition 4.1 ソフトウェアは5月にはフリーで提供される予定。
▽インターネット対応携帯電話でネットワークの設定変更▽SPIRO-Linux が SPIRO-Linux WETMINts を発表。WETMINtSはブラウザを使って DNS、local/remote ファイルシステムなどを変更するアプリケーション。CGI機能を使ってシステムファイルをアップデートする。
▽Xi Graphics 製品▽Xi Graphics は Linux 用のドライバを発表した。3D Linux ドライバは OpenGL 1.1.1互換で libGLU、libGL をサポートする。オンラインでの価格は29ドル。評価版をダウンロードすることができ購入前に実際に使用感を確かめることができる。
▽その他のソフトウェア▽Magic Enterprise Edition V.8 : e-コマース、エンタープライズソフトウェア開発のためのツールキット
clobberd 4.16 : ユーザーとネットワークインタフェースをモニタするデーモン
TotalView 4.0 : 複数のプラットフォームでの開発に対応したデバッガ
Cyclades : Cyclom-Y と Cyclades-Z のバージョン6.5.5をリリース
Igloo FTP : 商用FTPクライアントのベータバージョンをリリース
ESP Print Pro : Linux用のプリンタドライバパッケージ
CUPS : Common Unix Printing System
ディレクトリ作成
mkdir ~/weather ~/bin/cronファイル ~/bin/cron/hourly.job の内容
#!/bin/sh
W=$HOME/weather
wget http://www.cis.ec.gc.ca/goes/huron_f.jpg \
-O $W/goes_huron_f.jpg
wget http://www.cis.ec.gc.ca/goes/gulf_f.jpg \
-O $W/goes_gulf_f.jpg
wget http://sgiot2.wwb.noaa.gov/COASTWATCH/GOES/G8CWNEVS.GIF \
-O $W/G8CWNEVS.GIF
ファイルに実行属性を付加
chmod +x ~/bin/cron/hourly.jobcrontab を実行
crontab -e次の内容を追加
10 * * * * $HOME/bin/cron/hourly.job >> /tmp/out.h 2>&1ファイルを保存して終了
~/bin/cron/hourly.job
取得した天気図を使用しているウィンドウマネージャに登録する
●トリプルブートNT ローダーを使ったトリプルブートが以前紹介されましたが今回は Lilo を使ったトリプルブートの方法。インストールしたOSは Win95(FAT32)、NT4(NTFS)、Linux(ext2)。
lilo.confに次のセクションを追加。
# Windows 95 stanza
other=/dev/hda1
table=/dev/hda
label=windows
# End Windows 95 stanza
# Windows NT stanza
other=/dev/hda2
table=/dev/hda
loader=/boot/os2_d.b
label=NT
# End Windows NT stanza
●ATI Xpert@Work PCI カードドライバ
XF86Setup か xf86config を使って設定をATIカードに変更する。なければSVGAカードを選択しよう。
●shadow パスワードに変更RedHat 6.1 ならコンバートツールを使おう。
"man pwconv"
smb.conf の [global] セクションに次の文を追加
include = /usr/local/samba/lib/smb.conf.%mマシンA(maca)とマシンB(macb)が平文のパスワードを使うなら /usr/local/samba/lib/smb.conf.maca, /usr/sbin/samba/lib/smb.conf.macb を作成して [global] セクションに
[global] encrypt passwords = noを追加する。これでmaca, macb 以外のマシンは暗号化パスワードを利用できる。 ●マイクロソフトコードレスホイールマウスを使う
/etc/X11/XF86Config の Pointer セクションに次の設定を追加する
Protocol "MouseSystems"
Device "/dev/gpmdata"
●ナルモデムで Wind95とLinuxを繋ぐ
ネットワークカードを2枚買うことを薦めます。
●NEC Multisync モニタのサポートxconfigurator か xf86config を使って設定しよう。/etc/XF86Config の設定例は次の通り。
Section "Monitor"
Identifier "SAM M174"
VendorName "S.A.M. GmbH"
ModelName "M174"
HorizSync 30-64
VertRefresh 47-100
Gamma 1.2
Mode "640x480@72Hz" # Standard VESA
DotClock 31.5
HTimings 640 664 704 832
VTimings 480 489 492 520
EndMode
Mode "800x600@72Hz" # Standard VESA
DotClock 50
HTimings 800 856 976 1040
VTimings 600 637 643 666
Flags "+HSync" "+VSync"
EndMode
Mode "1024x768@70Hz" # Standard VESA
DotClock 75
HTimings 1024 1048 1184 1328
VTimings 768 771 777 806
Flags "-HSync" "-VSync"
EndMode
EndSection
●Linux でPOP サーバーを立てたが Windows からメールが打てない
多分MTA(Mail Transfer Agent)の設定のrelayが動作していない。MTAの設定をやり直そう。
Linux Gazette に掲載されている漫画です。ご覧になるにはこちらをクリックしてください。
以前 IBM の X ステーションというターミナルがあり IBM RISC 6000 に接続して使用されていました。X ステーションにはネットワークからの起動と X インタフェースとがインストールされていました。これはサーバーが高価だった時に利用された形態です。同じことが Linux ボックスでも可能でしょうか。Linux から X ステーションを起動するには次のステップが必要です。
X ステーションが起動するとイーサネットアドレスをネットワークに流しブートの要請をします。これはX ステーション 120に必要なプロセスで X ステーション 130はブートファイルとフォントをスタティックに保存しています。X ステーションの起動が済んだら ftp を利用して X ステーションが必要とするファイルを提供します。その後に xdm が起動されてログインのダイアログが表示されます。最後に crontab を編集して1分毎に xdm デーモンが起動されるようにします。
Eterm を持っていたら次のコマンドを入力してみて下さい。
Eterm -W -O --shade 60 --home-on-echo no --home-on-input
背景が透明で明るさを抑えた Eterm が表示されるはずです。因みに使っている Eterm は "Eterm-0.8-9.i386.rpm" です。Eterm のウィンドウでスクロールアップしたときにシステムが新しいテキストを表示すると最後の行まで戻るのはどうやら Red Hat のデフォルトの仕様のようです。それまで使っていた "gnome-terminal" では画面をスクロールアップしたときにシステムがテキストを表示しても画面はそのままです。もちろん自分でテキストを入力したときには画面はコマンドラインまで戻ります。これを止めるための引数が "--home-on-echo no" で、"--home-on-input" は念のために入れてあります。"ls --color" をデフォルトで使っていますが Eterm と背景との関係があまり良くないので緑と白を入れ換え、青を少し明るくしています。これはそれぞれの好みによりますから自分にあったものを探して下さい。では Eterm のデフォルトの RGB のバリューは何でしょうか。筆者は次のように想像しています。
Name Code RGB Value Name Code RGB Value Black 30 000000 Dark Gray 1;30 333333 Red 31 cc0000 Light Red 1;31 ff0000 Green 32 00cc00 Light Green 1;32 00ff00 Blue 34 0000cc Light Blue 1;34 0000ff Cyan 36 00cccc Light Cyan 1;36 00ffff Purple 35 cc00cc Light Purple 1;35 ff00ff Brown 33 cccc00 Yellow 1;33 ffff00 Light Gray 37 faebd7 White 1;37 ffffffEterm が内部で使用している番号を含めると次のようになる。
Eterm Eterm
Name Color # Code RGB Value Name Color # Code RGB Value
Black 0 30 000000 Dark Gray 8 1;30 333333
Red 1 31 cc0000 Light Red 9 1;31 ff0000
Green 2 32 00cc00 Light Green 10 1;32 00ff00
Brown 3 33 cccc00 Yellow 11 1;33 ffff00
Blue 4 34 0000cc Light Blue 12 1;34 0000ff
Purple 5 35 cc00cc Light Purple 13 1;35 ff00ff
Cyan 6 36 00cccc Light Cyan 14 1;36 00ffff
Light Gray 7 37 faebd7 White 15 1;37 ffffff
そこで白とライトグリーンを入れ換えライトブルーを明るくするには
Eterm -f rgb:00/ff/00 --color10 rgb:ff/ff/ff --color12 rgb:99/99/ff -W -O --shade 60 --home-on-echo no --home-on-input
とします。
Gimp は Linux のディストリビューションの中でも優れたアプリケーションであると同時に他の優れたグラフィックツールに匹敵するツールだ。その特徴はプラグインで機能を拡張できることにある。右クリックで表示されるメニューのフィルターを見てみると良くわかる。すべてのフィルターがプラグインで実現されている。メニュー項目の "Scritpt-Fu" もそうだ。これは Lisp をベースにしたスクリプトによって実現されている。エンドユーザーのアプリケーションとしての Gimp に何故複雑な言語を、と思われるかもしれないが言語に関する議論を始めるとスペースが足りなくなってしまう。単純に言えば強力で柔軟な言語であることらしい。Gimp のスクリプトを使えばウェブのボタンを作るのにテキストと色などを指定すれば後は全部自動で処理してくれる。非常に簡単だ。
Marc Lehmann氏が Gimp 1.1.x デベロッパー用のエクステンションを開発した。これは Perl のインタフェースを含んでいる。Perlはどの Linux ディストリビューションにも含まれているが Gimp 1.0.x ユーザは GIMP-Perl パッケージを手に入れなければならない。例示されているスクリプトを保存し(今回はsimple.plというファイル名で保存)実行属性をつければ Gimp から利用できるようになる。Gimp と Perl サーバ (Menu Xtns -> Perl Server) から ./simple.pl と入力して実行するとレッド・ブルーのキャンバスが開くはずだ。Perl server を使えばモジュールをインストールしなくても簡単にテストをすることができるようになっている。コーディングやデバッグが簡単にできるようになっているのだ。期待通りに動作することを確認したスクリプトをインストールすには次のようなコマンドを使う。
gimptool -install-bin simple_fu.plこれは特定のユーザのためのコマンドなのですべての Gimp ユーザがその恩恵を受けられるようにするには次のようなコマンドを使う。
gimptool -install-admin-bin simple_fu.pm
すでに定義されているファンクションやプラグインを利用すれば少ないコードで必要なジョブを完了させることも可能だ。実際に Gimp は大量のファンクション、プロシージャなどからなっておりこれらの機能には DB ブラウザからアクセスすることができる。例のスクリプトの中でも使われている gimp-layer-new ファンクションは多数の引数を取り新しいレイヤーを返す。simple.plの中では変数 $layer にアサインされている。データベースを "canvas" という名前で検索すると "canvas" という GIMP ファンクションが表示される。plug-in-apply-canvas を選べばスクリプトの中で使った引数が表示される。
DB ブラウザのほかにもスクリプト開発のツールがある。PDB(Procedural Data Base Brower)だ。まだアルファバージョンだが優れたツールには違いない。さらにファンクションの関数を起動するにも短縮形が使え入力が若干楽になっている。
Perl を利用することでエラーが発生した場合のトレースも楽になる。Gimp::set_trace(TRACE_NAME)をサブルーチンのヘッダに挿入すれば実行されたファイルの行番号を示すだけではなくより詳細な情報が得られる。
Time Warner の Roadrunner(RR) ケーブルモデムを使って IP マスカレードを使ったプライベートネットワークを構築するという内容。DNS からファイアウォールまでを含んだネットワーク構築の記事でこの記事の内容を十分に理解するにはネットワーク、IPCHAINS、DNS、IP マスカレード、セキュリティなどに関する知識が必要だ。まずそれぞれの機器にネットワークカードが必要でゲートウェイとなるマシンには2枚必要だ。それぞれのマシンには IP アドレスが割り振られておりゲートウェイには外界用の IP アドレスと内部ネットワーク用の IP アドレスが必要。ゲートウェイマシンはそれほどマシンパワーを必要とせず古い486マシンでも十分だ。ワークステーションは TCP/IP をサポートしている OS なら Linux、MacOS、Windows などなんでも良い。できることなら 10/100 Mbs の自動認識ハブと 100 Mbs のネットワークカードを使おう。ネットワークカードは PCI の方がいい。
RR はゲートウェイマシンに接続される。ゲートウェイマシンで使用するネットワークカードは別々のプランドを使用するとドライバの区別がしやすいし、リソースの競合も少ないだろう。この記事ではゲートウェイマシンに Redhat 6 をクリーンインストールしている。すべてインストールしてかまわないが X サーバーや画像処理ソフトはゲートウェイマシンには不必要だ。その代りに ipchains、BIND、cacheing nameserver、pumpなどは忘れずにインストールしよう。named はブート時に起動させたほうが良い。RR に接続された eth0 は DHCP を使い、プライベートネットワーク用の eth1 は固定 IP アドレスを設定する。
ハードウェアの環境が整ったらソフトウェアの設定だ。IP Chains、Masqeurading、DNSを設定してそれぞれのワークステーションの環境を整える。
インターネットに常時接続の状態では常に危険が伴う。セキュリティの甘いシステムを破壊したり踏み台に利用したりする人がいるものだ。マスカレードの機能も万全ではない。でも telnet、ftp、その他ポートを利用するデーモンを起動しなければ危険性はかなり少なくなる。より高度なセキュリティを求めるのなら openssh や tcplogd などを利用すると良い。
セキュリティに関するまとめ
RoadRunner を使うとログインの度に IP アドレスが変わってしまう。IP アドレスが変わってもスタティックなドメインネームを提供してくれるのが Dyndns.org だ。dyndnsに一度登録すればゲートウェイマシンを起動する度にdyndnsにアクセスしてネームサーバのレコードをアップデートしてくれる。検討してみてはいかがだろうか。
C プログラムのチェックに lint が使われたことがあった。文法をチェックして表示してくれるプログラムだ。lint を拡張したものに LCLint がある。LCLintの機能は使われていない変数、型の不一致、コードの終了、宣言の前の使用、ループやケースの終了、返り値のチェックなどだ。例えば次の C プログラムを実行すると「hello」とプリントすることを期待しているのだが結果はそうではない。
main()
{
int a[10];
if (sizeof(a)/sizeof(a[0]) > -1)
printf("hello\n");
}
gcc でコンパイルすると何のメッセージも表示せずにコンパイルが終了するが、"lclint a.c" とすると比較している型の不一致、返り値が存在しない等のメッセージを表示する。
LCLint はメモリ管理のチェックもする。例えば次のコードではエラーが表示される。
#include <stdlib.h>
int main()
{
int *p = malloc(5*sizeof(int));
*p = 1;
free(p);
return 0;
}
次のようなコードならエラーは出ない。
#include <stdlib.h>
#include <stdio.h>
int main()
{
int *p = malloc(5*sizeof(int));
if (p == NULL) {
fprintf(stderr, "error in malloc");
exit(EXIT_FAILURE);
} else *p = 1;
free(p);
return 0;
}
LCLint はマクロのチェックも強力だ。
#define sqr(p) p * p
main()
{
int i=2, j;
j = sqr(i+1);
printf("%d", j); /* 5 と表示する */
return 0;
}
ではプロトタイプの宣言やマクロの定義には()を使うなどのエラーメッセージが表示される。
その他ファンクションのプロトタイプ、グローバル変数のチェックなどにも有効だ。LCLint は http://lclint.cs.virginia.edu/ftp/lclint/lclint-2.4b.src.tar.gz からソースを入手することができる。より詳しく調べたければ http://www.sds.lcs.mit.edu/lclint/ が役に立つだろう。
Linux 用の VisualWorks Non Commercial バージョンがフリーで公開されました。ここで使用する例はどの Smalltalk でも同じ動作をします。Smalltalk の基本はどのバージョンでも同じですが GUI コードなどに違いがでてきています。今回使用するのは VWNC v3.0 です。Smalltalk の特徴は次の通りです。
Smalltalk は Xerox の Palo Alto 研究所で70年代初期に開発された。学習用に開発されたために文法は至って単純。大規模なクラスライブラリを備えており非常に強力で完全にオブジェクト志向の言語だ。VWNC3 は フリーのダウンロードサイト から入手することができる。Smalltalk は3ボタンマウスを想定しているので2ボタンの場合にはシミュレートする必要がある。
IDE は終了した時点をまさにそのまま保存する。再開する場合には全く同じ環境で始めることができる。Smalltalk は完全にオブジェクト志向だ。ウィンドウもメニューもボタンもすべてオブジェクトだ。常に使われる "Hello World" の例で示すと、新しい workspace を開いて "Transcript cr. Transcript show: "Hello World." と打ち込んでハイライト表されているコードの上でミドルボタンを押してメニューの "do it" を選ぶ。Transcript ウィンドウに "Hello World" と表示されただろうか。この場合の "Transcript" はオブジェクトで "cr"、"show" はともにオブジェクトへのメッセージだ。Smalltalk ではコードをコンパイル、リンク、実行などが必要ない。その場ですぐ実行できる。
Smalltalk はインクレメンタルバイトコンパイリングを採用している。コンパイルとインタープリタの中間のようなもので次のような動作をする。
今日の日付を表示するにはワークスペースの中で "Date Today" とタイプしコードをハイライト表示させたら3ボタンを押して "print it" を選ぶ。すると今日の日付が表示される。同じメニューの "inspect it" を選ぶと date のインスペクターが表示される。一番上の self をクリックすると今日の日付が表示され、day をクリックすると1年の中の日付の数字が、year をクリックすると年が表示される。ここで day をクリックしてプロパティに1を加えてみる。同じくマウスの3ボタンをクリックして表示されるメニューで "accept" を選ぶとオブジェクトの日付が1日進む。このようにコードを書いてすぐに実行できることとオブジェクトを操作して直接変更することができることが Smalltalk の大きな特徴となっている。デバッグには非常に効果的だ。
ワークスペースに 「1+2*3」 と打ち込むとどうなるだろうか。マウスの3ボタンでメニューを表示して "print it" を選んで欲しい。結果は読者が期待する 7 ではなく 9 だ。これは前から言っているようにすべてがオブジェクトだからだ。この例では 1、2、3 がそれぞれオブジェクトなのだ。オペレータの + と * はオブジェクトに対するメッセージだ。1をハイライト表示にしてマウスの3ボタンでメニューを表示し "inspect" を選ぶと中身は1になっている。オペレータの優先順位を変更したければ 「1+(2*3)」とすればよい。
バーチュアルマシンとは Smalltalk のバイトコードを実行できるバーチュアルコンピュータのことだ。このために他のプラットフォームへの移植が容易になっている。「ファイル」メニューから Setting を選ぶとダイアログが表示される。その中の "Look Selection" で Macintosh を選んで "accept" をクリックするとマック風のルックアンドフィールに変化する。
Smalltalk が強力だと言われる理由はそれ自身が Smalltalk で書かれていることだ。変更、拡張、改良などが簡単にできる。必要に応じた拡張が簡単にできる。
Smalltalk にはガベージコレクション機能がある。どこからも参照されていないオブジェクトは回収され開放されたメモリは再利用される。C++ ではメモリを管理するのはプログラマだ。さらにポインタの操作もない。技術的に言えばオブジェクトを参照している変数はポインタを使っているのだが C++ のような操作は発生しない。
オブジェクト志向言語に慣れていないプログラマへの説明には充分だっただろうか。オンラインヘルプ、デバッガ、コードの共有などスペースの都合で触れられなかった優れた機能もまだたくさんある。
クラスタシステムとはネットワーク接続された複数のマシンがクライアントからは単一のサーバに見えるようなシステムを言う。システム上では多数のプロセスが走っており、プロセスが複製を作成したり、プロセスをネットワーク上の他のマシンに移行したりする。
プロセスのクローンにはサービスとインタフェースを利用する。まず /etc/services と /etc/inetc.conf に次のような記述が必要だ。
clone 5050/tcp #クローンを起動させる
clone stream tcp nowait root /usr/bin/cloned cloned変更を有効するには再起動するかコマンドから指示する必要がある。
>killall -HUP inetdリモートのマシンからコールがあるとリモートマシンの名前を保持してプロセスが新たにコピーされ必要な処理を遂行する。ローカルマシンからリモートの名前で clone() がコールされるとリモートマシンで cloned が起動する。その後の動作はアプリケーションに依存する。リモートマシンのプロセスから他のリモートにプロセスをコピーすることもできる。
これが今後どのように発展するかは読者の工夫次第だ。利用したプログラムのソースを参考にして欲しい。
test.c
cloned.c
clone.c