Łaty w oprogramowaniu
Łata to poprawka lub aktualizacja do programu, mająca na celu usunięcie błędów, rozszerzenie funkcjonalności lub zwiększenie wydajności wcześniejszej wersji. Termin ten wywodzi się z komendy systemu Unix, wprowadzonej przez Larry’ego Walla, ułatwiającej wymianę poprawek kodu źródłowego.
Rodzaje łatania oprogramowania
- Oprogramowanie binarne: Łatanie oprogramowania zamkniętego polega na modyfikacji plików binarnych, ponieważ źródła są niedostępne. Proste łaty nadpisują pliki poprawionymi wersjami, co może wymagać dużych rozmiarów plików.
- Oprogramowanie z kodem źródłowym: W przypadku dostępnego kodu źródłowego łaty przechowują tylko różnice między wersjami plików, co pozwala na mniejsze rozmiary i lepszą kompresję.
Przykład łaty z użyciem diff/patch
W przypadku kodu w języku C++, zastosowanie niebezpiecznej funkcji strcat()
bez kontroli długości łańcucha prowadzi do naruszenia ochrony pamięci. Poprawiona wersja programu używa typu string
, co eliminuje ten problem.
Łatę można wygenerować poleceniem diff
, co pozwala na utworzenie pliku z różnicami, który można później zastosować.
Zalety korzystania z łat
Łaty mają kilka istotnych zalet w porównaniu do dystrybucji nowych wersji programów:
- Zmniejszony rozmiar plików.
- Możliwość zastosowania kilku niezależnych poprawek do tych samych źródeł, co sprzyja współistnieniu różnych wersji programów.
W świecie Uniksów szerokie użycie łat pozwala na istnienie wielu wersji oprogramowania, co ułatwia rozwój i integrację z dystrybucjami, jak ma to miejsce w przypadku Linuksa.