Màn hình xanh chết chóc

Màn hình xanh chết chóc (hoặc Blue Screen of Death, Blue Screen of Doom) viết tắt là BSoD trong tiếng Anh hay đơn giản hơn là Màn hình xanh là một màn hình thông báo lỗi được hiển thị trên Windows sau khi hệ thống gặp phải 1 lỗi hệ thống nghiêm trọng.

Lịch sử

BSoD đã xuất hiện từ Windows 3.1. Nó xuất hiện dưới dạng một màn hình màu xanh với các chữ màu trắng thể hiện lỗi mà hệ thống gặp phải. Các BSoD đã có mặt trong Windows NT 3.1 (phiên bản đầu tiên của phiên bản Windows NT, được phát hành vào năm 1993) và tất cả các hệ điều hành Windows được phát hành sau đó. (Xem Lịch sử của Microsoft Windows.) BSoD có thể xuất hiện do trình điều khiển thiết bị viết kém hoặc phần cứng bị trục trặc, chẳng hạn như bộ nhớ bị lỗi, sự cố cung cấp điện, quá nhiệt của các thành phần hoặc phần cứng chạy quá giới hạn thông số kỹ thuật. Trong kỷ nguyên Windows 9x, các DLL hoặc lỗi không tương thích trong nhân hệ điều hành cũng có thể gây ra BSoD. Do tính không ổn định và thiếu bảo vệ bộ nhớ trong Windows 9x, BSoD phổ biến hơn nhiều.
Vào ngày 4 tháng 9 năm 2014, một số tạp chí trực tuyến, bao gồm Business Insider, DailyTech,... quy kết việc tạo ra Màn hình xanh chết chóc cho Steve Ballmer, cựu CEO của Microsoft, trong khi trích dẫn một nguồn không nói như vậy: Bài viết của một nhân viên Microsoft, Raymond Chen, có tiêu đề: "Ai đã phát minh cho hộp thoại Ctrl + Alt + Del trong Windows 3.1?". Bài viết nói về việc tạo trình quản lý tác vụ thô sơ đầu tiên trong Windows 3.x, chia sẻ những điểm tương đồng trực quan với BSoD. Vào ngày 9 tháng 9 năm 2014, Raymond Chen đã phàn nàn về sai lầm phổ biến này, nhận trách nhiệm sửa đổi BSoD trong Windows 95 và chỉ trích BGR.com vì đã "hoàn toàn bịa đặt một kịch bản và cho rằng đó là sự thật". Engadget sau đó đã cập nhật bài viết của mình để sửa lỗi.

Windows NT

