ความขัดแย้งระหว่างสิ่งที่คุณพูดเกี่ยวกับ bootloader ที่อยู่ใน ROM และมันอยู่ใน MBR อาจเป็นเพราะbootloaderถูกใช้สำหรับรหัสใด ๆ ที่ใช้งานวิธีการทำขั้นต่ำในการโหลดในรหัสเพื่อให้คอมพิวเตอร์ทำสิ่งที่มีประโยชน์รวมถึง สถานะในการบูตแบบหลายขั้นตอน
ดังนั้นสถานะเริ่มต้นคือการมีคอมพิวเตอร์ซึ่งเป็นอุปกรณ์ที่ตั้งโปรแกรมได้ แต่ไม่รู้ว่าจะโหลดซอฟต์แวร์ให้ทำงานได้อย่างไรเพราะไม่มีซอฟต์แวร์โหลดอยู่ (และด้วยเหตุนี้การบูตจากการดึงตัวเองขึ้นมาจาก bootstraps ของมัน )
ในอดีตมีวิธีแก้ไขปัญหานี้แตกต่างกันไปเล็กน้อย แต่วันนี้เราเริ่มต้นด้วยรหัสใน ROM (ส่วนใหญ่น่าจะเป็น EEPROM อย่างเคร่งครัด) ซึ่งเพียงพอที่จะให้มันดูอุปกรณ์ต่าง ๆ และลองใช้จนกว่าจะพบสิ่งที่ ที่สามารถบูตได้
(นี่คือสาเหตุที่หลาย ๆ ระบบจะบูตจากซีดีหรือดีวีดีหากคุณใส่ดิสก์ตัวติดตั้งระบบปฏิบัติการในและจากฮาร์ดไดรฟ์มิฉะนั้น BIOS [รหัสใน ROM รวมถึงรหัสที่เรากำลังพูดถึงและอื่น ๆ ที่ต่ำ - ระดับต่าง ๆ ที่เริ่มต้นใหม่] ถูกตั้งค่าให้ดูที่ไดรฟ์ CD / DVD ก่อนจากนั้นฮาร์ดไดรฟ์หากไม่พบสิ่งใด tweakers มักตั้งค่าให้ละเว้นไดรฟ์ CD / DVD เว้นแต่จะร้องขอด้วยตนเอง ไม่ต้องเสียเวลาหมุนดิสก์ที่ไม่สามารถบู๊ตได้ซึ่งอยู่ในไดรฟ์)
รหัสใน ROM นี้จัดอยู่ในบางครั้งเรียกว่าbootloader
เมื่อรู้ว่าต้องดูไดรฟ์อะไรมันจะดู MBR ซึ่งมีข้อมูลเกี่ยวกับพาร์ติชั่นหลัก - คุณจะดู / หรือ / boot หรือ C: / (ในระบบ Windows) ได้อย่างไรในภายหลัง ทราบว่าส่วนใดของดิสก์ที่พาร์ติชันใดไม่ทราบว่าแต่ละพาร์ติชันถูกเมาท์หรือไม่ - และโค้ดบางส่วนพร้อมคำแนะนำเพิ่มเติมในการเรียกใช้ (โดยบังเอิญนี่อธิบายว่าทำไมบาง OS เช่น Windows สามารถติดตั้งบนพาร์ติชั่นหลักเท่านั้นรายละเอียดของพาร์ติชั่นเหล่านั้นอยู่ใน MBR และนั่นเป็นข้อมูลพาร์ติชั่นเดียวที่ bootloader อ่านและไม่โหลด EBR ไป เรียนรู้เกี่ยวกับโลจิคัลพาร์ติชันตราบเท่าที่มันเกี่ยวข้องกับพาร์ติชันเหล่านั้นยังไม่มีอยู่)
นั่นรหัสปฏิบัติการจะยังเรียกว่าbootloader เมื่อเราสนใจที่จะแยกแยะระหว่างสิ่งนี้กับสิ่งที่เกิดขึ้นถัดไปมันเรียกว่าบูตหลัก (เพราะถ้าเราไม่ได้สร้าง BIOS ของเราเองเราจะไม่สนใจ ROM บิตจากการควบคุมของเรา)
รหัสนั้นจะมีขนาดเล็กมากเนื่องจากมีขนาดเพียง 400 ไบต์เท่านั้นจึงจะทำสิ่งใด ๆ ได้จริงมันจะโหลดโค้ดบางส่วนเพิ่มเติมซึ่งอาจใหญ่กว่าโดยไม่ต้องจัดการกับข้อ จำกัด นี้
รหัสนี้จะยังเป็นที่รู้จักกันเป็นbootloader เมื่อเราสนใจที่จะแยกแยะความแตกต่างระหว่างสิ่งนี้และสิ่งที่เกิดขึ้นก่อนหน้านี้มันเรียกว่าบูตโหลดเดอร์ตัวที่สอง
รหัสนั้นอาจเป็นขั้นตอนสุดท้ายในกระบวนการ หากคุณใช้ระบบปฏิบัติการเพียงระบบเดียวหรือหากระบบปฏิบัติการทั้งหมดของคุณใช้บูทบูตที่เข้ากันได้ (เช่นการติดตั้ง Linux สองตัวที่ใช้ทั้ง GRUB ดังนั้น GRUB ที่ได้รับการปรับปรุงล่าสุดสามารถเสนอให้บูตเครื่องใดก็ได้) แสดงเมนู (ถ้าต้องการ) โหลดในเคอร์เนลและผ่านการควบคุมบนระบบปฏิบัติการ
ในกรณีที่คุณใช้ระบบปฏิบัติการที่ไม่สามารถทำงานร่วมกับ bootloader นั้นมันอาจจะโหลด เช่นถ้าคุณมี Windows และ Linux บนเครื่องเดียวกันตัวเลือก GRUB สำหรับการโหลด Windows จะโหลดจริง ๆ แล้ว bootloader อื่นที่รู้เกี่ยวกับการติดตั้ง Windows เท่านั้นและส่งผ่านไป แม้ว่านี่จะเป็นขั้นตอนที่สามในกระบวนการ แต่ก็ยังคงเรียกว่าบูตโหลดเดอร์ตัวที่สองเนื่องจากไม่รู้หรือไม่สนใจว่ามีบูตโหลดเดอร์รองอีกอันที่ทำงานอยู่ก่อนหน้า นี่อาจเป็นกรณีที่มีการติดตั้ง Linux ที่ใช้ bootloader รองประเภทอื่น
ส่วนใหญ่เมื่อเราพูดถึงbootloaderในแง่ของ Linux โดยทั่วไปเราไม่ได้หมายถึงรหัส ROM (ไม่ใช่ส่วนหนึ่งของ Linux หรือเปลี่ยนโดยติดตั้ง Linux) เมื่อเราupdate-grub
เปลี่ยนเราจะเปลี่ยน bootloader ตัวที่สองซึ่งโดยปกติจะอยู่ใน / boot ของการติดตั้งเฉพาะ เมื่อเราทำการinstall-grub
เปลี่ยนแปลงและยังเป็น bootloader หลักใน MBR เพื่อให้มันมีรหัสเพียงพอที่จะรู้ว่า / boot นั้นอยู่ที่ไหน (อาจจะเริ่มซอฟต์แวร์ RAID ตามที่มันไป) และจะทำการโหลดและดำเนินการเมื่อมันถูกประมวลผลเอง .
ดังนั้นโดยสรุปคุณไม่ถูกต้องเมื่อคุณพูดว่า ROM เป็นส่วนหนึ่งของหน่วยความจำหลัก * เพราะแยกจากกัน (แน่นอนRAMถูกนำมาใช้แทนROM) คุณถูกต้องทั้งคู่ในการบอกว่ามี bootloader อยู่ที่นั่นและใน MBR เพราะพวกเขามีสองขั้นตอนของกระบวนการและบางครั้งทั้งคู่ถูกเรียกโดยใช้ชื่อนั้น และคำตอบของ "ระบบปฏิบัติการที่แตกต่างกันจัดเก็บ bootloader ในที่ต่าง ๆ หรือไม่" เป็น "ส่วนใหญ่" เพราะถ้าคุณไม่สามารถทำงานร่วมกันรอง bootloaders จะซ่อน bootloaders อื่น ๆ (ถ้าคุณติดตั้ง Windows หลังจากติดตั้ง Linux) หรือ chainload ลงในอีกหนึ่งหากมีการร้องขอ (ถ้าคุณแก้ไขสถานการณ์นั้นหรือติดตั้ง Linux หลังจาก Windows) แต่เป็นระบบปฏิบัติการ สามารถแชร์ bootloader ตัวที่สองได้ถ้าเข้ากันได้ (ถ้าคุณติดตั้งลีนุกซ์หลังจาก Linux ตัวอื่นที่ใช้บูทตัวโหลดรองชนิดเดียวกันและสามารถเห็นลีนุกซ์ตัวอื่น [บางครั้งซอฟต์แวร์ RAID ทำให้เกิดความสับสน
* ในวันที่หนึ่งจะใช้ประโยชน์จากทั้ง ROM และ RAM โดยทางโปรแกรมมันแตกต่างกัน บน ZX Spectrum ROM จะเป็น 16kiB และรวมล่ามพื้นฐานเพื่อให้คุณเป็นจุดเริ่มต้นสำหรับการโหลดบางอย่างลงใน 48kiB หรือ 128KiB (paged) หรือ RAM (ในกรณีนี้มันคือการบูทเข้าสู่ระบบเป็นหลัก) ตัวแปล BASIC นั้นแล้วใช้สิ่งนั้นเพื่อบู๊ตสิ่งที่อยู่บนเทป) มีฟังก์ชั่นมากมายจากตัวแปลพื้นฐานที่โปรแกรมใน RAM สามารถใช้งานได้ (เหตุใดจึงต้องเขียนฟังก์ชั่นตรีโกณมิติเมื่อคอมพิวเตอร์มีตำแหน่งที่รู้จักแล้ว โดยเฉพาะอย่างยิ่งเมื่อคุณมีเพียง 48kiB เพื่อให้โค้ดของคุณเองทำงาน) ROM นี้ยังสามารถมองเห็นได้ในลักษณะเดียวกับ RAM เพียงที่อยู่ต่างกัน ในกรณีเช่นนี้ ROM เป็นส่วนหนึ่งของหน่วยความจำหลักมากพอ ๆ กับ RAM แต่ไม่สามารถเขียนได้
A small portion of a computer's main memory where the CPU expects to find its initial program is constructed from special nonvolatile memory cells. Such memory is known as read-only memory(ROM)
ตามที่เขาพูด หน่วยความจำหลักประกอบด้วยสองส่วนคือ RAM และ ROM ฉันแค่อยากรู้ว่า bootloader ที่เรียกว่าติดตั้งอยู่ในส่วน ROM ของหน่วยความจำหลักหรือไม่ ... @ Sergey