Mỹ Lệ✔
Writer
Kỹ sư Howard Kapustein của Microsoft vừa công bố một bài viết phân tích cơ chế thực tế của quá trình gỡ cài đặt phần mềm trên hệ điều hành Windows. Kết luận của ông là sau khi người dùng nhấp vào lệnh gỡ cài đặt, phần mềm thường không thực sự biến mất hoàn toàn khỏi hệ thống máy tính.
Quy trình gỡ cài đặt ứng dụng Win32 truyền thống tồn tại một vấn đề cơ bản: bản thân Windows không trực tiếp kiểm soát các chi tiết của quá trình gỡ cài đặt, mà thay vào đó, hệ thống sẽ gọi chương trình gỡ cài đặt do chính nhà phát triển phần mềm viết ra.
Nói cách khác, việc phần mềm có thể được loại bỏ hoàn toàn hay không phụ thuộc gần như hoàn toàn vào nhà phát triển. Nếu nhà phát triển không viết đầy đủ các quy trình dọn dẹp trong chương trình gỡ cài đặt, thì các thiết lập tùy chọn của người dùng, tệp bộ nhớ đệm (thường nằm trong thư mục %AppData% hoặc %LocalAppData%) và các khóa registry (các mục nằm dưới nhánh HKEY_CURRENT_USER hoặc HKEY_LOCAL_MACHINE) được tạo ra trong quá trình sử dụng phần mềm sẽ vẫn còn nguyên vẹn.
Tất nhiên, một số nhà phát triển cố tình giữ lại dữ liệu này để tạo sự thuận tiện khi người dùng cài đặt lại phần mềm, nhưng nếu người dùng không có ý định sử dụng lại phần mềm đó nữa, thì những tệp này sẽ trở thành rác hệ thống vĩnh viễn.
Một trường hợp khác là nhiều ứng dụng cùng chia sẻ một bộ tệp .dll hoặc các thành phần hệ thống. Để tránh gây ảnh hưởng đến các phần mềm khác, các chương trình gỡ cài đặt thường chọn giải pháp an toàn là giữ lại những tệp dùng chung này.
Các phần mềm lớn có thể tạo ra bộ nhớ đệm và tệp tạm với dung lượng lên tới vài gigabyte. Ngay cả sau khi chương trình chính đã được gỡ cài đặt, các tệp này vẫn chiếm dụng không gian ổ cứng. Howard Kapustein chỉ ra rằng, mặc dù một phần mềm đơn lẻ có thể không gây ra vấn đề ngay lập tức cho máy tính, nhưng tác động tích tụ theo thời gian lại rất đáng kể.
Điều đáng ngại hơn nữa là một số phần mềm đi kèm với các dịch vụ cập nhật tự động khởi động hoặc các chương trình giám sát chạy ngầm. Nếu những thành phần này không bị loại bỏ sau khi gỡ cài đặt chương trình chính, chúng sẽ tiếp tục tự động chạy mỗi khi máy tính khởi động, liên tục tiêu tốn tài nguyên CPU và bộ nhớ.
Howard Kapustein khuyến nghị người dùng nên cài đặt phần mềm thông qua Microsoft Store bất cứ khi nào có thể. Các ứng dụng trên Store sử dụng cơ chế đóng gói MSIX/UWP, với các đặc điểm như cơ chế cô lập (sandbox) và thiết kế thư mục độc lập. Khi gỡ cài đặt, hệ thống có thể trực tiếp xóa nhánh registry chuyên biệt và thư mục được cô lập, giúp loại bỏ phần mềm gần như hoàn toàn mà không để lại dấu vết. Người dùng cũng có thể định kỳ kiểm tra thư mục ẩn AppData để tự tay dọn dẹp các tệp tin còn sót lại, hoặc kiểm tra các dịch vụ chạy ngầm do phần mềm đã gỡ cài đặt để lại thông qua thẻ Startup trong Task Manager và công cụ quản lý dịch vụ (services.msc).
Quy trình gỡ cài đặt ứng dụng Win32 truyền thống tồn tại một vấn đề cơ bản: bản thân Windows không trực tiếp kiểm soát các chi tiết của quá trình gỡ cài đặt, mà thay vào đó, hệ thống sẽ gọi chương trình gỡ cài đặt do chính nhà phát triển phần mềm viết ra.
Nói cách khác, việc phần mềm có thể được loại bỏ hoàn toàn hay không phụ thuộc gần như hoàn toàn vào nhà phát triển. Nếu nhà phát triển không viết đầy đủ các quy trình dọn dẹp trong chương trình gỡ cài đặt, thì các thiết lập tùy chọn của người dùng, tệp bộ nhớ đệm (thường nằm trong thư mục %AppData% hoặc %LocalAppData%) và các khóa registry (các mục nằm dưới nhánh HKEY_CURRENT_USER hoặc HKEY_LOCAL_MACHINE) được tạo ra trong quá trình sử dụng phần mềm sẽ vẫn còn nguyên vẹn.
Tất nhiên, một số nhà phát triển cố tình giữ lại dữ liệu này để tạo sự thuận tiện khi người dùng cài đặt lại phần mềm, nhưng nếu người dùng không có ý định sử dụng lại phần mềm đó nữa, thì những tệp này sẽ trở thành rác hệ thống vĩnh viễn.
Một trường hợp khác là nhiều ứng dụng cùng chia sẻ một bộ tệp .dll hoặc các thành phần hệ thống. Để tránh gây ảnh hưởng đến các phần mềm khác, các chương trình gỡ cài đặt thường chọn giải pháp an toàn là giữ lại những tệp dùng chung này.
Các phần mềm lớn có thể tạo ra bộ nhớ đệm và tệp tạm với dung lượng lên tới vài gigabyte. Ngay cả sau khi chương trình chính đã được gỡ cài đặt, các tệp này vẫn chiếm dụng không gian ổ cứng. Howard Kapustein chỉ ra rằng, mặc dù một phần mềm đơn lẻ có thể không gây ra vấn đề ngay lập tức cho máy tính, nhưng tác động tích tụ theo thời gian lại rất đáng kể.
Điều đáng ngại hơn nữa là một số phần mềm đi kèm với các dịch vụ cập nhật tự động khởi động hoặc các chương trình giám sát chạy ngầm. Nếu những thành phần này không bị loại bỏ sau khi gỡ cài đặt chương trình chính, chúng sẽ tiếp tục tự động chạy mỗi khi máy tính khởi động, liên tục tiêu tốn tài nguyên CPU và bộ nhớ.
Howard Kapustein khuyến nghị người dùng nên cài đặt phần mềm thông qua Microsoft Store bất cứ khi nào có thể. Các ứng dụng trên Store sử dụng cơ chế đóng gói MSIX/UWP, với các đặc điểm như cơ chế cô lập (sandbox) và thiết kế thư mục độc lập. Khi gỡ cài đặt, hệ thống có thể trực tiếp xóa nhánh registry chuyên biệt và thư mục được cô lập, giúp loại bỏ phần mềm gần như hoàn toàn mà không để lại dấu vết. Người dùng cũng có thể định kỳ kiểm tra thư mục ẩn AppData để tự tay dọn dẹp các tệp tin còn sót lại, hoặc kiểm tra các dịch vụ chạy ngầm do phần mềm đã gỡ cài đặt để lại thông qua thẻ Startup trong Task Manager và công cụ quản lý dịch vụ (services.msc).
