SlideShare a Scribd company logo
1 of 11
Download to read offline
Booting Process
By
Raj Kumar Rampelli
What is Booting Process ?
 Sequence of operations for initialization of
hardware blocks including the memory controller,
the processor and I/O peripherals etc.
Booting process in x86 based
devicePower on device
Start executing code in BIOS (H/W initialization),
stored in EEPROM flash memory (Boot Flash) and
Load Boot Vector
Machine start to execute at fixed location
0xFFFFFFF0 (Boot Vector)  Loading Boot Vector
BIOS loads Bootloader (ex: GRUB) to select &
load OS from multiple OSes installed on hard
disks
Bootloader loads OS image (boot.img) into RAM by
using Boot sector (of size 512MB) on disk (Master Boot
Record in windows terminology)
Booting process in ARM based
devicePower on Device
BootROM start execution, do H/W
Initialization and Load Boot Vector
Machine start to execute at fixed
location 0x0 (RESET)
BootROM reads bootable device info from
fuse register to load Bootloader.
BootROM loads Bootloader
Bootloader loads Kernel
Booting Stages….!!
 BIOS/BootROM stored in flash memory on mother-board
 BIOS/BootROM Tasks:
 Power-On Self Test (POST)
 H/W Initialization
 Initialization of
 SDRAM: Read BCT (Board Configuration Table) file, initialize and configure SDRAM
 Cache memory
 Memory controller
 Clocks
 Loading Boot Vector
 Loading Bootloader
 BootROM/BIOS reads BCT file and loads Bootloader into SDRAM
 Perform all these operations in AVP (Audio Video Processor)
mode only
 Bootloader Tasks
 1st stage Bootloader
 2nd stage Bootloader
Bootloader Tasks
(1st stage Bootloader)
 Runs in AVP (Audio Video Processor)
 Read BCT file and Initializes SDRAM
 Check Battery level
 If its value is meeting the target battery level then continue booting
process
 Else charge the device
 Read BCT for 2nd stage Bootloader location
 Load 2nd stage Bootloader into SDRAM
 Initialize clock sources and enable clocks to required peripherals
 Enable UART
 Initialize CPU and transfer control to 2nd stage Bootloader
 Power up CPU
 Enable CPU clock
 Take CPU out of the reset
Bootloader Tasks
(2nd stage Bootloader)
 Run in CPU mode
 CPU tasks
 Initialize & enable Cache memory
 Configure General Interrupt Controller
 Enable Timer & enable MMU
 Initialize Page tables
 Power on display
 Provide booting options to select
 Fastboot
 Continue booting
 Read GPT (General Partition Table) for kernel location
 Load initrd (initial RAM Disk) into RAM and mounted
 Serves as temporary root file system in RAM and allows kernel to boot without
having to mount any phisical disks.
 After kernel is booted, this file system in unmounted and real root file system is
mounted.
 Load compressed Kernel image (zImage) into memory
 Prepare Kernel command line data to pass it to kernel
 Disable MMU and cache, now jump to kernel
The Kernel
 Bootloader loads compressed kernel image (zImage) into memory
 A Routine (at Head of Kernel Image) uncompresses the Kernel and
places into high memory
start ()
•When zImage is invoked, the control begins at start() function located at
arch/<arm/i386>/boot/head.S and do basic h/w setup
Startup_32()
•Located in arch/<arm/i386>/boot/compressed/head.S
•Startup_32() setup environment ex: stack
decompress
_kernel()
•Located in arch/<arm/i386>/boot/compressed/misc.c
•Kernel is decompressed through this call
startup_32()
•Located in arch/<arm/i386>/kernel/head.S
•Page tables are initialized, memory paging in enabled
start_kernel
()
•Located in init/main.c, which takes us to the non-architecture specific linux
kernel
•Setup Interrupts, Memory configuration, load initial RAM disk
Kernel_thread
()
•Start the init() process, which is the first user space process. Idle task is started
and scheduler takes the control when cpu_idle() called.
Start init process
 Kernel starts 1st user application /sbin/init
 1st program which compiled with std. C library
 Creates init process (id=1) (parent of all process)
 Start system services
 Init process reads /etc/inittab and creates startup
processes.
 /etc/inittab contains the settings for change the process behavior
and their run-levels
 Run level: S/W configuration of the system that allows only selected
group of processes to exist
 Init runs the system in any of the below run level at a
time
 0 – Halt, 1 – Single user mode
 2 – Multi user mode, without NFS
 3 – Full multi user mode, 4 – unused, 5 – x11, 6 – Reboot
 inittab instructs the init process which run level system
