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, lỗi dừng) 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 1.0, nhưng nó chưa thực sự là màn hình báo lỗi nghiêm trọng. Nó là màn hình báo rằng phiên bản MS DOS không tương thích cùng với các nhân ngẫu nhiên xảy ra khi khởi động máy tính. BSoD để báo lỗi nghiêm trọng xuất hiện từ Windows 3.0 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. Nếu Windows 1.0 gặp lỗi nghiêm trọng, nó sẽ tự khởi động lại mà không hiện thị màn hình thông báo. 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 8 và 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, bắt đầu từ Windows 2000 trở đi, 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ớ.

Từ Windows XP đến Windows 7, bố cục của màn hình xanh chết chóc đã thay đổi một chút, cụ thể là số lỗi thập lục phân và bốn tham số đã được chuyển xuống cuối màn hình sau đoạn văn dưới nhãn "Technical information:". Màn hình lỗi cũng bắt đầu với thông báo khét sau:

A problem has been detected and Windows has been shut down to prevent damage to your computer.

Nếu một quy trình quan trọng bị chấm dứt đột ngột bởi nhiều nhiều yếu tố khác nhau (bao gồm cả hành động có chú ý của người dùng), thông báo sẽ được hiện thị thay cho tên lỗi:

A process or thread crucial to system operation has unexpectedly exited or been terminated.

Tên lỗi chính thức đó là CRITICAL OBJECT TERMINATION (0x000000F4). Tuy nhiên, từ Windows 8 Beta trở đi, nó hiện tên lỗi chính thức là CRITICAL PROCESS DIED (0x000000EF) thay cho tên lỗi.

Đối với một số mã lỗi, đôi khi hệ thống không hiện thị tên lỗi hoặc thông báo lỗi thường là 0x0000007F (lỗi UNEXPECTED KERNEL MODE TRAP sẽ hiện thị thay cho mã lỗi trong thông báo Windows 8/8.1/10/11), sau thông báo: "A problem has been detected and Windows has been shut down to prevent damage to your computer", nó ngay lập tức chuyển sang dòng: "If this is the first time you've seen this Stop error screen, restart your computer. If this screen appears again, follow these steps:...". Không chỉ mã lỗi 0x0000007F (UNEXPECTED KERNEL MODE TRAP) mà còn mã lỗi khác như 0x0000007B (INACCESIBLE BOOT DEVICE), 0x0000001E (KMODE EXCEPTION NOT HANDLED) và các mã lỗi khác. Tuy nhiên, ở cuối màn hình sẽ có lỗi thập lục phân và 4 tham số dưới nhãn "Technical information:", như bình thường, mặc dù các bước của nó hơi khác so với hầu hết mã lỗi. Lý do nó không hiện thị tên lỗi là để giúp Microsoft và người dùng dễ dàng tìm kiếm các khắc phục chính xác mà không phải giải thích dài dòng.

Ngoài ra, khi hệ thống đang thực hiện kết xuất hiện nhớ trên BSoD, thông báo sau sẽ được hiện thị sau khi kết xuất hiện bộ nhớ được thực hiện (sau câu "Physical memory dump complete").

Contact your system administrator/admin or technical support for further assistance

Còn nếu kết xuất bộ nhớ đã thất bại, nó sẽ hiện thị "Physical memory dump failed with a status 0xC0000010". Còn thông báo "Contact your system administrator/admin or technical support for further assistance" vẫn hiện thị.

Có một số trường hợp ngoại lệ:

1. Liên quan đến việc chấm dứt đột ngột quy trình Winlogon (ví dụ: "0xC000021A, WINLOGON_FATAL_ERROR"), hiển thị như sau:

The Windows Logon Process/SubSystem system process terminated unexpectedly

with a status of 0x000000xx (0x000000xx, 0x000000xx).

The system has been shut down.

Tên lỗi BSOD chính thức đó là STATUS SYSTEM PROCESS TERMINATED vì không chỉ là một tiến trình Winlogon mà có một tiến trình khác là Csrss (Client/Server Runtime Process). Từ Windows 8 trở đi, nó hiện thị 0xc0000021a thay cho tên lỗi.

Trên Windows 2000, thông báo này đôi khi được hiển thị cùng với bốn đoạn hướng dẫn và lời khuyên chung, đoạn sau không có trên Windows XP đến Windows 7.

2. Không thể tải tệp đăng ký, hiển thị thông báo sau:

The registry cannot load the hive (file):\SystemRoot\System\Config\SOFTWARE or its log or alternate.

It is corrupt, absent, or not writable.

Tên lỗi BSOD chính thức đó là STATUS CANNOT LOAD REGISTRY FILE.

3. Đã xảy ra lỗi phần cứng. Hiển thị thông báo sau:

Hardware Malfunction

Call your hardware vendor for support

NMI: Parity Check / Memory Parity Error

The system has halted.

Tên lỗi BSOD chính thức đó là NMI HARDWARE FAILURE (0x00000080). Tên lỗi này được hiện thị từ Windows 8 trở đi.

Trong trường hợp mã lỗi c000021a và c0000218, khả năng kết xuất bộ nhớ :"Dumping Physical Memory to disk" ở các hệ điều hành trước Windows Vista không đáng tin cậy. Nguyên nhân do kernel trong các phiên bản trước đó thường mất ổn định, khiến việc thực hiện ngay cả các tác vụ cơ bản như ghi vào đĩa cũng trở nên khó khăn. Windows Vista và các phiên bản kế nhiệm có kernel được cô lập và bảo vệ tốt hơn, giúp quá trình dump có khả năng hoàn tất cao hơn.

