Процесс исправления старых версий программного обеспечения
Бэкпортирование — это действие по взятию частей из более новой версии программной системы или программного компонента и переносу их в более старую версию того же программного обеспечения. Это часть этапа обслуживания в процессе разработки программного обеспечения , и обычно используется для исправления проблем безопасности в более старых версиях программного обеспечения, а также для предоставления новых функций для более старых версий.
Обзор
Самая простая и, вероятно, самая распространенная ситуация бэкпортирования — это исправленная дыра в безопасности в новой версии программного обеспечения. Рассмотрим этот упрощенный пример:
- В программном обеспечении версии 2.0 имелась уязвимость безопасности , которая устраняется путем замены текста «is_unsecured» на «is_secured».
- Та же уязвимость безопасности существует в Software v1.0, на основе которой создана кодовая база для новой версии, но там текст может выглядеть как «is_notsecure».
Взяв модификацию, исправляющую Software v2.0, и изменив ее так, чтобы она применялась к Software v1.0, мы фактически выполнили обратное портирование исправления. [1]
В реальных ситуациях изменения, которым подвергся один аспект программного обеспечения, могут быть простыми ( изменилось всего несколько строк кода ) или тяжелыми и массивными (множество изменений, распределенных по нескольким файлам кода). В последнем случае обратное портирование может стать утомительным и неэффективным и должно проводиться только в том случае, если старая версия программного обеспечения действительно необходима в пользу новой (например, если новая версия все еще страдает от проблем со стабильностью , которые не позволяют использовать ее в критически важных ситуациях). [2]
Процедуры
Процесс бэкпортирования можно условно разделить на следующие этапы: [1]
- выявление проблемы в старой версии программного обеспечения, которую необходимо исправить с помощью бэкпорта
- выяснение того, какая (обычно последняя) модификация кода устранила проблему
- адаптация модификации к ситуации со старым кодом (правильный обратный порт)
- один или несколько уровней контроля качества — проверка того, сохраняет ли портированная версия предыдущую функциональность, а также правильно ли она реализует новую функциональность.
Обычно несколько таких модификаций объединены в один набор исправлений .
Backports может быть предоставлен основной группой разработчиков программного обеспечения. Поскольку backporting требует доступа к исходному коду части программного обеспечения, это единственный способ backporting для программного обеспечения с закрытым исходным кодом — backports обычно включаются в двоичные обновления по старой линии версий программного обеспечения. В случае программного обеспечения с открытым исходным кодом backports иногда создаются дистрибьюторами программного обеспечения и позже отправляются вверх по течению (то есть отправляются основным разработчикам затронутого программного обеспечения). [2]
Примеры
- Многие функции Windows Vista были перенесены в Windows XP , когда для Windows XP был выпущен Service Pack 3, что облегчило совместимость приложений (в основном игр), изначально требующих Vista в качестве минимального требования, для запуска на XP SP3 в качестве минимального требования. [3]
- Проект Debian с сентября 2010 года [4] предоставляет официальную услугу бэкпортирования для некоторых пакетов программного обеспечения Debian Linux , а Ubuntu Linux также поддерживает бэкпорты. [5]
- В 2024 году пользователь YouTube под ником MattKC выполнил бэкпорт .NET Framework версий 2.0 и 3.5 в Windows 95 , которая официально не поддерживала этот фреймворк. [6] [7]
Смотрите также
Ссылки
- ^ ab "Backporting Security Fixes". Red Hat . Архивировано из оригинала 2020-05-12 . Получено 2020-05-11 .
- ^ ab Rahul Sundaram (2016-01-14). "Оставаться рядом с вышестоящими проектами". Fedora Project . Архивировано из оригинала 2011-08-05 . Получено 2020-05-11 .
- ^ Дональд Мелансон (2007-10-09). "Microsoft backports Vista features for new Windows XP SP3 beta". Engadget . Архивировано из оригинала 2016-03-04 . Получено 2020-05-11 .
- ^ "Служба Backports становится официальной". Проект Debian . 2010-09-05. Архивировано из оригинала 2011-09-03 . Получено 2020-05-11 .
- ^ "UbuntuBackports". Проект Ubuntu . 2015-11-29. Архивировано из оригинала 2019-05-03 . Получено 2020-05-11 .
- ^ Харпер, Кристофер (14.04.2024). «Тысячи приложений перенесены обратно в Windows 95 двадцать восемь лет спустя — порт .NET Framework обеспечивает обратную совместимость для современного программного обеспечения». Tom's Hardware . Архивировано из оригинала 31.05.2024 . Получено 01.07.2024 .
- ^ Posch, Maya (2024-04-14). "Porting Modern Windows Applications To Windows 95". Hackaday . Архивировано из оригинала 2024-07-01 . Получено 2024-07-01 .