should run at and describes the processes to be run ar
each run level
References
 Inside the Linux boot process:
https://www.ibm.com/developerworks/lib
rary/l-linuxboot/
 Basic Boot Terminology
http://stackoverflow.com/questions/1200
2089/basic-boot-terms?rq=1
THANK YOU 
Have a look at
My PPTs:
http://www.slideshare.net/rampalliraj/
My Tech Blog:
http://practicepeople.blogspot.in/

More Related Content

What's hot

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
Linux booting process!!
Linux booting process!!Linux booting process!!
Linux booting process!!sourav verma
 
Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting SequenceJayanta Ghoshal
 
Kernel Module Programming
Kernel Module ProgrammingKernel Module Programming
Kernel Module ProgrammingSaurabh Bangad
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_BootingRashila Rr
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBshimosawa
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Disk and File System Management in Linux
Disk and File System Management in LinuxDisk and File System Management in Linux
Disk and File System Management in LinuxHenry Osborne
 

What's hot (20)

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
Linux booting process!!
Linux booting process!!Linux booting process!!
Linux booting process!!
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting Sequence
 
Kernel Module Programming
Kernel Module ProgrammingKernel Module Programming
Kernel Module Programming
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
Kernel module in linux os.
Kernel module in linux os.Kernel module in linux os.
Kernel module in linux os.
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_Booting
 
Linux file system
Linux file systemLinux file system
Linux file system
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
Understanding The Boot Process
Understanding The Boot ProcessUnderstanding The Boot Process
Understanding The Boot Process
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
UEFI presentation
UEFI presentationUEFI presentation
UEFI presentation
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Disk and File System Management in Linux
Disk and File System Management in LinuxDisk and File System Management in Linux
Disk and File System Management in Linux
 

Viewers also liked

Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2RajKumar Rampelli
 
Network security and cryptography
Network security and cryptographyNetwork security and cryptography
Network security and cryptographyRajKumar Rampelli
 
Tasklet vs work queues (Deferrable functions in linux)
Tasklet vs work queues (Deferrable functions in linux)Tasklet vs work queues (Deferrable functions in linux)
Tasklet vs work queues (Deferrable functions in linux)RajKumar Rampelli
 
Introduction to Kernel and Device Drivers
Introduction to Kernel and Device DriversIntroduction to Kernel and Device Drivers
Introduction to Kernel and Device DriversRajKumar Rampelli
 
Learn python – for beginners
Learn python – for beginnersLearn python – for beginners
Learn python – for beginnersRajKumar Rampelli
 

Viewers also liked (8)

Linux watchdog timer
Linux watchdog timerLinux watchdog timer
Linux watchdog timer
 
Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2
 
Network security and cryptography
Network security and cryptographyNetwork security and cryptography
Network security and cryptography
 
Linux Kernel I/O Schedulers
Linux Kernel I/O SchedulersLinux Kernel I/O Schedulers
Linux Kernel I/O Schedulers
 
Tasklet vs work queues (Deferrable functions in linux)
Tasklet vs work queues (Deferrable functions in linux)Tasklet vs work queues (Deferrable functions in linux)
Tasklet vs work queues (Deferrable functions in linux)
 
Linux GIT commands
Linux GIT commandsLinux GIT commands
Linux GIT commands
 
Introduction to Kernel and Device Drivers
Introduction to Kernel and Device DriversIntroduction to Kernel and Device Drivers
Introduction to Kernel and Device Drivers
 
Learn python – for beginners
Learn python – for beginnersLearn python – for beginners
Learn python – for beginners
 

Similar to System Booting Process overview

Bootloader and bootloading
Bootloader and bootloadingBootloader and bootloading
Bootloader and bootloadingArpita Gupta
 
Grub2 Booting Process
Grub2 Booting ProcessGrub2 Booting Process
Grub2 Booting ProcessMike Wang
 
An Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessAn Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessHardeep Bhurji
 
Bios, processorand motherboard
Bios, processorand  motherboardBios, processorand  motherboard
Bios, processorand motherboardImranulHasan6
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
 
Linux boot process
Linux boot processLinux boot process
Linux boot processbrusnigin
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
3996234.ppt
3996234.ppt3996234.ppt
3996234.pptKdpKumar
 
booting steps of a computer
booting steps of a computerbooting steps of a computer
booting steps of a computerAnusha Babooa
 
Linux Kernel Startup Code In Embedded Linux
Linux    Kernel    Startup  Code In  Embedded  LinuxLinux    Kernel    Startup  Code In  Embedded  Linux
Linux Kernel Startup Code In Embedded LinuxEmanuele Bonanni
 

