Làm thế nào để một máy tính tự khởi động lại?


491

Làm thế nào một máy tính có thể tự khởi động lại? Sau khi nó tắt, làm thế nào để nó tự quay trở lại? Loại phần mềm nào có thể làm điều này?


8
@ jer.salamon: Chúng thực sự là những con đường hoàn toàn khác nhau. Việc tắt gọi một thói quen ACPI sẽ gửi tín hiệu đến nguồn điện ATX để tắt đường ray điện áp chính.
Ignacio Vazquez-Abrams

13
Điều này được kiểm soát thông qua BIOS - nếu bộ nhớ phục vụ, các từ khóa quan tâm là APM và APIC
pst

118
Nó không bao giờ thực sự "tắt" khi khởi động lại.
Moab

10
Chưa có câu hỏi ngu ngốc. Không, có lẽ có - nhưng tôi nghĩ cái này thực sự rất thú vị. Nổi bật như một câu hỏi của ứng cử viên tuần .
slhck

4
Tôi đã từng làm việc từ xa trên một máy chủ từ xa, về cơ bản chỉ là một PC không có màn hình hoặc bàn phím trong trung tâm dữ liệu của công ty. Máy chủ của tôi thường không bao giờ tắt hoàn toàn, nhưng đôi khi tôi sẽ khởi động lại từ cuối bằng cách sử dụng WinXP Start-> Turn TắtComputer-> Khởi động lại, để loại bỏ sự bất ổn do kiểm tra mã của riêng tôi. Tôi thường làm việc vào những thời điểm mà tôi chọn, khi trung tâm dữ liệu không được điều khiển. Đó là rất mệt mỏi những gì tôi vô tình chọn Turn Off là lựa chọn cuối cùng, và phải đợi cho đến khi hai ngày sau đó cho một nhà điều hành để đi và nhấn vào công tắc cho tôi!
FumbleFingers

Câu trả lời:


599

tl; dr: trạng thái năng lượng trong máy tính của bạn được kiểm soát bởi việc triển khai ACPI (cấu hình nâng cao và giao diện nguồn). Khi kết thúc quá trình tắt máy, hệ điều hành của bạn sẽ đặt lệnh ACPI cho biết máy tính sẽ khởi động lại. Đáp lại, bo mạch chủ đặt lại tất cả các thành phần bằng cách sử dụng các lệnh hoặc dòng thiết lập lại tương ứng của chúng, sau đó thực hiện theo quy trình bootstrap. Bo mạch chủ không bao giờ thực sự tắt, nó chỉ đặt lại các thành phần khác nhau và sau đó hoạt động như thể nút nguồn vừa được nhấn.

Dài và lan man nhưng (theo tôi) câu trả lời thú vị hơn:

Sức mạnh mềm và cách thức hoạt động

Vào thời xa xưa (tốt, được thôi, với một sinh viên đại học như tôi những năm 90 đã lâu rồi), chúng tôi có bo mạch chủ AT (Công nghệ tiên tiến) với nguồn ATsự quản lý. Hệ thống điện AT rất, rất đơn giản. Nút nguồn trên máy tính của bạn là một nút chuyển đổi phần cứng (có thể ở phía sau vỏ) và đầu vào 120vac của bạn đã đi qua nó. Nó thực sự bật và tắt nguồn cung cấp năng lượng cho bạn và khi công tắc này ở vị trí Tắt, mọi thứ trong máy tính của bạn đã hoàn toàn chết (điều này làm cho pin CMOS rất quan trọng, vì không có nguồn cung cấp năng lượng để giữ phần cứng đồng hồ tích tắc). Bởi vì công tắc nguồn là một cơ chế vật lý, không có cách nào để bật và tắt nguồn. Windows sẽ hiển thị thông báo "Bây giờ an toàn để tắt máy tính của bạn" bởi vì, mặc dù mọi thứ đã được đỗ và sẵn sàng để tắt, nhưng hệ điều hành không thể thực sự bật công tắc nguồn. Cấu hình này đôi khi được gọi làsức mạnh cứng , bởi vì đó là tất cả phần cứng.

Ngày nay mọi thứ đã khác, bởi vì những điều kỳ diệu của bo mạch chủ ATXsức mạnh ATX (đó là Công nghệ tiên tiến eXtends nếu bạn đang theo dõi). Cùng với một số tiến bộ khác (mini-DIN PS / 2, có ai không?), ATX mang lại sức mạnh mềm . Sức mạnh mềm có nghĩa là năng lượng cho máy tính có thể được điều khiển bằng phần mềm. Điều này mang lại một vài thay đổi nhập khẩu:

  • Nguồn dự phòng: bạn có thể đã thấy một đầu nối "5v SB" hoặc "5v chờ" được dán nhãn trong sơ đồ cung cấp điện. Nguồn điện dự phònglà đường dây 5v cho bo mạch chủ của bạn luôn bật, ngay cả khi máy tính đã tắt. Đây là lý do tại sao cần rút hoặc tắt công tắc cứng PSU (nếu có) khi bảo trì các máy tính hiện đại, bởi vì ngay cả khi tắt, bạn vẫn có khả năng rút ngắn SB 5v và làm hỏng bo mạch chủ. Đây cũng là lý do tại sao pin CMOS không còn thực sự quan trọng nữa - SB 5v được sử dụng để thay thế pin CMOS bất cứ khi nào nguồn điện có nguồn điện chính, do đó, pin CMOS chỉ được sử dụng khi bạn rút hoàn toàn máy tính. Dòng 5v SB quan trọng cho phép các thành phần trong máy tính của bạn (quan trọng nhất là BIOS và bộ điều hợp mạng) tiếp tục chạy một số phần mềm đơn giản ngay cả khi máy tính bị tắt.
  • Điều khiển cung cấp điện thông minh. Nếu bạn nhìn vào sơ đồ chân cho đầu nối bo mạch chủ (P1) của bộ nguồn, bạn sẽ thấy hai chân thường được gắn nhãn PS_ONPS_RDY. Chúng là viết tắt của "cấp điện trên" và "sẵn sàng cung cấp điện". Nếu bạn muốn thử nghiệm, hãy lấy nguồn điện không có trong máy tính, cắm điện và cẩn thận rút ngắn một đường dây tiếp đất (một trong các dây màu đen) sang đường dây PS_ON (dây màu xanh lá cây). Bộ nguồn sẽ bật rõ rệt, với quạt quay lên. Các thành phần của bo mạch chủ hết + 5v SB thực sự bật và tắt nguồn điện của bạn bằng cách kết nối nguồn với chân PS_ON. Do có một số tụ điện và các bộ phận khác trong nguồn điện cần một chút thời gian để sạc, điện áp từ các đầu ra chính của nguồn cung cấp có thể không ổn định ngay sau khi bật PSU. Đây là những gì chân PS_RDY dành cho, nó xuất hiện khi logic bên trong của nguồn cung cấp xác định rằng nguồn cung cấp đã "sẵn sàng" và sẽ cung cấp năng lượng ổn định.

Vì vậy, công tắc nguồn của bạn không còn "bật" máy tính nữa. Thay vào đó, nó được kết nối với bộ điều khiển cơ bản của bo mạch chủ của bạn, phát hiện ra rằng nút đã được nhấn và thực hiện một số bước để sẵn sàng cho hệ thống, bao gồm bật sáng PS_ON để có nguồn điện. Nút nguồn không phải là cách duy nhất để kích hoạt quá trình khởi động, các thiết bị trên bus mở rộng của bạn cũng có thể làm như vậy. Điều này rất quan trọng vì các bộ điều hợp mạng ethernet của bạn thực sự vẫn hoạt động khi máy tính của bạn tắt và tìm kiếm một gói rất cụ thể thường được gọi là "Gói ma thuật". Nếu họ phát hiện gói này được gửi đến địa chỉ MAC của họ, họ sẽ kích hoạt quá trình khởi động. Đây là cách "Wake-on-LAN" (WoL) hoạt động. Đồng hồ cũng có thể khởi động một khởi động (hầu hết BIOS cho phép bạn đặt thời gian mà máy tính sẽ khởi động mỗi ngày),

Hiểu về điều khiển công suất

Chà, tôi giải thích điều Soft Power cả bởi vì tôi nghĩ nó thú vị (luôn là lý do chính khiến tôi giải thích mọi thứ) và vì nó cho phép bạn hiểu cách thức nguồn và trạng thái chạy / tắt của máy tính của bạn được điều khiển bởi phần mềm. Trong hầu hết các máy tính hiện tại, hệ thống phần mềm này là một triển khai của Cấu hình nâng cao và Giao diện nguồn, hoặc ACPI . ACPI là một hệ thống hợp nhất, được tiêu chuẩn hóa cho phép phần mềm điều khiển hệ thống điện của máy tính của bạn. Bạn có thể đã nghe nói về các trạng thái năng lượng ACPI. Cơ chế cơ bản của điều khiển công suất là các "trạng thái nguồn" này, hệ điều hành của bạn chuyển qua các chế độ nguồn bằng cách chuẩn bị cho công tắc (quá trình tắt / ngủ đông xảy ra trước khi tắt nguồn thực sự), sau đó ra lệnh cho bo mạch chủ chuyển trạng thái nguồn . Các trạng thái sức mạnh trông như thế này:

  • G0: Đang hoạt động (trạng thái "bật" trên máy tính của bạn)
  • G1: Ngủ (trạng thái chờ của máy tính, được chia thành các trạm con S)
    • S1: vẫn cấp nguồn cho CPU và RAM, nhưng CPU không thực hiện các hướng dẫn. Các thiết bị ngoại vi được tắt.
    • S2: Tắt nguồn CPU, duy trì RAM
    • S3: Tất cả các thành phần được tắt nguồn ngoại trừ RAM và các thiết bị sẽ kích hoạt sơ yếu lý lịch (bàn phím). Khi bạn bảo hệ điều hành của mình "Ngủ", nó sẽ dừng các quá trình và sau đó vào chế độ này.
    • S4: Ngủ đông. Hoàn toàn mọi thứ đã được tắt. Khi bạn thông báo hệ điều hành của mình cho Hibernate, nó sẽ dừng các tiến trình, lưu nội dung của RAM vào đĩa và sau đó vào chế độ này.
  • G2: Tắt mềm. đây là trạng thái "tắt" máy tính của bạn. Tắt nguồn cho mọi thứ trừ các thiết bị có thể kích hoạt khởi động.
  • G3: Tắt cơ.

Làm thế nào thiết lập lại thực sự xảy ra

Bạn sẽ nhận thấy rằng khởi động lại không phải là một trong những trạng thái này. Vì vậy, những gì thực sự xảy ra khi máy tính của bạn khi nó khởi động lại? Câu trả lời có thể gây ngạc nhiên, bởi vì từ góc độ quản lý năng lượng, nó gần như không có gì . Có lệnh đặt lại ACPI. Khi bạn yêu cầu hệ điều hành khởi động lại, nó sẽ tuân theo quy trình tắt máy thông thường (dừng tất cả các quy trình của bạn, thực hiện một chút bảo trì, tháo gỡ hệ thống tệp của bạn, v.v.), và sau đó là bước cuối cùng, thay vì gửi máy về trạng thái nguồn G2 (như thể nếu bạn chỉ đơn giản là bảo nó Tắt), nó sẽ đặt lệnh Reset. Điều này thường được gọi là "Đăng ký đặt lại", vì giống như hầu hết giao diện ACPI, đây chỉ là một địa chỉ mà một giá trị cụ thể phải được ghi vào để yêu cầu đặt lại. Tôi sẽ trích dẫn đặc tả 2.0 về những gì nó làm:

Cơ chế đặt lại ACPI tùy chọn chỉ định một cơ chế tiêu chuẩn cung cấp thiết lập lại hệ thống hoàn chỉnh. Khi thực hiện, cơ chế này phải thiết lập lại toàn bộ hệ thống. Điều này bao gồm bộ xử lý, logic lõi, tất cả các xe buýt và tất cả các thiết bị ngoại vi. Từ góc độ OSPM, khẳng định cơ chế thiết lập lại là tương đương logic với việc cung cấp năng lượng cho máy. Khi giành quyền kiểm soát sau khi thiết lập lại, OSPM sẽ thực hiện các hành động theo cách tương tự với khởi động nguội.

Vì vậy, khi thanh ghi thiết lập lại được thiết lập, một vài điều xảy ra theo trình tự.

  • Tất cả logic được thiết lập lại. Điều này có nghĩa là gửi các lệnh đặt lại tương ứng tới các bit phần cứng khác nhau bao gồm CPU, bộ điều khiển bộ nhớ, bộ điều khiển ngoại vi, v.v.
  • Máy tính sau đó được bootstrapping. Đây là phần "thực hiện các hành động theo cách tương tự như khởi động nguội". Bo mạch chủ thực hiện các bước tương tự như khi nguồn điện đã sẵn sàng sau khi nhấn nút nguồn.

Hiệu quả cuối cùng của hai bước này (thực sự bị phá vỡ thành nhiều bước nữa) là nó trông giống như mọi thứ giống như máy tính vừa khởi động, nhưng sức mạnh thực sự là toàn bộ thời gian. Điều này có nghĩa là cần ít thời gian hơn để tắt và khởi động (vì bạn không phải chờ nguồn điện sẵn sàng) và quan trọng là cho phép khởi động được khởi động bởi hệ điều hành tắt. Điều này có nghĩa là không cần sử dụng trình kích hoạt khởi động khác (WoL, v.v.) và cho phép bạn sử dụng Reboot như một cách hiệu quả để đặt lại hệ thống từ xa, khi bạn không có cách nào để kích hoạt khởi động.


Đó là một câu trả lời dài. Nhưng này, hy vọng bạn biết nhiều hơn về quản lý năng lượng máy tính bây giờ. Tôi chắc chắn đã học được một số điều nghiên cứu này.


3
+1. Rất nhiều thông tin và câu trả lời hữu ích. Chỉ cần một điểm - PS_ON đang hoạt động ở mức thấp, tức là chuyển sang 0V thay vì + 5VSB để bật đầu ra chính.
MikeJ-UK

2
Đối với các thiết bị USB kích hoạt khởi động, một số BIOS có tùy chọn đánh thức máy tính bằng cách bấm đúp hoặc nhấn phím. Ngoài ra, một số bàn phím Mac có các nút Nguồn (truyền thống sẽ quay trở lại ban đầu).
Stuart P. Bentley

1
Câu trả lời tuyệt vời, tôi chắc chắn đã học được rất nhiều. Tuy nhiên, vẫn còn một câu hỏi: theo quan điểm của bo mạch chủ, sự khác biệt giữa các trạng thái S4 và G2 là gì? Việc lưu RAM vào đĩa được hệ điều hành thực hiện, do đó S4 nghe giống như "tắt mềm" cho phần cứng.
EMP

1
Tôi tin rằng S4 có chức năng tương đương với G2, nhưng sự khác biệt được lưu trữ. Một số BIOS dường như thực hiện "POST nhanh" khi bắt đầu từ S4 nhưng POST đầy đủ khi bắt đầu từ G2. Tuy nhiên, tôi không nghĩ có bất kỳ lý do nào cho việc này, ngoài việc mọi người muốn S4 tiếp tục nhanh.
jcrawfordor

1
Đó thực sự là một chút đơn giản; Có (nhiều) cách không phải ACPI để khởi động lại máy tính và đôi khi một mình ACPI không hoạt động: superuser.com/questions/294681/ Kẻ
Tobu

81

Đây là điểm khởi đầu:

Chips thường không tắt và sau đó bật. Thay vào đó, có một dòng thiết lập lại sẽ đưa bộ xử lý ở trạng thái được gọi là thiết lập lại khi thường tất cả bộ nhớ bị xóa và bộ xử lý trông giống như nó được bật nguồn. Trong khi chân đó được giữ ở mức cao (hoặc thấp, tùy thuộc vào bộ xử lý), bộ xử lý được đặt lại. Khi pin được giải phóng, nó sẽ tiếp tục khởi động bình thường, giống như khi nó được bật lần đầu tiên. Điểm chính của điều này là không có nguồn điện tự cắt.

Vậy làm thế nào để quy mô này đến các hệ thống lớn hơn như PC hiện đại? Các máy tính hiện đại được tạo ra từ các máy tính đôi khi được tạo ra từ chính các máy tính. Vì vậy, khi bạn đặt máy tính để đặt lại, "máy tính" làm cho máy tính sẽ bắt đầu lưu trạng thái của chúng (nếu thiết lập lại được kiểm soát) hoặc chỉ cần kéo chân thiết lập lại.

Một số bộ xử lý và vi điều khiển (là các máy tính độc lập thu nhỏ, thường chậm hơn 20 năm so với các máy tính để bàn hiện đại) có thể tự thiết lập lại bằng các công tắc bên trong. Như tôi đã nói, một khi tín hiệu tạo ra thiết lập lại không còn, máy tính sẽ khởi động. Vì vậy, tiền đề trong câu hỏi không hoàn toàn đúng. Máy tính không biết khi nào bật. Để biết khi nào nó cần được "tắt" hoặc trong thiết lập lại và khi tín hiệu giữ nó không còn, nó sẽ bật.

Hành vi này có thể trông lạ trên máy tính hiện đại có thể được thiết lập để bật vào thời gian cụ thể hoặc qua mạng, v.v. Như tôi đã nói máy tính được làm bằng máy tính. Vì vậy, trong khi bộ xử lý chính có thể bị tắt, có thể có rất nhiều chip và bộ vi điều khiển khác bên trong. Trường hợp rõ ràng nhất là đồng hồ thời gian thực thường chạy bằng pin. Sau đó, nó có thể bật các chip khác sẽ bật các chip khác và phản ứng dây chuyền diễn ra cho đến khi toàn bộ máy tính được bật. Trên các máy tính ngày nay, có một dòng PSU được gọi là Điện áp dự phòng +5 VDC. Nó cung cấp năng lượng khoảng 50 mW cho các thiết bị khác nhau được bật khi máy tính "tắt".

Một chút chuyện nhỏ: Đặt lại pin trên bộ xử lý Intel 386 EX là số pin 110.

Bảng dữ liệu 386EX hình 2

Trên Intel i7-900, số đất AL39.

Tôi hy vọng rằng ai đó sẽ có thể đưa ra câu trả lời sẽ giải thích cách mọi thứ hoạt động theo quan điểm cấp cao, vì hệ thống khá phức tạp.


Wow, trả lời thấu đáo.
Seth Carnegie

13
@Seth Carnegie Nó không tuyệt lắm. Tôi vừa chạm vào những thứ cấp thấp, điều đó đúng với hầu hết các máy tính, từ cái trong tủ lạnh đến PC. Tôi thậm chí không đề cập đến ACPI, APM và các hệ thống năng lượng hiện đại khác hoặc làm thế nào trên PC vi điều khiển Intel 8042 cũ mà bộ điều khiển bàn phím có thể đặt lại bộ xử lý, cách thức hoạt động của POST, đặt lại vectơ và nhiều thứ khác.
AndrejaKo

1
@netvope Quá nhiều để tưởng tượng, tôi nói. Bạn có thể có ít nhất một con chuột, một bàn phím, hơn 10 cho các bộ phận cơ bản nhất của bo mạch chủ (ngay cả khi chúng tôi tính đến "chipset" tích hợp cao), có thể là một trong bộ cấp nguồn, Ít nhất là một trong mỗi ổ đĩa (nhiều khả năng là 2-3), một vài trong mỗi thẻ mở rộng ... Màn hình cũng rất nghiêm túc và máy in của tôi hiện có nhiều RAM hơn máy tính để bàn đầu tiên của tôi.
AndrejaKo

4
Nói về bộ nhớ, bộ nhớ cache của một số ổ cứng và CPU mới hiện lớn hơn RAM của máy tính đầu tiên tôi đã sử dụng. Bây giờ chúng ta có thể chạy Windows 95 hoàn toàn trong bộ đệm L2 và giữ toàn bộ phân vùng hệ thống trong bộ đệm của ổ đĩa!
netvope

27

Bài đăng trên blog này mô tả cách Linux kích hoạt khởi động lại.

Trích đoạn:

Linux có rất nhiều cách khác nhau để thiết lập lại x86. Một số trong số chúng chỉ có 32 bit và vì vậy tôi sẽ bỏ qua chúng vì thật lòng bạn chỉ đang làm gì với cuộc sống của mình. Ngoài ra, chúng thật kinh khủng. Vì vậy, điều đó để lại cho chúng tôi với năm trong số họ.

  • kbd - khởi động lại thông qua bộ điều khiển bàn phím. Máy tính IBM ban đầu có dòng đặt lại CPU được gắn với bộ điều khiển bàn phím. Viết giá trị ma thuật thích hợp xung dòng và máy đặt lại. Tất cả đều rất đơn giản, ngoại trừ thực tế là các máy hiện đại không có bộ điều khiển bàn phím (chúng thực sự là một phần của bộ điều khiển nhúng) và thậm chí các máy hiện đại hơn thậm chí còn không giả vờ có bộ điều khiển bàn phím. Bây giờ, bộ điều khiển nhúng chạy phần mềm. Và, như chúng ta đều biết, phần mềm rất khủng khiếp. Nhưng, tệ hơn, phần mềm trên bộ điều khiển nhúng đã được viết bởi các tác giả BIOS. Vì vậy, rõ ràng bất kỳ giả vờ rằng điều này từng làm việc là một loại tiểu thuyết phức tạp. Một số máy rất kén chọn phần cứng ở trạng thái chính xác mà Windows sẽ lập trình. Một số máy hoạt động 9 lần trong số 10 và sau đó bị khóa do một số vấn đề về thời gian kỳ lạ. Và những người khác chỉ đơn giản là không làm việc gì cả. Tiếng hoan hô!

  • triple - cố gắng tạo ra một lỗi ba. Điều này được thực hiện bằng cách tải một bảng mô tả ngắt trống và sau đó gọi int (3). Ngắt không thành công (không có IDT), trình xử lý lỗi không thành công (không có IDT) và CPU đi vào một điều kiện, theo lý thuyết, sau đó kích hoạt thiết lập lại. Ngoại trừ dường như không có yêu cầu nào xảy ra và nó chỉ không hoạt động trên một loạt các máy móc.

  • pci - không thực sự pci. Truy cập không gian cấu hình PCI truyền thống đạt được bằng cách ghi giá trị 32 bit vào cổng io 0xcf8 để xác định thanh ghi bus, thiết bị, chức năng và cấu hình. Cổng 0xcfc sau đó chứa thanh ghi trong câu hỏi. Nhưng nếu bạn viết cặp giá trị ma thuật thích hợp thành 0xcf9, máy sẽ khởi động lại. Đẹp mắt! Và không được tiêu chuẩn hóa theo bất kỳ cách nào (chắc chắn không phải là một phần của thông số kỹ thuật PCI), vì vậy các chipset khác nhau có thể có các yêu cầu khác nhau. Booo.

  • efi - Dịch vụ thời gian chạy EFI cung cấp một điểm vào để khởi động lại máy. Nó thường hoạt động! Miễn là các dịch vụ thời gian chạy EFI đang hoạt động, đó có thể là một sự kéo dài.

  • acpi - Các phiên bản gần đây của thông số ACPI cho phép bạn cung cấp địa chỉ (thường là bộ nhớ hoặc không gian IO hệ thống) và giá trị để ghi ở đó. Ý tưởng là viết giá trị cho địa chỉ đặt lại hệ thống. Nó chỉ ra rằng làm như vậy thường thất bại. Cũng không thể biểu diễn phương thức khởi động lại PCI thông qua ACPI, vì phương thức khởi động lại PCI yêu cầu một cặp giá trị và ACPI chỉ cung cấp cho bạn một giá trị.


15
Điều này có liên quan, nhưng câu trả lời sẽ hữu ích hơn nếu bạn đặt một đoạn trích thông tin của trang khác ở đây.
calvinf

1
tl; dr có nhiều cách để khởi động lại; một số bảng bị hỏng đủ nặng để giả vờ là cửa sổ , một heuristic liên quan đến một vài lần thử và ngủ một chút, là cách duy nhất.
Tobu

10

Nó đóng băng một vị trí I / O làm kéo một dòng dữ liệu xuống mức thấp cho CPU biết rằng nó sẽ dừng mọi hoạt động và bắt đầu chạy mã từ một vị trí nhất định trong BIOS.


... và vị trí đó được chỉ định trong mã được truyền cho lệnh gọi hệ thống khởi động lại?
Hiệp sĩ Samar

1
@Knight Samar: Không; vị trí I / O nói chung là một hằng số kiến ​​trúc, mà hạt nhân biết. Bạn có thể thấy điều này, ví dụ như trong mã khởi động lại Linux, chẳng hạn như arch / x86 / kernel / restart.c.
sleske

Có ai có một nguồn tài nguyên tốt để đọc thêm về vấn đề đó?
matthias krull

@ mugen.kenichi và tất cả, một người bạn đã cho tôi này để tham khảo howstuffworks.com/bios.htm/printable
Hiệp sĩ Samar

Tôi đề nghị superuser.com/a/347115/38062 .
JdeBP

10

Quay lại thời xưa trước khi quản lý năng lượng, tất nhiên máy tính vẫn có thể tự khởi động lại. (Có ai còn nhớ khi chương trình bị đóng băng có nghĩa là bạn phải sử dụng Ctrl + Alt + Delete để khởi động lại máy tính không?)

Trên 486 cũ của tôi, lệnh ngôn ngữ lắp ráp JMP FFFF:0000(nghĩa là đặt Con trỏ lệnh của CPU thành địa chỉ đã nói) sẽ khiến toàn bộ máy tính khởi động lại. Nói cách khác, FFFF: 0000 giải quyết một vị trí trong BIOS có hướng dẫn về những gì máy tính nên làm khi khởi động lần đầu tiên. Tôi nghi ngờ Pin Đặt lại được mô tả bởi câu trả lời của AndrejaKo hoặc các nút đặt lại trong những ngày trước khi quản lý điện, cũng sẽ buộc Con trỏ lệnh đến cùng một địa chỉ.

Một tìm kiếm Google cho JMP FFFF: 0000 cho thấy nhiều trang thú vị về điều này.


3
Bạn cũng cần phải viết một giá trị cụ thể vào 0040: 0072 để xác định xem đó là khởi động lạnh (0x0000) hay khởi động ấm (0x1234).
Synetech

9

Ngoài ra còn có một thứ được đặt tên là cơ quan giám sát. Thiết bị này phục vụ như một công tắc của người chết. Máy tính phải báo hiệu cho cơ quan giám sát cứ sau một phút nói rằng nó vẫn còn sống. Khi máy tính gặp sự cố, ví dụ bằng cách chạy vào một vòng lặp vô tận, nó sẽ không báo hiệu cho cơ quan giám sát, nó vẫn chạy như dự định, nhân dịp cơ quan giám sát sẽ thực hiện thiết lập lại phần cứng. Điều này đã được chứng minh trong loạt phim truyền hình nổi tiếng về kẻ hủy diệt, trong đó một robot bị đánh bật bởi sự đột biến của điện áp cao. nó sẽ tự thiết lập lại sau 2 phút.


2
Điều này đúng, nhưng không thực sự trả lời câu hỏi.
sleske

4
Có cơ quan giám sát nào thực sự sẽ khởi động lại toàn bộ máy tính? Tôi biết rằng đôi khi chúng được sử dụng cho các bộ vi điều khiển khác nhau bên trong máy tính, nhưng có một cái trên toàn bộ cấp độ máy tính không? Kinh nghiệm cá nhân của tôi khiến tôi nói không, nhưng một số bằng chứng ủng hộ hoặc phản đối sẽ được hoan nghênh.
AndrejaKo

5
@AndrejaKo: Tôi từng làm việc cho một công ty sản xuất máy chủ liên lạc (về cơ bản là các máy chủ phiến có modem kết nối với họ). Họ đã có một bộ đếm thời gian theo dõi được kết nối với các chân thiết lập lại trên bo mạch chủ. Bộ hẹn giờ bị va đập định kỳ bởi một tiện ích nền chạy trên bo mạch chủ, vì vậy nếu bộ xử lý bị treo, cơ quan giám sát cuối cùng sẽ nhấn nút đặt lại. Nó được gắn với một mạch làm cho dòng điện thoại bận rộn trong khi bo mạch chủ khởi động lại.
Robert Harvey

4

Quay lại IBM PC-1 cũ, bộ điều khiển bàn phím, thật kỳ lạ, đã xử lý khởi động lại. IBM đã nhúng một bộ vi xử lý nhỏ để xử lý bàn phím và nó có một số dòng I / O dự phòng, vì vậy họ đã sử dụng một trong các dòng để điều khiển dòng thiết lập lại của CPU chính. Một lệnh được gửi đến bộ điều khiển bàn phím sẽ dẫn đến việc CPU được thiết lập lại như thể nguồn vừa được bật.

Tôi đoán truyền thống này tiếp tục tốt trong thời đại "AT", và có thể có dấu tích của nó còn tồn tại trong ACPI ngày nay.

Đã thêm: Có một chi tiết thú vị về sơ đồ đặt lại ở trên. Trong chuỗi khởi động sớm, mã tìm kiếm một mẫu cụ thể trong RAM có thể được đặt bởi mã thực thi trước đó. Nếu mã này có mặt, một số chẩn đoán POST (tự kiểm tra bật nguồn) đã bị bỏ qua. Các mẫu sẽ chỉ có mặt trên một khởi động "ấm".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.