Năm lỗi phần mềm máy tính nổi tiếng nhất trong lịch sử

 Trong kỷ nguyên số, các lỗi máy tính đơn giản cũng có thể ảnh hưởng đến cuộc sống chúng ta, đến nền kinh tế của một quốc gia và thậm chí là cả chức năng hoạt động xã hội. Khi Internet xâm nhập dần vào tất cả khía cạnh của môi trường xung quanh chúng ta thì điều quan trọng là nhận diện và ngăn chặn các lỗi (bug) phát triển theo cấp số nhân.

Sau đây là năm lỗi phần mềm máy tính khét tiếng nhất đã đi vào lịch sử:

1. Lỗi máy tính đầu tiên – một con bọ

1

Vào ngày 9-9-1947, một chiếc máy tính Mark II ở trường Đại học Harvard đã không hoạt động. Sau khi kiểm tra, các kỹ sư đã phát hiện ra nguyên nhân – một con bướm đã mắc kẹt bên trong máy tính. Sự cố máy tính được ghi nhận vào nhật ký lúc 3 giờ 45 phút chiều, trong đó có đoạn: “con bọ (bug) thực tế đầu tiên đã được tìm thấy.”

Ngày nay, thuật ngữ “bug” (lỗi) trong khoa học máy tính không còn được hiểu theo nghĩa đen mà nói đến một lỗ hổng hoặc lỗi trong một chương trình máy tính là nguyên nhân để nó không đưa ra kết quả mong muốn hoặc dẫn đến một tai nạn.

Lỗi máy tính được ghi nhận đầu tiên.

Tờ giấy ghi sự cố máy tính đầu tiên này vẫn được lưu giữ ở Viện bảo tàng lịch sử quốc gia ở Washington, Mỹ.

2. Lỗi năm 2000 (Y2K)

Trong thế kỷ trước, các nhà phát triển phần mềm không bao giờ nghĩ rằng phần mềm và sáng tạo của họ có thể tồn tại đến thiên niên kỷ mới. Từ đây, nhiều người đã cho rằng viết “19” trước biến “năm” là không cần thiết và làm lãng phí bộ nhớ. Hầu hết đều quyết định chỉ lưu trữ biến “năm” bằng hai chữ số.

Tất cả vẫn diễn ra tốt đẹp cho đến khi chúng ta sắp bước sang thế kỷ 21, khi ngày 31 tháng 12 năm 1999 càng đến gần hơn, chúng ta đã lo lắng về một thực tế là vào ngày đầu tiên của năm mới, các hệ thống máy tính sẽ cập nhật thành năm 1900 thay vì năm 2000 và là nguyên nhân của các thảm họa lớn và thậm chí có thể kết thúc của nhân loại.

Y2K là sự kiện lớn cho báo lá cải và giật gân.

Tuy nhiên, chúng ta vẫn ở đây để kể về một câu chuyện: các tên lửa hạt nhân đã không được phóng ra, các máy bay đã không rơi từ bầu trời và các nhà băng vẫn không mất các thông tin tiết kiệm của khách hàng.

Nhưng lỗi Y2K là có thật. Hàng tỷ USD đã được chi ra để nâng cấp các hệ thống máy tính trên toàn cầu. Bên cạnh đó, một số sự cố nhỏ cũng đã được ghi nhận: ở Tây Ban Nha, một trang web về thời tiết đã chuyển sang ngày 1-1-1900 và ở Úc, một số máy bán vé xe buýt đã không hoạt động.

3. Tên lửa Dhahran

Vào tháng Hai năm 1991 (Chiến tranh vùng Vịnh lần thứ nhất), một tên lửa Iraq đã bắn vào căn cứ Mỹ ở Dhahran, A-rập Xê-út, làm chết 28 lính Mỹ.

Điều tra cho thấy hệ thống chống tên lửa đạn đạo đã không hoạt động do một lỗi phần mềm máy tính: pin của tên lửa Patriot được sử dụng cho phát hiện và đánh chặn tên lửa của đối phương bị đã chạy sai sau 100 giờ. Sau mỗi giờ, đồng hồ bên trong đã bị sai một mi-li giây và đã ảnh hưởng lớn đến hệ thống khi trễ 0,33 giây sau 100 giờ.

Lỗi pin đã khiến tên lửa Patriot mất mục tiêu.

Đối với chúng ta, 0,33 giây là rất nhỏ nhưng với các hệ thống ra-đa để theo dõi tên lửa Scud khi bay với tốc độ 1,5 km/giây thì sẽ là 600 mét. Trong trường hợp này, ra-đa đã nhận diện được tên lửa trên bầu trời nhưng đã không lần theo dấu vết do lỗi này và tên lửa đánh chặn đã không được phóng lên.

4. Nhầm lẫn Feet và mét đã phá hủy tàu thăm dò khí hậu Sao Hỏa

Đường đi theo thiết kế và thực tế của tàu Mars Climate Orbiter.

Tàu thăm dò khí hậu Sao Hỏa được phóng lên vào năm 1998 với mục tiêu nghiên cứu khí hậu Sao Hỏa nhưng nó chưa bao giờ hoàn thành sứ mệnh của mình.

Sau khi di chuyển trong không gian được vài tháng, tàu Mars Climate Orbiter đã bị phá hủy bởi một lỗi dẫn đường: những người điều khiển ở mặt đất đã sử dụng hệ đo lường Anh (sử dụng feet) trong khi các phần mềm tính toán lại sử dụng hệ mét. Những tính toán sai này đã ảnh hưởng đến đường đi của con tàu. Cuối cùng, tàu tàu Mars Climate Orbiter đã bị phá hủy do ma sát với bầu khí quyển Sao Hỏa khi sai số lên đến 100 km.

5. Quá nhiều chữ số của tên lửa đẩy hạng nặng Ariane 5

370 triệu USD là giá phải trả cho lỗi phần mềm của Ariene 5.

Khi lập trình, các nhà lập trình đã phải định nghĩa các biến của chương trình sẽ sử dụng, đồng thời xác định kích thước các biến sẽ chiếm khi lưu trữ trong bộ nhớ máy tính. Dung lương máy tính yêu cầu cho các biến được tính bằng bit.

Vào ngày 4 tháng Sáu năm 1996, chỉ sau 30 giây được phóng lên, tên lửa Ariane 5 đã nổ tung như pháo hoa. Sự cố được mô phỏng lại với một điều kiện tượng tự cho thấy phần mềm máy tính (được chuyển từ tên lửa Ariane 4 sang) đã chuyển dữ liệu sử dụng biến kiểu số động 64-bit sang biến sử dụng số 16-bít để biểu diễn phương nằm ngang.

Những biến này đã sử dụng một kích thước khác trong bộ nhớ là nguyên nhân hàng loạt lỗi ảnh hưởng đến tất cả máy tính trong tên lửa làm tê liệt hệ thống và kích hoạt hệ thống tự phá hủy, tiêu tốn 370 triệu USD chỉ do một lỗi phần mềm.

 Báo Nhân Dân