Similar to System Booting Process overview (20)

Linux Booting Steps
Linux Booting StepsLinux Booting Steps
Linux Booting Steps
 
Bootloader and bootloading
Bootloader and bootloadingBootloader and bootloading
Bootloader and bootloading
 
Grub2 Booting Process
Grub2 Booting ProcessGrub2 Booting Process
Grub2 Booting Process
 
How to build and load linux to embedded system
How to build and load linux to embedded systemHow to build and load linux to embedded system
How to build and load linux to embedded system
 
Linux boot process
Linux boot processLinux boot process
Linux boot process
 
An Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessAn Insight into the Linux Booting Process
An Insight into the Linux Booting Process
 
101 1.2 boot the system
101 1.2 boot the system101 1.2 boot the system
101 1.2 boot the system
 
Bios, processorand motherboard
Bios, processorand  motherboardBios, processorand  motherboard
Bios, processorand motherboard
 
Ch04 system administration
Ch04 system administration Ch04 system administration
Ch04 system administration
 
Ch04
Ch04Ch04
Ch04
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
Boot process
Boot processBoot process
Boot process
 
Linux boot process
Linux boot processLinux boot process
Linux boot process
 
BOOTING.ppt
BOOTING.pptBOOTING.ppt
BOOTING.ppt
 
File000124
File000124File000124
File000124
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
3996234.ppt
3996234.ppt3996234.ppt
3996234.ppt
 
booting steps of a computer
booting steps of a computerbooting steps of a computer
booting steps of a computer
 
Linux booting sequence
Linux booting sequenceLinux booting sequence
Linux booting sequence
 
Linux Kernel Startup Code In Embedded Linux
Linux    Kernel    Startup  Code In  Embedded  LinuxLinux    Kernel    Startup  Code In  Embedded  Linux
Linux Kernel Startup Code In Embedded Linux
 

More from RajKumar Rampelli

Writing Character driver (loadable module) in linux
Writing Character driver (loadable module) in linuxWriting Character driver (loadable module) in linux
Writing Character driver (loadable module) in linuxRajKumar Rampelli
 
Introduction to Python - Running Notes
Introduction to Python - Running NotesIntroduction to Python - Running Notes
Introduction to Python - Running NotesRajKumar Rampelli
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewRajKumar Rampelli
 

More from RajKumar Rampelli (7)

Writing Character driver (loadable module) in linux
Writing Character driver (loadable module) in linuxWriting Character driver (loadable module) in linux
Writing Character driver (loadable module) in linux
 
Introduction to Python - Running Notes
Introduction to Python - Running NotesIntroduction to Python - Running Notes
Introduction to Python - Running Notes
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver Overview
 
Sql injection attack
Sql injection attackSql injection attack
Sql injection attack
 
Turing awards seminar
Turing awards seminarTuring awards seminar
Turing awards seminar
 
Higher education importance
Higher education importanceHigher education importance
Higher education importance
 
C compilation process
C compilation processC compilation process
C compilation process
 

Recently uploaded

HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfMohonDas
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfYu Kanazawa / Osaka University
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational PhilosophyShuvankar Madhu
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxSaurabhParmar42
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxheathfieldcps1
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17Celine George
 
In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxAditiChauhan701637
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17Celine George
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.raviapr7
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17Celine George
 
Benefits & Challenges of Inclusive Education
Benefits & Challenges of Inclusive EducationBenefits & Challenges of Inclusive Education
Benefits & Challenges of Inclusive EducationMJDuyan
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...Nguyen Thanh Tu Collection
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxDr. Santhosh Kumar. N
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxiammrhaywood
 

Recently uploaded (20)

HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdf
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational Philosophy
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024
 
Finals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quizFinals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quiz
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptx
 
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdfPersonal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17
 
In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptx
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17
 
Benefits & Challenges of Inclusive Education
Benefits & Challenges of Inclusive EducationBenefits & Challenges of Inclusive Education
Benefits & Challenges of Inclusive Education
 
Prelims of Kant get Marx 2.0: a general politics quiz
Prelims of Kant get Marx 2.0: a general politics quizPrelims of Kant get Marx 2.0: a general politics quiz
Prelims of Kant get Marx 2.0: a general politics quiz
 
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 11 - GLOBAL SUCCESS - NĂM HỌC 2023-2024 - HK...
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptx
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
 