Trong các phiên bản của hệ điều hành Windows NT, màn hình xanh chết chóc đã được chính thức được gọi là lỗi dừng và xảy ra khi kernel hoặc trình điều khiển chạy trong kernel chế độ gặp lỗi mà nó không thể phục hồi. Điều này thường được gây ra bởi một hoạt động bất hợp pháp nào đó đang được thực hiện. Hành động an toàn duy nhất mà hệ điều hành có thể thực hiện trong tình huống này là khởi động lại máy tính. Do đó, dữ liệu có thể bị mất do người dùng không có cơ hội lưu dữ liệu chưa được lưu vào ổ cứng.
Văn bản trên màn hình lỗi chứa mã lỗi và tên tượng trưng của nó (ví dụ: "0x0000001E, KMODE_EXCEPTION_NOT_HANDLED") cùng với bốn giá trị phụ thuộc lỗi trong ngoặc đơn để giúp các kỹ sư phần mềm khắc phục sự cố xảy ra. Tùy thuộc vào mã lỗi, nó có thể hiển thị địa chỉ nơi xảy ra sự cố, cùng với trình điều khiển được tải tại địa chỉ đó. Trong Windows NT, phần thứ hai và thứ ba của màn hình có thể chứa thông tin về tất cả các trình điều khiển được tải và kết xuất ngăn xếp tương ứng. Thông tin trình điều khiển là trong ba cột; danh sách đầu tiên liệt kê địa chỉ cơ sở của trình điều khiển, lần thứ hai liệt kê ngày tạo của trình điều khiển (dưới dạng dấu thời gian Unix) và lần thứ ba liệt kê tên của trình điều khiển.
Theo mặc định, Windows sẽ tạo một tệp kết xuất bộ nhớ khi xảy ra lỗi dừng. Tùy thuộc vào phiên bản HĐH, có thể lưu một số định dạng, từ "minidump" 64kB (được giới thiệu trong Windows 2000) đến "kết xuất hoàn chỉnh", đây là bản sao toàn bộ nội dung của bộ nhớ vật lý (RAM ). Tệp kết xuất bộ nhớ kết quả có thể được gỡ lỗi sau, sử dụng trình gỡ lỗi kernel. Đối với các trình gỡ lỗi Windows WinDBG hoặc KD từ Công cụ gỡ lỗi cho Windows được sử dụng. Trình gỡ lỗi là cần thiết để có được dấu vết ngăn xếp và có thể được yêu cầu để xác định nguyên nhân thực sự của vấn đề; vì thông tin trên màn hình bị hạn chế và do đó có thể gây hiểu lầm, nó có thể che giấu nguồn gốc thực sự của lỗi. Theo mặc định, Windows XP được cấu hình để chỉ lưu một kết xuất 64kB khi gặp lỗi dừng và sau đó tự động khởi động lại máy tính. Bởi vì quá trình này xảy ra rất nhanh, màn hình xanh có thể chỉ được nhìn thấy ngay lập tức hoặc không. Người dùng đôi khi đã lưu ý đây là khởi động lại ngẫu nhiên thay vì lỗi dừng truyền thống và chỉ nhận thức được sự cố sau khi Windows khởi động lại và hiển thị thông báo rằng nó đã được khôi phục từ một lỗi nghiêm trọng. Điều này chỉ xảy ra khi máy tính có chức năng gọi là "Tự động khởi động lại", có thể bị vô hiệu hóa trong Bảng điều khiển, từ đó hiển thị lỗi dừng.
Microsoft Windows cũng có thể được thiết lập để gửi thông tin lỗi đến trình gỡ lỗi kernel chạy trên một máy tính riêng biệt. Nếu gặp lỗi dừng trong khi trình gỡ lỗi kernel trực tiếp được gắn vào hệ thống, Windows sẽ tạm dừng thực thi và khiến trình gỡ lỗi đột nhập, thay vì hiển thị BSoD. Trình gỡ lỗi sau đó có thể được sử dụng để kiểm tra nội dung của bộ nhớ và xác định nguồn gốc của vấn đề.
BSoD cũng có thể do lỗi bộ tải khởi động nghiêm trọng, trong đó hệ điều hành không thể truy cập vào phân vùng khởi động do trình điều khiển lưu trữ không chính xác, hệ thống tệp bị hỏng hoặc các vấn đề tương tự. Mã lỗi trong tình huống này là STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE). Trong những trường hợp như vậy, không có kết xuất bộ nhớ được lưu. Vì hệ thống không thể khởi động từ ổ cứng trong tình huống này, nên việc khắc phục sự cố thường yêu cầu sử dụng các công cụ sửa chữa được tìm thấy trên đĩa cài đặt Windows.

Chi tiết

Trước Windows Server 2012, mỗi BSoD hiển thị một tên lỗi bằng chữ hoa (ví dụ: APC_INDEX_MISMATCH), một số lỗi thập lục phân (ví dụ: 0x00000001) và bốn tham số. Hai cái cuối cùng được hiển thị cùng nhau theo định dạng sau: [18]
mã lỗi (tham số 1, tham số 2, tham số 3, tham số 4) tên lỗi. Tùy thuộc vào mã lỗi và bản chất của nó, tất cả, một số hoặc thậm chí không có tham số nào chứa dữ liệu liên quan đến sự cố và / hoặc nơi xảy ra. Ngoài ra, các màn hình lỗi hiển thị bốn đoạn giải thích và lời khuyên chung và có thể bao gồm các dữ liệu kỹ thuật khác như tên tệp của thủ phạm và địa chỉ bộ nhớ.
Với việc phát hành Windows Server 2012, BSoD đã được thay đổi, loại bỏ tất cả các điều trên có lợi cho tên lỗi và mô tả ngắn gọn. Windows 8 cũng thêm một biểu tượng cảm xúc buồn. Các mã và tham số mã thập lục phân vẫn có thể được tìm thấy trong Nhật ký sự kiện Windows hoặc trong các bãi chứa bộ nhớ. Kể từ Windows 10 Build 14393, Windows 10 đã thêm mã QR để khắc phục sự cố nhanh chóng.

Windows 9x

