TL; DR: máy tính không phải là thực thể tự trị như sinh vật, với bất kỳ bản năng sinh tồn nào. Họ chỉ chạy các hướng dẫn và đôi khi họ chạy các hướng dẫn mà chúng tôi không thích, vì vậy chúng tôi chạy các hướng dẫn khác để tìm các hướng dẫn xấu.
Tôi bắt đầu nói điều này trong các bình luận, nhưng tôi nghĩ còn nhiều điều để nói.
Ẩn dụ về virus đã lỗi thời và được sử dụng quá rộng rãi bởi những người không hiểu máy tính thực sự hoạt động như thế nào. Họ cố gắng ví họ với những sinh vật sống, bởi vì họ hiểu những sinh vật sống. Đây là một phép ẩn dụ tốt hơn.
Bạn là một nhân viên văn phòng. Bạn làm việc cho một tập đoàn lớn, nơi bạn không gặp ông chủ của mình. Bạn chưa bao giờ nói lý do tại sao bạn làm công việc của bạn, bạn thậm chí không biết công ty của bạn làm gì. Tất cả những gì bạn biết là bạn xuất hiện để làm việc mỗi ngày và bạn làm theo hướng dẫn của mình.
Có một cửa sổ nhỏ cạnh bàn làm việc của bạn, đó là cách duy nhất bạn từng tương tác với bất kỳ ai khác. Bạn không nhìn thấy ai, nhưng đôi khi những mảnh giấy lọt qua cửa sổ.
Hướng dẫn của bạn luôn giống nhau khi bắt đầu, nhưng bạn có một đống giấy tờ lớn ở bàn làm việc. Một số trong số này chứa các hướng dẫn, một số trong đó chứa những điều bạn đã viết. Đôi khi các hướng dẫn của bạn sẽ cho bạn biết để tìm một mảnh giấy khác và bắt đầu sử dụng nó làm hướng dẫn của bạn. Đôi khi họ bảo bạn thay đổi các mảnh giấy, xé chúng ra hoặc xóa các phần của chúng. (Đây là những gì đang chạy một chương trình. Đôi khi các chương trình chỉnh sửa tệp, đôi khi chúng chạy các chương trình khác, v.v.)
Đôi khi hướng dẫn của bạn bảo bạn đợi bên cửa sổ để có thêm giấy đến. Bài báo có thể có một hình ảnh trên đó, nó có thể có văn bản hoặc nó có thể có nhiều hướng dẫn hơn. (Đây là những gì xảy ra khi máy tính đợi đầu vào chuột hoặc đầu vào bàn phím hoặc thứ gì đó từ mạng (ví dụ: tệp)).
Bạn không làm gì ngoài việc làm theo các hướng dẫn này. Bạn không bao giờ biết tại sao, bạn không bao giờ biết cho ai, nhưng bạn chỉ làm điều đó.
Đôi khi, hướng dẫn của bạn nói với bạn để đa nhiệm. Bạn có một đống giấy tờ. Bạn đặt hẹn giờ và bạn làm việc theo hướng dẫn từ tờ giấy trên cùng trong 5 phút. Khi bộ đếm thời gian đi, bạn đặt tờ giấy đó xuống dưới cùng của đống và làm bất cứ điều gì trên tờ giấy mới. (Đây là cách máy tính chạy nhiều chương trình cùng một lúc).
Bây giờ, một ngày nọ, bạn đang chờ đợi một mảnh giấy bên cửa sổ và bạn biết khi bạn nhận được nó, bạn sẽ làm bất cứ điều gì nó nói, bởi vì đó là những gì hướng dẫn cuối cùng bảo bạn làm. Bạn nhận được nó, và nó nói để tìm một số mẩu giấy chính của bạn, với các hướng dẫn cốt lõi của bạn, và xóa chúng. Nó cho bạn biết hướng dẫn mới để đặt ở đó. Họ đang làm một số điều kỳ lạ, như gửi các tệp của bạn ra ngoài cửa sổ đến những nơi xa lạ hoặc thu thập các bản sao dự phòng của tất cả những thứ đi qua cửa sổ. Nhưng điều quan trọng là, bạn không nghĩ gì về nó. Họ chỉ là hướng dẫn nhiều hơn. Bạn chỉ cần làm chúng.
Đây là những gì một virus. Nó chỉ là một bộ hướng dẫn mà bạn lừa máy tính chạy.
Bây giờ, giả sử bạn là một công nhân đa nhiệm. Bạn nhận được một trong những hướng dẫn xóa trong cửa sổ. Nhưng, bạn đang bận, vì vậy bạn đặt nó xuống dưới cùng của đống. Bạn nhìn vào đầu đống công việc cần làm và có một bộ hướng dẫn được đánh dấu là "chống vi-rút". Nó nói để đọc qua tất cả các giấy tờ của bạn, và xem nếu bất kỳ trong số họ trông giống như giấy mẫu của họ. Bạn làm và bạn thấy rằng các hướng dẫn xóa có trong danh sách của bạn.
Lưu ý rằng nếu bạn bắt đầu chạy các hướng dẫn vi-rút, bạn không nghĩ gì về nó. Không có phần mềm chống vi-rút, không có cuộc tấn công, không có phản ứng miễn dịch. Nó không tấn công bạn, nó chỉ là một bộ hướng dẫn. Phần mềm chống vi-rút chỉ là một danh sách TODO liên quan đến việc xem các hướng dẫn khác của bạn và tìm các hướng dẫn phù hợp với một mẫu. Nó không cố gắng bảo vệ toàn bộ hệ thống, nó chỉ là một tờ giấy mà ai đó đưa cho bạn từ cửa sổ, bởi vì nó ngăn người khác lừa bạn làm việc bằng cách đưa đồ qua cửa sổ.
Bây giờ, những gì về virus "tiến hóa" của bạn? Điều này chắc chắn là có thể, nhưng hãy nhìn vào những gì nó đòi hỏi. Một virus đang phát triển về cơ bản là một tờ hướng dẫn cho bạn biết cách tạo ra nhiều hướng dẫn hơn. Đó là một mảnh giấy bảo bạn xóa một loạt các hướng dẫn cũ của bạn, sau đó đặt những hướng dẫn mới vào vị trí của nó, nhưng những hướng dẫn mới đó cũng bảo bạn xóa các hướng dẫn cũ, và đặt các hướng dẫn mới, v.v. Vì vậy, các hướng dẫn ban đầu không thay đổi. Virus không biến đổi. Thay vào đó, nó chỉ làm bất cứ điều gì nó làm, trong khi cũng để lại các hướng dẫn để tạo ra thế hệ tiếp theo.
Vì vậy, nó có thể làm điều này? Đúng. Nhưng nó cực kỳ phức tạp. Để có một chương trình tự thay đổi, nhưng có chuỗi thay đổi đó cuối cùng không hội tụ thành một chương trình không có gì hữu ích, là vô cùng phức tạp.