ข้ามไปเนื้อหา

บูตโหลดเดอร์

จากวิกิพีเดีย สารานุกรมเสรี
GNU GRUB เป็นบูตโหลดเดอร์โอเพ่นซอร์ซยอดนิยม
บูตโหลดเดอร์ของวินโดวส์

บูตโหลดเดอร์ (อังกฤษ: bootloader, boot loader[1][2]) หรือ บูตแมเนเจอร์ (อังกฤษ: boot manager[2]) หรือ บูตสแตร็ปโหลดเดอร์ (อังกฤษ: bootstrap loader) เป็นโปรแกรมคอมพิวเตอร์ที่ทำหน้าที่บูตหรือปลุกเครื่องคอมพิวเตอร์

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

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

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

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

เชิงอรรถและอ้างอิง

[แก้]
  1. "GNU GRUB - GNU Project - Free Software Foundation (FSF)". www.gnu.org. สืบค้นเมื่อ 2021-09-27.
  2. 2.0 2.1 "systemd-boot". www.freedesktop.org. สืบค้นเมื่อ 2021-09-27.

แหล่งข้อมูลอื่น

[แก้]