Bootstrapping Steve Muckle Dave Eckhardt. Carnegie Mellon University1 Synchronization Project 3 checkpoint 1 Bboard post, web page Paging, COW optional.

Slides:



Advertisements
Similar presentations
Hardware Lesson 3 Inside your computer.
Advertisements

Memory Protection: Kernel and User Address Spaces  Background  Address binding  How memory protection is achieved.
Booting the TS-7300 boards VHDL and C. Overview After looking at the general approach to booting machines (generally PCs) we will now look at the TS-7300.
PC bootup Presented by: Rahul Garg (2003CS10183) Rajat Sahni (2003CS10184) Varun Gulshan(2003CS10191)
The Operating System. What is an Operating System? The program that is loaded first and manages the hardware resources like main memory, backing storage.
Genesis: from raw hardware to processes System booting sequence: how does a machine come into life.
Chapter 9: Understanding System Initialization The Complete Guide To Linux System Administration.
Linux+ Guide to Linux Certification Chapter Nine System Initialization.
Linux Booting Procedure
Booting the Linux Kernel Dr. Michael L. Collard 1.
PC BIOS and CMOS.
计算机系 信息处理实验室 Lecture 5 Startup and Shutdown
Motherboard, BIOS and POST The external data bus connects devices on the motherboard together. Everything is also connected to the address bus. These busses.
11/13/01CS-550 Presentation - Overview of Microsoft disk operating system. 1 An Overview of Microsoft Disk Operating System.
Basic Input Output System
System initialisation
 Contents 1.Introduction about operating system. 2. What is 32 bit and 64 bit operating system. 3. File systems. 4. Minimum requirement for Windows 7.
BIOS and CMOS Adding personality to your PC. We Need to Talk! The CPU needs some method to talk to the devices to tell them what to do The devices need.
Operating Systems Operating System
Computer Organization
Host and Application Security Lesson 4: The Win32 Boot Process.
Computer Startup Sequence Overview
Chapter 5 Basic Input/Output System (BIOS)
Basic Input Output System
Linux Booting Procedure
By the end of this lesson you will be able to explain: 1. What is the BOOT process 2. A Cold Boot 3. A Warm Boot.
Computer Maintenance Unit Subtitle: Basic Input/Output System (BIOS) Excerpted from 1 Copyright © Texas Education Agency, All.
CS 1308 Computer Literacy and the Internet. Introduction  Von Neumann computer  “Naked machine”  Hardware without any helpful user-oriented features.
Booting. Booting is the process of powering it on and starting the operating system. power on your machine, and in a few minutes your computer will be.
What is system software and what are its parts? Programs that control operation of computer Two parts are operating systems utility programs.
From UEFI Shell to Linux - UEFI Linux BootLoader Zhang Rui Software Engineer Sep 28 th 2011.
Laface Operating System Design Booting a PC to run a kernel from Low memory VGA display.
What is a BIOS? * basic input/output system (BIOS), also known as the System BIOS * The BIOS software is built into the PC on a non-volatile ROM and is.
Hardware Boot Sequence. Vocabulary BIOS = Basic Input Output System UEFI = Unified Extensible Firmware Interface POST= Power On Self Test BR = Boot Record.
14 Step-by-Step Instructions for an Upgrade Installation n Prepare for the installation Verify that all devices and applications are Windows 2000 compatible.
Virtual Memory Review Goal: give illusion of a large memory Allow many processes to share single memory Strategy Break physical memory up into blocks (pages)
Chapter Thirteen Booting Windows XP. Objectives Understand the Windows XP boot process Understand the Windows XP boot process Troubleshoot system restoration.
Basic Input/Output System (BIOS). 5.1Introduction to BIOS Basic Input / Output System (BIOS) boot the computer by providing a basic set of instructions.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Memory Management: Overlays and Virtual Memory. Agenda Overview of Virtual Memory –Review material based on Computer Architecture and OS concepts Credits.
Genesis: From Raw Hardware to Processes Andy Wang Operating Systems COP 4610 / CGS 5765.
Suleiman Mohammed (mcpn,mncs)
Copyright © Genetic Computer School 2008 Computer Systems Architecture SA 8- 0 Lesson 8 Secondary Management.
The Linux Operating System R.Bigelow. What is an Operating System An operating system is a collection of programs that manage a computer's resources.
What You Need to Know for Project Three Steve Muckle Wednesday, February 19 th Spring 2003.
POST and The Boot Process
Computer Maintenance I
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Bootstrapping Introduction. Bootstrapping Introduction: Computers execute programs stored in main memory, and initially the operating system is on the.
System initialization Unit objectives A.Outline steps necessary to boot a Linux system, configure LILO and GRUB boot loaders, and dual boot Linux with.
Computer Technician POST and The Boot Process ©UNT in Partnership with TEA1.
Von Neumann Machines. 3 The Von Neumann Architecture Model for designing and building computers, based on the following three characteristics: 1)The.
File System Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki CS 314.
What You Need to Know for Project Three Dave Eckhardt Steve Muckle.
Overview A) Power on or reset B) 1st stage boot loader C) 2nd stage boot loader D) Operate system.
IT Chapter 2 Part A How Computers Work Input, process, output, and storage The operating system helps the computer perform four basic operations,
Nathaniel Filardo Steve Muckle Dave Eckhardt
Chapter Objectives In this chapter, you will learn:
BIOS & CMOS.
Computer Maintenance Unit Subtitle: Basic Input/Output System (BIOS)
TOPIC 6: SYSTEM START-UP AND CONFIGURATION
Computer System Structures
Introduction to Computers
Booting Up 15-Nov-18 boot.ppt.
Starting the computer. Every day we are using an operating system and most specifically a Windows operating system but most of us are not aware of the.
Genesis: From Raw Hardware to Processes
SUSE Linux Enterprise Desktop Administration
BIOS Chapter 6.
Boot Process Mark Stanovich COP 5641 / CIS 4930.
Memory Addresses.
Presentation transcript:

