68user's page 掲示板

Prev< No. 307〜315> Next  [最新発言に戻る] [過去ログ一覧]
No. 307 # M.Masuda 1999/05/27 (木) 23:54
お久しぶりです。(^^;

やっぱ68Userさんは、プログラマー志望だったのですね。
#当り前と言えば当り前なのかもしれないですが...

ところで、BSDIというOSを知っていますか?
実はうちの環境にソレが入ったのですが、BSD系らしく作法が
少々異なっています。

なにか、知っていたら教えてください。
Linux系(SystmV系?)との操作上の違う所とか注意点とか。
#やっと日本語manを入れて少し分かりはじめたのにまた振り出し...

もちろん漠然と聞いているので、思い付いたような事でいいです。

hoppyさんへ
>シェルの補完はよくわからないので、
コマンドを途中までタイプして、タブキーを押すとうれしい事が
起こりますヨ!

No. 308 # 68user 1999/05/28 (金) 01:47
> やっぱ68Userさんは、プログラマー志望だったのですね。
いや、プログラマというわけでは…。どちらかと言えば、
プログラムを書けるSEかなぁ。

> ところで、BSDIというOSを知っていますか?
名前は知ってますが、使ったことはないです。
# 多分OS名はBSD/OSじゃないですかね。BSDIは会社名。
## ちなみに BSDIのBSDとFreeBSDのBSDは、意味が違います。
### ってことはどーでもいいですね(^^;

> Linux系(SystmV系?)との操作上の違う所とか注意点とか。
うーん、ps の引数の違いくらいしかわからないなぁ
    (Linuxのpsって、BSDともSysVとも少し違ったんだっけ?)。
あとはカーネルが /vmunix か(SysV)、/kernel か(BSD) とか…(ほんとか?)

あと、FreeBSDもLinuxもGNUのソフトをたくさん使ってますが、
BSD/OSがそこらへんを独自に作ってるなら、結構そこらへんで
はまるかもしれません。
# http://www.gnu.org/software/software.html のfileutils、shellutils、
# diffutils、GNUtarあたり。

あと、パッケージ管理(pkg_add/pkgadd)とかユーザ管理(adduser/useradd)
なんてのは各UNIXごとにバラバラなんで、ご注意を。

No. 309 # M.Masuda 1999/05/28 (金) 14:51
どもです(^^;
>プログラムを書けるSEかなぁ。
なるほど、志が高い(^^;

ただ、私の周りにはちょっと偏屈な技術者が多く、人間性は信じら
れない人がおおいです。初心者を馬鹿にしきった口振りや態度など、
誰でも始めは初心者で、識者からの教えられかたでその人間がどの
ように覚えてゆくかが決まると思うのですが...

たとえば、とほほさんとは何度かメールのやり取りをしてますが、
プログラマーな人なのに、おおらかな人間性を感じました。

68Userさんは、くれぐれもそうならない様に期待します。
#これは本心です、いやみじゃ無いので誤解なさらぬように。

> # 多分OS名はBSD/OSじゃないですかね。BSDIは会社名。
> ## ちなみに BSDIのBSDとFreeBSDのBSDは、意味が違います。
> あと、FreeBSDもLinuxもGNUのソフトをたくさん使ってますが、
> BSD/OSがそこらへんを独自に作ってるなら、結構そこらへんで
> はまるかもしれません。
> # http://www.gnu.org/software/software.html のfileutils、shellutils、
> # diffutils、GNUtarあたり。
> あと、パッケージ管理(pkg_add/pkgadd)とかユーザ管理(adduser/useradd)
> なんてのは各UNIXごとにバラバラなんで、ご注意を。
ありがとうございます、ぜんぜんOKです。
こういう事を知りたかったのです。(^^)/

最初に触れたUNIXがLinuxなので、その他のOSやその作法について
はまだまだなんです。
#変更後まだ数日しか経ってないもので。

ただ私は、プログラマー志望では無いので余り深みにはまらぬよう
に慎重にしないと、ついつい...(^^;

ちなみにBSDIは、「Berkeley Software Design Inc」の略だそうです。
プロバイダの商用OSとしてかなり普及していると聞きました。
しかし、私が借りた無料レンタルWebスペースのOSは Linuxでした。

No. 310 # M.Masuda 1999/05/28 (金) 14:53
>プログラマーな人なのに
ここ、訂正します。
これじゃ、偏見ですね。(^^;
プログラマー方すいませんでした。

No. 311 # mm 1999/05/29 (土) 22:48
とほほさんとこの話題が出てますね(笑い)
そのとほほさんのラウンジの質問を見ていて思い出したのですが、
(質問自体は、ホームぺージの作成には関係なさそう…)
statが返す構造体のmodeの上位7ビットはどのような意味がある
のでしょうか?
上位3ビットは、
    0x8000 ブロックデバイス
    0x4000 ディレクトリ
    0x2000 キャラクタデバイス
であることは分かったのですが、下位の
    0x1000
    0x0800
    0x0400
    0x0200
が分からないのです。
検索で探しても、ビットの意味まで記述した記事が見つけられなくて…(^^;

ところで、perlのCGIで、
    (stat(STDOUT))[2]&0x2000
    (stat(STDOUT))[2]&0x8000
を調べて見ると、下の方が真となって、ブロックデバイスと
出たのですが(STDINも同じ)、これってウチのWebサーバーが
CGIの標準出力を一旦ファイルにリダイレクトしている
ということなのでしょうか?

No. 312 # mm 1999/05/30 (日) 05:24
あれから、ls のソースを調べればいいと考えたのですが、
その中で、S_IFDIR とかを #defined した stat.h を探すのに
手間取ってしまいました。
(やはり、grep一発でカタが付く環境が羨ましい…(^^;)

それはともかく、各ビットが意味を持つ訳ではなく、
0xF000 type of file mask
でマスクした値が以下の意味を持つようです。

0x1000 named pipe (fifo) FIFO
0x2000 character special キャラクタ型スペシャルファイル
0x4000 directory ディレクトリ
0x6000 block special ブロック型スペシャルファイル
0x8000 regular 通常ファイル
0xA000 symbolic link シンボリックリンクファイル
0xC000 socket ソケットファイル
0xE000 whiteout
0x0200 save swapped text even after use

ところで、最後の2つは何なんでしょうか?

No. 313 # 68user 1999/05/30 (日) 09:11
> ただ、私の周りにはちょっと偏屈な技術者が多く、人間性は信じら
> れない人がおおいです。
ん〜、まぁ初心者の程度にもよるかと。僕の場合、自分で調べようと
しない人、一度聞いたことを覚えようとしない(メモを取らない)人には、
教えたくないですね。

もちろん、
> 初心者を馬鹿にしきった口振りや態度
がよろしくないのは当然ですが、教えをられる側の程度にも
よるのではないかと思います。

> たとえば、とほほさんとは何度かメールのやり取りをしてますが、
> プログラマーな人なのに、おおらかな人間性を感じました。
いや〜僕はあんなに心が広くないので(^^;

ちなみに僕は他人に(直接面と向かって)教えてると、だんだん
不機嫌になってきますので、あまり教えないようにしてます(笑)。

No. 314 # 68user 1999/05/30 (日) 09:13
> その中で、S_IFDIR とかを #defined した stat.h を探すのに
> 手間取ってしまいました。
stat(2)を見るのが一番早いんじゃないでしょうか。

> 0x0200 save swapped text even after use
sticky bitです。chmod 1755、chmod u+t などとすればこのビットを立てられます。

以下、知ってたらごめんなさいな説明。

昔のUNIXでは仮想記憶はなく、実メモリと HDD上のスワップ領域の
2本立てでした。で、sticky ビットが立っているファイル(実行ファイル?)
のテキスト領域は、実行後もスワップ領域に保持され、再実行する際は
高速に実行できるようになっていました。つまり頻繁に使うプログラムの
stickyを立てておけば高速に実行が可能だったわけです。

しかし、現在のコンピュータはキャッシュや仮想領域が進化したので、
stickyビットの重要性はなくなりました。FreeBSDではファイルに
対する stickyビットは無視されています。
# ここらへんは、正しいことを書いているかどうか自信がありません。

一方ディレクトリに対する stickyはちゃんと意味があって、
誰でもその下にファイルを作成することはできるけど、削除する際は
ファイルのオーナーしか削除できないという意味があります。
/tmp がいい例ですね。
    % ls -ld /tmp
    drwxrwxrwt 18 bin bin 1536 May 30 07:57 /tmp/

> 0xE000 whiteout
うーん、ローカルの全ファイルに対して、このビットが立ってるか
どうか調べてみたんですが、1つもありませんでした。なんでしょうね?

> 下の方が真となって、ブロックデバイスと
> 出たのですが(STDINも同じ)
僕のまわりのFreeBSD/Solarisでは、STDIN/STDOUTともに、普通の状態だと
キャラクタデバイス(ttyですな)、ファイルにリダイレクトするとregular、
パイプならFIFOになりました。CGI上で実行すると、IN/OUTともFIFOでした。
# http://X68000.startshop.co.jp/~68user/tmp/mode.txt
# http://X68000.startshop.co.jp/~68user/tmp/mode.cgi

> これってウチのWebサーバーがCGIの標準出力を一旦ファイルに
> リダイレクトしているということなのでしょうか?
mmさんのところってHPですから(でしたよね?)、実装の違いがあるの
かもしれないので、僕の知識では何とも言いがたいです。

No. 315 # mm 1999/05/30 (日) 17:42
>stat(2)を見るのが一番早いんじゃないでしょうか。
あっ、すいません、以前教えて頂いた、
    http://www.jp.freebsd.org/man-jp/search.html
で、stat を検索すると、
    マニュアルがみつかりませんでした。"stat.[1-9n]"
という警告が出たんで、こっちは諦めてたのですが、
ウチのサーバーの man にはありました…(^^;
ただし、ビットの意味までは書いてないです…×

ところで、この stat(2) の (2) とかの数字は、どういう
意味なのでしょうか?
以前から少し気にはなってたんですが、ついつい放ったらかし
にしてました…(^o^;ゞ


>sticky bitです。chmod 1755、chmod u+t などとすれば
>このビットを立てられます。
あっ、sticky bitと聞いて思い出しました(^^;
swapの話や/tempの例も読んでたのですが、
昨日は連想が全く働きませんでした…すいませんですm(__)m
>以下、知ってたらごめんなさいな説明。
とんでもないです。知らない可能性の方が高いので、
お手数でなければ、ぜひ今後ともよろしくお願いしますm(_~_)m

>どうか調べてみたんですが、1つもありませんでした。なんでしょうね?
ls のソースを見てると、S_IFDIRに'/'、S_IFSOCKに'='という感じで、
S_IFWHTには、'%'を付けてるので、何か意味があるんでしょうね。

とにかく、下位9ビットの上の3ビットは
01000 sticky bit
02000 SGID
04000 SUID
ということで、8進で書いたら、UIDとかとの関連で思い出しました(^^;
(modeはやはり8進の方が分かり易い…)


>CGI上で実行すると、IN/OUTともFIFOでした。
私もそれを期待してたのですが…
それはともかく、先にウチで実行したCGIはマスクが
間違ってたので、mode.cgi を実行してみました。
環境は、HP-UX Netscape-Enterprise/2.01b です。
# http://www2s.biglobe.ne.jp/~cru/test/mode.cgi
1100000 000000000
is SOCKET

1100000 000000000
is SOCKET

ウッソー?
なんで、ソケット??
実は、nph-cgiで実行されてて、WWWサーバーの代わりに
ラッパーがヘッダを付加してるとか???


ちなみに、Windows95での実行結果です。
C>perl mode.cgi
0010000 000000000
is CHAR_DEV
0010000 000000000
is CHAR_DEV

C>perl mode.cgi < file1 >file2
C>cat file1 | perl mode.cgi | more
1000000 110110110
is REG_FILE
1000000 110110110
is REG_FILE

ついでに、Win95 のJava WWWサーバーでの実行結果
0001000 000000000
is FIFO
0001000 000000000
is FIFO
あれ? is REG_FILE を予想したのですが…??

Prev< No. 307〜315> Next  [最新発言に戻る] [過去ログ一覧]