Esistevano certamente sistemi UNIX meno recenti per i quali era più sicuro sincronizzare più di una volta, ma non tutti su una riga di comando come "sync; sync; sync". A metà degli anni '80, questo divenne distillato per:
Quando si spegne il sistema, si sincronizzerà tre volte. Ne più ne meno. Tre sono il numero della sincronizzazione e il numero della sincronizzazione è tre. Non sincronizzerai quattro volte, né sincronizzerai due volte, tranne che procederai alla sincronizzazione una terza volta ...
Non so davvero da dove vengano le tre volte, tranne forse che è stato divertente. Ma la parola sulla strada per farlo due volte. Non come "sync; sync", ma come due linee separate sulla shell.
Ai tempi di, diciamo, V7 UNIX, la riparazione del file system non era molto divertente. Dovevi farlo a mano, sapendo molto su come funzionava il filesystem e sulle idiosincrasie di programmi come dcheck, ncheck e icheck. fsck, se ce l'hai, non è sempre stato qualcosa di cui ti fidi.
Sta iniziando a sembrare una storia "abbiamo camminato attraverso la neve in salita in entrambi i modi". Bene, non avevamo comandi fantasiosi come riavvio o spegnimento. Quando volevi riavviare il sistema, hai sincronizzato il filesystem con sync e quindi hai premuto Ctrl-P sulla console per arrestarlo.
Quando il comando di sincronizzazione è terminato, il kernel aveva programmato la sincronizzazione, ma non tutti i buffer (incluso l'importante superblocco del filesystem) erano necessariamente arrivati sul disco. Quindi è stato abbastanza facile eseguire la sincronizzazione e quindi interrompere le cose prima che fosse sicuro.
Eseguire di nuovo la sincronizzazione è stata una cosa facile da fare, ha impiegato molto tempo e ha avuto un certo fascino intuitivo senza dover capire tutto o gestire vaghe istruzioni come "contare fino a 10" o qualcosa del genere.
C'era anche una sezione BUG nella pagina man di V7 per update
anche detto:
Con l'aggiornamento in esecuzione, se la CPU viene arrestata mentre viene eseguita la sincronizzazione, un file system può essere danneggiato. Ciò è in parte dovuto all'hardware DEC che scrive zeri quando le richieste NPR falliscono. Una correzione sarebbe quella di avere sync (1) incrementare temporaneamente il tempo di sistema di almeno 30 secondi per attivare l'esecuzione dell'aggiornamento. Ciò darebbe 30 secondi di grazia per arrestare la CPU.
(che, a proposito, è stata l'ultima cosa nel volume 1 dei manuali V7)
Nel tempo, gli strumenti del filesystem e i programmi per l'arresto e il riavvio dei sistemi sono migliorati per evitare di affrontarli. Folclore, voodoo e magia del sistema entrano in esso quando il sistema si comporta in modo misterioso. La sincronizzazione due volte ha reso molto meno probabile che avresti dovuto estrarre le pinzette per rimettere insieme il tuo filesystem, quindi è diventato parte del rituale. Una volta che lo hai fatto un sacco di volte, lo fai senza pensare. Quindi qualcuno si accorge e chiede perché. E la risposta è qualcosa del tipo: "Sempre fatto così. È più sicuro".
Non pretenderò che questo sia autorevole e potrei sbagliarmi su alcuni dettagli. Ma penso che sia abbastanza vicino all'origine.
sync; sync; sync; sync
il titolo, e talvolta lo scrivo in quel modo, l'ho anche sentito spiegarmi allo stesso modo, cioè sincronizzare, aspettare, sincronizzare di nuovo, aspettare, ecc.