Bootstrapping Steve Muckle Dave Eckhardt

Carnegie Mellon University1 Synchronization Project 3 checkpoint 1 Bboard post, web page Paging, COW optional “No linked lists” - not what I said (I think) Homework 1: Monday 17:00 Exam: Tuesday evening (19:00) Known conflicts will receive from me Monday: Review

Carnegie Mellon University1 Motivation What happens when you turn on your PC? How do we get to main() in kernel.c?

Carnegie Mellon University1 Overview Requirements of Booting Ground Zero The BIOS The Boot Loader Our projects: Multiboot, OSKit

Carnegie Mellon University1 Requirements of Booting Initialize machine to a known state Make sure basic hardware works Load a real operating system Run the real operating system

Carnegie Mellon University1 Ground Zero You turn on the machine Execution begins in real mode at a specific memory address Real mode: only 1mb of memory is addressable Start address is in an area mapped to BIOS (r/o) What’s the BIOS?

Carnegie Mellon University1 Basic Input/Output System (BIOS) Code stored in mostly-read-only memory Flash, previously EEPROM Configures hardware details RAM refresh rate or bus speed Password protection Boot-device order Loads OS, acts as mini-OS Scary things (power management)

Carnegie Mellon University1 BIOS POST Power On Self Test (POST) Scan for critical resources RAM Test it (only a little!) Graphics card Keyboard Missing something? Beep

Carnegie Mellon University1 BIOS Boot-Device Search Consult settings for selected order “A: C: G:” (maybe PXE) Load the first sector from a boot device - could be a floppy, hard disk, CDROM - without a BIOS, we’d be in a bit of a jam If the last two bytes are AA55, we’re set Otherwise look somewhere else “No Operating System Present”

Carnegie Mellon University1 BIOS Boot-Sector Launch Sector is copied to 0x7C00 Execution is transferred to 0x7C00 If it’s a hard disk or CDROM, there’s an extra step or two (end result is the same) Now we’re executing the bootloader – the first “software” to execute on the PC

Carnegie Mellon University1 Bootloader We’re now executing a bootloader Some bootloaders exist to load one OS Others give you a choice of which to load We use grub

Carnegie Mellon University1 Bootloader's Job Mission: load operating system But where? May need to understand a file system Directories, inodes, symbolic links! May need to understand multiple file systems Single disk may contain more than one Layout defined by “partition label”...and “extended partition label” Recall: Boot loader is 510 bytes of code!

Carnegie Mellon University1 Multi-Stage Boot Loader GRUB is larger than one sector Sector loaded in by the BIOS just…...loads the rest of the boot loader GRUB then presents boot menu OS load challenge BIOS runs in real mode – only 1 meg of RAM! OS may be larger than 1 meg

Carnegie Mellon University1 Brain-switching Switch back and forth between real and protected mode Real mode: BIOS works, can operate disk Protected mode: can access lots of memory Switching code is tricky Somewhat like OS process context switch Done: jump to the kernel’s entry point - How do we know the kernel’s entrypoint?

Carnegie Mellon University1 Multiboot Specification Many OSes require their own bootloader Multiboot “standard” Kernel specifies entry point &c The multiboot header must be located in the first 8192 bytes This is the mysterious multiboot.o… 0x1badb002 flags checksum Header_addr load_addr load_end_addr bss_end_addr entry_addr

Carnegie Mellon University1 410 “Pebbles” (from Oskit) Entry point is asm function in multiboot.o This calls the first C function, multiboot_main

Carnegie Mellon University1 OSkit multiboot_main calls: - base_cpu_setup: init GDT, IDT, and TSS - base_multiboot_init_mem: init LMM - base_multiboot_init_cmdline parse cmdline passed to kernel by bootloader - main (yes, your main in kernel.c!) - exit, if main ever returns press a key to reboot…

Carnegie Mellon University1 Other Universes OpenFirmware Sun & Mac hardware Goal: share devices across processor families Solution: FORTH boot-loader code in each device “Big Iron” (mainframes) “Boot loader” may be a separate machine Run thorough diagnostics on main machine Debugger support for crashes

Carnegie Mellon University1 Summary It's a long, strange trip Power on: maybe no RAM, maybe no CPU!! Maybe beep, maybe draw a sad face Locate OS Load N stages Tell kernel about the machine and the boot params Provide support to kernel once it's running