確かに古いUNIXシステムでは、複数回同期する方が安全でしたが、1つのコマンドラインで「sync; sync; sync」としてすべてが安全であったわけではありませんでした。80年代半ばに、これは次のように蒸留されました:
システムをシャットダウンするとき、3回同期する必要があります。これ以上でもそれ以下でもありません。3は同期の数であり、同期の数は3です。4回は同期せず、2回も同期しません。ただし、3回目の同期に進みます。
3回がどこから来たのかは本当に分からないが、多分それは楽しいことだった。しかし、通りの言葉は二度それをする。「同期;同期」としてではなく、シェル上の2つの独立した行として。
たとえば、V7 UNIXの時代には、ファイルシステムの修復はあまり面白くありませんでした。ファイルシステムがどのように機能するか、dcheck、ncheck、icheckのようなプログラムの特異性について多くを知って、あなたは手でそれをしなければなりませんでした。fsckがあれば、それは常に信頼できるものではありませんでした。
これは、「両方向に雪を登った」という話のように聞こえ始めています。まあ、再起動やシャットダウンのような派手なコマンドはありませんでした。システムをリブートしたいときは、ファイルシステムをsyncと同期し、コンソールでCtrl-Pを押して停止しました。
syncコマンドが終了したとき、カーネルは同期をスケジュールしていましたが、すべてのバッファー(すべての重要なファイルシステムスーパーブロックを含む)が必ずしもディスクに同期したわけではありません。そのため、同期を実行し、安全になる前に停止するのは非常に簡単でした。
同期を再度実行するのは簡単で、時間がかかり、すべてを理解することなく、特定の直感的なアピールがありました。
V7のマニュアルページにも、次のようなバグセクションがありましたupdate
。
更新の実行中に、同期の実行と同時にCPUが停止すると、ファイルシステムが破損する可能性があります。これは、NPR要求が失敗したときにゼロを書き込むDECハードウェアが部分的に原因です。修正方法としては、sync(1)を使用してシステム時間を少なくとも30秒一時的に増やし、更新の実行をトリガーするようにします。これにより、CPUを停止する30秒間の猶予が与えられます。
(ちなみに、これはV7マニュアルの第1巻で最後のことでした)
時間が経つにつれて、ファイルシステムツールとシステムのシャットダウンと再起動のためのプログラムは、これに対処することを避けるためにより良くなりました。システムが神秘的に振る舞うと、民間伝承、ブードゥー教、およびシステムの魔法がそこに入ります。2回同期することで、ファイルシステムを元に戻すために少しピンセットを外す必要がはるかに少なくなり、儀式の一部になりました。ひとたびそれを何度もやったら、あなたは考えずにそれをします。次に、誰かが気づき、その理由を尋ねます。そして、答えは、「常にそのように行われました。より安全です」のようなものです。
これが信頼できるものであると主張することはありません。詳細の一部については間違っているかもしれません。しかし、私はそれが起源にかなり近いと思います。
sync; sync; sync; sync
タイトルでは、と私は時々そのように入力します、私もそれは私になど、再び、同期、待機、同期で同じように、待機、説明を聞いた