อ่าน 8 นาที
บูตโหลดเดอร์
บูต โหลดเดอร์ หรือเขียนอีกแบบว่า บูตโหลดเดอร์ [ 1 ] [ 2 ] หรือเรียกว่า บูตสแตรปโหลดเดอร์ คือ โปรแกรมคอมพิวเตอร์ ที่มีหน้าที่ใน การบูต คอมพิวเตอร์และบูตระบบปฏิบัติการ...
บูตโหลดเดอร์



บูตโหลดเดอร์หรือเขียนอีกแบบว่าบูตโหลดเดอร์[ 1 ] [ 2 ]หรือเรียกว่าบูตสแตรปโหลดเดอร์คือโปรแกรมคอมพิวเตอร์ที่มีหน้าที่ในการบูตคอมพิวเตอร์และบูตระบบปฏิบัติการ หากมีเมนูแบบโต้ตอบพร้อมตัวเลือกการบูตหลายรายการ ก็มักจะเรียกว่าบูต แมเนเจอร์[ 2 ]
เมื่อปิดเครื่องคอมพิวเตอร์ ซอฟต์แวร์ของเครื่อง—รวมถึงระบบปฏิบัติการ รหัสแอปพลิเคชัน และข้อมูล—จะยังคงถูกจัดเก็บไว้ในหน่วยความจำแบบไม่ลบเลือน (non-volatile memory ) เมื่อเปิดเครื่องคอมพิวเตอร์ โดยทั่วไปแล้วจะไม่มีระบบปฏิบัติการหรือตัวโหลดอยู่ในหน่วยความจำแบบเข้าถึงโดยสุ่ม (RAM) คอมพิวเตอร์จะเรียกใช้โปรแกรมขนาดเล็กที่จัดเก็บไว้ในบูตรอม (boot ROM ) ซึ่งเป็นหน่วยความจำแบบอ่านอย่างเดียว (ROM และต่อมา คือ EEPROM , NOR flash ) พร้อมกับข้อมูลที่จำเป็นบางส่วน เพื่อเริ่มต้นอุปกรณ์ฮาร์ดแวร์ เช่น CPU เมนบอร์ด หน่วยความจำ หน่วยเก็บข้อมูล และอุปกรณ์ I/O อื่นๆ เพื่อเข้าถึงอุปกรณ์แบบไม่ลบเลือน (โดยปกติจะเป็นอุปกรณ์แบบบล็อกเช่น NAND flash) หรืออุปกรณ์ต่างๆ ที่สามารถโหลดโปรแกรมระบบปฏิบัติการและข้อมูลเข้าไปใน RAM ได้
ระบบคอมพิวเตอร์รุ่นก่อนๆ บางระบบ เมื่อได้รับสัญญาณบูตจากผู้ใช้งานหรืออุปกรณ์ต่อพ่วง อาจโหลดคำสั่งคงที่จำนวนเล็กน้อยลงในหน่วยความจำ ณ ตำแหน่งที่กำหนด เริ่มต้นการทำงานของซีพียูอย่างน้อยหนึ่งตัว จากนั้นชี้ซีพียูไปยังคำสั่งเหล่านั้นและเริ่มการประมวลผล คำสั่งเหล่านี้โดยทั่วไปจะเริ่มต้นการทำงานของการป้อนข้อมูลจากอุปกรณ์ต่อพ่วงบางอย่าง (ซึ่งผู้ใช้งานอาจเลือกได้ด้วยสวิตช์) ระบบอื่นๆ อาจส่งคำสั่งฮาร์ดแวร์โดยตรงไปยังอุปกรณ์ต่อพ่วงหรือตัวควบคุม I/O ซึ่งทำให้มีการดำเนินการป้อนข้อมูลที่ง่ายมาก (เช่น "อ่านเซกเตอร์ศูนย์ของอุปกรณ์ระบบลงในหน่วยความจำโดยเริ่มต้นที่ตำแหน่ง 1000") ซึ่งเป็นการโหลดคำสั่งบูตโหลดเดอร์จำนวนเล็กน้อยลงในหน่วยความจำอย่างมีประสิทธิภาพ จากนั้นสัญญาณการเสร็จสิ้นจากอุปกรณ์ I/O อาจถูกใช้เพื่อเริ่มต้นการประมวลผลคำสั่งโดยซีพียู
คอมพิวเตอร์ขนาดเล็กมักใช้กลไกบูตโหลดเดอร์ที่มีความยืดหยุ่นน้อยกว่าแต่เป็นแบบอัตโนมัติมากกว่า เพื่อให้แน่ใจว่าคอมพิวเตอร์เริ่มต้นได้อย่างรวดเร็วและด้วยการกำหนดค่าซอฟต์แวร์ที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่น ในคอมพิวเตอร์เดสก์ท็อปหลายเครื่อง กระบวนการบูตสแตรปเริ่มต้นด้วยซีพียูที่ประมวลผลซอฟต์แวร์ที่อยู่ใน ROM (ตัวอย่างเช่นBIOS / ระบบอินพุตเอาต์พุตพื้นฐานของIBM PCหรือคอมพิวเตอร์ที่เข้ากันได้กับ IBM PC ) ที่ตำแหน่งที่กำหนดไว้ล่วงหน้า (ซีพียูบางตัว รวมถึงซีรี่ส์ Intel x86ได้รับการออกแบบให้ประมวลผลซอฟต์แวร์นี้หลังจากรีเซ็ตโดยไม่ต้องอาศัยความช่วยเหลือจากภายนอก) ซอฟต์แวร์นี้มีฟังก์ชันพื้นฐานในการค้นหาอุปกรณ์ที่มีคุณสมบัติเหมาะสมที่จะเข้าร่วมในการบูต และโหลดโปรแกรมขนาดเล็กจากส่วนพิเศษ (โดยทั่วไปคือเซกเตอร์บูต ) ของอุปกรณ์ที่มีแนวโน้มมากที่สุด โดยปกติจะเริ่มต้นที่จุดเริ่มต้น คงที่ เช่น จุดเริ่มต้นของเซกเตอร์
บูตโหลดเดอร์ขั้นแรก
ตัวอย่างของบูตโหลดเดอร์ขั้นแรก ได้แก่BIOS , UEFI , coreboot , LibrebootและDas U-Boot บูตโหลด เดอร์ขั้นแรก จะเริ่มต้นการทำงานของอุปกรณ์ฮาร์ดแวร์ต่างๆ เช่น CPU, เมนบอร์ด, หน่วยความจำ, หน่วยเก็บข้อมูล และอุปกรณ์ I/O อื่นๆ
บูตโหลดเดอร์ขั้นที่สอง
โปรแกรมบูตโหลดเดอร์ขั้นที่สอง เช่นGNU GRUB , rEFInd , BOOTMGR , SyslinuxและNTLDRไม่ใช่ระบบปฏิบัติการในตัวเอง แต่สามารถโหลดระบบปฏิบัติการได้อย่างถูกต้องและถ่ายโอนการทำงานไปยังระบบปฏิบัติการนั้น จากนั้นระบบปฏิบัติการจะเริ่มต้นตัวเองและอาจโหลดไดรเวอร์ อุปกรณ์ เพิ่มเติม
การใช้งานในขั้นที่สองอาจรวมถึงอินเทอร์เฟซผู้ใช้แบบโต้ตอบ ซึ่งอนุญาตให้เลือกตัวเลือกการบูตและแก้ไขพารามิเตอร์ โดยจะจัดการการโหลดเคอร์เนล รวมถึงการประมวลผล ภาพ initrd/initramfsและสามารถส่งพารามิเตอร์การบูตไปยังเคอร์เนลได้ หลายระบบใช้การออกแบบแบบโมดูลาร์ที่รองรับโมดูลที่โหลดได้สำหรับฟังก์ชันเพิ่มเติม ตัวเลือกเหล่านี้อาจรวมถึงระบบปฏิบัติการที่แตกต่างกัน (สำหรับการบูตแบบคู่หรือหลายระบบจากพาร์ติชันหรือไดรฟ์ที่แตกต่างกัน) เวอร์ชันที่แตกต่างกันของระบบปฏิบัติการเดียวกัน (ในกรณีที่เวอร์ชันใหม่มีปัญหาที่ไม่คาดคิด) ตัวเลือกการโหลดระบบปฏิบัติการที่แตกต่างกัน (เช่น การบูตเข้าสู่โหมดกู้คืนหรือโหมดปลอดภัย ) และโปรแกรมแบบสแตนด์อโลนบางโปรแกรมที่สามารถทำงานได้โดยไม่ต้องใช้ระบบปฏิบัติการ เช่น โปรแกรมทดสอบหน่วยความจำ (เช่นmemtest86+ ) เชลล์พื้นฐาน (เช่นใน GNU GRUB) หรือแม้แต่เกม (ดูรายชื่อเกมบูตพีซี ) [ 3 ]บูตโหลดเดอร์บางตัวยังสามารถโหลดบูตโหลดเดอร์อื่นได้ ตัวอย่างเช่น GRUB โหลด BOOTMGR แทนที่จะโหลด Windows โดยตรง โดยปกติแล้ว ตัวเลือกเริ่มต้นจะถูกเลือกไว้ล่วงหน้าโดยมีช่วงเวลาหน่วงซึ่งผู้ใช้สามารถกดปุ่มเพื่อเปลี่ยนตัวเลือกได้ หลังจากช่วงเวลาหน่วงนี้ ระบบจะเรียกใช้ตัวเลือกเริ่มต้นโดยอัตโนมัติ เพื่อให้การบูตเครื่องเป็นไปตามปกติโดยไม่ต้องมีการโต้ตอบใดๆ นอกจากนี้ยังอาจจัดการการบีบอัดข้อมูล การตรวจสอบการเข้ารหัส และการโหลดบูตโหลดเดอร์อื่นๆ ต่อเนื่องกัน กระบวนการบูตจะถือว่าเสร็จสมบูรณ์เมื่อคอมพิวเตอร์พร้อมที่จะโต้ตอบกับผู้ใช้ หรือระบบปฏิบัติการสามารถเรียกใช้โปรแกรมระบบหรือโปรแกรมแอปพลิเคชันได้
ตัวอย่าง
คอมพิวเตอร์ส่วนบุคคลที่เข้ากันได้กับ IBM
BIOS รุ่นเก่า
ในคอมพิวเตอร์x86 หลังจากที่ BIOSทำการทดสอบตัวเองเมื่อเปิดเครื่อง (Power-On Self Test ) แล้ว มันจะเรียกใช้บูตโหลดเดอร์ขั้นแรก ซึ่งเป็นโปรแกรมขนาดเล็ก 512 ไบต์ ที่อยู่ในมาสเตอร์บูตเรคคอร์ด (MBR) โดยทำงานในโหมดเรียล 16 บิตที่แอดเดรส 0x7C00 และค้นหาบูตโหลดเดอร์ขั้นที่สอง ความท้าทายหลักอยู่ที่การทำงานเหล่านี้ให้สำเร็จภายใต้ข้อจำกัดด้านขนาดที่เข้มงวด ในขณะเดียวกันก็ต้องจัดการกับความล้มเหลวของฮาร์ดแวร์ที่อาจเกิดขึ้นได้ บูตโหลดเดอร์ต้องนำทางโครงสร้างของดิสก์ ซึ่งมักจะใช้ระบบไฟล์ FATและจัดการการเปลี่ยนผ่านที่ละเอียดอ่อนจากสถานะเริ่มต้นของ BIOS ไปสู่สภาพแวดล้อมที่เสถียรสำหรับขั้นตอนการบูตถัดไป
ตัวโหลดบูต MBR ขั้นแรกอาจเผชิญกับข้อจำกัดที่แปลกประหลาด โดยเฉพาะอย่างยิ่งในเรื่องขนาด ตัวอย่างเช่น ใน IBM PC รุ่นก่อนๆ และคอมพิวเตอร์ที่เข้ากันได้ เซกเตอร์บูตโดยทั่วไปควรทำงานด้วยโค้ด 510 ไบต์ (หรือน้อยกว่า) และใช้หน่วยความจำระบบเพียง 32 KiB [ 4 ] [ 5 ] (ต่อมาผ่อนปรนเป็น 64 KiB [ 6 ] ) และใช้เฉพาะคำสั่งที่รองรับโดยโปรเซสเซอร์8088 / 8086 รุ่นดั้งเดิมเท่านั้น ตัวโหลดบูตขั้นแรกของพีซี (FSBL, first-stage boot loader) ที่อยู่บนฮาร์ดดิสก์และไดรฟ์แบบถอดได้ ต้องมีขนาดพอดีกับ 446 ไบต์แรกของมาสเตอร์บูตเรคคอร์ดเพื่อให้มีพื้นที่สำหรับตารางพาร์ติชัน เริ่มต้นขนาด 64 ไบต์ที่มีรายการพาร์ติชันสี่รายการและ ลายเซ็นบูตสองไบต์ซึ่ง BIOS ต้องการสำหรับตัวโหลดบูตที่ถูกต้อง หรืออาจมีขนาดเล็กกว่านั้น หากต้องรองรับคุณสมบัติเพิ่มเติม เช่น รายการพาร์ติชันมากกว่าสี่รายการ (สูงสุด 16 รายการ โดยแต่ละรายการมีขนาด 16 ไบต์) ลายเซ็นดิสก์ (6 ไบต์) การประทับเวลาของดิสก์ (6 ไบต์) พาร์ติชันแอคทีฟขั้นสูง (18 ไบต์) หรือ ตัวโหลด บูตหลายตัว แบบพิเศษ ในบางสภาพแวดล้อม
ในรีคอร์ดบูตของวอลุ่มฟลอปปี้และซูเปอร์ฟลอปปี้ พื้นที่สูงสุด 59 ไบต์ถูกใช้สำหรับบล็อกพารามิเตอร์ BIOS แบบขยาย (EBPB) บน วอลุ่ม FAT12และFAT16ตั้งแต่ DOS 4.0 ในขณะที่ EBPB ของ FAT32ที่เปิดตัวพร้อมกับ DOS 7.1 ต้องการพื้นที่ถึง 87 ไบต์ ทำให้เหลือพื้นที่เพียง 423 ไบต์สำหรับบูตโหลดเดอร์เมื่อสมมติขนาดเซกเตอร์ 512 ไบต์ ดังนั้น เซกเตอร์บูตของ Microsoft จึงกำหนดข้อจำกัดบางประการในกระบวนการบูต ตัวอย่างเช่น ไฟล์บูตต้องอยู่ในตำแหน่งคงที่ในไดเร็กทอรีรากของระบบไฟล์และจัดเก็บไว้ภายในเซกเตอร์ที่ต่อเนื่องกัน[ 7 ] [ 8 ]เงื่อนไขเหล่านี้ได้รับการดูแลโดยคำสั่งและผ่อนคลายลงเล็กน้อยใน DOS เวอร์ชันต่อมา[ 8 ] [ nb 1 ]จากนั้นบูตโหลดเดอร์จะสามารถโหลดสามเซกเตอร์แรกของไฟล์ลงในหน่วยความจำ ซึ่งบังเอิญมีบูตโหลดเดอร์แบบฝังตัวอีกตัวที่สามารถโหลดส่วนที่เหลือของไฟล์ลงในหน่วยความจำได้[ 8 ]เมื่อ Microsoft เพิ่มการกำหนดแอดเดรสบล็อกเชิงตรรกะ (LBA) และการสนับสนุน FAT32 พวกเขาเปลี่ยนไปใช้บูตโหลดเดอร์ที่เข้าถึงเซกเตอร์ ทางกายภาพ สองเซกเตอร์ โดยใช้คำสั่ง 386 ด้วยเหตุผลด้านขนาด ในขณะเดียวกัน ผู้จำหน่ายรายอื่น ๆ ก็สามารถบีบฟังก์ชันการทำงานจำนวนมากเข้าไปในเซกเตอร์บูตเดียวได้โดยไม่ต้องผ่อนปรนข้อจำกัดเดิมเกี่ยวกับหน่วยความจำขั้นต่ำที่มีอยู่ (32 KiB) และการสนับสนุนโปรเซสเซอร์ (8088/8086) [ nb 2 ]ตัวอย่างเช่น เซกเตอร์บูตของ DR-DOS สามารถค้นหาไฟล์บูตในระบบไฟล์ FAT12, FAT16 และ FAT32 และโหลดลงในหน่วยความจำทั้งหมดผ่านCHSหรือ LBA แม้ว่าไฟล์จะไม่ได้จัดเก็บไว้ในตำแหน่งคงที่และในเซกเตอร์ที่ต่อเนื่องกันก็ตาม[ 9 ] [ 4 ] [ 10 ] [ 11 ] [ 12 ] [ nb 3 ] [ nb 2 ]SYS
ในคอมพิวเตอร์ x86 บูตโหลดเดอร์ขั้นที่สอง เช่นPBRทำงานโดยไม่มีข้อจำกัดที่เข้มงวด 512 ไบต์เหมือนกับบูตโหลดเดอร์ขั้นแรก บูตโหลดเดอร์ขั้นที่สองทำงานในสภาพแวดล้อมที่ซับซ้อนกว่า โดยทั่วไปมีขนาดตั้งแต่ 8KB ถึงหลายเมกะไบต์ พื้นที่ที่ขยายออกไปนี้ช่วยให้สามารถใช้งานคุณสมบัติที่ซับซ้อนได้ เช่น การสนับสนุนระบบไฟล์ การกำหนดค่ารันไทม์ และอินเทอร์เฟซเมนูบูตโหลดเดอร์ บูตโหลดเดอร์ขั้นที่สองไม่จำเป็นต้องใช้ไดรเวอร์ในการทำงานของตัวเอง แต่สามารถใช้วิธีการเข้าถึงพื้นที่จัดเก็บข้อมูลทั่วไปที่จัดหาโดยเฟิร์มแวร์ของระบบ เช่น BIOS แทนได้ แม้ว่าโดยทั่วไปจะมีฟังก์ชันฮาร์ดแวร์ที่จำกัดและประสิทธิภาพที่ต่ำกว่าก็ตาม[ 13 ]
ในคอมพิวเตอร์ x86 บูตโหลดเดอร์ขั้นที่สามประกอบด้วย IO.SYS , NTLDR , BOOTMGRและGRUB
ยูอีเอฟไอ
UEFI (ยกเว้นการบูต CSM) ไม่ได้อาศัยเซกเตอร์บูต แต่จะโหลดบูตโหลดเดอร์ขั้นถัดไป (เช่นBOOTMGRและGRUB2 ) จากพาร์ติชั่นระบบ EFIโดยตรง
IBM System/360 และระบบรุ่นต่อๆ มา
ในIBM System/360และระบบรุ่นต่อมาตัวควบคุมตัวดำเนินการLOAD จะเริ่มต้นกระบวนการที่เรียกว่าInitial Program Load (IPL) [ nb 4 ]ซึ่ง
- การรีเซ็ตระบบ
- ส่ง คำสั่ง อ่าน IPL (IPL) ของช่องสัญญาณ (02 16 ) ไปยังอุปกรณ์ที่เลือกเพื่ออ่านข้อมูล 24 ไบต์ลงในตำแหน่ง 0-23 และทำให้ช่องสัญญาณเริ่มดึงคำสั่งช่องสัญญาณ (CCW) ที่ตำแหน่ง 8 ผลที่ได้คือเหมือนกับว่าช่องสัญญาณได้ดึง CCW จากตำแหน่ง 0 ที่มีความยาว 24 ไบต์ ที่อยู่ 0 และแฟล็กที่มี Command Chaining + Suppress Length Indication
- เมื่อการดำเนินการเสร็จสิ้น ระบบจะจัดเก็บที่อยู่ I/O ไว้ในครึ่งเวิร์ดที่ตำแหน่ง 2 และโหลด PSW จากตำแหน่ง 0
ระบบปฏิบัติการสำหรับ S/360 ถึงz/Architectureทำงานบนอุปกรณ์จัดเก็บข้อมูลแบบเข้าถึงโดยตรง (DASD) เช่น ดิสก์ หรือดรัม สำหรับอุปกรณ์เหล่านี้ คำสั่งRead IPLจะทำการค้นหาไปยังกระบอกสูบ 0000 16หัวอ่าน 0000 16และกำหนดทิศทางไปยังเรคอร์ด 01 16สำหรับระบบปฏิบัติการที่รองรับทั้งหมด เรคอร์ด 01 16จะมีคำ สั่ง Read Data CCW เพื่ออ่านเรคอร์ดบูตสแตรปและคำสั่ง Transfer In Channel (TIC) CCW ไปยังบูตสแตรป โปรแกรมช่องสัญญาณในบูตสแตรปจะอ่านข้อความโปรแกรม IPL ลงในตำแหน่ง 0 โดยเริ่มต้นด้วย PSW ที่ชี้ไปยังคำสั่งข้อความโปรแกรม IPL ตัวแรก
สำหรับOS/360 [ nb 5 ] [ 14 ]โปรแกรม IPL จะทำการเริ่มต้นบางอย่าง ย้ายตำแหน่งตัวเอง ค้นหานิวเคลียส [ nb 6 ] [ nb 7 ]โหลดนิวเคลียสและถ่ายโอนไปยังโปรแกรมเริ่มต้นนิวเคลียส (NIP) เมื่อสิ้นสุดนิวเคลียส
บูตโหลดเดอร์แบบฝังตัวและแบบหลายขั้นตอน
ระบบฝังตัวจำนวนมากต้องเริ่มทำงานทันที ตัวอย่างเช่น การรอหนึ่งนาทีเพื่อให้โทรทัศน์ดิจิทัลหรืออุปกรณ์นำทาง GPSเริ่มทำงานนั้นโดยทั่วไปแล้วเป็นสิ่งที่ยอมรับไม่ได้ ดังนั้น อุปกรณ์ดังกล่าวจึงมีระบบซอฟต์แวร์อยู่ในหน่วยความจำ ROM หรือหน่วยความจำแฟลชเพื่อให้อุปกรณ์สามารถเริ่มทำงานได้ทันที ไม่จำเป็นต้องมีการโหลดข้อมูลมากนัก หรืออาจไม่จำเป็นเลย เพราะการโหลดสามารถคำนวณล่วงหน้าและจัดเก็บไว้ใน ROM ได้ตั้งแต่ขั้นตอนการผลิตอุปกรณ์
ระบบขนาดใหญ่และซับซ้อนอาจมีขั้นตอนการบูตที่ดำเนินการหลายขั้นตอนจนกระทั่งระบบปฏิบัติการและโปรแกรมอื่นๆ โหลดเสร็จและพร้อมใช้งาน เนื่องจากระบบปฏิบัติการถูกออกแบบมาเสมือนว่ามันจะไม่เริ่มต้นหรือหยุดทำงาน ตัวโหลดบูตอาจโหลดระบบปฏิบัติการ กำหนดค่าตัวเองให้เป็นเพียงกระบวนการหนึ่งภายในระบบนั้น แล้วจึงถ่ายโอนการควบคุมไปยังระบบปฏิบัติการอย่างถาวร จากนั้นตัวโหลดบูตก็จะสิ้นสุดการทำงานตามปกติเช่นเดียวกับกระบวนการอื่นๆ
การบูตผ่านเครือข่าย
คอมพิวเตอร์ส่วนใหญ่สามารถบูตผ่านเครือข่ายคอมพิวเตอร์ ได้เช่นกัน ในกรณีนี้ ระบบปฏิบัติการจะถูกจัดเก็บไว้ในดิสก์ของเซิร์ฟเวอร์และส่วนต่างๆ ของระบบจะถูกถ่ายโอนไปยังไคลเอ็นต์โดยใช้โปรโตคอลอย่างง่าย เช่นโปรโตคอลการถ่ายโอนไฟล์แบบง่าย (TFTP) หลังจากถ่ายโอนส่วนต่างๆ เสร็จแล้ว ระบบปฏิบัติการจะเข้าควบคุมกระบวนการบูต
เช่นเดียวกับบูตโหลดเดอร์ขั้นที่สอง การบูตผ่านเครือข่ายเริ่มต้นด้วยการใช้วิธีการเข้าถึงเครือข่ายทั่วไปที่จัดเตรียมโดยบูต ROM ของอินเทอร์เฟซเครือข่าย ซึ่งโดยทั่วไปจะมี อิมเมจ Preboot Execution Environment (PXE) อยู่ ไม่จำเป็นต้องใช้ไดรเวอร์ แต่ฟังก์ชันการทำงานของระบบจะถูกจำกัดจนกว่าเคอร์เนลของระบบปฏิบัติการและไดรเวอร์จะถูกถ่ายโอนและเริ่มต้นทำงาน ด้วยเหตุนี้ เมื่อการบูตแบบ ROM เสร็จสมบูรณ์แล้ว จึงเป็นไปได้ที่จะบูตผ่านเครือข่ายไปยังระบบปฏิบัติการที่ไม่มีความสามารถในการใช้งานอินเทอร์เฟซเครือข่าย
ดูเพิ่มเติม
หมายเหตุ
- คู่มือ PC DOS 5.0 ระบุอย่าง ไม่ถูกต้องว่าไฟล์ระบบไม่จำเป็นต้องอยู่ติดกันอีกต่อไป อย่างไรก็ตาม เพื่อให้กระบวนการบูตทำงานได้ ไฟล์ระบบยังคงต้องใช้พื้นที่ในสองรายการแรกของไดเร็กทอรี และสามเซกเตอร์แรกยังคงต้องจัดเก็บอยู่ติดกัน ระบบยังคงดูแลข้อกำหนดเหล่านี้ต่อไป
IBMBIO.COMSYS - ตัวอย่างเช่นในขณะที่ฟังก์ชันการทำงานเพิ่มเติมของMBRและบูตเซกเตอร์ของ DR-DOS เมื่อเทียบกับMS-DOS / PC DOSยังคงสามารถทำได้โดยใช้ เทคนิค การเพิ่มประสิทธิภาพโค้ด แบบดั้งเดิม จนถึงเวอร์ชัน 7.05แต่สำหรับการเพิ่มการสนับสนุนLBA , FAT32และLOADER เซกเตอร์ในเวอร์ชัน 7.07ต้องใช้โค้ดที่แก้ไขตัวเองได้ การเขียนโปรแกรมระดับ โอเปอเรเตอร์ การใช้ผลข้างเคียง อย่างควบคุม การทับซ้อนข้อมูล/โค้ดหลายระดับและ เทคนิค การพับ แบบอัลกอริทึม เพื่อบีบทุกอย่างลงในเซกเตอร์ทางกายภาพเดียว เนื่องจากเป็นข้อกำหนดสำหรับ ความเข้ากันได้ แบบย้อนหลังและข้ามระบบปฏิบัติการอื่น ๆ ในสถานการณ์การบูตหลายระบบและการโหลดแบบลูกโซ่
- ^มีข้อยกเว้นหนึ่งข้อสำหรับกฎที่ว่า DR-DOS VBRจะโหลดไฟล์ทั้งหมด
IBMBIO.COMลงในหน่วยความจำ: หากIBMBIO.COMไฟล์มีขนาดใหญ่กว่าประมาณ 29 KB การพยายามโหลดไฟล์ทั้งหมดลงในหน่วยความจำจะทำให้บูตโหลด เดอร์ เขียนทับสแต็กและ ตารางพารามิเตอร์ดิสก์ ที่ย้ายตำแหน่ง (DPT/FDPB) ดังนั้น DR-DOS 7.07 VBR จะโหลดเฉพาะ 29 KB แรกของไฟล์ลงในหน่วยความจำ โดยอาศัยโหลดเดอร์อื่นที่ฝังอยู่ในส่วนแรกIBMBIO.COMเพื่อตรวจสอบเงื่อนไขนี้และโหลดส่วนที่เหลือของไฟล์ลงในหน่วยความจำด้วยตัวเองหากจำเป็น ซึ่งจะไม่ก่อให้เกิดปัญหาความเข้ากันได้ เนื่องจากIBMBIO.COMขนาดของไฟล์ไม่เคยเกินขีดจำกัดนี้ในเวอร์ชันก่อนหน้าที่ไม่มีโหลดเดอร์นี้ เมื่อรวมกับโครงสร้างแบบสองรายการแล้ว ยังช่วยให้ระบบสามารถโหลดได้โดย PC DOS VBR ซึ่งจะโหลดเฉพาะสามเซกเตอร์แรกของไฟล์ลงในหน่วยความจำเท่านั้น - ^สำหรับ z/Architectureรายละเอียดจะแตกต่างออกไปเล็กน้อยเนื่องจากใช้แอดเดรส 64 บิต
- ^กระบวนการนี้มีความซับซ้อนมากขึ้นสำหรับระบบปฏิบัติการรุ่นต่อจาก OS/360 และมีความแตกต่างบางประการสำหรับระบบปฏิบัติการตระกูลอื่นๆ
- ^แกนกลางประกอบด้วยส่วนประกอบของระบบปฏิบัติการที่ต้องมีอยู่ในหน่วยความจำของโปรเซสเซอร์เสมอ โค้ดส่วนใหญ่เป็นโค้ดพิเศษ แต่ก็มีซับรูทีนที่โปรแกรมแอปพลิเคชันสามารถใช้งานได้ด้วย
- ^นิวเคลียสตั้งอยู่ในสมาชิก IEANUC0xของ SYS1.NUCLEUSบนวอลุ่ม IPL โดยที่ xปกติจะเป็น 1 แต่ผู้ใช้งานสามารถเปลี่ยนแปลงได้
ลิงก์ภายนอก
- บูตโหลดเดอร์ - วิกิ OSDev
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ บูตโหลดเดอร์
บูต โหลดเดอร์ หรือเขียนอีกแบบว่า บูตโหลดเดอร์ [ 1 ] [ 2 ] หรือเรียกว่า บูตสแตรปโหลดเดอร์ คือ โปรแกรมคอมพิวเตอร์ ที่มีหน้าที่ใน การบูต คอมพิวเตอร์และบูตระบบปฏิบัติการ...
บูตโหลดเดอร์ขั้นแรก
ตัวอย่างของบูตโหลดเดอร์ขั้นแรก ได้แก่ BIOS , UEFI , coreboot , Libreboot และ Das U-Boot บูตโหลด เดอร์ขั้นแรก จะเริ่มต้นการทำงานของอุปกรณ์ฮาร์ดแวร์ต่างๆ เช่น CPU, เมนบอร์ด, หน่วยความจำ, หน่วยเก็บข้อมูล และอุปกรณ์ I/O อื่นๆ
บูตโหลดเดอร์ขั้นที่สอง
โปรแกรมบูตโหลดเดอร์ขั้นที่สอง เช่น GNU GRUB , rEFInd , BOOTMGR , Syslinux และ NTLDR ไม่ใช่ระบบปฏิบัติการในตัวเอง แต่สามารถโหลดระบบปฏิบัติการได้อย่างถูกต้องและถ่ายโอนการทำงานไปยังระบบปฏิบัติการนั้น จากนั้นระบบปฏิบัติการจะเริ่มต้นตัวเองและอาจโหลดไดรเวอร์...
คอมพิวเตอร์ส่วนบุคคลที่เข้ากันได้กับ IBM
ในคอมพิวเตอร์ x86 หลังจากที่ BIOS ทำการ ทดสอบตัวเองเมื่อเปิดเครื่อง (Power-On Self Test ) แล้ว มันจะเรียกใช้บูตโหลดเดอร์ขั้นแรก ซึ่งเป็นโปรแกรมขนาดเล็ก 512 ไบต์ ที่อยู่ใน มาสเตอร์บูตเรคคอร์ด (MBR) โดยทำงานใน โหมดเรียล 16 บิต ที่แอดเดรส 0x7C00...