• Like
  • Save
Understanding The Boot Process
Upcoming SlideShare
Loading in...5
×
 

Understanding The Boot Process

on

  • 53,927 views

Step-by-step walkthrough of the boot process of Linux and Windows systems.

Step-by-step walkthrough of the boot process of Linux and Windows systems.

Statistics

Views

Total Views
53,927
Views on SlideShare
50,169
Embed Views
3,758

Actions

Likes
13
Downloads
1,809
Comments
3

48 Embeds 3,758

http://www.villageidiotsavant.com 3021
https://csuglobal.blackboard.com 200
http://ubuntuliving.blogspot.com 145
http://www.slideshare.net 95
http://www.ustudy.in 53
http://linuxknowledgesource.blogspot.com 50
http://villageidiotsavant.blogspot.com 27
http://aplusmw.blogspot.com 23
http://smart-workers.blogspot.in 20
http://www.linuxknowledgesource.blogspot.com 17
http://ubuntuliving.blogspot.in 16
http://ustudy.in 9
http://ubuntuliving.blogspot.de 8
http://translate.googleusercontent.com 7
http://www.smart-workers.blogspot.in 5
http://ubuntuliving.blogspot.se 5
http://ubuntuliving.blogspot.ca 4
http://redhatubuntulinux.blogspot.in 4
http://linuxknowledgesource.blogspot.in 4
http://ubuntuliving.blogspot.co.uk 4
http://ubuntuliving.blogspot.mx 3
http://ubuntuliving.blogspot.it 3
http://smart-workers.blogspot.com 3
http://redhatubuntulinux.blogspot.com 3
http://ubuntuliving.blogspot.ch 2
http://ubuntuliving.blogspot.co.il 2
http://ubuntuliving.blogspot.com.ar 2
https://twitter.com 2
http://www.linuxknowledgesource.blogspot.in 2
http://smart-workers.blogspot.dk 1
http://ubuntuliving.blogspot.nl 1
http://www.google.ca 1
http://ubuntuliving.blogspot.com.es 1
http://ubuntuliving.blogspot.fi 1
http://smart-workers.blogspot.ca 1
http://ubuntuliving.blogspot.fr 1
http://webcache.googleusercontent.com 1
http://linuxknowledgesource.blogspot.co.uk 1
http://ubuntuliving.blogspot.com.au 1
http://redhatubuntulinux.blogspot.mx 1
http://ubuntuliving.blogspot.tw 1
http://www.google.com.ph 1
http://ubuntuliving.blogspot.co.nz 1
http://redhatubuntulinux.blogspot.co.uk 1
http://ubuntuliving.blogspot.ro 1
http://www.google.com 1
http://www.redhatubuntulinux.blogspot.in 1
http://embedded.dreamwidth.net 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Understanding The Boot Process Understanding The Boot Process Presentation Transcript

    • Understanding the PC Boot Process How Linux and Windows start their day By Dominique Gerald Cimafranca dominique.cimafranca@gmail.com This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Philippines License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ph/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
    • The PC boot process in a nutshell 1. Executes code from well-known location. 2. Execute first-stage boot loader from MBR. 3. Execute second-stage boot loader. 4. Load the kernel. 5. Load the first user space program.
    • BIOS ● BIOS – Basic Input/Output System ● Located at memory location 0xFFFF0 ● Boot firmware designed to be run at startup ● POST – Power-on Self-Test ● Identifies, tests, and initializes system devices ● Run-time services ● Initial configuration ● Selects which device to boot from ● Alternatively, Extensible Firmware Interface (EFI)
    • Stage 1 Boot Loader: MBR ● MBR – Master Boot Record ● Located on first sector of the boot disk ● Size: 512 bytes ● BIOS loads MBR to RAM, relinquishes control ● Main job: load the second-stage boot loader
    • Anatomy of the MBR ● First 446 bytes ● Primary boot loader ● Code and error messages ● Next 64 bytes ● Partition information ● Last 2 bytes ● Magic number ● Validation check for MBR Image from http://www.ibm.com/developerworks/linux/library/l-linuxboot/
    • Stage 2 Boot Loader ● Loads the kernel ● On Linux: ● GRUB – Grand Universal Bootloader ● LILO – Linux Loader ● Others: SysLinux, ISOLinux, PXELinux ● From Windows NT to Windows XP: ● NTLDR ● On Windows Vista: ● Windows Boot Manager
    • A closer look at GRUB ● GRUB understands ext2 and ext3 file systems ● LILO had to load raw sectors from the hard disk ● GRUB displays a list of available kernels ● On Ubuntu, defined in /boot/grub/menu.lst ● More info: http://www.gnu.org/software/grub/
    • What does GRUB load? title Ubuntu 9.04, kernel 2.6.28­13­generic uuid 0ef7b971 kernel /boot/vmlinuz­2.6.28­13­generic root=UUID=0ef7b971 ro quiet splash  initrd /boot/initrd.img­2.6.28­13­generic ● kernel – a compressed kernel image ● Performs initial minimal hardware setup ● Decompresses the kernel image, puts it in memory ● If present, loads RAM disk (see below) ● initrd – initial RAM disk ● Temporary root file system ● Contains executables and drivers to load the real root
    • Execution in the kernel ● arch/i386/boot/head.S ● performs basic hardware setup ● calls startup_32() of ./arch/i386/boot/compressed/head.S ● arch/i386/boot/compressed/head.S ● set up the basic environment ● clear Block Started by Symbol ● calls decompress_kernel() found in ./arch/i386/boot/compressed/misc.c ● calls startup_32 in ./arch/i386/kernel/head.S ● arch/i386/kernel/head.S ● also called swapper or process 0 ● initializes page tables and enables memory paging ● detects CPU type ● init/main.c ● calls start_kernel() ● calls kernel_thread to start init (process ID 1)
    • initrd ● Initial RAM disk – a small temporary file system ● During stage 2 boot, initrd is copied into RAM and mounted ● Allows the kernel to fully boot without having to mount any physical disks ● Supports many hardware configurations through loadable modules ● After kernel is booted, the real root file system is mounted
    • init ● The first user space program -- /sbin/init ● Typical for desktop Linux systems ● For Ubuntu, init reads /etc/event.d ● see https://launchpad.net/upstart/ ● default run level defined at /etc/event.d/rc-default ● for normal start, Ubuntu is at run level 2 ● executes programs from /etc/rc2.d ● For other Linux systems, init reads /etc/inittab
    • What about Windows XP? ● Boot Loader Phase ● Kernel loading phase ● Session Manager ● Winlogon
    • Windows XP and earlier ● NTLDR – the actual boot loader ● boot.ini – booting options ● presents menu options as to what OS to load ● if absent, defaults to Windows directory of first partition
    • What NTLDR does ● Accesses the file system on boot drive ● Looks for hiberfil.sys, the hibernation image ● Reads boot.ini and prompts the user ● Runs NTDETECT.COM ● Starts NTOSKRNL.EXE
    • NTOSKRNL.EXE ● Kernel image of Windows NT family ● Contains ● Cache Manager ● Executive ● Kernel ● Security Reference Monitor ● Memory Manager ● Scheduler ● Also known as: ● NTOSKRNL.EXE : 1 CPU ● NTKRNLMP.EXE : N CPU SMP ● NTKRNLPA.EXE : 1 CPU, PAE ● NTKRPAMP.EXE : N CPU SMP, PAE
    • Kernel Loading Phase ● HAL.DLL -- type of hardware abstraction layer ● KDCOM.DLL -- Kernel Debugger HW Extension DLL ● BOOTVID.DLL -- for the windows logo and side-scrolling bar ● configsystem registry
    • Session Manager ● SMSS.EXE ● What it does: ● Creates environment variables ● Starts the kernel and user modes of the Win32 subsystem – win32k.sys (kernel-mode) – winsrv.dll (user-mode) – csrss.exe (user-mode) ● Creates DOS device mappings listed at the HKLMSystemCurrentControlSetControlSession ManagerDOS Devices registry key. ● Creates virtual memory paging files. ● Starts winlogon.exe, the Windows logon manager
    • Windows Logon ● Winlogon starts the Local Security Authority Subsystem Service (LSASS) and Service Control Manager (SCM) ● Also responsible for responding to the secure attention sequence (SAS), loading the user profile on logon, and optionally locking the computer when a screensaver is running.
    • What about Windows Vista? ● Windows Boot Manager (bootmgr) ● Boot Configuration Data ● replacing boot.ini ● found in BootBcd ● winload.exe ● operating system boot loader ● NTOSKRNL.EXE and device drivers
    • Sources ● “Inside the Linux Boot Process”, M. Tim Jones, IBM Developerworks ● http://www.ibm.com/developerworks/linux/library/l-linuxboot/ ● “Linux initial RAM disk overview”, M. Tim Jones, IBM Developerworks ● http://www.ibm.com/developerworks/linux/library/l-initrd.html ● Windows NT Startup Process ● http://en.wikipedia.org/wiki/Windows_NT_Startup_Process ● Windows Vista Startup Process ● http://en.wikipedia.org/wiki/Windows_Vista_startup_process ● http://www.microsoft.com/whdc/system/platform/firmware/bcd.mspx