Ho letto questa citazione (sotto) più volte, di recente qui , e sono continuamente perplesso su come dd
può essere usato per correggere qualsiasi cosa per non parlare di un compilatore:
Il sistema Unix che ho usato a scuola, 30 anni fa, era molto limitato nella RAM e nello spazio su disco. Soprattutto, il
/usr/tmp
file system era molto piccolo, il che causava problemi quando qualcuno cercava di compilare un programma di grandi dimensioni. Ovviamente, gli studenti non dovevano scrivere "grandi programmi" comunque; i programmi di grandi dimensioni erano in genere codici sorgente copiati da "da qualche parte". Molti di noi copiato/usr/bin/cc
a/home/<myname>/cc
, e utilizzatodd
per patchare il binario da utilizzare/tmp
al posto di/usr/tmp
, che era più grande. Naturalmente, questo ha solo aggravato il problema: lo spazio su disco occupato da queste copie contava in quei giorni, e ora si/tmp
riempiva regolarmente, impedendo ad altri utenti di modificare anche i propri file. Dopo aver scoperto cosa è successo, gli amministratori di sistema hanno fatto unchmod go-r /bin/* /usr/bin/*
che "risolto" il problema e cancellato tutte le nostre copie del compilatore C.
(Enfasi mia)
La dd
pagina man non dice nulla sul patching e non credo che potrebbe essere riutilizzato per farlo comunque.
I binari potrebbero davvero essere patchati dd
? C'è qualche significato storico in questo?
od
un file per i codici esadecimali di byte, trova l'offset di cui hai bisogno, decidi sulla tua modifica e labs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc
tua patch subito.