System Booting Process overview

  • 2. What is Booting Process ?  Sequence of operations for initialization of hardware blocks including the memory controller, the processor and I/O peripherals etc.
  • 3. Booting process in x86 based devicePower on device Start executing code in BIOS (H/W initialization), stored in EEPROM flash memory (Boot Flash) and Load Boot Vector Machine start to execute at fixed location 0xFFFFFFF0 (Boot Vector)  Loading Boot Vector BIOS loads Bootloader (ex: GRUB) to select & load OS from multiple OSes installed on hard disks Bootloader loads OS image (boot.img) into RAM by using Boot sector (of size 512MB) on disk (Master Boot Record in windows terminology)
  • 4. Booting process in ARM based devicePower on Device BootROM start execution, do H/W Initialization and Load Boot Vector Machine start to execute at fixed location 0x0 (RESET) BootROM reads bootable device info from fuse register to load Bootloader. BootROM loads Bootloader Bootloader loads Kernel
  • 5. Booting Stages….!!  BIOS/BootROM stored in flash memory on mother-board  BIOS/BootROM Tasks:  Power-On Self Test (POST)  H/W Initialization  Initialization of  SDRAM: Read BCT (Board Configuration Table) file, initialize and configure SDRAM  Cache memory  Memory controller  Clocks  Loading Boot Vector  Loading Bootloader  BootROM/BIOS reads BCT file and loads Bootloader into SDRAM  Perform all these operations in AVP (Audio Video Processor) mode only  Bootloader Tasks  1st stage Bootloader  2nd stage Bootloader
  • 6. Bootloader Tasks (1st stage Bootloader)  Runs in AVP (Audio Video Processor)  Read BCT file and Initializes SDRAM  Check Battery level  If its value is meeting the target battery level then continue booting process  Else charge the device  Read BCT for 2nd stage Bootloader location  Load 2nd stage Bootloader into SDRAM  Initialize clock sources and enable clocks to required peripherals  Enable UART  Initialize CPU and transfer control to 2nd stage Bootloader  Power up CPU  Enable CPU clock  Take CPU out of the reset
  • 7. Bootloader Tasks (2nd stage Bootloader)  Run in CPU mode  CPU tasks  Initialize & enable Cache memory  Configure General Interrupt Controller  Enable Timer & enable MMU  Initialize Page tables  Power on display  Provide booting options to select  Fastboot  Continue booting  Read GPT (General Partition Table) for kernel location  Load initrd (initial RAM Disk) into RAM and mounted  Serves as temporary root file system in RAM and allows kernel to boot without having to mount any phisical disks.  After kernel is booted, this file system in unmounted and real root file system is mounted.  Load compressed Kernel image (zImage) into memory  Prepare Kernel command line data to pass it to kernel  Disable MMU and cache, now jump to kernel
  • 8. The Kernel  Bootloader loads compressed kernel image (zImage) into memory  A Routine (at Head of Kernel Image) uncompresses the Kernel and places into high memory start () •When zImage is invoked, the control begins at start() function located at arch/<arm/i386>/boot/head.S and do basic h/w setup Startup_32() •Located in arch/<arm/i386>/boot/compressed/head.S •Startup_32() setup environment ex: stack decompress _kernel() •Located in arch/<arm/i386>/boot/compressed/misc.c •Kernel is decompressed through this call startup_32() •Located in arch/<arm/i386>/kernel/head.S •Page tables are initialized, memory paging in enabled start_kernel () •Located in init/main.c, which takes us to the non-architecture specific linux kernel •Setup Interrupts, Memory configuration, load initial RAM disk Kernel_thread () •Start the init() process, which is the first user space process. Idle task is started and scheduler takes the control when cpu_idle() called.
  • 9. Start init process  Kernel starts 1st user application /sbin/init  1st program which compiled with std. C library  Creates init process (id=1) (parent of all process)  Start system services  Init process reads /etc/inittab and creates startup processes.  /etc/inittab contains the settings for change the process behavior and their run-levels  Run level: S/W configuration of the system that allows only selected group of processes to exist  Init runs the system in any of the below run level at a time  0 – Halt, 1 – Single user mode  2 – Multi user mode, without NFS  3 – Full multi user mode, 4 – unused, 5 – x11, 6 – Reboot  inittab instructs the init process which run level system should run at and describes the processes to be run ar each run level
  • 10. References  Inside the Linux boot process: https://www.ibm.com/developerworks/lib rary/l-linuxboot/  Basic Boot Terminology http://stackoverflow.com/questions/1200 2089/basic-boot-terms?rq=1
  • 11. THANK YOU  Have a look at My PPTs: http://www.slideshare.net/rampalliraj/ My Tech Blog: http://practicepeople.blogspot.in/

Editor's Notes

  1. http://stackoverflow.com/questions/12002089/basic-boot-terms?rq=1Note: BIOS is for x86 and BootROM is for ARM