Lỗi phần mềm ở 2 nơi khác nhau chắc chắn sẽ xảy ra khi tất cả các nhánh "IF" đều được chọn hướng như nhau, nếu không thì chưa chắc!
Các phần mềm của Microsoft vẫn lỗi ầm ầm, mà trước khi lưu hàng chúng thường được cho chạy thử không ít hơn ở cả vạn cái máy. Có những lỗi không chỉ được chạy trên 1 vài triệu cái máy và đã chạy được 1 vài năm mới phát hiện ra...
Tất nhiên viết cho phần cứng thì các nhánh "IF" sẽ ít hơn, xác suất để lỗi nổi lên sẽ cao hơn. Cao hơn chứ không phải 100%.
Chuyện thường ngày ở huyện thôi!
cụ so sánh với cái Windows nó quá khập khiễng, Windows nó là môi trường cho hàng triệu phần mềm chạy trên đó, có hàng triệu biến configs khác nhau, nên việc test tất cả tổ hợp và biến đầu vào của Windows dường như là điều bất khả thi. Khi phát hành ra, gây xung đột thì lỗi thôi.
Ví dụ: cụ tải Synology chạy port 5800, Windows ra phiên bản mới, thêm 1 service chạy ngầm cũng chạy port 5800 thì nó sẽ xung đột gây lỗi, lỗi này có thể gây lỗi ở phần mềm Syno hoặc Windows tùy thuộc vào mức độ ưu tiên cho phần mềm nào cao hơn, core windows nó sẽ kill process của cái thấp hơn.
Còn cụ chạy windows "trắng" không cài gì trên thiết bị của Microsoft phát hành thì gần như sẽ không lỗi (vẫn có nhưng hiếm hơn cụ trúng xổ số)
Sự kiện lỗi lập trình trên phần mềm "nguyên bản" thì có lỗi Y2K, toàn bộ máy tính chưa cập nhật đều dính lỗi hàng loạt vào thời điểm giao thừa năm 2000.
Khác với Windows, phần mềm điều khiển của bất kỳ hãng xe nó là dạng đóng gói, chẳng sợ va chạm với thằng nào cả, nên không có chuyện ra phiên bản mới hoặc có phần mềm mới thì xung đột.
Tóm lại, nếu lỗi do phần mềm "nguyên bản" thì 1 máy lỗi sẽ xảy ra lỗi hàng loạt.