Скрытый потенциал ручных сборок

       

Зачем мучаться, собирая программу руками


Зачем мучаться, собирая программу руками (а как же зубами и хвостом), если можно просто скачать готовую бинарную сборку, ведь править исходные тексты большинство из нас все равно не собирается. Вот топ основных причин, по которым исходные тексты лучше готовых дистрибутивов:
q       сборки есть не для всех платформ (в основном это касается x86-64 и экзотических осей типа QNX или BeOS);
q       для текущих версий сборки практически всегда отсутствуют, а релизы выходят нечасто, вынуждая нас использовать версию одно-двух годичной давности (и это далеко не преувеличение!), с завистью поглядывая на коллег, собравших последнюю альфу с кучей всяких вкусностей и нововведений;
q       готовые сборки включают в себя не все фичи, реализованные в исходных текстах (в частности, в состав популярного эмулятора BOCHS входит внешний интерактивный отладчик в стиле Turbo Debugger, в то время как официальные сборки содержат простейший интегрированный отладчик, типа "debug.com");
q       для многих программ существуют расширения, созданные сторонними разработчиками, и устанавливаемые только посредством перекомпиляции;
q       готовая сборка зачастую включает в себя много лишних компонентов, которые только жрут процессорные ресурсы и память, но лично нам ни хрена не нужны (в частности, программа может поддерживать консольный и графический интерфейсы, и если мы, горячие поклонники командной строки, не собираемся использовать X'ы, то перекомпилировать программу без поддержки GUI сам Джа велел);
q       официальные сборки компилируются с типовыми опциями оптимизации, общими для всех процессоров, в результате чего код получается неэффективным и неоптимальным или даже вообще неработающим (на старых процессорах типа 80386 или 80486);
q       при выходе новой версии, всю сборку приходится заново скачивать целиком, вместо того, чтобы забрать только измененные файлы (а для часто обновляемых программ это актуально);
q       если программа содержит уязвимость, то атаковать готовую сборку проще, поскольку хакер знает точное расположение всех машинных команд и раскладку памяти;
q       заплатки к исходным текстам выходят намного быстрее и чаще, чем к бинарным сборкам (зачастую бинарные сборки не патчатся вообще и приходится скачивать весь "залатанный" дистрибутив целиком);
q       пользоваться готовыми сборками это не unix-way и совсем не по-хакерски;


Содержание раздела