1 / 13

Genesis: from raw hardware to processes

Genesis: from raw hardware to processes. System booting sequence: how does a machine come into life. How is the First Process Created?. What happens when you turn on a computer? How to get from raw hardware to the first running process, or process 1 under UNIX?. Booting Sequence.

leigh
Download Presentation

Genesis: from raw hardware to processes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Genesis: from raw hardware to processes System booting sequence: how does a machine come into life

  2. How is the First Process Created? • What happens when you turn on a computer? • How to get from raw hardware to the first running process, or process 1 under UNIX?

  3. Booting Sequence • The address of the first instruction is fixed • It is stored in read-only-memory (ROM) • ROM is read-only, permanent memory, and is always available to be used.

  4. Booting Procedure for i386 Machines • On i386 machines, ROM stores a Basic Input/Output System (BIOS) • BIOS contains program that knows how to access storage devices, keyboard, and graphic card.

  5. BIOS Code • Performs Power-On Self Test (POST) • Tests the system • Looks for and checks peripherals • During this time, you will hear memory counting, which consists of noises from the floppy and hard drive, followed by a final beep • Locates a valid device with which to boot the system (boot device) • Floppy  CDROM  hard drives

  6. After the POST • The master boot record (MBR) is loaded by BIOS from the boot device. • The MBR is stored at the first logical sector (track 0, cylinder 0, and head 0) of the boot device (e.g., a hard drive) that • Fits into a single 512-byte disk sector (boot sector) • Boot loader: machine code instructions for booting the machine. • Partition table: the physical layout of the disk (e.g., number of tracks)

  7. After Getting the Info on the Boot Device • BIOS loads a more sophisticated loader from the boot sector and yields control to it. • Under Linux, this sophisticated loader is called LILO (Linux Loader) or Grub (GNU Grub Unified Boot Loader). • The more sophisticated loader loads the operating system

  8. More on OS Loaders • LILO • Is partly stored in MBR with the disk partition table. • A small machine code binary on the MBR whose job is to locate the second stage boot loader and load the first part of it into memory. • A user can specify which disk partition and OS image to boot • Every time a configuration change is made, run ‘/sbin/lilo’ to change MBR. • Windows loader assumes only one bootable disk partition • After loading the kernel image, LILO sets the kernel mode and jumps to the entry point of the operating system

  9. Booting Sequence in Brief • A CPU jumps to a fixed address in ROM, • Loads the BIOS, • Performs POST, • Loads MBR from the boot device, • Loads an OS loader, • Loads the kernel image, • Sets the kernel mode, and • Jumps to the OS entry point.

  10. Linux Initialization • Set up a number of things: • Trap table • Interrupt handlers • Scheduler • Clock • Kernel modules • … • Process manager • Hand-craft environment for the init process (the first process, process 1).

  11. Process 1 • Is instantiated from the init program • Is the ancestor of all processes • Controls transitions between runlevels • Executes startup and shutdown scripts for each runlevel

  12. On RedHat, the init do the following (run as a process) • Run /etc/rc.d/rc.sysinit that sets environment path, checks file system, etc (system initialization) • Run /etc/inittab script that decides how system should be setup in each runlevel. • Set the source function library, /etc/rc.d/init.d, how to start and kill a program, etc • Start all background processes by looking at the rc directories for the runlevel as default in /etc/inittab: e.g /etc/rc.d/rc5.d for runlevel 5. • Fork /sbin/mingetty to give virtual consoles (login prompts).

  13. Runlevels • Level 0: shutdown • Level 1: single-user • Level 2: multi-user (without network file system) • Level 3: full multi-user • Level 5: X11 • Level 6: reboot

More Related