渡辺克宏のニュースへの投稿の抜粋
関係する有用な知識や、当時から変化してしまった事情に関する情報も
できるだけ集めておきたいと思います。
誤りや古くなってしまった記述の指摘、
関係する情報やリンクや質問などを歓迎します。
ここに集めた記事へのフォローも非常に興味深いのですが、
著作権等の問題を鑑みて載せるのは遠慮しておきます。
UNIX 関係
- ・(#! で始まる)スクリプトを execve(2) する時の
インタプリタファイル名の制限
- ・ test コマンドを使うときには変数が空の場合を考慮する
- ・ emacs 関係
-
- ・ fsck でファイルシステムが修復できなかった件
- および、これに関連して adb の話。
- ・ perl
-
- ・ Subject: Re: non-interactine telnet session
- ・ mail
-
- mail drop に書き込む時には排他制御に気を付けよう
-
その1、
その2。
ただし誤解していけないのは、
排他制御すべきは「mail drop 自身」であり、
「mail drop に書き込むプログラムの起動」ではない。
その2の続きで述べているように、
そういったプログラムの起動を逐次化することは
資源の lock を直接には意味しない。
mail drop に書き込むプログラムが sendmail とあなたの
プログラム以外に何種類あるかなどわからないのである。
(shell script 一般での lock には ln(1) -s などが
便利というのは確かだが、それは余談なだけ。)
- メールを処理するプログラムで
一時的にファイルを作ったりする場合は、
mode に注意しよう。
- ・ user id
-
- ・ at が2回実行される
- ・ socket への write(2) は中途で終わる可能性がある
-
参考文献: 記事
<6223@icsts1.osaka-u.ac.jp>
- ・ malloc(3)
-
- ・ xargs 関係
-
- ・
dump/restore や tar はシンボリックリンクの owner を保存しない
- ・
親プロセスが異常終了した時に子供も殺す方法
-
- ・ 洗濯機へ UNIX を載せる話
- その続き
- ・ ファイルシステム関係
-
- ・
Subject: The small packet probrem and its solution
- その解決
- ・ 古典的な BSD 系の ps の -g や -x の意味
- ・ sh では普通 "$@" を使う
- ・rm にまつわる話
-
- rm *の話とその続き
- 問題3に関して
- GNU の fileutils の rm が stat(2) 系統を使っていたのは
もはや過去の話のようで、
fileutils-3.16 を見たところ、
(主として)access(2) を使っていた。
- 問題4に関して
-
(-f option を指定していなければ、)
実行中のコマンドのファイルを削除しようとしたとき、
- BSD 系
- access(2) で ETXTBSY になるので
ユーザーに確認を求めてくるが、
Yes と答えればファイルは削除できる。
- System V 系
- unlink(2) が ETXTBSY になるので
ファイルは削除できない。
- SunOS 系
- access(2) は成功するのでユーザーに確認を
求めてこないし、unlink(2) も成功する。
のような違いがある。
- root が "rm -r /" をしたら何が起きるか
-
カーネルや動作中のコマンドのファイルを rm しても、
カーネルやプロセスが異常終了するわけがない。
- ・ UNIX 管理者が過去に行なった失敗の survey
- ・ カーネル関係
-
- テーブルの拡張
-
その1、
その2、
その3、
その4、
その5、
および後日改めてその6
- テキストテーブルについて
-
その1、
その2、
その3、
その4、
vmstat -s の見方とその
続き
- プログラムテキストは共有される
- プロセステーブルについて
- スワップマップについて
- カーネルの reconfig の意味
-
limit 及び、ファイルディスクリプタのテーブル
- Solaris のファイルディスクリプタテーブル関係は、"
Fidding around with files, part one
- SunWorld - February 1998" に詳しい。
-
pagedaemon, swapper という名前が PCB からは得られない
- write(2) は atomic でない
- write(2) の返値について昔話をすると、UNIX V7 のマニュアル
UNIX Programming -- Second Editionには、
it is generally an error if this isn't equal to the number
supposed to be written.
とある。
- SunOS での swapinfo 構造体について
- setrlimit(2) で hard < soft の場合の振舞い
- および、一般ユーザーの cputime に limit をかける話
- 特に SunOS 4.1.X で
物理メモリの量を調べる方法
- カーネルは普通 paging の対象外である
- ということもあって、カーネルのファイルは削除して構わないし、
実際に削除されることがある。
- ・ net news system や 記事の統計
-
- ・ grep の振舞い
- grep については、
grep,egrep,fgrep の使い分け方
に関する資料もある。
- ・ dump のパラメータの与え方や
特に NEWS から SUN へ rdump する時のパラメータの話
- ・ ndbm のキーの hash 値の衝突の話
- その続き。
こういう話が気になるようなら、代わりに gdbm を使うとよい。
- ・ CVS 関係
- ver 1.8.1 に基づいた資料も公開中
- ・ connect(2) がタイムアウトするまでの時間
- ソースコードをいじれる状況ならば、socket を non-blocking I/O の
モードにしてから connect(2) して select(2) で待てば、
connect(2) のタイムアウトを事実上短くしたのと同じ効果が得られる。
詳しくは、
From: taca@kyoto.jepro.co.jp (Takahiro Kambe)
Newsgroups: fj.net.programming
Subject: Re: [Q] timeout at connect
Date: 28 Aug 1998 11:36:31 GMT
Message-ID: <6s64nv$kuo$2@lyra.kyoto.jepro.co.jp>
や、
Programming UNIX Sockets in C - Frequently Asked Questions
を参照。
- ・ exec と core 関係
-
- ・ Subject: Today's junk article
-
smalltalk 関係
ヨタ話
渡邊克宏に
御意見御感想をお寄せあれ。
katsu@watanabe.name