Linux Gazette 2004年6月投稿記事
目次
06/06/2004 - 08:32 Copying data to the clipboard from the command line under KDE by Mitch Frazier
06/08/2004 - 09:49 How to Compile the 2.6 Kernel Source for RedHat 9 or 8.0 Base Install by Mike Chirico
06/10/2004 - 19:38 What does your firewall sound like? by Michael Hamilton
06/13/2004 - 05:10 Simon Kelly's nifty little DNS/DHCP Server - DNS forwarding the easy way. by Michael Hamilton
06/28/2004 - 20:41 Review - One Old PC + RedHat, Knoppix, Fedora, or DSL by Kurt Maute
KDEクリップボードにコピイ
投稿者 Mitch Frazier 、06/06/2004 - 08:32. 記事| KDE
ここに述べるコマンドを用いて、データをコマンド行からKDEクリップボードにコピイすることが出来る。このコマンドはLinuxユーザの中には慣れない人もいる特性数個を用いる:
・bash ファンクションを書き、現在のbashセッションの中からそれを使う能力
・コマンド行からKDEアプリケーションに連絡する能力
背景情報
現在のbashセッション内で定義されるBashファンクションは、コマンドであるように用いることができる。bashファンクションは、ログインして .bashrc, .bash_profile, .bash_login, .profile ファイルを読み取るとき又は、source, 若しくは . (dot/period)コマンドを通じて 現在のセッションにロードすることが出来る。ログインしないシェルは .bashrcを読み取るだけであるのに注意。一旦定義すると、これらのファンクションは、他のコマンドを同様にコマンド行から実行することが出来る。これらは本質的に現在のシェルセッション内でのみ利用することの出来る定義済みシェルスクリプトである。bashファンクションをこの方法で使用することにより、 alias コマンドだけを使用するときよりも遙かに強力なaliasを書くことが出来る。
KDEアプリケーションの殆どは、その内部コマンドインターフェイスの幾つかをエキスポートするので、それらをプロセス間連絡を通じて取り扱うこと出来るが。この連絡のプロトコルをDCOP(Desktop COmmunication Protocol)と言う。KDEは、プロトコルとのインターフェイスのため、コマンド行ユティリティを提供する。これが dcopと命名されるのは驚くに当たらない。
bash 及び dcopaに関する詳細情報はウェブから得られる。
ソースコード
以下のbashファンクションはklipの名で呼び出すことができるもので、データをコマンド行からKDEクリップボードにコピイすることが出来る。
# Copy standard input or a string to the KDE clipboard.
function klip()
{
if [[ $# -eq 0 ]]; then
dcop klipper klipper setClipboardContents "$(cat)"
else
dcop klipper klipper setClipboardContents "$*"
fi
}
このコマンドは、KDE クリップボードklipperと連絡するのにdcop を用いることにより働く。dcopコマンドの中にklipper が二つあるのが正しい。最初のものは連絡するプログラムを指し、第二のものは、インターフェイスの名称を指す。
使用法
これは三つの異なる方法で使用することが出来る:
1.コマンド行で規定される文字列をクリップボードにコピイする:
# klip Put this in the clipboard
2.タイプするものをクリップボードにコピイする (入力をCtrl+Dで終える):
# klip
copy this to the clipboard
copy this also
3.コマンドを出力をクリップボードにコピイする:
# ifconfig | klip
インストレーション
新しい会話的シェルにログイン又はスタートするときこれを利用出来るようにするには、このファンクションを .bashrc 自分のファイルに入れなければならない。存在するときは .alias ファイルに入れることも出来る。これは私のおこなっている方法で、理由は、これをaliasと考え、自分の .bashrc を見るとき、 .bashrcがしていることに何の作用もしないファンクションと混同しないからである。
類似のコマンド
xclip と言う名の類似のプログラムがあるが、これはKDEの下では働かない。
2.6 Kernelソースのコンパイル方法
投稿者 mchirico、06/08/2004 - 09:49. 記事|ハウツー
この文書の最新版は:
コンフィギュアの参考は:
ステップ1:
kernelの最新版とパケット全部をダウンロードする。この文書は、linux-2.6.3でおこなっているが、その後のバージョンは下記を探すこと。
また、下記も見ること。
ここには必要な変更幾つかに関する有益なヒントがある。
ステップ2:
モジュール初期化ツール"module-init-tools-3.0.tar.gz"と"modutils-2.4.21-23.src.rpm" をダウンロードする:
ステップ3:モジュール初期化ツールをインストール。これはdepmod [/sbin/depmod]その他のツールと置き換わる。
tar -zxvf module-init-tools-3.0.tar.gz
cd module-init-tools-3.0
./configure --prefix=/sbin
make
make install
./generate-modprobe.conf /etc/modprobe.conf
ステップ4:modutils-2.4.21-23.src.rpmをインストール。ユーザrustyとグループrustyが無いことについて警告をうけることがある。またインストールを強行しなければならない。Redhat 9 と Redhat 8の双方についてこれらのステップをおこなわないと、modules_instalを行うのに問題があることがある。
rpm -i modutils-2.4.21-23.src.rpm
rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec
rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm
ステップ5:kernelをインストールしてコンフィギュアする。/usr/src/linuxを使わないこと!READEMEを参照。私はファイルを /home/src/kernel/に置く。
gunzip linux-2.6.3.tar.gz tar -xvf linux-2.6.3.tar cd
linux-2.6.3
パッチがあればここで、これらをインストールする:
bzip2 -dc ../patch-2.6.xx.bz2 | patch -p1
ステップ6:適切な/usr/src/linux-2.4/configs [kernel-2.4.20-i686.config, kernel-2.4.20-i686- smp. config] を、何でも良いからインストールしようとするディレクトリにある.config にコピイする。私の場合は/home/src/kernel/linux-2.6.3であった。
cp /usr/src/linux-2.4/configs/kernel-2.4.20-i686.config \
/home/src/kernel/linux-2.6.3/.config
ソースconfigがないときは、ここからダウンロードすることが出来る。
私は、ファイルconfig2.6-chiricoも含めた。これは私のシステムの幾つかのためのバージョン2.6であった。トラブルがある時の参考になると思う。
ステップ7:適切なkernel-2.4 configを.configにコピイしたら、以下を走らせる。これは2.6 kernelに関する必要な質問をザッと調べる。又は、config2.6-chiricoを使ってもよい。これは私のシステム上のoldconfigを既に調べているので、一般システムに関する必要な質問には回答済みだ。
make oldconfig
ステップ8:これは極めて重要。自分の.configにCONFIG_EXT3_FS=yがあるのを確認すること。=yにしないで=mのままにしておくと:pivotroot: pivot_root(/sysroot,/sysroot/initrd)失敗、のエラーになる。これはRedhat 9.0と8.0が/root用にext3ファイルシステムを使っているためだ。
ステップ9:Makefileを編集して、Extraversionに望みの変更を加える。パッチがこれらの値を同時に更新する。
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 3
EXTRAVERSION = -skim-ch6
ステップ10:
make bzImage
ステップ11:
make modules
ステップ12:
make modules_install
ステップ13:
make install
ここでエラーになるときは、パスにピックアップした"depmod"のバージョンは何か?またモジュールが見つからない時は、No module aic7xxx found for kernel 2.6.x と言われる。このとき、/lib/modules/2.6.x/kernel/drivers/scsi/aic7xxx/ cpで aic7xxx.ko aic7xxx.o insmodがaic7xxx.ko を探さなければならないが、aic7xxx.ko を探す。これでもトラブルが合るときは.configの中で:
CONFIG_BLK_DEV_SD=y
の変更をおこなって、ステップ10に戻る。
にあるkernel-2.6.3-i686-smp-chirico-aic7xxx.configを参照してもよい。
ステップ14:
mkdir /sys
ステップ15:/etc/rc.sysinit を変更する必要がある。action $"Mounting proc filesystem: " mount -n -t proc /proc /proc の行を探して、その行の後にaction $"Mounting sysfs filesystem: " mount -t sysfs none /syを入れる。参考のため私の/etc/rc.sysinitを示す;
このステップは慎重におこなうこと。/etc/rc.sysinitファイルをバックアップする。Thomer [http://thomer.com/linux/migrate-to-2.6.html ] もまた/etc/fstabに変更を加えている。私は以下のステップ16を行っただけだ。
ステップ16:usbサポートのため以下を/etc/fstabに追加する。
/proc/bus/usb /proc/bus/usb usbdevfs defaults 0 0
ステップ17(全般のチェック):以下をチェックする:
a.新規イメージファイルがブートでインストールされ、それに対するsymリンクがある筈。私の最新kernelは2.6.3-skim-ch6で、Makefileに入れた値から"-skim-ch6"を得たので、/boot vmlinuz -> vmlinuz-2.6.3-skim-ch6 System.map -> System.map-2.6.3-skim-ch6 /boot/grub/grub.conf が自動的にmakeから更新されたことが分かる。 /boot/grub/grub.confで "default=0" を新規kernelでブートに変更する。私のgrub.confの例を示す:
# anaconda作成のgrub.conf
#
# 作成後戻りgrubは無いことに注意。
# 注記: /boot パーティションがある。これは
# kernel全部とパスが root (hd0,2)に対することを
# 意味する。
# kernel /vmlinuz-version ro root=/dev/hda6
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,2)/grub/splash.xpm.gz
title Red Hat Linux (2.6.3-skim-ch6)
root (hd0,2)
kernel /vmlinuz-2.6.3-skim-ch6 ro root=LABEL=/
initrd /initrd-2.6.3-skim-ch6.img
b.ディレクトリ /sys がある。
c../etc/rc.sysinitの中のsysに関しmountコマンドを追加した。
d..configの中でCONFIG_EXT3_FS=y を使った。
e. /sbin/lsmod 又は cat /proc/modules を走らせて2.4 kernelを忘れていないことを確かめる。また "$cat /proc/iomem"を眺める。
ステップ18(FEDORIA更新:YUMを入手):YumはRPMベースのシステムで働いて、パケージを自動的に更新する。YumはFedoraのための公式にサポートされる更新機構なので、FedoraミラーにはYumレポジトリとして設定されている。
Yum又は何かRPMパケージをインストールする前には、以下をしなければならない:
export LD_ASSUME_KERNEL=2.4.19
次にYum をインストールする
rpm -ivh yum-2.0.7-1.noarch.rpm
"/etc/yum.conf"を更新しなければならないことがある。ディレクトリに入れるredhat 9のための値のあるファイルの例を示す。
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
[fedora-stable-9]
name=Fedora Project Stable RPMS for RHL 9
baseurl=http: //download.fedora.us/fedora/redhat/9/i386/yum/stable/
gpgcheck=1
[fedora-updates-9]
name=Fedora Project update RPMS for RHL 9
baseurl=http: //download.fedora.us/fedora/redhat/9/i386/yum/updates/
gpgcheck=1
注記:Redhat 8を走らせるときは9を "8.0"で置き換える。次に GPG-KEYを更新する。
以下は沢山の "HEADER" ファイルをダウンロードするが、全く何も更新しない。古いファイルが更新されると考え勝ちだが、何も更新されない。
yum check-update
これを走らせた後、少し掛かって、選ばれるパケージを更新することが出来る。 "libpng10" パケージの更新の例を示す。
yum -y update libpng10
続いて "yum check-update" を呼び出すと、更新を必要とするものが示される。現在インストール済みのパケージ全部を更新するには
yum -y update
又、kernelや httpdなどのパケージを除外するには:
yum --exclude kernel* --exclude httpd* -y update
ステップ19(自家用2.6モジュールの整備):2.6の構築を終わったので、2.6 kernelモジュール整備の方法を学ぶ。
FEDORA (ディスクレス・インストール)への更新。Fedoraをインストールするには、*.isoイメージをダウンロードし、ループバックデバイスにマウントし、Linux kernelイメージを/bootにコピイし、grubを変更し、リブートすると、インストールの残りに関する*.isoイメージが見つかる。
ステップB:ダウンロードしたらmd5sum md5sum FC2-i386-DVD.isoをチェックする。
ステップC:isoイメージmkdir /iso0をマウントするためルートを離れたディレクトリを作る。
ステップD:DVD イメージファイルは、コマンドmount -o loop -t iso9660 /FC2-i386-DVD.iso /iso0を用いてマウントすることが出来る。
ステップE:/iso0/images/pxeboot を /boot ディレクトリにコピイする。 cp -r /iso0/images/pxeboot /boot/.
ステップF:Grubを変更して下記をインクルードさせる:
title Fedora (INIT)
root (hd0,2)
kernel /pxeboot/vmlinuz
initrd /pxeboot/initrd.img
特記: 別のgrubエントリ "root (hd0,1)" を見ると、多分"root (hd3,0)"又は (hd2,0)としてリストされている。これは同じでなければならないので、上のhd0を別のエントリに一致するよう変更する。
ステップG: "df" コマンドを出して FC2-i386-DVD.isoがある場所を書き留める。
$ df .
ブート仕直しの後、この位置が必要になる。これは /dev/hda1又は/dev/hdb2 などになる。
ステップH:ブート仕直し。"iso"ファイルの位置を聞かれたら、FedoraメニューでFILEを選び、上の/dev/hda1 位置を入れる。このファイルシステムから離れたサブディレクトリに、これを入れるテキストボックスがあるかも知れないのに注意。ここからは自動的にインストールが進む。
参考文献:
2.6におけるKERNEL ドライバの発達:優秀(連載記事)
筆者のサンプルプログラム:
良好だが 2.4 kernelのもの:
シェルスクリプトを楽しむ人に面白いことだ。パケットがファイヤウォールから立ち去るのを文字通り聞く方法を概説する。LinuxシステムにIPテーブル・ファイヤウォールがあるときは、捕捉されたパケットが /var/log/messages に次のように記録されるのに気付いておられるだろう。
Jun 11 11:28:13 viking2 kernel: Shorewall:net2all:DROP:IN=ppp0 OUT= \
MAC= SRC=210.49.101.91 DST=202.154.130.96 LEN ...
私のファイアウォールから何か音が返ったら面白いと考えた。パケットを拒否する毎に音を出すスクリプトを考えた。最も簡単なスクリプトを示す:
#!/bin/sh
tail --follow=name /var/log/messages | \
awk '
$0 ~ /DROP/ {
system("cat /usr/share/sounds/KDE_Beep_Pop.wav > /dev/audio");
}
'
follow=nameオプションのあるtailを使ったので、スクリプトはlogrotateで一巡の後も追跡を続ける。メッセージをawkにパイプして、DROPの文字が中にある全行($0)を見るときは何時でも、awkがコマンドを走らせて8-ビットwavファイルを/dev/audioにダンプさせる。その結果、パケットが捕捉される毎に「ポロン」と音が出る。通常、1時間に数回しか鳴らない。ウイルスが走り回っているともっと高いレベルになる。
これで上手く働くが、サービスを走らせるポートにだけ関心がある。サービスに関連しないポートには、押し付けがましくないことをする方がよい。これら重要でないポートについては、キイボードLEDのうち一つを明滅させることを考えた。
http://www.freshmeat.net/ を探して、ネットワークセキュリティのためLEDを明滅する
tleds ユティリティを見付けた。tledのソースを見て、xblinkを作った。これは、入力の行をうける毎にスクロールロックを明滅する。xblinkのソースを示す:
/**
* Xblink.c
* Compile using:
* gcc -O -o xblink xblink.c -lX11 -L/usr/X11R6/lib
*/
#include <stdio.h>
#include <X11/Xlib.h>
int main (int argc, char* argv [])
{
char buf[1025];
Display *myDisplay;
XKeyboardControl values;
values.led = 3; /* Scroll lock is 3 */
if (! (myDisplay = XOpenDisplay(NULL)))
perror("xblink: Can't open X DISPLAY on the current host.");
while (fgets(buf, sizeof(buf) - 1, stdin)) {
values.led_mode = LedModeOn;
XChangeKeyboardControl(myDisplay, KBLed | KBLedMode, &values);
XSync(myDisplay, 0);
usleep(300);
values.led_mode = LedModeOff;
XChangeKeyboardControl(myDisplay, KBLed | KBLedMode, &values);
XSync(myDisplay, 0);
fputs(buf, stdout);
}
}
これで必要に応じ音を出したり明滅したりすることが出来る。必要なのは、/etc/servicesファイルを読み取って既知せービスのリストを入手する強化スクリプトだけである:
:
#!/bin/sh
# fwbeep
tail --follow=name /var/log/messages | \
awk '
BEGIN {
# 最初に - /etc/servicesからサービス全部を読み取る
soundFile = "/usr/share/sounds/KDE_Beep_Pop.wav";
servicesFile = "/etc/services";
xblink = "/home/michael/bin/xblink";
while ((getline < servicesFile) > 0) {
if ($0 !~ /^[\t ]*#/ && NF > 1) {
match($0, /([^\t ]+)[\t ]+([0-9]+)/, matches);
port = matches[2];
services[port] = matches[1];
print "service:", port, services[port];
}
}
close(servicesFile);
}
$0 ~ /DROP/ {
# DROPを含む行全部をチェックする
match($0, / SRC=([0-9.]+) /, matches);
src = matches[1];
match($0, / DPT=([0-9]+) /, matches);
port = matches[1];
if (!port) port = "ICMP";
service = services[port];
if (!service) service = "UNKNOWN";
print "Blink to", port, "Service", service, "From", src | xblink;
if (port && (services[port] || port < 1024)) {
print "Ding to", port, "Service", service, "From", src;
system(" cat " soundFile " > /dev/audio");
}
}
'
BEGINアクションでラベルしたawkスクリプトの初めの部分は、スクリプトスタートのとき一度だけ走る。BEGINアクションは、サービスのリストを読み取って、それらをポート番号を見出しとするサービス・ハッシュ・テーブルに記憶する。スクリプトの二番目の部分はDROPを含む行 ($0) をmatchしてソースアドレスと宛先ポートを抽出する。行のmatch毎に、スクリプトは行をblinkコマンドにパイプする。既知サービスに行をmatchさせるため、catコマンドを走らせて、wavファイルを/dev/audioの外にプッシュする。ファイアウォールを監視したいときはいつでも、xtermでスクリプトを走らせる。
上で採用する技術はファイアウォール監視だけに限らない−あらゆる種類の監視に音響又はLED明滅を用いることが出来る。
投稿者、mchnz、06/13/2004 - 05:10. 記事|一般|ハウツー|システム管理
宝石のようなオープンソース・ソフトウエアに出会うことがある。Simon KellyのdnsmasqミニDNS/DHCP/BOOTPが正にそれだ。
小型ネットワークを走らせるとき、自分の内部DNS及びDHCPサーバ持つことが必要になり始める。DNSサーバがないため起こるトラブルは多くの場合、それを設定する面倒で相殺される。Bind は、最も普通にUNIX DNSサーバで、これは大型ネットワーク用の完全装備DNSでその設定は、簡単でない。bindを人手でコンフィギュアしようとすると、同じ仕事をdnsmasqが簡単に片付けるのが有難くなる。dnsmasqは、NATファイアウォール作成と一緒に上手く働きボックス外にダイアルアップする設計となっているので、この分野の厄介な問題をなくする。dnsmasqは、DNSフォーワーダの設定と保守の過程を極めて簡単にするので、複雑さに関する苦情が全部消え失せる。
物事がどうなるか簡明に示すため、ホーム/小規模オフィスシステムにDNSとCHCPを設定して見よう。設定は、この例ではeth0にあるローカルネットワーク内部からの質問に答えるだけの設計になっている。質問全部を上流サーバの管轄区域に送り、結果をローカルにキャッシュする。例を簡単にするため、DNSを走らせるサーバにもまた全ネットワークのためe-メールを扱わせる(普通の筋書き)。
先ず自分のホスト名を /etc/hostsに対し、DNSがないときのように追加しなければならない:
# file: /etc/hosts
#
127.0.0.1 localhost.localdomain localhost
# Local network - DNS and DHCP defs used by dnsmasq
192.168.0.90 viking2.myorg.org myorg.org viking2
192.168.0.96 viking1.myorg.org viking1
192.168.0.98 voyager1.myorg.org voyager1
192.168.0.99 netdj850.myorg.org netdj850 printserver
次に、/etc/dnsmasq.conf を、メールハンドラMXレコードと、DHCPコンフィギュレーションを含めて、ローカルネットワーク用に設定しなければならない:
# file: /etc/dnsmasq.conf
#
# Iterfaces to serve
interface=lo
interface=eth0
# Return this host as the MX mail handler
selfmx
#
# DHCP range to handle out with a 48 hour lease.
dhcp-range=192.168.0.220,192.168.0.250,48h
# Static DHCP hosts
dhcp-host=00:03:1b:00:15:5a,netdj850,infinite
インターフェイス設定は、dnsmasqが内部ネットワークだけの質問について聴取するよう制限する。"selfmx"設定は、ホスト全部のためのメールサーバ(MX)入力が、dnsmasqの走っているサーバを指すことを定義する。アドレスのDHCPレンジは48時間リースを有すると定義されるので、そのイーサネット・アドレスが"00:03:1b:00:15:5a"であるnetdj850プリントサーバのため単一無限リーススタチックDHCPアドレスをも定義した。
これで終わりだ。/etc/resolv.confに上流DNSサーバを入れるのを除いて、終わった。上流DNSサーバが、ダイアルアップのpppにより設定されるなど、動的に決定されるときは、これを助けるオプションの設定がある。我々のコンフィギュレーション例では、bindとdhcpdを用いる同一設定に比べコンフィギュアに必要な行数が1/10で済んだ。
dnsmasqデーモンは他と同じようにスタートし−規定値ではスタートアップ後nobody(不在)ユーザに変更する。syslogにログして、信号の正常レンジに応答する。私はこれを、dnsmasq initスクリプトの基礎として既存の /etc/init.d/スクリプトにコピイすることにより、私のディストリビューションのスタートアップ・スクリプトに組み込んだ。テストのためコマンド行からスタートさせたいときは、
dnsmasq --no-daemon
など、非デーモンスイッチをを用いてバックグラウンドに分岐しないようにすることが出来る。
dnsmasqが走ると、標準のdig及びhostのコマンドを使ってサーバに質問することが出来る。例えばvoyager1を見るには次のようにする:
dig @localhost voyager1
host 192.168.0.98
Dnsmasq は長い質問をシステムログに設定してデバッグを助けることが出来るが、これらのメッセージはデバッグレベルの優先度でログされるので、これらを見ることが出来るようにするにはsyslog.confを変更しなければならない(多くのディストリビューションはデバッグレベルのログを宇有効にしない)。Dnsmasqには、各種の小型/ホームネットワークへの組込みを簡単にするのに役立つオプション全部を説明するマニュアルが付いて来る。dnsmasqに関する主なウエブ位置は次のとおり:
dnsmasq の構築とインストールは直截で、一緒に来るインストラクションに説明されている。
何か不具合があるだろうか?小型サイト用にDNSが必要な時は、機能性とコンフィギュレーションに基づき、私は黙ってdsnmasqを選ぶ。一方bindは有名なので、dnsmasqより監査が楽で安全な可能性がある。
RedHat, Knoppix, Fedora, DSLを古いPCへ
投稿者: kmaute、06/28/2004 - 20:41. 記事|ディストリビューション
未だ働く数台のマシンが家にあるが捨てるには忍びないで子供のオモチャにしたりしている人は多いだろう。私もCompaq Armada 7800 (266 Mhz ペンティアムII)を持っている。必ずしも同一ではない2台のラップトップをまとめたもので、CDの色が異なり、スロットがカタガタになっている。ハードディスクも同じだし、バッテリもない。だが、壊れてはいないので、分離したくはない。
このお化けは調理台上で2年間もWin98 を走らせ、台所をリフォームするまで、色々なレシピのサイトにアクセスしたり、e-メールするするのに役立った。
最近、色々な実験をするのに、それを引き出して埃をはたいた。Win98はそんなに速くないので、Linuxに多くは期待しなかったが、優れたOSを用いて古い機械が出来ることを知りたかった。
課題は、幾つかのディストリビューションを比較して、アプリケーション立ち上がり時間の点で、どれが最高の応答をするかを見出すことだ。テストには、最も良く使うアプリケーション:Mozilla, OpenOffice.org、及び Shellを用いた。
ディストリビューションには Red Hat 9, Fedora Core 2, Knoppix 3.4, DSL, Peanut Linux v9.6の四つを選んだ。
これは五つになるが、Peanut Linuxは「メモリ超過、プロセス停止不能」でkernelパニックになったので、そこで終わった。Peanutのため弁護すると、新しいマシン(Soyo SY-K7VME w/Athlon 2500+)ではインストールに成功し、上手く働く。私のマシンで偶々働かなかっただけだ。
リンゴとミカンを比較するようなこのテストだが、競技場のレベルを揃えるため、1024x768解像度、16ビットカラー、DSL以外のファイルにext2ファイルシステムを用いるなと、幾つかの段階を踏んだ。ext2ファイルシステムは、ジャーナル・ファイルシステムでないため速く走るのでDSLに利点を与えると思うが、どの位速いかは分からない。この話題は別の記事になるだろう。
Knoppix と DSLは両方ともライブ-CDディストリビューションだが、私がしたようにハードディスク・インストールの能力もある。この記事での立ち上がり時間は、ドライブインストールからなので、CDから直接走らせるときのものは示していない。
各種ディストリビューションの概要を示す:
| ディストリビュ ーション |
Kernel
バージョン |
デスクトップ
マネージャ |
Web
ブラウザ |
OO.o
バージョン |
| Fedora Core 2 |
2.6.5-1.358
|
Gnome 2.6
|
Mozilla 1.6
|
1.1.1
|
| Red Hat 9 |
2.4.20.8 |
Gnome 2.0 |
Mozilla 1.2.1 |
1.0 |
| Knoppix 3.4 |
2.4.26 |
KDE 3.2.2 |
Mozilla 1.6 |
1.1.1 |
| DSL 0.7.1 |
2.4.20 |
Fluxbox 0.1.10-2 |
Firefox 0.8 |
1.1.0 |
ご覧の通り、これは各種ソフトウエアの詰め合わせだ。出来るだけ初期設定にこだわった。Red Hat とFedoraについては、個人用デスクトップを選び、その後、ネットワーク構成の他に、インストール設定を若干変更した。不要なサービスも無効にはしなかった。これらが初期設定で立ち上がるときは、そのままにした。どのディストリビューションでも、無効にして速くする細工は沢山できるので、基本的に、出来るだけ「ボックスか出るまま」にすることを心掛けた。
結果を示す(正しい転換法が分からないので、時間は全図centonsでなく分と秒にしてある):
| |
Fedora Core 2 |
Red Hat 9 |
Knoppix 3.4 |
DSL 0.7.1 |
| ブート時間 |
03:31 |
2:03 |
02:10 |
01:29 |
| ログイン時間 |
01:34 |
00:47 |
00:53 |
無(ブートに含む) |
Webブラウザ
|
Mozilla
(v1.6): 01:41
|
Mozilla:
00:37
|
Mozilla:
00:41
Konqueror:
00:27 |
Firefox: 0:22
Dillo: 0:02
|
OOO Writer
|
(v1.1.1)
03:40/01:58 |
(v1.0)
01:27/01:31 |
(v1.1.1)
02:53/01:10 |
01:00/00:38
|
| OOO Calc |
03:21/01:58 |
1:28/01:05 |
01:49/01:41 |
01:05/00:39 |
| OOO Impress |
03:46/01:50 |
01:32/01:13 |
01:52/00:52 |
00:57/00:37 |
| シェル |
00:20 |
00:09 |
00:25 |
00:02 |
実際は、各ブート時間から45秒だけ差し引いた。これは、電源ボタンを押した時期からブートローダを入手するまでに、この古いCompaqが要する時間で、私が比較したいのは、OSがログインにブートする時間だけで、マシンが予めおこなうことではないからだ。待ち時間は初期設定によりそれぞれ異なるので、ブートローダで待っているシステム上でenterを押す。
OO.o アプリケーションに関しては二回書き込んである。OO.o アプリケーションの二度目の立ち上がりでは、応答時間が良くなるからだ。言い換えると、ブートの後、Writerを立ち上げてかrCalcを立ち上げると、ブートの後、直ちにCalcを立ち上げるより、Calcが早く立ち上がる。だから、最初のものは初期立ち上がり時間で、二番目は継続立ち上がり時間である。
ディストリビューションについての注釈:
Fedora Core 2:
ご覧の通り、結果は広範囲に広がり、Fedora Core 2がグループ最悪になっている。FC2はDSLより遙かに優れているのに・・・と思う人が多いだろう。その通りだ。遙かに頑丈で機能が豊富だし、オープンソース共同体が提供する最新のkernel、Gnomeデスクトップとアプリケーションとを含んでる。FC2は、程々の新マシンにロードするため、真っ先に選ぶディストリビューションなので、この点は大きいディストリビューションに対する打撃ではなく、くだらない古マシンが最新ソフトウエアの要求を満たさないとの実証になるだけだ。
優秀なリリースをまとめたFCチームを賞賛したい。グラフィックのインストールは楽しみで、ネットワークカード設定 (Xircom Realport) の他は全て円滑に進んだ。これは、RH 9のボックスで上手くゆくが、FC2インストールは、基準に達しない別のドライバを選ぶ。新しいGnomeデスクトップは、素晴らしく機能が豊富で、石のように堅い。FC2は、新しいボックスのための選択だ。
Red Hat 9:
私はこの記事を RH 9 システムで書いている。古いマシンでは、ソフトウエアの早期のバージョンの方が早く走るので、システムのロードを少なくしてGnome 又は KDEの欲しい人はこのような古いリリースを走らせるのを躊躇する必要はない。私は、幾つかのシステムで未だにRH 9を走らせており、ハードウエアが駄目になるまで、そのままの筈だ。
Knoppix 3.4:
Knoppixには感心している。これのハードディスク・インストールをするのはこれが初めてだが、良い経験だった。走らせるべきスクリプトがknx-hdinstallでなく、knoppix-installerであると分かると、インストールは円滑に進み、デスクトップのレイアウトが気に入った。これは、Linuxの新人で、新しいハードウエアにインストールする人に適するディストリビューションだ。インターフェイスはやや「マンガ的」だが、初心者には親しみ易い。格好良く、切れる奴だ。
DSL 0.7.1:
これは醜い老獣の負うべき賞の殆どを持つ。テストした他のディストリビューションとは全く似ていない。50mbクレジットカード型カードで働かせるため設計された、最低の小型Linuxで、考え方自体は賢い。ポケットの中で働くLinuxを想像して見給え。魔法使いが現れて「Linuxが何か聞いているよ」と言うたびに、手持ちPCにカードを入れて、それらを表示する。素晴らしい!
DSLは、Debianを基本とするKnoppixに基づく。50 mbと言う限界のため、すべを縮小し、余計なものを削除してあり、おしゃれな小型システムになっている。
Gnome やKDEでなく、fluxboxウインドウ・マネージャを含んでいる。fluxboxは、遙かに小さく計量なので、簡単化されており、大型の特性の殆どが無いが、それが大変良い。アプリケーションやツールを立ち上げるのに、通常、固定パネルを使わないでデスクトップを右クリックする。
OO.o とFirefox は、基本ディストリビューションの50 mb限界に入らないので、基本的DSLディストリビューションには含まれていないが、ダウンロードし簡単にアンパックして /opt ディレクトリにインストールすることの出来るmyDSLエクステンションとして利用することが出来る。アプリケーション及びゲームの相当広範なリストがあって、それから選べるので、このディストリビューションを好奇心以上のものにしている。