Linux startup


Published on

this presentation is about linux startup and describe the 6 high level stages of a typical Linux boot process.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Linux startup

  1. 1. Linux StartupBy: Amin HashemiAmirKabir University of technologyComputer Engineering & Information Technology Department
  2. 2. Contents System startup Services Controlling boot services References
  3. 3. System startup
  4. 4. System startup- BIOS BIOS stands for Basic Input/output System Performs some system integrity checks Searches, loads, and executes the boot loader program. It looks for boot loader in floppy, CD-ROM, or hard drive. You can press a key (typically F12 of F2, but it depends on your system) during the BIOS startup to change the boot sequence. Once the boot loader program is detected and loaded into the memory, BIOS gives the control to it. So, in simple terms BIOS loads and executes the MBR boot loader.
  5. 5. System startup- MBR MBR stands for Master Boot Record. It is located in the 1st sector of the bootable disk. Typically /dev/hda, or /dev/sda MBR is less than 512 bytes in size. This has three components:  1) primary boot loader info in 1st 446 bytes  2) partition table info in next 64 bytes  3) MBR validation check in last 2 bytes. It contains information about GRUB (or LILO in old systems). So, in simple terms MBR loads and executes the GRUB boot loader.
  6. 6. System startup- GRUB GRUB stands for Grand Unified Bootloader. If you have multiple kernel images installed on your system, you can choose which one to be executed. GRUB displays a splash screen, waits for few seconds, if you don‟t enter anything, it loads the default kernel image as specified in the GRUB configuration file. GRUB has the knowledge of the filesystem (the older Linux loader LILO didn‟t understand filesystem).
  7. 7. System startup- Kernel Mounts the root file system as specified in the “root=” in grub.conf Kernel executes the /usr/src/linux/init/main.c program Since init was the 1st program to be executed by Linux Kernel, it has the process id (PID) of 1. Do a „ps -ef | grep init‟ and check the pid. initrd stands for Initial RAM Disk. initrd is used by kernel as temporary root file system until kernel is booted and the real root file system is mounted. It also contains necessary drivers compiled inside, which helps it to access the hard drive partitions, and other hardware.
  8. 8. System startup- Kernel (cont.) Details about the specific sequence of events or what happens when the Linux kernel is loaded.  Recognize, set up and initialize the CPU(s).  Set up kernel memory and process handling.  Initialize configured system devices.  Start memory handling (paging, …).  Set up and mount the file system.  Start the init command.
  9. 9. System startup- init After the kernel has detected computer‟s hardware and load the correct device driver, init is started.  The last step of kernel booting. It s the parent of all processes.  PID = 1 init role:  The primary role of init is to create processes from a script stored in /etc/inittab.  Running scripts in /etc/rc.d.
  10. 10. System startup- init- /etc/inittab This file describes how the init process should setup the system in a certain run level. /etc/inittab format:  Id:run-level:action:process  Id: a unique 1-4 character which identifies an entry in inittab.  Run-level: run level number.  Action: which action should be taken (wait, boot, initdefault, …)  Process: the process to be executed.
  11. 11. System startup- init- /etc/rc.d rc  Performs master control of which scripts to execute. rc.sysinit  The system initialization script rc.local  Used for local initialization /etc/rc.d/inid.d/  A number of scripts used to start and stop services /etc/rc.d/rc*.d/ (* : 0–6)  Each file is merely a soft link to a script under init.d
  12. 12. System startup- init- rc.sysinit This file is interpreted by init once at boot time. It contains bash shell script logic to perform some the following:  Sets the system hostname  Reads in network configuration data  Prints welcome banner for login  Configures the kernel  Sets up the system time  Sets the console and keyboard mapping  …
  13. 13. System startup- Run levels A run-level is a software configuration of the system which allows only a selected group of processes to exist. When the Linux system is booting up, you might see various services getting started. For example, it might say “starting sendmail …. OK”. Those are the runlevel programs, executed from the run level directory as defined by your run level.
  14. 14. System startup- Run levels (cont.) Depending on your default init level setting, the system will execute the programs from one of the following directories: Run level 0 – halt (/etc/rc.d/rc0.d/) : Shuts down the system. Run level 1 – single user mode (/etc/rc.d/rc1.d/) :Mode for administrative tasks. Run level 2 – multiuser, without NFS (/etc/rc.d/rc2.d/) :Does not configure network interfaces and does not export networks services. Run level 3 – full multiuser mode (/etc/rc.d/rc3.d/) : Starts the system normally. Run level 4 – unused (/etc/rc.d/rc4.d/) :For special purposes. Run level 5 – Multi-User mode, with display manager as well as console logins(X11) (/etc/rc.d/rc5.d/) :As runlevel 3 + display manager. Run level 6 – reboot (/etc/rc.d/rc6.d/) :Reboots the system.
  15. 15. Services /etc/rc.d/init.d/  A number of scripts used to start and stop services
  16. 16. Run Level and Services The scripts (in /etc/rc.d/rc*.d/) are actually symbolic links to system service scripts under the /etc/rc.d/init.d/ directory. So, /etc/rc0.d is linked to /etc/rc.d/rc0.d. Under the /etc/rc.d/rc*.d/ directories, you would see programs that start with S and K. Programs starts with S are used during startup. S for Startup. Programs starts with K are used during shutdown. K for kill. There are numbers right next to S and K in the program names. Those are the sequence number in which the programs should be started or killed. Example:  K12mysql  S12syslog  S10network  S80sendmail
  17. 17. Controlling Boot Services Manually rename Scripts  Rename K to S and vice versa  Change the number followed by K/S Manually start and stop services  {start | stop | restart | status}  /etc/rc.d/init.d/network start  service network start Through graphical tool  ntsysv
  18. 18. Controlling Boot Services Changing Run Levels  The telinit command is used to change run-levels on-the-fly on a running Linux system.  telinit 5
  19. 19. References management/8116-an-introduction-to-services-runlevels-and- rcd-scripts Mr. Hamed Janzadeh‟s slides about linux startup
  20. 20. Thank you Website: Http:// E-mail: Amin [at] aminhashemi [dot] com