Linux Booting

  • Uploaded by: sunilbehera31
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Linux Booting as PDF for free.

More details

  • Words: 1,189
  • Pages: 23
Linux Booting • The booting procedure. • Logging in to the machine. • Control flow in the machine.

Linux Booting • The booting procedure. • Logging in to the machine. • Control flow in the machine.

The booting procedure. • Every computer has sequence of instructions that are executed when computer is powered up. – determined by the hardware designers

• Every OS has a sequence of instructions that it executes prior to normal operation.

The booting procedure. • i386 machines incorporate the Basic Input/Output System (BIOS) – – – –

stored at a prespecified location in system ROM. when computer started, begins executing BIOS code BIOS code executes the Power-On Self Test (POST) POST performs various diagnostic tests to check memory and devices for their presence and correct operation. – when POST is completed, machine ready to load and start OS.

The booting procedure. • The boot sector. – OS loaded from the system’s boot disk. – i386 treats A: as default disk if it contains a diskette. – Otherwise depends on how you’ve set the BIOS.

The booting procedure. • The boot disk – must contain a boot record at the disk’s first logical sector. – The boot record fits onto a single 512-byte disk sector (called the boot sector): 0x000 0x003 0x0XX 0x1fe

0x002 …. 0x1fd 0x1ff

Disk parameters (used by BIOS) program Bootstrap program 0xaa55 (the magic number for BIOS)

The booting procedure. • After POST BIOS copies the boot record from disk into memory • Bios then reads boot record parameters: – Boot record contains parameters that describe disk’s physical layout – Parameters are stored in well-know locations in boot record – Parameters include number of tracks and number of sectors per track.

The booting procedure. • After parameters read BIOS branches to the first location in program – then immediately branches to location 0x0XX – the value XX for Linux is 3e – the value XX for MS-DOS is 1e

• The small program at address 0x0XX loads a more sophisticated loader from other sectors on the disk • The sophisticated loader loads the OS

The booting procedure. • Disk partitioning – can have up to 4 primary partitions on one physical disk • each primary disk can have logical sub-partitions

– each partition treated like a physical disk below the abstract machine that accesses the physical disk (eg, BIOS in MS-DOS) – if partition is bootable then its logical sector number 0 will be a boot sector.

The booting procedure. • Disk partitioning – when hardware is powered up goes to head 0, track 0, sector 1 and begins executing code. – an unpartitioned disk has a jump instruction at head 0, track 0, sector 1 which jumps to location 0x0XX and starts the execution of the boot program – in a partitioned disk, physical head 0, track 0, sector 1 (first logical disk sector) describes how hard disk is partitioned into logical disks.

The booting procedure. – A partitioned disk has a 446-byte bootstrap program starting at first byte in the sector. – next is a 65-byte partition table for the disk – Table contains the 4 partition entries, each of which describes the portion of the physical disk that is used for its partition (starting sector of the partition, ending sector, number of sectors, etc.) – last 2 bytes of partition sector contain a magic number, 0xaa55 to identify the partition sector.

Partitioned Disk head 0 track 0 sector 1

446-byte bootstrap program

65-byte partition table 2 bytes: magic number, 0xaa55 for MS-DOS

4 partition entries, each describes the portion of the physical disk used for its partition

The booting procedure. • Partitioning with different OS’s – i386 can be booted with Linux from boot floppy. – contains a Linux boot program. – Can have different OS in different partitions – Windows handles by designating one partition as an active partition. System always boots from this partition.

The booting procedure. • Partitioning with different OS’s – can have a special program, Linux Loader (LILO) in system boot record. – program allows user to choose at boot time which partition is to be the active partition. – LILO is loaded in the boot record so that BIOS runs it after the POST.

Starting the Kernel • machine is powered up – hardware fetch-decode-execute cycle begins. – called the “hardware process” – this is not a Linux process; Linux has not yet started.

• • • •

POST is completed boot record read loader places OS into primary memory the booting procedure begins to run kernel code to initialize the computer’s hardware.

Starting the Kernel • Computer then starts kernel by setting supervisor mode and branching to main entry point in kernel. • main entry point is not a C program. • kernel initializes – – – – – –

trap table interrupt handler scheduler clock modules etc.

Starting the Kernel • near end of kernel initialization start process manager – – – – –

now ready for normal process abstraction PM starts the initial process initial process is first entry in kernel’s process descriptor table referred to as process 0, task[0], or INIT_TASK initial process then creates first useful Linux process to run: the init program – after init runs it executes an idle loop – only other duties of init is to use idle CPU time….runs when no other process wants CPU.

Starting the Kernel • init process initializes system – – – –

starts daemons starts file manager creates system console runs other init programs from /etc, /bin and/or /sbin, and runs /etc/rc

Logging in to the machine • during initialization kernel creates one process on each communication port that can be used to support user logins – uses the getty program

• getty – – – –

waits for a user to begin using the port then runs login program login expects user id on first line, passwd on next login verifies user by looking in /etc/passwd file

Logging in to the machine • getty – /etc/passwd file. Each entry separated by colon jbarr:eNcrYpt123:3348:35:John Barr:/home/barr:/bin/bash

– jbarr

account name

– – – – –

encrypted password user ID and group ID real name user’s home directory path to shell command preferred by user

eNcrYpt123 3348 and 35 John Barr /home/barr /bin/bash

Logging in to the machine • getty – once login verifies it changes current directory to user’s home directory – and executes the specified shell program – now user interacts directly with login process via shell. – user who logs in is using a process that was created when the machine was started – starting shell is complicated; data and stack segments created etc. – data includes user’s environmental variables (eg, PATH) – when user logs off, return from shell call to the login process

Logging in to the machine 26

Serial Port A

login

Serial Port B

login

Serial Port C

login 5

4

Serial Port Z

1 getty

3 login /etc/passwd

/bin/bash

Control Flow hardware process starts Idle Proc

program

hardware process

context switch

kernel

ISRs

Proc i

Proc j

Related Documents

Linux Booting
June 2020 12
Booting Up
May 2020 7
Lambat Booting
July 2020 10
Booting Sequence
October 2019 29
Booting Process
June 2020 11
Booting Fd.docx
August 2019 22

More Documents from "Famrozi"

Linux Booting
June 2020 12