Định nghĩa: "Mother-of-bug"
Có khi nào bạn thắc mắc, tại sao lỗi máy tính lại được gọi là bug (con bọ) thay vì error (lỗi). Câu chuyện này bắt đầu từ ngày 9/9/1947, bà Grace Murray Hopper (nhà khoa học tiên phong trong lĩnh vực computer ) đã phát hiện ra con bướm mắc kẹt bên trong chiếc máy tính Harvard Mark II và làm cho nó ngừng hoạt động.
"Bug" đầu tiên được phát hiện thực chất là một chú bướm
Sau đó, Murray Hopper đã ghi lại thông tin này vào cuốn nhật kí, trong có đó đoạn: “First actual case of bug being found” (tạm dịch: con bọ đầu tiên được phát hiện). Ngày nay, thuật ngữ "bug" (lỗi) trong khoa học máy tính không được hiểu theo nghĩa đen như trước đó, mà để nói về lỗi máy tính hoặc một trường hợp hoạt động không chính xác của phần mềm.
1. Sự cố "thiên niên kỷ" Y2K
Nếu như đã từng sống trong thời gian chuyển tiếp giữa hai thiên niên kỉ (năm 1999 – 2000), chắc chắn cái tên Y2K vẫn còn ám ảnh trong tâm trí bạn đến bây giờ, khi sự kiện này được cả thế giới mong chờ, lo sợ - chẳng khác gì ngày tận thế.
Trong thế kỷ 20, các nhà phát triển phần mềm cho rằng con số “19” đứng trước biến “năm” là dư thừa, nó gây lãng phí bộ nhớ không cần thiết (thời điểm đó thì bộ nhớ máy tính là rất quý giá). Vì thế, họ đã quyết định bỏ qua hai chữ số này, chẳng hạn thay vì viết “1990”, “1991” thì chỉ ghi “90”, “91" để tiết kiệm bộ nhớ.
Sự cố Y2K một thời được xem chẳng khác gì ngày tận thế
Tuy nhiên, ngay cả Bill Gates, Steve Jobs cũng chẳng lường trước được chuyện gì sẽ xảy ra tại thời điểm chuyển tiếp giữa 2 thiên niên kỷ: đồng hồ máy tính sẽ trở về mốc 1/1/1900 hay nhảy lên 1/1/2000?
Theo các nhà khoa học, trong trường hợp xấu nhất nhất khi hệ thống máy tính trên thế giới quay về năm 1900, máy móc sẽ ngừng chạy, tên lửa hạt nhân sẽ bị kích hoạt, máy bay rơi và ngân hàng ngừng hoạt động - những thảm họa thực sự của nhân loại.
Một cảnh báo "nghiêm trọng": Hãy tắt máy tính vào đêm 31/12/1999
Cuối cùng, sự kiện Y2K cũng xảy ra nhưng mọi thứ vẫn yên ổn. Hàng tỷ USD đã được chi ra để nâng cấp lại hệ thống máy tính ngay trước thời điểm năm 2000. Trên thực tế, trên thế giới vẫn xuất hiện một số sự cố như website của Viện khí tượng Pháp đăng tin thời tiết cho ngày 1/1/1900 trong khi ở Tây Ban Nha, nhiều trạm xăng không thể hoạt động bình thường.
2. Tên lửa Dhahran
Sự kiện Dhahran là một minh chứng rõ ràng nhất cho câu nói "sai một ly, đi một dặm". Tháng 2/1991 (chiến tranh vùng vịnh lần thứ nhất), một tên lửa Iraq đã bắn thẳng vào căn cứ của Mỹ tại Ả Rập và lấy đi sinh mạng của 28 binh sĩ Mỹ. Một cuộc điều tra được tiến hành ngay lập tức, tại sao hệ thống phòng thủ tên lửa của Mỹ không hoạt động?
Kết quả điều tra chỉ ra rằng, một lỗi máy tính đã khiến cho pin của tên lửa bắn chặn Patriot hoạt động liên tục trong 100 giờ. Sau mỗi giờ, đồng hồ trên chiếc tên lửa bị lệch đi 0.0034s và tổng cộng sau 100 giờ là 0,33s - khoảng 1/3s, một con số rất nhỏ.
Sai số chỉ 1/3s khiến cho cả hệ thống phòng thủ tên lửa ngừng hoạt động
Đối với con người, 0,33 giây chỉ như một cái chớp mắt, nhưng với hệ thống radar phải theo dõi tên lửa AI Hussein Scud với tốc độ 1,5 km/s thì cái chớp mắt trên tương đương với 600m. Kết cục là ra-đa của Mỹ vẫn xác định được tên lửa trên bầu trời nhưng không thể theo dõi chính xác vị trí của nó để thực hiện bắn chặn. Vụ việc này một lần chứng minh, một lỗi nhỏ trong phần mềm có thể để lại hậu quả lớn như thế nào.
3. Feet hay Meter?
Năm 1998, tàu thăm dò Mars Climate Orbiter đã được phóng đi với mục đích nghiên cứu khí hậu Sao Hỏa. Tuy nhiên, sau khi khi di chuyển được vài tháng trong không gian, con tàu này đã bị phá hủy vì một lỗi vô cùng ngớ ngẩn: phần mềm tính toán trên tàu dùng hệ đo lường Meter, trong khi nhóm người điều khiển từ trái đất lại sử dụng đơn vị feet (1 ft = 30cm).
Sự nhầm lẫn tai hại này đã khiến Climate Orbiter đi chệch hướng khoảng 100km, cuối cùng nó đã vỡ vụn khi ma sát với bầu khí quyển của sao Hỏa - để lại một bài học đáng nhớ cho NASA.
4. Quá nhiều số trên tàu Ariane 5
Trong khi quá trình phát triển phần mềm, lập trình viên luôn phải xác định các biến cần sử dụng cũng như kích thước mà biến đó chiếm dụng trên bộ nhớ máy tính, thể hiện bằng các bit. Ví dụ biến 16-bit sẽ có giá trị trong khoảng từ -32,768 đến 32,767, trong khi một biến 64-bit sẽ có giá trị từ -9.223.372.036.854.775.808 đến 9.223.372.036.854.775.807.
Ngày 04/06/1996, tên lửa Ariane 5 (dòng tên lửa đã đưa 2 vệ tinh Vinasat của Việt Nam lên quỹ đạo) đã nổ tung trên bầu trời chỉ ít giây sau khi phóng lên. Nguyên nhân của sự cố này do lỗi mô phỏng hệ thống tương tự với phiên bản Ariane 4 cũ. Động cơ trong Ariane 5 có tốc độ nhanh hơn, vì thế khi chuyển đổi số chứa dấu phẩy động 64 bit sang ký hiệu số nguyên 16 bit sẽ gây ra hàng loạt lỗi trong bộ nhớ, làm tê liệt hệ thống và 370 triệu USD đã bay hơi - chỉ do lỗi đặt biến trong phần mềm.
5. Huyền thoại – Màn hình xanh chết chóc (BSOD) trên Windows 98
Có lẽ bất cứ người dùng máy tính nào cũng từng gặp màn hình "đáng sợ" này ít nhất một lần. Nó thường xuất hiện khi một lỗi nghiêm trọng nào đó xảy ra ở phần cứng hoặc phần mềm khiến cho toàn bộ hệ thống ngừng làm việc ngay lập tức. Cách duy nhất chúng ta có thể làm là khởi động lại PC và nhiều khả năng là sẽ bị mất toàn bộ dữ liệu đang làm việc nếu chưa kịp lưu.
Tổng hợp