Trường hợp :"Hardware Malfunction" lại là một loại sự cố hoàn toàn khác. Loại lỗi này chỉ ra lỗi vật lý của một thành phần mà hệ thống dựa vào để vận hành cơ bản, chẳng hạn như CPU, RAM hoặc một thành phần quan trọng của bo mạch chủ. Trong trường hợp này, bản thân phần cứng không còn hoạt động bình thường và khả năng thực thi bất kỳ mã nào của hệ điều hành (bao gồm cả việc kết xuất bộ nhớ vào ổ đĩa) bị mất hoàn toàn.

Có một số trường hợp ngoại lệ khác nhưng chúng chỉ phổ biến trong những trường hợp.

Với việc phát hành Windows 8 và 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 vào màn hình lỗi, không có trong các bản phát hành của Nhật Bản hoặc các đối tác Windows Server của 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ớ, tuy nhiên Winlogon BSoD trực tiếp có mã lỗi thập lục phân nói trên thay cho tên lỗi và lỗi NMI HARDWARE FAILURE sẽ được hiển thị để thông báo sự cố phần cứng tương tự như các phiên bản trước.

Định dạng được giới thiệu với Windows 8 đã được giữ lại trong Windows 10 và Windows 11 (cũng như các đối tác Server của nó). Kể từ Windows 10 Insider Preview Build 14316 và Windows 10 Build 14393, Windows 10 đã thêm mã QR để khắc phục sự cố nhanh chóng và tất cả các tham chiếu đến "PC" đã được thay đổi thành từ "thiết bị" bắt đầu từ Windows 10 phiên bản 2004 bản dựng 19041 trở đi. Màn hình xanh chết chóc sau đó đã bị thay đổi thành màu đen trong Windows 11 (từ bản dựng 22000.51 đến bản dựng 22000.346), trước khi nó đã thay đổi trở lại thành màu xanh dương nhưng tối màu hơn, bắt đầu từ bản dựng 22000.348 trở đi. Màn hình xanh chết chóc một lần nữa được thay đổi bắt đầu với Windows 11 build 26120.3653, bao gồm việc xóa mã QR và biểu tượng cảm xúc buồn khỏi màn hình lỗi cũng như thay đổi bố cục để phù hợp hơn với Windows 11. Nó được giới thiệu trong Windows 11 bản dựng 26120.3291.

== 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 codice_1 hoặc codice_2 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 như một trò đùa. Tuy nhiên, trên thực tế, chúng là tên thiết bị dành riêng cho các hệ thống DOS; cố gắng truy cập chúng từ Windows gây ra sự cố, do đó đưa ra BSoD nói trên. Tạo các thư mục nói trên trong Windows cũng sẽ không hoạt động và có thể khiến BSOD tương tự xảy ra. 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 tóm tắt ở đây. Red Screen of Death cũng có thể đề cập đến một thông báo lỗi được sử dụng trên các hệ thống PlayStation khi thiết bị không nhận/phát hiện đĩa chơi game."

- Màn hình đỏ chết chóc (Red Screen of Death - RSoD) được xuất hiện trong:
- 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ố.
- Phiên bản Beta 1 và Beta 2 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
- Phiên bản dựng 5048 của Windows Vista (tên mã là Longhorn) cùng trường hợp lỗi khởi động
- Màn hình xanh lá chết chóc (Green Screen of Death - GreenSoD) đến từ máy chơi game Xbox One. Lỗi xảy ra khi quá trình cập nhật dữ liệu gặp trục trặc (liên quan đến ổ cứng), thiết bị chơi game này bị kẹt không hoạt động được. Màn hình lỗi xanh lá cũng ghi nhận xuất hiện trên các máy game của Nintendo Entertainment hay đầu ghi video TiVo. Có trường hợp, sau khi màn hình lỗi xanh lá xuất hiện, sau đó lại chuyển sang màu đen. Nó được dùng trong các bản dựng từ Windows 10 Insider Preview bản dựng 14997 trở đi.
- Màn hình tím chết chóc (Purple Screen of Death - PSoD) thường hay gặp khi kernel trên các máy ảo, VMWare ESX/ESXi Server hỏng.
- Màn hình nâu chết chóc (Brown Screen of Death - BrownSoD - KHÁC VỚI MÀN HÌNH XANH) báo hiệu lỗi liên quan đến card đồ họa graphic hoặc phần mềm khi bạn chơi game. Lỗi cũng xuất hiện nếu bạn ép xung (overclock) CPU / GPU / Linh kiện khác nhằm mục đích chơi game / sử dụng phần mềm nhanh hơn, mượt hơn.
- Màn hình lỗi màu xám (Gray Screen of Death - GraySOD) xuất hiện trên các máy tính bảng Microsoft Surface chạy hệ điều hành Windows 8.1 RT.

Lỗi dừng có thể so sánh với "sự hoảng loạn hạt nhân" (Kernel panic) 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 11 cũng hiển thị lỗi màn hình đen nhưng chưa có lí do.

== Xem thêm ==
- Màn hình đen chết chóc

== Liên kết ngoài ==
- Bug Check Codes (Microsoft Developer Network)
- SysInternals BlueScreen Screen Saver v3.2
- Original report of RSoD from a Microsoft employee
- "PC Stats Beginners Guide: Troubleshoot BSOD
- "Easy tips to fix Windows 8 BSOD