僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
$ tail -n2 $ERR [Thu Dec 9 11:18:45 2004] [error] [client 195.92.95.94] Directory index \ forbidden by rule: /http/htdocs/ [Thu Dec 9 13:43:39 2004] [error] [client 195.92.95.94] Directory index \ forbidden by rule: /http/htdocs/ $ grep 195.92.95.94 $AGENT 195.92.95.94 - - [09/Dec/2004:11:18:45 +0900] Mozilla/4.0 \ (compatible; Netcraft Web Server Survey) 195.92.95.94 - - [09/Dec/2004:13:43:39 +0900] -
Plamo4.01をノートに入れる。CDROMが死んでたので、nfs(自分は勿論、
PC達も忘れかけている)を用意するのに手間取った。ルートに適当な
ディレクトリを掘り、nfsをマウントし、「あらかじめマウントされた
ディレクトリからインストール」する。
マウントはできるけど、コマンドプロンプトが戻るのが非常に遅い
のは何故?
んで、インストール最後近くで中断して、リブートしても入れない。
/root=/dev/hda2 ro init=/bin/bash して
入れたはいいが、安定状態までかなりかか(る見込みであ)った。
早速とってきた kernel2.6.9の再構築は2.4系列では信じられないほど
激遅。なんかPCMCIAが変?なのか。
Postfixでメールサーバを立て、他所から他所へメールしたいが 不正中継は嫌、な為にsmtp-authで一息ついた。 のは今年始めの筈。 環境が安定してぼんやりしているうちに、 メール関連用語がずいぶん増えてきている気がする。
MSA(Message Submission Agent)とか。
submission 587はplamo-4.0xの/etc/servicesには
載ってなかった(FreeBSD5.3やnmap-servicesにはあった)。
壊れていたはずのドライブ が生きていることに気づく。
なんとなくcoLinuxで遊びたくなってきたので、
WinXPを再度デスクトップに入れてやろうとしたが、
一台目のドライブに空きがないとか、色々駄々をこねて
入ろうとしなかった。fdiskで一台目のドライブを開けてやったり
もしたが、結局ダメ。WinXPは
再起動すると、どういうわけかFreeBSDしか
起動しなくなっていたりする。
Regretで起動して、保存しておいたMBRを書き戻す。
やれやれ。
DHCPサーバを別マシンに移す。/etc/dhcpd.confをコピーし
(たついでに)不要になったエントリをいくつか削除。
touch /var/run/dhcpd/dhcpd.leases が必要なことを忘れていた。
引継は完了。NTPとDNSとsshを移せば、この鯖はフリーになる筈。
VirtualBoxの中のPlamoに、カーネル2.6.39をビルドしてみる。
外せそうなもの(PCMCIAとか)をいっぱい外す。
screen(1)の下でやっても、あまりにも時間がかかる(make oldconfig自体、
かなりのんびり進む)ので、
2回ほど「仮想マシンの状態を保存」してみた。
再開すると、そのまま動作を続けることができるようだ。
一応動くべきものは動いている、らしい。
やっとcvs update できた。
LFS6.4で素直に通るパッケージも、通らないパッケージもあった。
w3m-0.5.2 は UTF-8な環境でうまく日本語を表示できない。文字コードの
設定に"Unicode (UTF-8)"が見当たらない。Makefile をいじれ
ということか。
転送速度を稼ぐために、敢えてrshを使ってみた。
debian etch でrsh-server とrsh-client を放り込み、
echo "+ $REMOTEHOST $LOCALUSER" >> /etc/hosts.equiv
、それから$HOME/.rhostrc にも$REMOTEHOST を入れる。
VirtualBOXのetch二つで試す。
/dev/urandom で5MB程のファイルを500個作り、rshと
ssh での転送を比較。前者が12分55秒、後者が15分9秒。
思ったほど劇的な改善でもなかったかも。
gst のfizzbuzz。これも
前のの改善。文字数と行数が少し減ったはずである。
改行だけを出力する方法が、なかなか分からなかった。
というか、何も分かっていない。
1 to: 100 do: [: x | x \\ 3 = 0 ifTrue: [Transcript show: 'fizz'] . x \\ 5 = 0 ifTrue: [Transcript show: 'buzz'] . (x \\ 3 ~= 0) & (x \\ 5 ~= 0) ifTrue: [Transcript show: x printString] . Transcript cr. ]
Squeak3.9でも 動いた。
表示するなら identify -verbose, 削除するなら convert -strip。
$ dpkg -L wolfram-engine | wc -l 4741 $ for dir in ` dpkg -L wolfram-engine`; > do if [ -f $dir ]; then > bar=`expr $bar + 1`; > fi > done && echo $bar 4063 $ bar=0; for dir in ` dpkg -L wolfram-engine`; > do if [ -d $dir ]; then > bar=`expr $bar + 1`; > fi > done && echo $bar 678
まあ数が多いなら他にもいくらでも。多分。
$ dpkg -L texlive-latex-extra-doc | wc -l 12287
ghciで。
とりあえず思いつくまま。
Prelude> :t "foo" "foo" :: [Char] Prelude> :t fst fst :: (a, b) -> a Prelude> :t False False :: Bool Prelude> :t 3 3 :: Num a => a Prelude> :t 3.1 3.1 :: Fractional a => a Prelude> :t (1,"foo") (1,"foo") :: Num t => (t, [Char]) Prelude> :t 'あ' 'あ' :: Char Prelude> :t "あいう" "あいう" :: [Char] Prelude> :t ("abc", 3) ("abc", 3) :: Num t => ([Char], t) Prelude> :t ("abc", [1,2,3]) ("abc", [1,2,3]) :: Num t => ([Char], [t])
Scratch 1.4は定義ブロックがないらしい。また2.0
(Adobe Air必須)で作成したプロジェクトも読めない。
Squeakに引き返す。
亀のプログラムに引数を加えてみた。
| bic | turtos := [:ang :col :row | bic := Pen new. bic up; goto: col@row. bic down. 1 to: 50 do: [: i| bic go: i*4. bic turn: ang ]]. turtos value: 119 value: 200 value: 300.
で、左上から右に200, 下に300の位置を中心に、 ずれた三角形が。
Squeakで描けた。
原点Oが中央になく左上だったことも、手間取った理由の一つだったり。
ycal := [:x :r :b | ((r * r) - (x * x)) sqrt + b ]. nycal := [:x :r :b | ((r * r) - (x * x)) sqrt negated + b ]. dcircle := [:a :b :r | circle := Pen new. circle up. r negated to: r do: [: x | y := ycal value: x value: r value: b. circle goto: x+a@y; down ]. circle up. r negated to: r do: [: x | y := nycal value: x value: r value: b. circle goto: x+a@y;down ] .]
同心円を書きながらTranscriptに半径を書き出してみたり。
1 to: 300 by: 25 do: [: x | dcircle value: 420 value: 270 value: x Transcript show: x printString; cr ].
Raspbianでは、一瞬では書けなかった。
とりあえず控えだけ。
uhalf := [:a :b : r | upperhalf := Pen new. upperhalf up. r negated to: r do: [: x | y := nycal value: x value: r value: b. upperhalf goto: x+a@y; down ] ] lhalf := [:a :b : r | lowerhalf := Pen new. lowerhalf up. r negated to: r do: [: x | y := ycal value: x value: r value: b. lowerhalf goto: x+a@y; down ] ] uhalf value:200 value:250 value:20. lhalf value: 190 value: 250 value: 30. uhalf value:200 value:250 value:40. lhalf value: 190 value: 250 value: 50. uhalf value:200 value:250 value:60. lhalf value: 190 value: 250 value: 70.
元のブロックは一箇所しか違いのない2つのブロック。
なんかおかしいが、まだ。
買った時書いたことを見なおしたが、 2の64万乗は、まだやってなかったかも。
$ uname -a Linux $HOST 4.1.13-v7+ #826 SMP PREEMPT \ Fri Nov 13 20:19:03 GMT 2015 armv7l GNU/Linux
$ bc --version bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, \ 2006 Free Software Foundation, Inc. $ time { echo 2^640000 | bc > /dev/null; } real 0m11.437s user 0m11.410s sys 0m0.010s
$ ruby --version ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf] $ time { ruby -e "puts 2**640000" > /dev/null; } real 0m0.619s user 0m0.590s sys 0m0.020s
$ python --version Python 2.7.9 $ time { python -c "print 2**640000" > /dev/null; } real 0m20.295s user 0m20.230s sys 0m0.030s
$ python3 --version Python 3.4.2 $ time { python3 -c "print (2**640000)" > /dev/null; } real 0m20.339s user 0m20.320s sys 0m0.010s
放置気味の Intel(R) Core(TM) i5 CPU + Mem 4GのPCにFreeBSDをインストール。
fetch と install をやって再起動し、確認。
$ uname -a FreeBSD $HOST 10.2-RELEASE FreeBSD 10.2-RELEASE #0 r286666:\ Wed Aug 12 15:26:37 UTC 2015 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 $ sudo freebsd-update fetch && \ sudo freebsd-update install && \ sudo reboot $ uname -a FreeBSD $HOST 10.2-RELEASE-p7 FreeBSD 10.2-RELEASE-p7 #0:\ Mon Nov 2 14:19:39 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
bee hiveのもじりかどうか、実は確認していない。
試行錯誤については省略して、以下要点のみ。
FAQをめくってコピペ。仮想マシンはFreeBSDの
サイトからrawイメージを借りる。
$ sudo kldload vmm $ sudo sh /usr/share/examples/bhyve/vmrun.sh \ -c 1 \ -d FreeBSD-11.0-CURRENT-amd64.raw vm0
root@:~ # uname -a FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r291495:\ Mon Nov 30 23:14:34 UTC 2015 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
仮想マシンでtop(1)を実行させておいたが、ホストでps auxwしても見えなかった。
次に
Handbookからネットワークデバイスを。
$ sudo ifconfig tap0 create
$ sudo sysctl net.link.tap.up_on_open=1
$ sudo ifconfig bridge0 create
$ sudo ifconfig bridge0 addm re0 addm tap0
$ sudo ifconfig bridge0 up
で、コマンドを少し変えて。
$ sudo sh /usr/share/examples/bhyve/vmrun.sh \ -c 1 \ -t tap0 -d FreeBSD-11.0-CURRENT-amd64.raw vm0
仮想マシンはLANに繋がった。
root@:~ # ifconfig -a vtnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE> ether YY:YY:YY:YY:YY:YY inet XX:XX:XX:XX netmask 0xffffff00 broadcast XX.XX.XX.255 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet 10Gbase-T <full-duplex> status: active lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> groups: lo
VPSにbusterを入れたが、デフォルトではIPv6は有効でなかった。
/etc/network/interfacesにはIPv6がdhcp6とかあったので、
radvdを試す。
パッケージは/etc/radvd.conf を作ってくれず、雛形も
ないらしい。
適当に
書いたら適当に貰えた。
でも割当とは違うようなので、ping6だけでやめておく。
こないだ買った、
USB-LAN2500R。一応もう一つ入手済み。
USB3.0が付いているPC同士、適当なLANケーブルで(!)繋いでみた(bionicとbuster)。
$ nuttcp $2500R 2789.7059 MB / 10.05 sec = 2328.6734 Mbps 17 %TX 11 %RX 0 retrans 3.11 msRTT $ nuttcp $GB_ETHER 1116.8290 MB / 10.00 sec = 936.6108 Mbps 8 %TX 4 %RX 0 retrans 0.51 msRT
ベンチマークは確かに早かった。
dd if=/dev/urandom of=5GB.img bs=1M count=5120 5120+0 レコード入力 5120+0 レコード出力 5368709120 bytes (5.4 GB, 5.0 GiB) copied, 29.4705 s, 182 MB/s $ time scp 5GB.img $2500R: 5GB.img 100% 5120MB 48.1MB/s 01:46 real 1m46.889s user 0m14.029s sys 0m7.815s $ time scp 5GB.img $GB_ETHER: 5GB.img 100% 5120MB 58.3MB/s 01:27 real 1m30.732s user 0m15.021s sys 0m5.827s
大きなファイルの転送はむしろ遅いくらい。
小さいファイルたくさん、も試す。
$ for x in `seq 1024` > do dd if=/dev/urandom of=1gb/${x}.img bs=1M count=1 > done $ time scp -r 1gb $2500R: real 0m13.608s user 0m2.941s sys 0m1.969s $ time scp -r 1gb $GB_ETHER: real 0m14.028s user 0m3.015s sys 0m1.224s
なんとか誤差の範囲といったところか。
ちなみにMTUは1504まで変えられたが、やはり大差なかった。
$ time scp -r 1gb $2500R: real 0m12.415s user 0m3.025s sys 0m1.768s
テストの後、低温やけどしかねない程度には暖かくなっていた。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
※ obache [PKG_OPTIONS.w3m=w3m-unicode]
※ kuzu [表示できました。ありがとうございます_o_]