Trong nhiều năm sử dụng máy tính, chắc hẳn anh em cũng từng một lần nghe qua về sự cố Y2K đúng không nào. Tuy nhiên, bởi vì sự cố này xảy ra vào năm cuối cùng của thế kỷ trước nên nhiều anh em sẽ không hiểu rõ vì sao sự kiện này từng làm rung động cả thế giới và lại gây ảnh hưởng đến như vậy. Trong bài viết này, mình sẽ giải thích Y2K là gì và tại sao nó lại gây ảnh hưởng đến toàn bộ thế giới
Cách thế giới tự gài bẫy mình
Trong thập niên 50 và 60 của thế kỷ trước, hầu hết các hệ thống máy tính đều có dung lượng lưu trữ dữ liệu rất là hạn chế, chỉ bằng một phần rất nhỏ của những thanh RAM trong máy tính ngày nay. Chẳng hạn như một loại hình lưu trữ dữ liệu phổ biến ngày xưa là các tấm thẻ bằng giấy cứng có đục lỗ (punched card) và thường chỉ có 80 cột để chứa dữ liệu thôi. Với sự hạn chế về công nghệ cũng như dung lượng của các thiết bị lưu trữ nên người ta phải nghĩ ra thật nhiều cách khác nhau để tiết kiệm dung lượng.
Và cách tiết kiệm dễ làm nhất, phổ biến nhất là rút gọn số năm lại, chỉ hiện thị hai chữ số cuối cùng. Ví dụ, năm 1966 thì chỉ hiện là 66 thôi. Có thể bạn sẽ nghĩ rút 2 số như vậy thì không tiết kiệm được bao nhiêu nhưng tính ra thì chúng ta có thể dễ dàng rút ngắn dung lượng cần thiết để lưu trữ dữ liệu đi một nửa đấy anh em.
Mặt dù công nghệ ngày càng phát triển, các con chip xử lý đã có tốc độ nhanh hơn, RAM có nhiều dung lượng hơn và các loại thiết bị lưu trữ dữ liệu cũng “tiến hóa” lên rất nhiều. Dù không còn dùng những tấm bìa cứng nữa mà chuyển sang các loại thiết bị lưu trữ sử dụng băng, đĩa từ nhưng mấy ông lập trình viên vẫn tiếp tục tạo ra các phần mềm “tiết kiệm dung lượng” anh em ạ.
Bên cạnh đó, thế giới công nghệ ngoài kia không phải chỉ có máy tính để bàn hay laptop thôi mà còn có rất nhiều loại máy tính khác không có nhiều dung lượng ổ cứng và RAM. Chẳng hạn như các loại hệ thống nhúng, các bộ PLC (Programmable logic controllers), máy móc, robot, dây chuyền sản xuất tự động và các hệ thống điều khiển trong nhà máy công nghiệp đều chỉ được lập trình và điều khiển bằng các phần mềm nhỏ gọn nhất có thể.
Mọi việc cứ diễn ra như vậy cho đến thời gian sau này, số lượng dữ liệu, phần mềm dùng định dạng năm chỉ có 2 chữ số ngày càng chồng chất, nếu muốn đổi lại thành định dạng 4 chữ số là cả một quá trình đầy khó khăn.
Ngày “phán quyết” của thế giới công nghệ
Nếu chỉ hiện năm bằng 2 chữ số cuối cùng thì các bạn sẽ không thể phân biệt được năm đó thuộc thế kỷ nào. Còn đối với các phần mềm thời bấy giờ, chúng được lập trình để tự hiểu rằng dù số năm có là bao nhiêu thì thế kỷ mãi mãi vẫn là thế kỷ 20. Ví dụ nếu các bạn muốn Google tìm thông tin được đăng vào năm 2000 thì máy tính sẽ hiểu bạn tìm vào năm 1900. Và mọi thứ bắt đầu từ đây.
Vào giữa đêm ngày 31/12/1999, mọi hệ thống máy tính và mọi thiết bị dù thông minh hay không, nhưng chỉ cần có cài phần mềm và chip xử lý dùng định dạng năm 2 chữ số đều bị lỗi. Một số loại phần mềm sẽ chấp nhận số năm bị sai và cho ra output sai theo, còn một số khác thì không chấp nhận lỗi và crash luôn các bạn. Và cũng như mình vừa nêu bên trên, không chỉ các hệ thống máy tính thông thường bị lỗi mà toàn bộ các loại thiết bị điện tử, thiết bị tự hành hoặc các loại thiết bị có sử dụng định dạng năm 2 chữ số đều bị ảnh hưởng. Trong đó, có thể kể đến các con chip trong các hệ thống quan trọng như máy bay, nhà máy, trạm phát điện, hệ thống điều khiển tên lửa quân sự và vệ tinh liên lạc.
Ngoài vấn đề toàn bộ máy tính trên thế giới “du hành thời gian” ngược về năm 1900 thì năm 2000 còn gây thêm một vấn đề về tính toán năm nhuận. Ngày xưa, các lập trình viên dùng quy tắc năm nào chia hết cho 4 và không chia hết cho 100 mới là năm nhuận. Tuy nhiên họ lại quên và không dùng quy tắc khác ít người biết hơn là những năm chia hết cho 400 vẫn là năm nhuận. Và thế là rất nhiều máy tính không xem năm 2000 là năm nhuận và kết quả là mất ngày 29/02/2000.
Bởi vì sức ảnh hưởng to lớn và mạnh mẽ nên có có rất nhiều tin đồn thất thiệt về sự kiện Y2k được lan truyền. Một số người thì cho rằng đó là ngày tàn của thế giới cũng như xã hội loài người, một số thì tích trữ nhu yếu phẩm đề phòng tận thế. Nói chung là tình hình loạn lạc như trong phim vậy anh em ạ.
Cách giải quyết “thảm họa” Y2K
Trước năm 1999 khá lâu, chính phủ các nước và nhiều công ty công nghệ trên toàn cầu đã nhận thức được vấn đề và tìm cách khắc phục sự cố Y2K trước khi nó xảy ra. Ban đầu, người ta nghĩ rằng có thể sửa lỗi cực lớn này bằng một cách vô cùng đơn giản là mở rộng phần năm thêm hai chữ số và thêm 1900 vào những dữ liệu năm từ trước đến giờ là xong. Tuy nhiên, trên thực tế thì giải pháp này lại không khả thi vì tốn kém chi phí, rủi ro mất dữ liệu và phải đổi định dạng dữ liệu trên quy mô cực lớn.
Bên cạnh giải pháp thêm 2 chữ số vào phần năm của toàn bộ dữ liệu trên thế giới thì người ta cũng nghĩ ra nhiều cách khác nhau để giải quyết lỗi Y2K này. Chẳng hạn như lấy số tháng để làm mốc vì số tháng thì chỉ cao nhất là 12 thôi, còn những số có 2 chữ số thì có thể lên đến 99. Như vậy, người ta sẽ đưa ra quy định:
- Nếu phần tháng của dữ liệu hiện từ 1 đến 12 thì hiểu là thêm 1900 vào trước 2 chữ số của năm.
- Nếu phần tháng của dữ liệu hiện từ 41 đến 52 thì hiểu là thêm 2000 vào trước 2 chữ số của năm, sau đó trừ 40 để hiện đúng số tháng.
- Nếu phần tháng của dữ liệu hiện từ 21 đến 32 thì hiểu là thêm 1800 vào trước 2 chữ số của năm, sau đó trừ 20 để hiện đúng số tháng.
Nếu sửa theo cách này thì chúng ta phải chỉnh lại code cho rất nhiều chương trình để chúng có thể nhận và giải mã phần tháng phi logic.
Một số hệ thống khác thì vẫn hiển thị ngày, tháng, năm chỉ với 6 chữ số, nhưng không dùng định dạng DD/MM/YY nữa mà dùng DDD/C/YY như sau:
- DDD: hiện ngày của năm (từ ngày 1 đến ngày 365, nếu năm nhuận thì 366).
- C: hiện thế kỷ.
- YY: 2 số cuối của năm.
Nói chung là có rất nhiều giải pháp đã được đề ra, nhưng chỉ sửa chữa được ngắn hạn thôi các bạn ạ. Nếu dùng những phương pháp này thì sẽ tốn rất nhiều công sức để sửa lại hàng đống dữ liệu và chương trình đã tồn tại từ thời nguyên sơ mới phát triển của máy tính đến thời điểm đó.
Ảnh hưởng sự cố Y2K lên thế giới
Dù đã có nhiều nỗ lực để cứu thế giới thoát khỏi sự kiện Y2K nhưng vẫn có rất nhiều sự việc xảy ra. May mắn là không có bất kỳ chiếc máy bay nào rơi xuống hay quả tên lửa nào được phóng lên cả nha anh em. Chỉ có một số sự cố “nho nhỏ” xảy ra như hai nhà máy điện hạt nhân tại Nhật bị lỗi nhỏ, không đáng kể và được sửa chữa rất nhanh; một em bé sơ sinh tại Đan Mạch bị đăng ký 100 tuổi; vé xe bus tại Úc bị in sai năm nên các máy quét vé không nhận vé; cổng tin tức quốc gia của Ai Cập bị sập; vệ tinh do thám của Hoa kỳ bị tê liệt trong 3 ngày vì bản vá lỗi Y2K gây lỗi, …
Đối với các doanh nghiệp thì Y2K có sức ảnh hưởng khá lớn. Việc đổi định dạng dữ liệu kéo thêm vấn đề sửa code của hàng loạt phần mềm. Các công ty phần mềm sẽ phải phát hành bản cập nhật mới đến toàn bộ khách hàng, nếu phần mềm của họ bị lỗi gây thiệt hại thì phải bồi thường như thế nào. Về phía những công ty sử dụng phần mềm thì họ phải đối mặt với hàng đống giấy tờ và những lo ngại về các bản vá lỗi có thực sự sửa lỗi không hay chỉ kéo thêm hàng đống lỗi.
Tóm lại là có hàng đống rắc rối xuất hiện bởi vì lỗi Y2K. Tổng thiệt hại toàn cầu ước tính từ khoảng 300 đến 600 triệu USD bởi hãng tin Gartner và 825 triệu USD theo hãng tin Capgemini. Chỉ tính riêng Hoa kỳ đã chi hơn 100 triệu USD để giải quyết hậu quả rồi anh em ạ.
Cái kết của “ngày tận thế” Y2K
Sự cố Y2K đã bị nhiều người thổi phồng lên quá mức cần thiết. Trên thực tế, đã có rất nhiều chuyên gia công nghệ lên tiếng cảnh báo toàn thế giới về ngày này từ rất nhiều năm trước đó. Nhiều hệ thống máy tính đã sử dụng phương pháp tạo cột mốc bằng tháng và tiếp tục “câu giờ” thêm vài thập kỷ để những lập trình viên và các công ty công nghệ tìm ra cách sửa chữa triệt để. Một vài hệ thống trong số đó vẫn tiếp tục hoạt động cho đến ngày nay và vẫn chưa thấy có lỗi gì nhiều cả. Tóm lại thì sự cố Y2K từ quả bom hạt nhân siêu lớn đã được tách thành nhiều quả bom hẹn giờ nhỏ hơn rất nhiều và không ảnh hưởng đến đời sống công nghệ thường nhật nữa.
Nguồn: How To Geek