Звичайно, існували старіші системи UNIX, для яких було безпечніше синхронізувати не один раз, але не всі в одному командному рядку як "синхронізація; синхронізація; синхронізація". У середині 80-х це перегнали на:
Коли ви закриєте систему, тричі синхронізуєте. Ні більше, ні менше. Три - це кількість синхронізації, а кількість синхронізації - три. Чотири рази не синхронізуйте і не синхронізуйте двічі, за винятком того, що ви продовжите синхронізацію втретє ...
Я насправді не знаю, звідки тричі родом, крім, можливо, що це було весело. Але слово на вулиці зробити це двічі. Не як "sync; sync", а як два окремих рядки на оболонці.
Ще в часи, скажімо, V7 UNIX, ремонт файлової системи був не дуже цікавим. Вам потрібно було це зробити вручну, знаючи багато про те, як працює файлова система та про особливості програм, таких як dcheck, ncheck та icheck. fsck, якби у вас це було, не завжди було те, чому ви б довіряли.
Це починає звучати як історія "ми пішли по снігу в гору обома шляхами" історія. Ну, у нас не було таких фантазійних команд, як перезавантаження чи вимкнення. Коли ви хотіли перезавантажити систему, ви синхронізували файлову систему, а потім натискаєте Ctrl-P на консолі, щоб зупинити її.
Коли команда синхронізації завершилася, ядро запланувало синхронізацію, але не всі буфери (включаючи важливий суперблок файлової системи) обов'язково внесли її на диск. Тож було досить легко запустити синхронізацію, а потім зупинити речі, перш ніж це було безпечно.
Знову запустити синхронізацію було легко, зайняв час і мав певну інтуїтивну привабливість, не маючи цього все розуміти, чи мати справу з нечіткими інструкціями на кшталт "рахувати до 10" чи щось подібне.
На сторінці людини V7 був навіть розділ BUG, який update
також сказав:
При запуску оновлення, якщо ЦП зупиняється саме під час синхронізації, файлова система може бути пошкоджена. Частково це пов'язано з обладнанням DEC, яке записує нулі, коли запити NPR не спрацьовують. Виправленням було б синхронізація (1) тимчасово збільшити системний час принаймні на 30 секунд, щоб запустити виконання оновлення. Це дасть тривалість 30 секунд для зупинки процесора.
(що, до речі, було останнє в томі 1 посібників V7)
З часом інструменти файлової системи та програми для вимкнення та перезавантаження систем стали краще уникати цього. Фольклор, вуду та системна магія входять до нього, коли система поводиться загадково. Двічі синхронізація зробила набагато меншою ймовірність того, що вам доведеться дістати пінцети, щоб повернути вашу файлову систему, і це стало частиною ритуалу. Коли ви це зробили купу разів, ви робите це, не замислюючись. Потім хтось помічає і запитує, чому. А відповідь - щось на зразок: "Завжди роби це так. Безпечніше".
Я не буду стверджувати, що це авторитетно, і я можу помилитися в деяких деталях. Але я думаю, що це досить близько до походження.
sync; sync; sync; sync
заголовок, і я іноді ввожу його таким чином, я також чув, як це мені пояснили так само, тобто синхронізувати, зачекати, знову синхронізувати, почекати і т. Д.