Màn hình xanh chết chóc (hay 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 gọi là Màn hình xanh, là một thông báo lỗi hiển thị trên Windows khi hệ thống gặp sự cố nghiêm trọng.
Diễn biến lịch sử
BSoD xuất hiện lần đầu trên Windows 1.0, nhưng chưa phải là màn hình lỗi nghiêm trọng. Nó chỉ thông báo rằng phiên bản MS DOS không tương thích và có các lỗi ngẫu nhiên khi khởi động máy. Màn hình báo lỗi nghiêm trọng bắt đầu từ Windows 3.0 với màu xanh và chữ trắng thể hiện lỗi hệ thống. Nếu Windows 1.0 gặp sự cố nghiêm trọng, nó sẽ tự khởi động lại mà không có thông báo. BSoD có mặt trên Windows NT 3.1 (phiên bản đầu tiên của Windows NT, phát hành năm 1993) và tất cả các hệ điều hành Windows sau này. BSoD có thể do trình điều khiển kém hoặc phần cứng lỗi, như bộ nhớ hỏng, sự cố nguồn, quá nhiệt hoặc phần cứng vượt quá thông số kỹ thuật. Trong thời kỳ Windows 9x, lỗi DLL hoặc không tương thích trong nhân hệ điều hành cũng có thể gây ra BSoD, dẫn đến việc BSoD xảy ra thường xuyên hơn.
Ngày 4 tháng 9 năm 2014, một số tạp chí trực tuyến như Business Insider và DailyTech đã quy cho Steve Ballmer, cựu CEO của Microsoft, việc tạo ra Màn hình xanh chết chóc, dựa vào một nguồn không chính xác. Bài viết của nhân viên Microsoft, Raymond Chen, với tiêu đề: 'Ai đã phát minh ra hộp thoại Ctrl + Alt + Del trong Windows 3.1?' nói về việc phát triển trình quản lý tác vụ đầu tiên trong Windows 3.x, có nhiều điểm tương đồng với BSoD. Ngày 9 tháng 9 năm 2014, Raymond Chen đã chỉ trích sự hiểu lầm này và nhận trách nhiệm cải thiện BSoD trong Windows 95, đồng thời chỉ trích BGR.com vì đã 'hoàn toàn bịa đặt một kịch bản và coi đó là sự thật'. Engadget sau đó đã cập nhật bài viết của mình để sửa lỗi.
Hệ điều hành 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 chính thức được gọi là lỗi dừng, xảy ra khi kernel hoặc trình điều khiển trong chế độ kernel gặp lỗi không thể khôi phục. Thông thường, điều này xảy ra do một hành động bất hợp pháp nào đó. Giải pháp duy nhất của hệ điều hành trong tình huống này là khởi động lại máy tính, dẫn đến việc dữ liệu có thể bị mất nếu người dùng chưa kịp lưu. Văn bản trên màn hình lỗi chứa mã lỗi và tên tượng trưng (ví dụ: '0x0000001E, KMODE_EXCEPTION_NOT_HANDLED') cùng với bốn giá trị phụ để giúp kỹ sư phần mềm khắc phục sự cố. Tùy thuộc vào mã lỗi, địa chỉ xảy ra sự cố và trình điều khiển liên quan cũng có thể được hiển thị. Trong Windows NT, hai phần sau của màn hình có thể hiển thị thông tin về tất cả các trình điều khiển đã tải và ngăn xếp tương ứng. Thông tin trình điều khiển được trình bày trong ba cột; cột đầu tiên liệt kê địa chỉ cơ sở, cột thứ hai liệt kê ngày tạo (dưới dạng dấu thời gian Unix), và cột thứ ba là tên của trình điều khiển. 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ệ điều hành, có thể lưu nhiều định dạng, từ 'minidump' 64kB (được giới thiệu trong Windows 2000) đến 'kết xuất hoàn chỉnh' với toàn bộ nội dung bộ nhớ vật lý. Tệp kết xuất này có thể được gỡ lỗi sau đó bằng cách sử dụng trình gỡ lỗi kernel như WinDBG hoặc KD. Trình gỡ lỗi là cần thiết để lấy dấu vết ngăn xếp và có thể được yêu cầu để xác định nguyên nhân gốc rễ của vấn đề, vì thông tin trên màn hình có hạn và có thể gây hiểu lầm. Theo mặc định, Windows XP được cấu hình để chỉ lưu tệp kết xuất 64kB khi gặp lỗi dừng và tự động khởi động lại máy tính, khiến người dùng có thể không nhận ra rằng một lỗi đã xảy ra. Microsoft Windows cũng có thể được cấu hình để gửi thông tin lỗi tới trình gỡ lỗi kernel trên máy tính khác. Nếu lỗi dừng xảy ra khi trình gỡ lỗi đang kết nối, Windows sẽ tạm dừng hoạt động và cho phép trình gỡ lỗi can thiệp, thay vì hiển thị BSoD. Trình gỡ lỗi sẽ được sử dụng để kiểm tra nội dung bộ nhớ và xác định nguyên nhân sự cố. BSoD cũng có thể xảy ra do lỗi nghiêm trọng trong bộ tải khởi động, khi hệ điều hành không thể truy cập phân vùng khởi động do trình điều khiển không chính xác, hệ thống tệp 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), và trong những trường hợp như vậy, không có tệp kết xuất bộ nhớ nào được lưu. Khi không thể khởi động từ ổ cứng, việc khắc phục thường yêu cầu sử dụng các công cụ sửa chữa từ đĩa cài đặt Windows.
Thông tin 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ã thập lục phân (ví dụ: 0x00000001) và bốn tham số. Hai cái cuối cùng được trình bày theo định dạng: [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, tất cả hoặc một số tham số có thể chứa dữ liệu liên quan đến sự cố. Màn hình lỗi cũng hiển thị bốn đoạn giải thích và lời khuyên chung, cùng với các dữ liệu kỹ thuật như tên tệp của thủ phạm và địa chỉ bộ nhớ.
Với việc phát hành Windows 8 và Windows Server 2012, BSoD đã có sự thay đổi, bỏ đi các chi tiết trước đó để tập trung vào tên lỗi và mô tả ngắn gọn. Windows 8 và Windows Server 2012 còn bổ sung 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 khu vực bộ nhớ. Từ Windows 10 Build 14393, Windows 10 đã thêm mã QR để hỗ trợ khắc phục sự cố nhanh. Màn hình xanh chết chóc sau đó đã chuyển sang màu đen trong Windows 11, trước đó đã được đổi trở lại màu xanh nhưng với tông màu tối hơn.
Hệ điều hành Windows 9x
Màn hình xanh chết chóc thường xuyên xuất hiện trên các hệ điều hành máy tính để bàn trong dòng sản phẩm Microsoft Windows 95, 98 và ME. Trong những hệ điều hành này, BSoD là phương thức chính để trình điều khiển thiết bị ảo thông báo lỗi tới người dùng. Nó được gọi nội bộ với tên '_VWIN32_FaultPopup'. BSoD trên Windows 9x cho phép người dùng chọn giữa việc khởi động lại hoặc tiếp tục sử dụng hệ thống.
BSoD phổ biến nhất hiển thị trên màn hình 80 × 25, đây là cách hệ điều hành báo cáo sự cố do ngoại lệ của bộ xử lý; nó là một dạng nghiêm trọng hơn so với các hộp thoại lỗi thông thường. Địa chỉ bộ nhớ của lỗi được hiển thị, và loại lỗi được mã hóa dưới dạng số thập lục phân từ 00 đến 11 (tương đương 0 đến 17 trong thập phân). Các mã lỗi cụ thể như sau:
00: Lỗi bộ phận
01: Lỗi khởi động
02: Ngắt không xác định
03: Lỗi khi tắt máy
04: Tràn bẫy
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 phân khúc đồng xử lý quá mức
0A: Lỗi phân đoạn trạng thái tác vụ không hợp lệ
0B: Không có lỗi
0C: Lỗi chồng chéo
0D: Lỗi bảo vệ tổng quát
0E: Lỗi trang bộ nhớ
0F: Vượt quá giới hạn thông báo lỗi
10: Lỗi liên quan đến bộ đồng xử lý
11: Lỗi kiểm tra căn chỉnh bộ nhớ
Nguyên nhân bao gồm: Các sự cố liên quan đến các phiên bản DLL không tương thích. Windows sẽ nạp các DLL này vào bộ nhớ khi ứng dụng cần; nếu phiên bản thay đổi, lần sau khi ứng dụng nạp DLL, có thể nó khác với mong đợi. Những vấn đề không tương thích này gia tăng theo thời gian khi nhiều phần mềm mới được cài đặt, là lý do chính khiến phiên bản Windows mới ổn định hơn so với phiên bản 'cũ'.
Trình điều khiển thiết bị kém chất lượng hoặc viết sai
Phần cứng không tương thích
Phần cứng bị hỏng cũng có thể dẫn đến BSoD.
Trong Windows 95 và 98, BSoD xuất hiện khi hệ thống cố gắng truy cập vào tệp C:\con\con
hoặc C:\aux\aux
trên ổ cứng. Điều này có thể được sử dụng để gây sự cố cho máy của người dùng khi truy cập một trang web. 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 để khắc phục vấn đề này.
Một sự cố nổi tiếng về BSoD trên Windows 9x xảy ra trong buổi thuyết trình của Bill Gates về Windows 98 Beta 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ợ Plug and Play của Windows 98. Sự kiện này đã nhận được những tràng pháo tay vang dội từ khán giả, và Gates đã đáp lại sau khi tạm dừng: 'Đó chính là lý do 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 (trừ Pocket PC 2000 và Pocket PC 2002). Màn hình xanh trong Windows CE 3.0 rất giống với 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 mô tả ở đây. Red Screen of Death cũng chỉ một thông báo lỗi xuất hiện trên các hệ thống PlayStation khi thiết bị không thể nhận hoặc phát hiện đĩa trò chơi.
- Màn hình đỏ chết chóc (Red Screen of Death - RSoD) xuất hiện trong:
- Windows 98 hiển thị lỗi màu đỏ khi BIOS máy chủ gặp sự cố, do Cấu hình nâng cao và Giao diện nguồn (ACPI).
- Phiên bản Beta 1 và Beta 2 của Windows Vista cũng hiển thị màn hình lỗi đỏ khi xảy ra lỗi khởi động.
- Phiên bản dựng 5048 của Windows Vista trong trường hợp tương tự về lỗi khởi động.
- Màn hình xanh lá chết chóc (Green Screen of Death - GreenSoD) xảy ra trên máy chơi game Xbox One khi quá trình cập nhật dữ liệu bị lỗi, khiến thiết bị không hoạt động. Màn hình lỗi xanh lá cũng xuất hiện trên các máy game của Nintendo và đầu ghi video TiVo. Đôi khi, sau khi lỗi xanh lá xuất hiện, màn hình chuyển sang màu đen. Nó cũng xuất hiện trong các bản Windows 10 Insider.
- Màn hình tím chết chóc (Purple Screen of Death - PSoD) thường gặp khi kernel của máy ảo như VMWare ESX/ESXi Server gặp sự cố.
- 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 hoặc phần mềm trong quá trình chơi game. Lỗi cũng có thể xuất hiện khi bạn ép xung CPU/GPU hoặc các linh kiện khác để nâng cao hiệu suất.
- 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ể được 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, cũng như với các kiểm tra lỗi trong OpenVMS. Windows 3.1, giống như macOS, hiển thị Màn hình đen thay vì màu xanh. Windows 11 cũng xuất hiện lỗi màn hình đen nhưng chưa có lý do rõ ràng.