Przeczytałem ten cytat (poniżej) kilka razy, ostatnio tutaj , i ciągle zastanawiam się, jak dd
można go użyć do łatania czegokolwiek, nie mówiąc już o kompilatorze:
System uniksowy, z którego korzystałem w szkole 30 lat temu, był bardzo ograniczony pod względem pamięci RAM i miejsca na dysku. Szczególnie
/usr/tmp
system plików był bardzo mały, co spowodowało problemy, gdy ktoś próbował skompilować duży program. Oczywiście studenci i tak nie powinni pisać „dużych programów”; duże programy były zwykle kodami źródłowymi kopiowanymi „gdzieś”. Wielu z nas kopiowane/usr/bin/cc
do/home/<myname>/cc
i używanedd
załatać binarny do używania/tmp
zamiast/usr/tmp
, który był większy. Oczywiście tylko pogorszyło to problem - przestrzeń dyskowa zajmowana przez te kopie miała znaczenie w tych dniach, a teraz/tmp
regularnie się zapełnia, uniemożliwiając innym użytkownikom nawet edytowanie swoich plików. Po dowiedzeniu się, co się stało, sysadmins zrobilichmod go-r /bin/* /usr/bin/*
co „naprawiło” problem i usunęło wszystkie nasze kopie kompilatora C.
(Moje podkreślenie)
dd
Człowiek-strona nie mówi nic o łatanie i nie sądzę, żeby to mogło być ponownie postanowił zrobić to w każdym razie.
Czy naprawdę można załatać pliki binarne dd
? Czy ma to jakieś znaczenie historyczne?
od
plik bajtowych kodów szesnastkowych, znajdź potrzebne przesunięcie, zdecyduj o swojej edycji ibs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc