คอมพิวเตอร์รีสตาร์ทเองได้อย่างไร


491

คอมพิวเตอร์จะรีสตาร์ทตัวเองได้อย่างไร หลังจากปิดแล้วมันจะบอกตัวเองให้กลับมาอีกครั้งได้อย่างไร ซอฟต์แวร์ประเภทใดที่สามารถทำได้


8
@ jer.salamon: จริง ๆ แล้วมันเป็นเส้นทางที่แตกต่างอย่างสิ้นเชิง การปิดระบบจะเรียกรูทีน ACPI ซึ่งส่งสัญญาณไปยังแหล่งจ่ายไฟ ATX ซึ่งจะปิดรางแรงดันไฟฟ้าหลัก
Ignacio Vazquez-Abrams

13
สิ่งนี้ถูกควบคุมผ่าน BIOS - หากหน่วยความจำทำหน้าที่คำสำคัญที่น่าสนใจคือ APM และ APIC
pst

118
ไม่เคยปิดและเปิดเครื่องใหม่
Moab

10
ไม่มีคำถามโง่ ๆ ไม่อาจมี - แต่ฉันคิดว่าอันนี้น่าสนใจจริง ๆ แนะนำเป็นคำถามของผู้สมัครสัปดาห์
slhck

4
ฉันเคย telework บนเซิร์ฟเวอร์ระยะไกลซึ่งโดยทั่วไปเป็นเพียงพีซีที่ไม่มีหน้าจอหรือแป้นพิมพ์ในศูนย์ข้อมูลของ บริษัท เซิร์ฟเวอร์ของฉันไม่เคยปิดตัวเองเลย แต่บางครั้งฉันก็ทำการรีบูทจากจุดสิ้นสุดโดยใช้ WinXP Start-> TurnOffComputer-> รีสตาร์ทเพื่อเรียงลำดับความไม่เสถียรที่เกิดจากการทดสอบรหัสของตัวเอง ฉันมักจะทำงานในช่วงเวลาที่ฉันเลือกเองเมื่อศูนย์ข้อมูลถูกพึม มันเป็นมากน่าเบื่อสิ่งที่ผมตั้งใจเลือกเปิดปิดเป็นตัวเลือกสุดท้ายและต้องรอจนกว่าสองวันต่อมาสำหรับการดำเนินการที่จะไปและกดบนสวิทช์สำหรับผม!
FumbleFingers

คำตอบ:


599

tl; dr:สถานะพลังงานในคอมพิวเตอร์ของคุณถูกควบคุมโดยการใช้งาน ACPI (การกำหนดค่าขั้นสูงและอินเตอร์เฟสพลังงาน) ในตอนท้ายของกระบวนการปิดระบบปฏิบัติการของคุณตั้งค่าคำสั่ง ACPI เพื่อระบุว่าคอมพิวเตอร์ควรรีบูต ในการตอบสนองมาเธอร์บอร์ดจะรีเซ็ตส่วนประกอบทั้งหมดโดยใช้คำสั่งหรือบรรทัดรีเซ็ตตามลำดับจากนั้นทำตามกระบวนการบู๊ตสแตรป เมนบอร์ดไม่เคยปิดจริงมันเพียงรีเซ็ตองค์ประกอบต่าง ๆ และจากนั้นจะทำงานราวกับว่าเพิ่งกดปุ่มเพาเวอร์

ยาวและท่องเที่ยว แต่ (ในความคิดของฉัน) คำตอบที่น่าสนใจมากขึ้น:

ซอฟท์พาวเวอร์และวิธีการทำงาน

ในสมัยก่อน (ก็โอเคสำหรับนักศึกษาอย่างฉัน '90s เป็นเวลานานแล้ว) เรามีเมนบอร์ด AT (เทคโนโลยีขั้นสูง) ที่มีATการจัดการ ระบบพลังงาน AT นั้นง่ายมาก ๆ ปุ่มเปิด / ปิดบนคอมพิวเตอร์ของคุณเป็นฮาร์ดแวร์สลับ (อาจอยู่ที่ด้านหลังของเคส) และอินพุต 120vac ของคุณถูกต้อง มันจะเปิดและปิดสวิตช์เพาเวอร์ของแหล่งจ่ายไฟของคุณและเมื่อสวิตช์นี้อยู่ในตำแหน่งปิดทุกอย่างในคอมพิวเตอร์ของคุณก็ตายไปหมดแล้ว (นี่ทำให้แบตเตอรี่ CMOS มีความสำคัญมากเพราะไม่มีแหล่งจ่ายไฟสำหรับฮาร์ดแวร์ ฟ้องนาฬิกา) เนื่องจากสวิตช์เปิดปิดเป็นกลไกทางกายภาพจึงไม่มีวิธีใช้ซอฟต์แวร์ในการเปิดและปิด Windows จะแสดงข้อความ "ตอนนี้ปลอดภัยแล้วที่จะปิดคอมพิวเตอร์ของคุณ" เนื่องจากแม้ว่าทุกอย่างจะถูกจอดไว้และพร้อมที่จะปิด แต่ก็เป็นไปไม่ได้ที่ระบบปฏิบัติการจะพลิกสวิตช์ไฟได้จริง การกำหนดค่านี้บางครั้งเรียกว่าพลังงานอย่างหนักเพราะมันเป็นฮาร์ดแวร์ทั้งหมด

ทุกวันนี้ทุกอย่างแตกต่างกันไปเพราะสิ่งมหัศจรรย์ของมาเธอร์บอร์ดATXและพลัง ATX (นั่นคือเทคโนโลยีขั้นสูงที่เพิ่มขึ้นหากคุณกำลังติดตาม) ตามด้วยหมายเลขของความก้าวหน้าอื่น ๆ (Mini-DIN PS / 2, ใคร?) ATX นำไฟอ่อน ซอฟต์เพาเวอร์หมายความว่าซอฟต์แวร์สามารถควบคุมกำลังไฟของคอมพิวเตอร์ สิ่งนี้ทำให้เกิดการเปลี่ยนแปลงการนำเข้าเล็กน้อย:

  • กำลังไฟขณะสแตนด์บาย: คุณอาจเห็นขั้วต่อ "5v SB" หรือ "5v แสตนด์บาย" ที่มีข้อความกำกับอยู่ในแหล่งจ่ายไฟแบบพิน ไฟสแตนด์บายเป็นสาย 5v ไปยังมาเธอร์บอร์ดที่เปิดอยู่เสมอแม้ในขณะที่ปิดเครื่องคอมพิวเตอร์ นี่คือเหตุผลว่าทำไมจึงเป็นเรื่องสำคัญที่จะต้องถอดปลั๊กหรือปิดสวิตช์ฮาร์ด PSU (ถ้ามี) เมื่อให้บริการคอมพิวเตอร์สมัยใหม่เนื่องจากแม้ว่าจะปิดอยู่คุณอาจสั้น 5v SB และทำให้เมนบอร์ดเสียหาย นี่คือเหตุผลที่แบตเตอรี่ CMOS ไม่สำคัญอีกต่อไปแล้ว - 5v SB ใช้เพื่อแทนที่แบตเตอรี่ CMOS ทุกครั้งที่แหล่งจ่ายไฟมีไฟเมนดังนั้นแบตเตอรี่ CMOS จะใช้เมื่อคุณถอดปลั๊กคอมพิวเตอร์ออกโดยสิ้นเชิง บรรทัด 5v SB ที่สำคัญช่วยให้ส่วนประกอบของคอมพิวเตอร์ของคุณ (ที่สำคัญที่สุดคือไบออสและอะแดปเตอร์เครือข่าย) สามารถใช้งานซอฟต์แวร์บางอย่างได้อย่างต่อเนื่องแม้ในขณะที่ปิดเครื่องคอมพิวเตอร์
  • การควบคุมแหล่งจ่ายไฟอัจฉริยะ หากคุณดูที่พินสำหรับตัวเชื่อมต่อเมนบอร์ด (P1) ของแหล่งจ่ายไฟคุณจะสังเกตเห็นว่ามีพินสองพินซึ่งโดยปกติจะมีชื่อว่าPS_ONและPS_RDY. เหล่านี้หมายถึง "แหล่งจ่ายไฟเปิด" และ "แหล่งจ่ายไฟพร้อม" หากคุณต้องการทดลองใช้แหล่งจ่ายไฟที่ไม่ได้อยู่ในเครื่องคอมพิวเตอร์เสียบปลั๊กและสั้นสายกราวนด์ (สายสีดำเส้นใดเส้นหนึ่ง) อย่างระมัดระวังไปยังสาย PS_ON (สายสีเขียว) แหล่งจ่ายไฟจะเปิดอย่างเห็นได้ชัดโดยที่พัดลมกำลังหมุน ส่วนประกอบของมาเธอร์บอร์ดกำลังวิ่งออกไปจาก + 5v SB จริง ๆ แล้วเปิดและปิดแหล่งจ่ายไฟของคุณโดยการเชื่อมต่อพลังงานกับพิน PS_ON เนื่องจากมีตัวเก็บประจุและส่วนประกอบอื่น ๆ ในแหล่งจ่ายไฟที่ใช้เวลาสักครู่ในการชาร์จแรงดันไฟฟ้าจากเอาต์พุตหลักของแหล่งจ่ายไฟอาจไม่เสถียรทันทีหลังจากเปิด PSU นี่คือสิ่งที่พิน PS_RDY มีไว้ใช้เมื่อตรรกะภายในของแหล่งจ่ายไฟกำหนดว่าแหล่งจ่ายไฟ "พร้อม" และจะให้พลังงานที่เสถียร

ดังนั้นสวิตช์ไฟของคุณจะไม่ "เปิด" คอมพิวเตอร์อีกต่อไป แต่จะเชื่อมต่อกับตัวควบคุมพื้นฐานของเมนบอร์ดซึ่งตรวจพบว่ามีการกดปุ่มและดำเนินการตามขั้นตอนต่างๆเพื่อเตรียมระบบรวมถึงการให้แสงสว่าง PS_ON เพื่อให้พลังงานสามารถใช้งานได้ ปุ่มเปิดปิดไม่ใช่วิธีเดียวที่จะกระตุ้นกระบวนการเริ่มต้นอุปกรณ์ในบัสส่วนขยายของคุณสามารถทำได้เช่นกัน สิ่งนี้มีความสำคัญเนื่องจากอะแดปเตอร์เครือข่ายอีเธอร์เน็ตของคุณยังคงใช้งานได้จริงเมื่อคอมพิวเตอร์ของคุณปิดอยู่และค้นหาแพ็คเก็ตที่เฉพาะเจาะจงอย่างมากซึ่งมักเรียกว่า "แพ็คเก็ต Magic" หากตรวจพบแพ็กเก็ตนี้ที่ส่งไปยังที่อยู่ MAC พวกเขาจะทริกเกอร์กระบวนการเริ่มต้น นี่คือการทำงานของ "Wake-on-LAN" (WoL) นาฬิกาสามารถเริ่มการบู๊ตได้ (BIOS ส่วนใหญ่อนุญาตให้คุณตั้งเวลาที่คอมพิวเตอร์ควรบู๊ตในแต่ละวัน)

ทำความเข้าใจเกี่ยวกับการควบคุมพลังงาน

ฉันอธิบายสิ่งที่อ่อนนุ่มทั้งสองเพราะฉันคิดว่ามันน่าสนใจ (เหตุผลสำคัญเสมอที่ฉันอธิบายสิ่งต่าง ๆ ) และเพราะมันช่วยให้คุณเข้าใจว่าอำนาจและการเปิด / ปิดสถานะของคอมพิวเตอร์ของคุณทั้งหมดถูกควบคุมโดยซอฟต์แวร์ ในคอมพิวเตอร์ในปัจจุบันมากที่สุดระบบซอฟต์แวร์นี้คือการดำเนินการของการกำหนดค่าขั้นสูงและ Power Interface หรือ ACPI ACPI เป็นระบบที่เป็นมาตรฐานและเป็นเอกภาพช่วยให้ซอฟต์แวร์ควบคุมระบบไฟฟ้าของคอมพิวเตอร์ของคุณ คุณอาจเคยได้ยินเกี่ยวกับสถานะพลังงานของACPI. กลไกพื้นฐานของการควบคุมพลังงานคือ "สถานะพลังงาน" ระบบปฏิบัติการของคุณจะสลับผ่านโหมดพลังงานโดยเตรียมการสำหรับสวิตช์ (กระบวนการปิด / จำศีลที่เกิดขึ้นก่อนที่พลังงานจะหยุดทำงานจริง) จากนั้นสั่งให้เมนบอร์ดเปลี่ยนสถานะพลังงาน . สถานะพลังงานมีลักษณะเช่นนี้:

  • G0: ทำงาน (สถานะ "เปิด" ของคอมพิวเตอร์)
  • G1: หลับ (สถานะสแตนด์บายของคอมพิวเตอร์ของคุณแบ่งออกเป็น substates S)
    • S1: กำลังไฟของ CPU และ RAM ยังคงเปิดอยู่ แต่ CPU ไม่ทำงานตามคำแนะนำ อุปกรณ์ต่อพ่วงปิดอยู่
    • S2: ปิด CPU, RAM ได้รับการดูแล
    • S3: ส่วนประกอบทั้งหมดปิดตัวลงยกเว้น RAM และอุปกรณ์ที่จะเปิดใช้งานประวัติย่อ (คีย์บอร์ด) เมื่อคุณแจ้งให้ระบบปฏิบัติการของคุณเป็น "สลีป" มันจะหยุดกระบวนการและจากนั้นเข้าสู่โหมดนี้
    • S4: ไฮเบอร์เนต ทุกอย่างถูกปิดอย่างแน่นอน เมื่อคุณบอกให้ระบบปฏิบัติการของคุณไฮเบอร์เนตมันจะหยุดกระบวนการบันทึกเนื้อหาของ RAM ลงในดิสก์จากนั้นเข้าสู่โหมดนี้
  • G2: Soft Off นี่คือสถานะ "ปิด" ของคอมพิวเตอร์ของคุณ ปิดทุกอย่างยกเว้นอุปกรณ์ที่สามารถเปิดเครื่องได้
  • G3: ปิดกลไก

การรีเซ็ตเกิดขึ้นจริงอย่างไร

คุณจะสังเกตเห็นว่าการรีบูตไม่ใช่สถานะใดสถานะหนึ่งเหล่านี้ ดังนั้นจะเกิดอะไรขึ้นเมื่อคอมพิวเตอร์ของคุณรีบูต? คำตอบอาจจะแปลกใจเพราะจากมุมมองการจัดการพลังงานมันแทบไม่มีอะไรเลย มีคำสั่งรีเซ็ต ACPI. เมื่อคุณบอกให้ระบบปฏิบัติการรีบูตระบบจะปฏิบัติตามกระบวนการปิดเครื่องตามปกติ (หยุดกระบวนการทั้งหมดของคุณทำการบำรุงรักษาเล็กน้อยถอดระบบไฟล์ของคุณ ฯลฯ ) จากนั้นเป็นขั้นตอนสุดท้ายแทนที่จะส่งเครื่องไปยังสถานะพลังงาน G2 (อย่างที่มันบอกถ้าหากคุณแค่บอกให้มันปิดเครื่อง) มันตั้งค่าคำสั่งรีเซ็ต โดยทั่วไปจะเรียกว่า "รีเซ็ตการลงทะเบียน" เนื่องจากเช่นเดียวกับส่วนใหญ่ของอินเทอร์เฟซ ACPI เป็นเพียงที่อยู่ที่ควรเขียนค่าเฉพาะเพื่อขอรีเซ็ต ฉันจะอ้างอิงข้อกำหนด 2.0 ในสิ่งที่มันทำ:

กลไกการรีเซ็ต ACPI ที่เป็นตัวเลือกระบุกลไกมาตรฐานที่ให้การรีเซ็ตระบบแบบสมบูรณ์ เมื่อใช้งานกลไกนี้จะต้องรีเซ็ตทั้งระบบ ซึ่งรวมถึงโปรเซสเซอร์, คอร์ตรรกะ, บัสทั้งหมดและอุปกรณ์ต่อพ่วงทั้งหมด จากมุมมองของ OSPM การยืนยันกลไกการตั้งค่าใหม่นั้นเทียบเท่ากับการหมุนเวียนพลังงานของเครื่อง เมื่อได้รับการควบคุมหลังจากรีเซ็ต OSPM จะดำเนินการในลักษณะที่คล้ายกันกับการบูตแบบเย็น

ดังนั้นเมื่อมีการตั้งค่ารีจิสเตอร์ใหม่จะมีบางสิ่งเกิดขึ้นตามลำดับ

  • ตรรกะทั้งหมดถูกรีเซ็ต นี่หมายถึงการส่งคำสั่งรีเซ็ตตามลำดับไปยังฮาร์ดแวร์ต่าง ๆ รวมถึง CPU, ตัวควบคุมหน่วยความจำ, อุปกรณ์ต่อพ่วง ฯลฯ โดยทั่วไปแล้วนี่หมายถึงการให้แสงสว่างกับสาย RST ทางกายภาพตามที่ AndrejaKo แสดงขึ้นมา
  • คอมพิวเตอร์ถูกบูตแล้ว นี่คือส่วน "ดำเนินการในลักษณะที่คล้ายกับการบูตความเย็น" มาเธอร์บอร์ดทำตามขั้นตอนเช่นเดียวกับถ้าแหล่งจ่ายไฟเพิ่งพร้อมหลังจากกดปุ่มเปิดปิด

ผลสุดท้ายของสองขั้นตอน (ซึ่งจริง ๆ แล้วแบ่งออกเป็นหลายขั้นตอนมากขึ้น) คือมันดูเหมือนว่าทุกอย่างเช่นคอมพิวเตอร์เพิ่งบูต แต่พลังนั้นเป็นจริงตลอดเวลา ซึ่งหมายความว่าต้องใช้เวลาน้อยลงในการปิดและเปิดเครื่อง (เนื่องจากคุณไม่ต้องรอให้แหล่งจ่ายไฟพร้อม) และที่สำคัญช่วยให้การเริ่มต้นระบบเริ่มต้นขึ้นโดยระบบปฏิบัติการจะปิดตัวลง ซึ่งหมายความว่าไม่จำเป็นต้องใช้ทริกเกอร์เริ่มต้นอื่น (WoL ฯลฯ ) และอนุญาตให้คุณใช้ Reboot เป็นวิธีที่มีประสิทธิภาพในการรีเซ็ตระบบจากระยะไกลเมื่อคุณไม่มีวิธีเรียกบูต


นั่นคือคำตอบที่ยาวนาน แต่เดี๋ยวก่อนหวังว่าคุณจะรู้มากขึ้นเกี่ยวกับการจัดการพลังงานคอมพิวเตอร์ในตอนนี้ ฉันได้เรียนรู้บางสิ่งที่ค้นคว้าสิ่งนี้อย่างแน่นอน


3
+1 คำตอบที่ให้ข้อมูลและมีประโยชน์มาก เพียงแค่จุดเดียว - PS_ON ทำงานต่ำเช่นเปลี่ยนเป็น 0V แทน + 5VSB เพื่อเปิดเอาต์พุตหลัก
MikeJ-UK

2
สำหรับอุปกรณ์ USB ที่ใช้บู๊ตเครื่อง BIOS บางตัวมีตัวเลือกให้ปลุกคอมพิวเตอร์ด้วยการดับเบิลคลิกหรือกดปุ่ม นอกจากนี้คีย์บอร์ด Mac บางรุ่นยังมีปุ่ม Power (เป็นประเพณีที่สืบทอดกันมาตั้งแต่ต้น)
Stuart P. Bentley

1
คำตอบที่ดีฉันเรียนรู้อย่างมาก หนึ่งคำถามยังคงอยู่: จากมุมมองของมาเธอร์บอร์ดความแตกต่างระหว่างรัฐ S4 และ G2 คืออะไร? การบันทึก RAM ลงดิสก์นั้นดำเนินการโดย OS ดังนั้น S4 จะฟังดูคล้ายกับ "soft off" สำหรับฮาร์ดแวร์
EMP

1
ฉันเชื่อว่า S4 นั้นใช้งานได้เทียบเท่า G2 แต่ความแตกต่างถูกเก็บไว้ BIOS บางตัวดูเหมือนจะทำ "POST ด่วน" เมื่อเริ่มต้นจาก S4 แต่ POST เต็มเมื่อเริ่มจาก G2 ฉันไม่คิดว่าจะมีเหตุผลสำหรับเรื่องนี้แม้ว่าคนอื่น ๆ ต้องการให้ประวัติย่อของ S4 นั้นรวดเร็ว
jcrawfordor

1
อันที่จริงแล้วค่อนข้างเรียบง่าย มีหลายวิธีที่ไม่ใช่ ACPI ในการรีคอมพิวเตอร์และบางครั้ง ACPI เพียงอย่างเดียวไม่ทำงาน: superuser.com/questions/294681/…
Tobu

81

นี่คือจุดเริ่มต้น:

ชิปมักจะไม่ปิดและเปิด มีเส้นรีเซ็ตซึ่งจะทำให้โปรเซสเซอร์อยู่ในสถานะที่เรียกว่ารีเซ็ตเมื่อโดยปกติแล้วหน่วยความจำทั้งหมดจะถูกล้างและโปรเซสเซอร์ดูเหมือนว่าเพิ่งเปิดเครื่อง ในขณะที่พินนั้นอยู่ในระดับสูง (หรือต่ำขึ้นอยู่กับโปรเซสเซอร์) โปรเซสเซอร์จะถูกรีเซ็ต เมื่อพินถูกปล่อยออกมามันจะทำการบูทต่อเนื่องตามปกติราวกับว่ามันถูกเปิดเป็นครั้งแรก ประเด็นนี้คือไม่มีการตัดไฟ

ดังนั้นขนาดนี้ถึงระบบที่ใหญ่กว่าเช่นพีซีรุ่นใหม่ได้อย่างไร คอมพิวเตอร์ที่ทันสมัยนั้นทำจากคอมพิวเตอร์ซึ่งบางครั้งก็ทำจากคอมพิวเตอร์เอง ดังนั้นเมื่อคุณตั้งค่าคอมพิวเตอร์ให้รีเซ็ต "คอมพิวเตอร์" ที่ทำให้คอมพิวเตอร์จะเริ่มบันทึกสถานะของพวกเขา (หากรีเซ็ตการควบคุม) หรือเพียงดึงหมุดรีเซ็ตของพวกเขา

โปรเซสเซอร์และไมโครคอนโทรลเลอร์บางตัว (ซึ่งเป็นคอมพิวเตอร์ขนาดเล็กในตัวซึ่งโดยปกติแล้วจะอยู่หลังคอมพิวเตอร์เดสก์ท็อปรุ่นใหม่ในระยะเวลา 20 ปี) สามารถรีเซ็ตตัวเองโดยใช้สวิตช์ภายใน อย่างที่ฉันบอกเมื่อสัญญาณที่สร้างการรีเซ็ตหายไปคอมพิวเตอร์จะเริ่มทำงาน ดังนั้นหลักฐานในคำถามไม่ถูกต้องสมบูรณ์ คอมพิวเตอร์ไม่รู้ว่าจะเปิดเมื่อใด เมื่อรู้ว่าจะต้องมีการ "ปิด" หรือในการรีเซ็ตและเมื่อสัญญาณที่ทำให้มันหายไปมันจะเปิด

พฤติกรรมนี้อาจดูแปลกในคอมพิวเตอร์สมัยใหม่ซึ่งสามารถกำหนดให้เปิดในเวลาที่กำหนดหรือผ่านเครือข่ายและอื่น ๆ อย่างที่ฉันบอกว่าคอมพิวเตอร์ทำจากคอมพิวเตอร์ ดังนั้นในขณะที่โปรเซสเซอร์หลักอาจปิดอยู่อาจมีชิปและไมโครคอนโทรลเลอร์อื่น ๆ จำนวนมากที่เปิดอยู่ กรณีที่ชัดเจนที่สุดคือนาฬิกาแบบเรียลไทม์ซึ่งมักใช้พลังงานจากแบตเตอรี่ จากนั้นสามารถเปิดชิปอื่นซึ่งจะเปิดชิปอื่น ๆ และปฏิกิริยาลูกโซ่จะดำเนินต่อไปจนกว่าคอมพิวเตอร์ทั้งหมดจะเปิด ในคอมพิวเตอร์ทุกวันนี้มีสาย PSU ที่เรียกว่าแรงดันสแตนด์บาย +5 VDC มันให้พลังงานประมาณ 50 mW ไปยังอุปกรณ์ต่าง ๆ ที่เปิดเมื่อคอมพิวเตอร์ "ปิด"

เรื่องเล็กน้อย: รีเซ็ตพินในโปรเซสเซอร์ Intel 386 EX เป็นหมายเลขพิน 110

แผ่นข้อมูล 386EX รูปที่ 2

ใน Intel i7-900 เป็นหมายเลขที่ดิน AL39

ฉันหวังว่าใครบางคนจะสามารถให้คำตอบซึ่งจะอธิบายว่าสิ่งต่าง ๆ ทำงานอย่างไรจากมุมมองระดับสูงเนื่องจากเป็นระบบที่ค่อนข้างซับซ้อน


ว้าวคำตอบอย่างละเอียด
Seth Carnegie

13
@ เซ็ท Carnegie มันไม่ได้ดีขนาดนั้น ฉันเพิ่งสัมผัสสิ่งระดับต่ำที่เป็นจริงสำหรับคอมพิวเตอร์ส่วนใหญ่จากตู้เย็นไปยังพีซี ฉันไม่ได้พูดถึง ACPI, APM และระบบพลังงานที่ทันสมัยอื่น ๆ หรือวิธีการที่พีซีเก่า Intel 8042 ไมโครคอนโทรลเลอร์ที่ควบคุมแป้นพิมพ์สามารถรีเซ็ตโปรเซสเซอร์วิธีการทำงานของ POST รีเซ็ตเวกเตอร์และสิ่งอื่น ๆ อีกมากมาย
AndrejaKo

1
@netvope มากเกินกว่าจะจินตนาการได้ คุณอาจมีอย่างน้อยหนึ่งในเมาส์ของคุณหนึ่งในแป้นพิมพ์มากกว่า 10 สำหรับชิ้นส่วนพื้นฐานที่สุดของเมนบอร์ด (แม้ว่าเราจะคำนึงถึง "ชิปเซ็ต" แบบบูรณาการสูง) อาจเป็นหนึ่งในหน่วยจ่ายไฟอย่างน้อยหนึ่ง ในแต่ละไดรฟ์ (มีแนวโน้มมากขึ้น 2-3) การ์ดต่อขยายหลายอัน ... จอภาพเป็นธุรกิจที่จริงจังเช่นกันและเครื่องพิมพ์ของฉันมี RAM มากกว่าคอมพิวเตอร์เดสก์ท็อปเครื่องแรกของฉัน
AndrejaKo

4
เมื่อพูดถึงหน่วยความจำแคชของฮาร์ดดิสก์ใหม่และซีพียูใหม่นั้นใหญ่กว่า RAM ของคอมพิวเตอร์เครื่องแรกที่ฉันใช้ ตอนนี้เราสามารถเรียกใช้Windows 95ทั้งหมดในแคช L2 และเก็บพาร์ติชันระบบทั้งหมดในแคชไดรฟ์!
netvope

27

โพสต์บล็อกนี้อธิบายถึงวิธีที่ Linux ทริกเกอร์การรีบูต

ข้อความที่ตัดตอนมา:

Linux มีหลายวิธีในการรีเซ็ต x86 บางส่วนของพวกเขาเป็น 32 บิตเท่านั้นและดังนั้นฉันจะไม่สนใจพวกเขาเพราะสุจริตเพียงแค่สิ่งที่คุณทำกับชีวิตของคุณ นอกจากนี้พวกเขายังน่ากลัว นั่นทำให้เรามีห้าคน

  • kbd - รีบูตผ่านตัวควบคุมแป้นพิมพ์ พีซี IBM ดั้งเดิมมีบรรทัดรีเซ็ต CPU เชื่อมโยงกับคอนโทรลเลอร์ของแป้นพิมพ์ การเขียนค่าเวทย์มนตร์ที่เหมาะสมจะกะพริบบรรทัดและรีเซ็ตเครื่อง ทั้งหมดนี้ตรงไปตรงมามากยกเว้นเครื่องที่ทันสมัยไม่มีตัวควบคุมแป้นพิมพ์ (จริง ๆ แล้วพวกเขาเป็นส่วนหนึ่งของตัวควบคุมที่ฝังตัว) และยิ่งกว่านั้นเครื่องจักรที่ทันสมัยมากขึ้นไม่ได้หลอกว่ามีตัวควบคุมแป้นพิมพ์ ตอนนี้ตัวควบคุมแบบฝังจะเรียกใช้ซอฟต์แวร์ และอย่างที่เรารู้กันดีว่าซอฟต์แวร์นั้นน่ากลัว แต่ยิ่งแย่ไปกว่านั้นซอฟต์แวร์ในตัวควบคุมแบบฝังตัวนั้นเขียนขึ้นโดยผู้เขียน BIOS เห็นได้ชัดว่าข้ออ้างใด ๆ ที่ว่าสิ่งนี้ได้ผลเป็นนิยายที่ประณีต เครื่องบางรุ่นค่อนข้างพิถีพิถันเกี่ยวกับฮาร์ดแวร์ที่อยู่ในสถานะที่แน่นอนว่า Windows จะเขียนโปรแกรม เครื่องบางเครื่องทำงานได้ 9 เท่าจาก 10 ครั้งจากนั้นล็อคเนื่องจากปัญหาเวลาผิดปกติ และคนอื่นก็ไม่ทำงานเลย เย่!

  • สามเท่า - พยายามสร้างความผิดสามประการ สิ่งนี้ทำได้โดยการโหลดตารางตัวอธิบายอินเทอร์รัปต์ว่างแล้วเรียกใช้ int (3) การขัดจังหวะล้มเหลว (ไม่มี IDT) ตัวจัดการความผิดพลาดล้มเหลว (ไม่มี IDT) และ CPU เข้าสู่เงื่อนไขที่ควรในทางทฤษฎีแล้วทริกเกอร์การรีเซ็ต ยกเว้นดูเหมือนจะไม่ได้มีข้อกำหนดว่าจะเกิดขึ้นและมันก็ไม่ได้ทำงานในหลาย ๆ เครื่อง

  • pci - ไม่ใช่ pci จริง ๆ การเข้าถึงพื้นที่ปรับแต่ง PCI แบบดั้งเดิมนั้นทำได้โดยการเขียนค่า 32 บิตไปยังพอร์ต io 0xcf8 เพื่อระบุบัสอุปกรณ์ฟังก์ชั่นและลงทะเบียนการกำหนดค่า พอร์ต 0xcfc จะมีการลงทะเบียนในคำถาม แต่ถ้าคุณเขียนค่าเวทย์มนตร์ที่เหมาะสมลงใน 0xcf9 เครื่องจะรีบูต งดงาม! และไม่ได้มาตรฐานในทางใดทางหนึ่ง (แน่นอนไม่ได้เป็นส่วนหนึ่งของข้อมูลจำเพาะ PCI) ดังนั้นชิปเซ็ตที่แตกต่างกันอาจมีความต้องการที่แตกต่างกัน Booo

  • efi - บริการรันไทม์ของ EFI เป็นจุดเริ่มต้นเพื่อรีบูตเครื่อง มันมักจะใช้งานได้! ตราบใดที่บริการของ EFI รันไทม์สามารถทำงานได้ทั้งหมด

  • acpi - ข้อมูลจำเพาะ ACPI เวอร์ชันล่าสุดช่วยให้คุณสามารถระบุที่อยู่ (โดยทั่วไปคือหน่วยความจำหรือพื้นที่ IO ระบบ) และค่าที่จะเขียน แนวคิดคือการเขียนค่าไปยังที่อยู่จะรีเซ็ตระบบ ปรากฎว่าการทำเช่นนั้นล้มเหลวบ่อยครั้ง นอกจากนี้ยังเป็นไปไม่ได้ที่จะเป็นตัวแทนของวิธีการรีบูต PCI ผ่าน ACPI เนื่องจากวิธีการรีบูต PCI ต้องใช้คู่ของค่าและ ACPI ให้เพียงวิธีเดียว


15
สิ่งนี้มีความเกี่ยวข้อง แต่คำตอบจะมีประโยชน์มากขึ้นถ้าคุณใส่ข้อความที่ตัดตอนมาจากข้อมูลของหน้าอื่นที่นี่
calvinf

1
tl; dr มีหลายวิธีในการรีบูต บอร์ดบางอันพังทลายไม่ดีพอที่ทำเป็นหน้าต่างการเรียนรู้ที่เกี่ยวข้องกับการพยายามสักสองสามครั้งและนอนหลับนิดหน่อยเป็นหนทางเดียวเท่านั้น
Tobu

10

มันทำให้เกิดตำแหน่ง I / O ซึ่งดึงสายข้อมูลต่ำซึ่งบอก CPU ว่าควรหยุดสิ่งที่กำลังทำและเริ่มเรียกใช้รหัสจากตำแหน่งที่แน่นอนใน BIOS


... และตำแหน่งนั้นถูกระบุในรหัสที่ส่งผ่านไปยังการเริ่มระบบใหม่หรือไม่
Knight Samar

1
@Knight Samar: ไม่; ตำแหน่ง I / O โดยทั่วไปเป็นค่าคงที่ของสถาปัตยกรรมซึ่งเคอร์เนลรู้ คุณสามารถเห็นสิ่งนี้ได้เช่นในโค้ดรีบูต Linux เช่น arch / x86 / kernel / reboot.c
sleske

ไม่มีใครมีแหล่งข้อมูลที่ดีสำหรับการอ่านเพิ่มเติมในเรื่องนั้น?
matthias krull

@ mugen.kenichi และเพื่อนให้สิ่งนี้กับฉันเพื่ออ้างถึง howstuffworks.com/bios.htm/printable
Knight Samar

ผมขอแนะนำให้superuser.com/a/347115/38062
JdeBP

10

ย้อนกลับไปในอดีตก่อนการจัดการพลังงานคอมพิวเตอร์ยังคงสามารถรีสตาร์ทตัวเองได้แน่นอน (ใครจำได้เมื่อโปรแกรมแช่แข็งหมายความว่าคุณต้องใช้ Ctrl + Alt + Delete เพื่อรีบูตคอมพิวเตอร์หรือไม่)

ใน 486 เก่าของฉันคำสั่งภาษาแอสเซมบลีJMP FFFF:0000(เช่นตั้งค่า Instruction Pointer ของ CPU เป็นที่อยู่ที่ระบุไว้) จะทำให้คอมพิวเตอร์ทั้งเครื่องเริ่มต้นใหม่ กล่าวอีกนัยหนึ่ง FFFF: 0000 กล่าวถึงตำแหน่งใน BIOS ที่มีคำแนะนำว่าคอมพิวเตอร์ควรทำอย่างไรเมื่อเริ่มครั้งแรก ฉันสงสัยว่ารีเซ็ตพินที่อธิบายโดยคำตอบของ AndrejaKo หรือปุ่มรีเซ็ตในวันก่อนการจัดการพลังงานก็จะบังคับให้ Instruction Pointer ชี้ไปยังที่อยู่เดียวกัน

การค้นหา JMP FFFF: 0000 ของ Googleเผยให้เห็นหน้าเว็บที่น่าสนใจมากมายเกี่ยวกับเรื่องนี้


3
คุณต้องเขียนค่าเฉพาะไปที่ 0040: 0072 เพื่อตรวจสอบว่าเป็นหวัด (0x0000) หรือบูตอบอุ่น (0x1234)
Synetech

9

นอกจากนี้ยังมีสิ่งที่ชื่อว่าสุนัขเฝ้าบ้าน อุปกรณ์นี้ทำหน้าที่เป็นสวิตช์ของคนตาย คอมพิวเตอร์ต้องส่งสัญญาณไปยังสุนัขเฝ้าบ้านทุก ๆ นาทีว่ามันยังมีชีวิตอยู่ เมื่อคอมพิวเตอร์ขัดข้องเช่นโดยการวนซ้ำไม่รู้จบมันจะไม่ส่งสัญญาณไปยังสุนัขเฝ้าบ้านมันยังคงทำงานตามที่ตั้งใจไว้ในกรณีที่สุนัขเฝ้าบ้านจะทำการรีเซ็ตฮาร์ดแวร์ เรื่องนี้แสดงให้เห็นในทีวีซีรีส์ยอดนิยมของเทอร์มินอลที่หุ่นยนต์ถูกกระแทกด้วยกระแสไฟฟ้าแรงสูง มันจะรีเซ็ตตัวเองใน 2 นาที


2
สิ่งนี้ถูกต้อง แต่ไม่ได้ตอบคำถามจริงๆ
sleske

4
มีสุนัขเฝ้าบ้านที่จะรีสตาร์ทคอมพิวเตอร์ทั้งหมดหรือไม่ ฉันรู้ว่าบางครั้งพวกเขาจะใช้สำหรับไมโครคอนโทรลเลอร์ต่าง ๆ ภายในคอมพิวเตอร์ แต่มีหนึ่งในระดับคอมพิวเตอร์ทั้งหมดหรือไม่ ประสบการณ์ส่วนตัวของฉันทำให้ฉันต้องบอกว่าไม่มี แต่หลักฐานบางอย่างสำหรับหรือต่อต้านจะยินดี
AndrejaKo

5
@AndrejaKo: ฉันเคยทำงานให้กับ บริษัท ที่สร้างเซิร์ฟเวอร์การสื่อสาร (โดยพื้นฐานแล้วเบลดเซิร์ฟเวอร์ที่มีโมเด็มเชื่อมต่อกับพวกเขา) พวกเขามีตัวจับเวลาจ้องจับผิดที่เชื่อมต่อกับหมุดรีเซ็ตบนเมนบอร์ด ตัวจับเวลาถูกกระแทกเป็นระยะโดยยูทิลิตี้แบ็คกราวน์ที่ทำงานบนเมนบอร์ดดังนั้นหากโปรเซสเซอร์หยุดทำงานจ้องจับผิดจะกดปุ่มรีเซ็ตในที่สุด มันเชื่อมโยงกับวงจรที่ทำให้สายโทรศัพท์ไม่ว่างในขณะที่แผงวงจรหลักรีบูต
Robert Harvey

4

ย้อนกลับไปที่ IBM PC-1 บนคอนโทรลเลอร์แป้นพิมพ์ซึ่งแปลกพอที่จะจัดการรีบูตได้ IBM ฝังไมโครโปรเซสเซอร์ขนาดเล็กเพื่อจัดการกับคีย์บอร์ดและมีบางบรรทัด I / O ดังนั้นพวกเขาจึงใช้หนึ่งในบรรทัดเพื่อขับสายรีเซ็ตของ CPU หลัก คำสั่งที่ส่งไปยังคอนโทรลเลอร์ของแป้นพิมพ์จะส่งผลให้ CPU ถูกรีเซ็ตเหมือนกำลังเปิดอยู่

ฉันเดาว่าประเพณีนี้ยังคงดำเนินต่อไปได้ดีในยุค "AT" และอาจมีร่องรอยของมันอยู่ใน ACPI วันนี้

เพิ่ม: มีรายละเอียดที่น่าสนใจเกี่ยวกับรูปแบบการรีเซ็ตด้านบน ในระหว่างลำดับการบูตในช่วงต้นรหัสจะค้นหารูปแบบเฉพาะใน RAM ที่อาจถูกตั้งค่าโดยรหัสการเรียกใช้ก่อนหน้านี้ หากรหัสนี้แสดงการวินิจฉัย POST (การทดสอบตัวเองเมื่อเปิดเครื่อง) บางส่วนก็ถูกข้ามไป รูปแบบจะปรากฏในการบูต "อบอุ่น" เท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.