|
お久しぶりです。(^^; やっぱ68Userさんは、プログラマー志望だったのですね。 #当り前と言えば当り前なのかもしれないですが... ところで、BSDIというOSを知っていますか? 実はうちの環境にソレが入ったのですが、BSD系らしく作法が 少々異なっています。 なにか、知っていたら教えてください。 Linux系(SystmV系?)との操作上の違う所とか注意点とか。 #やっと日本語manを入れて少し分かりはじめたのにまた振り出し... もちろん漠然と聞いているので、思い付いたような事でいいです。 hoppyさんへ >シェルの補完はよくわからないので、 コマンドを途中までタイプして、タブキーを押すとうれしい事が 起こりますヨ! |
|
> やっぱ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ごとにバラバラなんで、ご注意を。 |
|
どもです(^^; >プログラムを書ける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でした。 |
|
>プログラマーな人なのに ここ、訂正します。 これじゃ、偏見ですね。(^^; プログラマー方すいませんでした。 |
|
とほほさんとこの話題が出てますね(笑い) そのとほほさんのラウンジの質問を見ていて思い出したのですが、 (質問自体は、ホームぺージの作成には関係なさそう…) statが返す構造体のmodeの上位7ビットはどのような意味がある のでしょうか? 上位3ビットは、 0x8000 ブロックデバイス 0x4000 ディレクトリ 0x2000 キャラクタデバイス であることは分かったのですが、下位の 0x1000 0x0800 0x0400 0x0200 が分からないのです。 検索で探しても、ビットの意味まで記述した記事が見つけられなくて…(^^; ところで、perlのCGIで、 (stat(STDOUT))[2]&0x2000 (stat(STDOUT))[2]&0x8000 を調べて見ると、下の方が真となって、ブロックデバイスと 出たのですが(STDINも同じ)、これってウチのWebサーバーが CGIの標準出力を一旦ファイルにリダイレクトしている ということなのでしょうか? |
|
あれから、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つは何なんでしょうか? |
|
> ただ、私の周りにはちょっと偏屈な技術者が多く、人間性は信じら > れない人がおおいです。 ん〜、まぁ初心者の程度にもよるかと。僕の場合、自分で調べようと しない人、一度聞いたことを覚えようとしない(メモを取らない)人には、 教えたくないですね。 もちろん、 > 初心者を馬鹿にしきった口振りや態度 がよろしくないのは当然ですが、教えをられる側の程度にも よるのではないかと思います。 > たとえば、とほほさんとは何度かメールのやり取りをしてますが、 > プログラマーな人なのに、おおらかな人間性を感じました。 いや〜僕はあんなに心が広くないので(^^; ちなみに僕は他人に(直接面と向かって)教えてると、だんだん 不機嫌になってきますので、あまり教えないようにしてます(笑)。 |
|
> その中で、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ですから(でしたよね?)、実装の違いがあるの かもしれないので、僕の知識では何とも言いがたいです。 |
|
>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 を予想したのですが…?? |