Màn hình xanh chết chóc thường xuyên xảy ra trong các hệ điều hành máy tính để bàn thuộc gia đình Microsoft Windows 95, 98 và ME. Trong các hệ điều hành này, BSoD là cách chính để trình điều khiển thiết bị ảo báo cáo lỗi cho người dùng. Nó được gọi nội bộ bằng tên của "_VWIN32_FaultPopup". BSoD của Windows 9x cung cấp cho người dùng tùy chọn khởi động lại hoặc tiếp tục.
BSoD phổ biến nhất là trên màn hình 80 × 25, đây là cách báo cáo của hệ điều hành bị gián đoạn do ngoại lệ của bộ xử lý; nó là một dạng nghiêm trọng hơn của các hộp thoại lỗi bảo vệ chung. Địa chỉ bộ nhớ của lỗi được đưa ra và loại lỗi là số thập lục phân từ 00 đến 11 (0 đến 17 thập phân). Các mã lỗi như sau:
   00: Lỗi bộ phận
   01: Lỗi khởi động
   02: Ngắt không thể xác định
   03: Lỗi tắt máy
   04: Bẫy tràn
   05: Lỗi kiểm tra giới hạn
   06: Lỗi Opcode không hợp lệ
   07: Lỗi "Bộ đồng xử lý không khả dụng"
   08: Lỗi kép
   09: Lỗi quá phân khúc đồng xử lý
   0A: Lỗi phân đoạn trạng thái nhiệm vụ không hợp lệ
   0B: Không có lỗi
   0C: Lỗi xếp chồng
   0D: Lỗi bảo vệ chung
   0E: Lỗi trang
   0F: Vượt quá giới hạn thông báo lỗi
   10: Lỗi lỗi bộ đồng xử lý
   11: Lỗi kiểm tra căn chỉnh
Lý do bao gồm: Các sự cố xảy ra với các phiên bản DLL không tương thích: Windows tải các DLL này vào bộ nhớ khi các chương trình ứng dụng cần thiết; nếu các phiên bản được thay đổi, lần tiếp theo ứng dụng tải DLL, nó có thể khác với những gì ứng dụng mong đợi. Những sự không tương thích này tăng theo thời gian khi nhiều phần mềm mới được cài đặt và là một trong những lý do chính khiến một bản sao Windows mới được cài đặt ổn định hơn so với phần mềm "cũ".
Trình điều khiển thiết bị bị lỗi hoặc viết kém
Không tương thích phần cứng
Phần cứng bị hư hỏng cũng có thể gây ra BSoD.
Trong Windows 95 và 98, BSoD xảy ra khi hệ thống cố gắng truy cập tệp "C: \ con \ con" hoặc "C: \ aux \ aux" trên ổ cứng. Điều này có thể được chèn vào một trang web để đánh sập máy của khách truy cập. Vào ngày 16 tháng 3 năm 2000, Microsoft đã phát hành bản cập nhật bảo mật để giải quyết vấn đề này.
Một ví dụ nổi tiếng về Windows 9x BSoD đã xảy ra trong buổi thuyết trình về Windows 98 Beta của Bill Gates tại COMDEX vào ngày 20 tháng 4 năm 1998: Máy tính demo đã gặp sự cố với BSoD khi trợ lý của ông, Chris Capossela, kết nối máy quét với PC để trình diễn Hỗ trợ của Windows 98 cho các thiết bị Plug and Play. Sự kiện này đã mang đến những tràng pháo tay như sấm từ đám đông và Gates đã trả lời sau khi tạm dừng căng thẳng: "Đó phải là lý do tại sao chúng tôi chưa phát hành Windows 98."

Windows CE

Phiên bản đơn giản nhất của màn hình xanh xuất hiện trong Windows CE (ngoại trừ Pocket PC 2000 và Pocket PC 2002). Màn hình màu xanh trong Windows CE 3.0 tương tự như màn hình trong Windows NT.

Các loại màn hình tương tự

Màn hình đỏ chết chóc được xuất hiện trong Windows Longhorn sau khi thiết lập lại.
Lỗi dừng có thể so sánh với sự hoảng loạn hạt nhân trong macOS, Linux và các hệ thống tương tự Unix khác và với các kiểm tra lỗi trong OpenVMS. Windows 3.1, cũng như macOS, hiển thị Màn hình đen thay vì màu xanh. Windows 98 hiển thị màn hình lỗi màu đỏ được nâng lên bởi Cấu hình nâng cao và Giao diện nguồn (ACPI) khi BIOS của máy chủ gặp sự cố. Bộ tải khởi động của phiên bản beta đầu tiên của Windows Vista cũng hiển thị màn hình lỗi màu đỏ trong trường hợp xảy ra lỗi khởi động.