CS 416: Operating Systems Design February 2, 2015 1

CS 416: Operating Systems Design February 2, 2015 1

CS 416: Operating Systems Design February 2, 2015 What runs first? • Boot loader – A program that loads a bigger program (e.g., the OS) Operating Systems Design 02. Booting Paul Krzyzanowski Rutgers University Spring 2015 February 2, 2015 © 2014-2015 Paul Krzyzanowski 1 February 2, 2015 © 2014-2015 Paul Krzyzanowski 2 Booting Booting Load selector: Card, Tape, Drum http://www.computer-history.info/Page4.dir/pages/IBM.701.dir/images/IBM701.jpg February 2, 2015 © 2014-2015 Paul Krzyzanowski 3 February 2, 2015 © 2014-2015 Paul Krzyzanowski 4 Multi-stage boot loader (chain loading) Transfer of control • First stage boot loader • When the boot loader finishes loading the OS, it transfers – Often primitive enough that an operator could enter the code via control to it front panel switches … or it could sit in the first block of a disk • The OS will initialize itself and load various modules as • Second stage loader needed (for example, device drivers and various file – More sophisticated and included error checking systems) – Second stage loader may give the user a choice: • Different operating systems • Boot a test program • Enable diagnostic modes (e.g., safe boot) in the OS February 2, 2015 © 2014-2015 Paul Krzyzanowski 5 February 2, 2015 © 2014-2015 Paul Krzyzanowski 6 © 2014 Paul Krzyzanowski 1 CS 416: Operating Systems Design February 2, 2015 Intel/AMD PC Startup BIOS • CPU reset at startup • BIOS = Basic Input/Output System • Start execution at 0xffffffff0 • Found in Intel-based 16- and 32-bit PCs • Code resident in ROM or non-volatile flash memory – Jump instruction to BIOS code in non-volatile memory • Near the top of 32-bit addressable memory map • Background: CP/M (MS-DOS was almost a clone) • Reset vector: jump to firmware initialization code – Console Command Processor (CCP): user interface – Basic Disk Operating System (BDOS): generic code – Processor starts in Real Mode – Basic Input/Output System (BIOS): all the device interfaces • 20-bit address space (top 12 address lines held high) • Direct access to I/O, interrupts, and memory February 2, 2015 © 2014-2015 Paul Krzyzanowski 7 February 2, 2015 © 2014-2015 Paul Krzyzanowski 8 PC Startup Booting Windows (NT/Windows 20xx,7,8) • BIOS executes: • BIOS-based booting – Power-on self-test (POST) – The BIOS does not know file systems but can read disk blocks – Detect video card’s BIOS – execute video initialization • MBR = Master Boot Record = Block 0 of disk (512 bytes) – Detect other device BIOS – initialize – Small boot loader (chain loader, ≤ 440 bytes) – Display start-up screen – Disk signature (4 bytes) – Disk partition table (16 bytes per partition * 4) – Brief memory test – Set memory, drive parameters • BIOS firmware loads and executes the contents of the MBR – Configure Plug & Play devices: PCIe, USB, SATA, SPI • MBR code scans through partition table and loads the Volume Boot • Assign resources (DMA channels & IRQs) Record (VBR) for that partition – Identify boot device: – Identifies partition type & size • Load block 0 (Master Boot Record) to 0x 7c 00 and jump there – Contains Instruction Program Loader that executes startup code – IPL reads additional sectors to load BOOTMGR (Windows 7, 8) • The loader is called NTLDR for Windows NT, XP, 2003 February 2, 2015 © 2014-2015 Paul Krzyzanowski 9 February 2, 2015 © 2014-2015 Paul Krzyzanowski 10 Booting other systems on a PC Good-bye BIOS: PCs and UEFI • Example: GRUB (Grand Unified Boot Loader) • ~2005: Unified Extensible Firmware Interface (UEFI) • MBR contains GRUB Stage 1 – Originally called EFI; then changed to UEFI – Or another boot loader that may boot GRUB Stage 1 from the You still see both names in use Volume Boot Record • Created for 32- and 64-bit architectures • Stage 1 loads Stage 2 – Including Macs, which also have BIOS support for Windows – Present user with choice of operating systems to boot • Goal: – Optionally specify boot parameters – Create a successor to the BIOS – Load selected kernel and run the kernel • no restrictions on running in 16-bit 8086 mode with 20-bit addressing – For Windows (which is not Multiboot compliant), • Run MBR code or Windows boot menu • Multiboot specification: – Free Software Foundation spec on loading multiple kernels using a single boot loader February 2, 2015 © 2014-2015 Paul Krzyzanowski 11 February 2, 2015 © 2014-2015 Paul Krzyzanowski 12 © 2014 Paul Krzyzanowski 2 CS 416: Operating Systems Design February 2, 2015 UEFI Includes UEFI Booting • Preserved from BIOS: • No need for MBR code (ignore block 0) – Power management (Advanced Configuration & Power Interface, ACPI) • Read GUID Partition Table (GPT) – System management components from the BIOS – Describes layout of the partition table on a disk (blocks 1-33) • Support for larger disks – BIOS only supported 4 partitions per disk, each up to 2.2 TB per partition • EFI understands Microsoft FAT file systems – EFI supports max partition size of 9.4 ZB (9.4 × 1021 bytes) – Apple’s EFI knows HFS+ in addition • Pre-boot execution environment with direct access to all memory • Read programs stored as files in the EFI System Partition: • Device drivers, including the ability to interpret architecture- – Windows 7/8, Windows 2008/2012 (64-bit Microsoft systems): independent EFI Byte Code (EBC) • Windows Boot Manager (BOOTMGR) is in the EFI partition • Boot manager: lets you select and load an OS – NT (IA-64): IA64ldr – No need for a dedicated boot loader (but they may be present anyway) – Linux: elilo.efi (ELILO = EFI Linux Boot Loader) – Stick your files in the EFI boot partition and EFI can load them – OS X: boot.efi • Extensible: extensions can be loaded into non-volatile memory February 2, 2015 © 2014-2015 Paul Krzyzanowski 13 February 2, 2015 © 2014-2015 Paul Krzyzanowski 14 Non-Intel Systems Summary • Power on: execute boot ROM code (typically NOR Flash) – Often embedded in the CPU ASIC BIOS MBR VBR winload.exe Windows 7 • Boot ROM code detects boot media Win Boot Mgr – Loads first stage boot loader (sometimes to internal RAM) – Initialize RAM VBR BIOS MBR XP/NT – Execute boot loader NTLDR • Second stage boot loader loads kernel into RAM MBR – For Linux, typically GRUB for larger systems BIOS GRUB-2 Linux GRUB-1 – uBoot for embedded systems – Set up network support, memory protection, security options “MBR” VBR winload.exe Windows 7 Win Boot Mgr February 2, 2015 © 2014-2015 Paul Krzyzanowski 15 February 2, 2015 © 2014-2015 Paul Krzyzanowski 16 Summary Windows EFI Boot winload.exe Windows 7/8 Manager The End EFI elilo.efi Linux EFI boot.efi OS X February 2, 2015 © 2014-2015 Paul Krzyzanowski 17 February 2, 2015 © 2014-2015 Paul Krzyzanowski 18 © 2014 Paul Krzyzanowski 3 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    3 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us