Bước tới nội dung

Backporting

Bách khoa toàn thư mở Wikipedia

Backporting là hành động lấy các phần từ một phiên bản mới hơn của một hệ thống phần mềm hoặc thành phần phần mềmport chúng sang một phiên bản cũ hơn của chính phần mềm đó. Đây là một phần của bước bảo trì trong quy trình phát triển phần mềm, thường được dùng để sửa các vấn đề bảo mật trong những phiên bản cũ hơn của phần mềm cũng như cung cấp tính năng mới cho các phiên bản cũ.

Tổng quát

[sửa | sửa mã nguồn]

Trường hợp đơn giản nhất và có lẽ là thường gặp nhất của backporting là một lỗ hổng bảo mật đã được sửa chữa trong một phiên bản mới hơn của phần mềm. Xét ví dụ đơn giản sau:

  • Phần mềm v2.0 có một lỗ hổng bảo mật đã được sửa bằng cách thay đổi dòng chữ 'is_unsecured' thành 'is_secured'.
  • Lỗ hổng bảo mật này cũng tồn tại trong Phần mềm v1.0, nơi bắt nguồn cơ sở mã của phiên bản mới hơn, nhưng ở đó dòng chữ này có thể được hiện kiểu khác, như 'is_notsecure' chẳng hạn.

Bằng cách sử dụng phép sửa đổi đã chữa lỗ hổng trên Phần mềm v2.0 và thay đổi nó để áp dụng lên Phần mềm v1.0, ta đã backport được bản vá này.[1]

Trong thực tế, các sửa đổi đối với một khía cạnh nào đó của phần mềm có thể có mức độ rất đa dạng: từ đơn giản (chỉ thay đổi vài dòng trong mã nguồn) cho tới phức tạp và khổng lồ (nhiều sửa đổi trên nhiều tập tin mã). Ở trường hợp thứ hai, backporting có thể diễn ra trong thời gian dài, kém hiệu quả, và chỉ nên thực hiện nếu phiên bản cũ của phần mềm thật sự cần thiết so với phiên bản mới hơn (ví dụ như nếu phiên bản mới vẫn gặp phải các vấn đề về độ ổn định khiến nó không thể được sử dụng trong những tình huống quan trọng).[2]

Quy trình

[sửa | sửa mã nguồn]

Quy trình backporting có thể được chia đại khái thành các bước sau:[1]

  1. xác định vấn đề trong phiên bản phần mềm cũ hơn cần được sửa chữa bằng một bản backport
  2. xác định sửa đổi nào (thường là sửa đổi gần đây) trong mã nguồn đã giải quyết vấn đề
  3. thích ứng sửa đổi đó trong trường hợp mã nguồn cũ
  4. một hoặc nhiều cấp độ kiểm soát chất lượng – kiểm thử xem phiên bản được backport có giữ được chức năng như trước kia không, cũng như chức năng mới có được triển khai tốt không.

Thông thường, nhiều sửa đổi như vậy sẽ được gộp chung vào một bản vá.

Các bản backport có thể được cung cấp bởi nhóm lập trình viên cốt lõi của phần mềm. Do backporting yêu cầu phải truy cập vào mã nguồn của phần mềm, đây là cách duy nhất để tiến hành backporting với các phần mềm nguồn đóng – các bản backport thường được bao gồm trong những bản nâng cấp nhị phân cùng với dòng phiên bản cũ của phần mềm. Với phần mềm nguồn mở, các bản backport đôi lúc được tạo ra bởi các nhà phân phối phần mềm và sau đó được gửi lên những lập trình viên cốt lõi của phần mềm dó.[2]

  • Nhiều tính năng của Windows Vista đã được backport sang Windows XP khi Service Pack 3 được phát hành dành cho Windows XP.[3]
  • Dự án Debian kể từ tháng 9 năm 2010[4] đã cung cấp dịch vụ backporting chính thức cho một số gói phần mềm Debian Linux, và Ubuntu Linux cũng hỗ trợ các bản backport.[5]
  • Vào năn 2024, một YouTuber có tên là MattKC đã backport các phiên bản 2.0 và 3.5 của .NET Framework lên Windows 95, trong khi hệ điều hành này không chính thức hỗ trợ framework.[6][7]

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ a b “Backporting Security Fixes”. Red Hat. Lưu trữ bản gốc ngày 12 tháng 5 năm 2020. Truy cập ngày 11 tháng 5 năm 2020.
  2. ^ a b Rahul Sundaram (14 tháng 1 năm 2016). “Staying close to upstream projects”. Fedora Project. Lưu trữ bản gốc ngày 5 tháng 8 năm 2011. Truy cập ngày 11 tháng 5 năm 2020.
  3. ^ Donald Melanson (9 tháng 10 năm 2007). “Microsoft backports Vista features for new Windows XP SP3 beta”. Engadget. Lưu trữ bản gốc ngày 4 tháng 3 năm 2016. Truy cập ngày 11 tháng 5 năm 2020.
  4. ^ “Backports service becoming official”. Debian Project. 5 tháng 9 năm 2010. Lưu trữ bản gốc ngày 3 tháng 9 năm 2011. Truy cập ngày 11 tháng 5 năm 2020.
  5. ^ “UbuntuBackports”. Ubuntu Project. 29 tháng 11 năm 2015. Lưu trữ bản gốc ngày 3 tháng 5 năm 2019. Truy cập ngày 11 tháng 5 năm 2020.
  6. ^ Harper, Christopher (14 tháng 4 năm 2024). “Thousands of apps ported back to Windows 95 twenty-eight years later — .NET Framework port enables backward compatibility for modern software”. Tom's Hardware (bằng tiếng Anh). Lưu trữ bản gốc ngày 31 tháng 5 năm 2024. Truy cập ngày 1 tháng 7 năm 2024.
  7. ^ Posch, Maya (14 tháng 4 năm 2024). “Porting Modern Windows Applications To Windows 95”. Hackaday (bằng tiếng Anh). Lưu trữ bản gốc ngày 1 tháng 7 năm 2024. Truy cập ngày 1 tháng 7 năm 2024.