Booting Peter J

Total Page:16

File Type:pdf, Size:1020Kb

Booting Peter J Booting Peter J. Denning © 2019, Peter J. Denning Starting the system • The process of starting the OS after the computer’s power has been turned on is call “bootstrapping” or “booting” for short • The term reflects the structure of the startup process, which was likened to “lifting oneself up by one’s boot straps” © 2019, Peter J. Denning Starting the system - 2 • When power is off, the main memory is empty • Objective: load the file “kernel.exe” from the disk and jump to its first instruction • But the read-file operation is not yet available because the kernel is not yet loaded • How to do this? © 2019, Peter J. Denning Starting the system - 3 • The load takes place in stages: • Stage 1: Start executing the BIOS code. BIOS code requests the disk to load the code in Master Boot Record (MBR), the first record on the disk. When done, jump to the first address of the MBR code. • Stage 2: MBR code contains the disk start address of kernel.exe. It issues commands to load that file into memory. When done, jump to the first address of that code. • Stage 3: Kernel does its own internal initialization, including creating a login process attached to the keyboard and display. • Example on next page © 2019, Peter J. Denning 1: BIOS firmware permanently RAM resides at Mem[0..8]. Mem[9] is 0 1 BIOS a flag set by tHe disk to indicate BIOS firmware that it is “transferrinG” or “idle”. 9 Start BIOS by settinG IP to 0. 10 idle BIOS code requests disk to load MBR into memory startinG at MBR 2 Mem[10]. CPU loops on Mem[9] until tHe flaG says “idle”. 137 master Jump to Mem[10]. boot record 2: MBR code requests disk to load file “kernel.exe” startinG 3 kernel at Mem[138]. Loop on Mem[9] until tHe flaG says “idle”. Jump to Mem[138]. kernel.exe 3: Kernel codes starts internal initialization and confiGurinG a loGin process user attacHed to tHe keyboard and display. © 2019, Peter J. DenninG.
Recommended publications
  • Boot Mode Considerations: BIOS Vs UEFI
    Boot Mode Considerations: BIOS vs. UEFI An overview of differences between UEFI Boot Mode and traditional BIOS Boot Mode Dell Engineering June 2018 Revisions Date Description October 2017 Initial release June 2018 Added DHCP Server PXE configuration details. The information in this publication is provided “as is.” Dell Inc. makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose. Use, copying, and distribution of any software described in this publication requires an applicable software license. Copyright © 2017 Dell Inc. or its subsidiaries. All Rights Reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be the property of their respective owners. Published in the USA [1/15/2020] [Deployment and Configuration Guide] [Document ID] Dell believes the information in this document is accurate as of its publication date. The information is subject to change without notice. 2 : BIOS vs. UEFI | Doc ID 20444677 | June 2018 Table of contents Revisions............................................................................................................................................................................. 2 Executive Summary ............................................................................................................................................................ 4 1 Introduction ..................................................................................................................................................................
    [Show full text]
  • Chapter 3. Booting Operating Systems
    Chapter 3. Booting Operating Systems Abstract: Chapter 3 provides a complete coverage on operating systems booting. It explains the booting principle and the booting sequence of various kinds of bootable devices. These include booting from floppy disk, hard disk, CDROM and USB drives. Instead of writing a customized booter to boot up only MTX, it shows how to develop booter programs to boot up real operating systems, such as Linux, from a variety of bootable devices. In particular, it shows how to boot up generic Linux bzImage kernels with initial ramdisk support. It is shown that the hard disk and CDROM booters developed in this book are comparable to GRUB and isolinux in performance. In addition, it demonstrates the booter programs by sample systems. 3.1. Booting Booting, which is short for bootstrap, refers to the process of loading an operating system image into computer memory and starting up the operating system. As such, it is the first step to run an operating system. Despite its importance and widespread interests among computer users, the subject of booting is rarely discussed in operating system books. Information on booting are usually scattered and, in most cases, incomplete. A systematic treatment of the booting process has been lacking. The purpose of this chapter is to try to fill this void. In this chapter, we shall discuss the booting principle and show how to write booter programs to boot up real operating systems. As one might expect, the booting process is highly machine dependent. To be more specific, we shall only consider the booting process of Intel x86 based PCs.
    [Show full text]
  • Bootstrapping Complexity
    BOOTSTRAPPING COMPLEXITY learning from self-organizing systems in nature and technology - a remix of Kevin Kellyʼs book “Out of Control” (1994) by Andreas Lloyd 2009 Distributed with permission under a Creative Commons license Introduction 3 Hive mind 6 Machines with an attitude 23 Assembling complexity 38 Co-evolution 47 The natural flux 63 The emergence of control 78 Closed systems 91 Artificial evolution 107 An open universe 128 The butterfly sleeps 142 Epilogue: Nine Laws of God 153 Text rights: Kevin Kelly: “Out of Control”, 1994, all rights reserved - used with kind permission. Full text available at http://www.kk.org/outofcontrol/ Wikipedia: “Cybernetics”, as of september 2009 - some rights reserved (BY-SA) Full text available at http://en.wikipedia.org/wiki/Cybernetics Photo rights: The Blue Marble, NASA Goddard Space Flight Center. Image by Reto Stöckli (land surface, shallow water, clouds). Enhancements by Robert Simmon (ocean color, compositing, 3D globes, animation). Data and technical support: MODIS Land Group; MODIS Science Data Support Team; MODIS Atmosphere Group; MODIS Ocean Group Additional data: USGS EROS Data Center (topography); USGS Terrestrial Remote Sensing Flagstaff Field Center (Antarctica); Defense Meteorological Satellite Program (city lights). http://visibleearth.nasa.gov/ Ecosphere, Statico - some rights reserved (BY-NC-SA). http://www.flickr.com/photos/ statico/143803777/ 2 Introduction “Good morning, self-organizing systems!” The cheerful speaker smiled with a polished ease and adjusted his tie. "I am indeed very happy to find the Office of Naval Research joining with the Armour Research Foundation in organizing this conference on what I personally consider an exceedingly important topic, and at such a well-chosen time." It was a spring day in early May, 1959.
    [Show full text]
  • Bootstrapping a Compiler for Fun and Profit
    Starting From Scratch Bootstrapping a Compiler for Fun and Profit Disclaimer: Profit not guaranteed Neither is fun. A background in compilers is neither assumed, implied, nor expected. Questions are welcome; and will be answered, possibly correctly. What’s a Compiler? A program that translates from one programming language into another programming language. To create a compiler, we need at least three things: A source language(e.g. C, Java, LLVM byte code) A target language (e.g. C, Java ByteCode, LLVM byte code, or the machine code for a specific CPU) to translate it to Rules to explain how to do the translation. How do we make a great compiler? There are two approaches to this problem. A) Write the perfect compiler on your very first try. (Good luck!) B) Start out with a not-so-great compiler. Use it to write a better one. Repeat. That’s great, but… What if I don’t have a not-so-great compiler to start out with? What if I don’t have a compiler at all? The Modern Answer: Just Google it. Someone will have written one for you by now. If they haven’t, you can start with an existing compiler for an existing source language (such as C), and change the target language that it generates. Starting from Scratch… What did we do before we had the Internet? What would we do if we didn’t have a compiler to start from? We’d make one! There are many possible ways to go about doing this. Here’s my approach… What are we trying to Do? We want to write a program that can translate from the language we HAVE to the language we WANT.
    [Show full text]
  • Trapper: an Operating System Bootstrapping Package for IBM PC Compatible Computer Systems
    Программные продукты и системы /Software&Systems 2 (33) 2020 Software &Systems Received 26.09.19 DOI: 10.15827/0236-235X.130.210-217 2020, vol. 33, no. 2, pp. 210–217 Trapper: an operating system bootstrapping package for IBM PC compatible computer systems Y.I. Klimiankou 1, Postgraduate Student, [email protected] 1 Belarusian State University of Informatics and Radioelectronics, Minsk, 220013, Belarus The paper presents an overview of the bootstrapping process on the IBM PC-compatible computer systems and proposes an architecture of the operating system bootstrapping package. The proposed package implements a framework for constructing boot images targeted at non-traditional operating systems like microkernel, an exokernel, unikernel, and multikernel. The bootstrapping package consists of three sets of independent boot modules and a Boot Image Builder application, which creates OS boot images. This application integrates and chains boot modules with one another to organize a complete bootloader chain. They are necessary to bring the operating system to a working state. The bootstrapping package architecture reflects the principal stages of the computer system boot process. Each set of boot modules is connected to the particular boot stage and forms a layer that is responsible for performing its own clearly defined set of functions and relies on clearly defined inter-layer interfaces to strictly isolate dependencies on the boot device, firmware and the specifics of the boot- loaded operating system. The paper presents the implementation of the described architecture for boot image generation designed and implemented for a research multikernel operating system and explains how it boots up. Additionally, the paper proposes the full separation idea of initialization code out of the operating system kernel and its movement into the independent OS loader module.
    [Show full text]
  • 3 Compiler Construction and Bootstrapping
    Compilers and Compiler Generators © P.D. Terry, 2000 3 COMPILER CONSTRUCTION AND BOOTSTRAPPING By now the reader may have realized that developing translators is a decidedly non-trivial exercise. If one is faced with the task of writing a full-blown translator for a fairly complex source language, or an emulator for a new virtual machine, or an interpreter for a low-level intermediate language, one would probably prefer not to implement it all in machine code. Fortunately one rarely has to contemplate such a radical step. Translator systems are now widely available and well understood. A fairly obvious strategy when a translator is required for an old language on a new machine, or a new language on an old machine (or even a new language on a new machine), is to make use of existing compilers on either machine, and to do the development in a high level language. This chapter provides a few examples that should make this clearer. 3.1 Using a high-level host language If, as is increasingly common, one’s dream machine M is supplied with the machine coded version of a compiler for a well-established language like C, then the production of a compiler for one’s dream language X is achievable by writing the new compiler, say XtoM, in C and compiling the source (XtoM.C) with the C compiler (CtoM.M) running directly on M (see Figure 3.1). This produces the object version (XtoM.M) which can then be executed on M. Even though development in C is much easier than development in machine code, the process is still complex.
    [Show full text]
  • A Minimalistic Verified Bootstrapped Compiler (Proof Pearl)
    A Minimalistic Verified Bootstrapped Compiler (Proof Pearl) Magnus O. Myreen Chalmers University of Technology Gothenburg, Sweden Abstract compiler on itself within the ITP (i.e. bootstrapping it), one This paper shows how a small verified bootstrapped compiler can arrive at an implementation of the compiler inside the can be developed inside an interactive theorem prover (ITP). ITP and get a proof about the correctness of each step [13]. Throughout, emphasis is put on clarity and minimalism. From there, one can export the low-level implementation of the compiler for use outside the ITP, without involving any CCS Concepts: • Theory of computation ! Program ver- complicated unverified code generation path. ification; Higher order logic; Automated reasoning. The concept of applying a compiler to itself inside an ITP Keywords: compiler verification, compiler bootstrapping, can be baffling at first, but don’t worry: the point of this paper interactive theorem proving is to clearly explain the ideas of compiler bootstrapping on a simple and minimalistic example. ACM Reference Format: To the best of our knowledge, compiler bootstrapping Magnus O. Myreen. 2021. A Minimalistic Verified Bootstrapped inside an ITP has previously only been done as part of the Proceedings of the 10th ACM SIGPLAN Compiler (Proof Pearl). In CakeML project [29]. The CakeML project has as one of International Conference on Certified Programs and Proofs (CPP ’21), its aims to produce a realistic verified ML compiler and, January 18–19, 2021, Virtual, Denmark. ACM, New York, NY, USA, 14 pages. https://doi.org/10.1145/3437992.3439915 as a result, some of its contributions, including compiler bootstrapping, are not as clearly explained as they ought to 1 Introduction be: important theorems are cluttered with real-world details that obscure some key ideas.
    [Show full text]
  • DOS Technical Reference
    -------- - ---- Personal Computer - ---- - --- ------ - . - Programming Family DOS Technical Reference 6138536 Preliminary First Edition (February 1985) The following paragraph does not apply to the United Kingdom or any country where such provisions are inconsistent ~ith local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES TIllS PUBLICATION "AS IS" wrrnom WARRANTY OF ANY KIND, EmlER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 1HE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. lbis publication could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and!or changes in the product(s) and/or the program(s) described in this pUblication at any time. It is possible that this publication may contain reference to, or information about, IBM products (machines and programs), programming, or services that are not announced in your country. Such references or information must not be construed to mean that IBM intends to announce such IBM products, programming, or services in your country. Products are not stocked at the address below. Requests for copies of this publication and for technical information about IBM Personal Computer products should be made to your authorized IBM Personal Computer dealer, IBM Product Center, or your IBM Marketing Representative. The following paragraph applies only to the United States and Puerto Rico: A Reader's Comment Form is provided at the back of this publication. If the form has been removed.
    [Show full text]
  • Unit V Algorithm for Booting the UNIX System
    Unit V Algorithm for booting the UNIX system : As we’ve noted, the boot process begins when the instructions stored in the computer’s permanent, nonvolatile memory (referred to colloquially as the BIOS, ROM,NVRAM, and so on) are executed. This storage location for the initial boot instructions is generically referred to as firmware (in contrast to “software,” but reflecting the fact that the instructions constitute a program[2]). These instructions are executed automatically when the power is turned on or the system is reset, although the exact sequence of events may vary according to the values of stored parameters.[3] The firmware instructions may also begin executing in response to a command entered on the system console (as we’ll see in a bit). However they are initiated, these instructions are used to locate and start up the system’s boot program , which in turn starts the Unix operating system. The boot program is stored in a standard location on a bootable device. For a normal boot from disk, for example, the boot program might be located in block 0 of the root disk or, less commonly, in a special partition on the root disk. In the same way, the boot program may be the second file on a bootable tape or in a designated location on a remote file server in the case of a network boot of a diskless workstation. There is usually more than one bootable device on a system. The firmware program may include logic for selecting the device to boot from, often in the form of a list of potential devices to examine.
    [Show full text]
  • Bootloader and Startup Feature Overview and Configuratoin Guide
    TechnicalTTechnicalechnical GuideGuidGuidee Bootloader and Startup Feature Overview and Configuration Guide The AlliedWare Plus™ Bootloader Every switch has a startup process. The end result of the startup is that the unit is running a specific version of the operating system software, with the features configured according to a specific startup configuration file. The startup process goes through two main phases: First, the switch boots up off a dedicated bootloader software image, which initializes core functionality of the unit. Then, the bootloader launches the main operating software image, and passes control over to this operating system. The bootloader is the executable code responsible for setting up the system and loading the operating system software. The bootloader is the software that runs the unit when it first powers up, performing basic initialization and executing the product software release. As part of the startup process of the switch, the bootloader allows you various options before running the product operating system software. C613-22004-00 x REV A alliedtelesis.com Products and software version that apply to this guide This guide applies to all AlliedWare Plus products, running version 5.4.4 or later. However, not all features in this guide are supported on all products. To see whether a product supports a particular feature or command, see the following documents: The product’s Datasheet The AlliedWare Plus Datasheet The product’s Command Reference These documents are available from the above links on our website at alliedtelesis.com. Feature support may change in later versions. For the latest information, see the above documents. Content The AlliedWare Plus™ Bootloader ....................................................................................
    [Show full text]
  • Using the OMAP-L132/L138 Bootloader
    Application Report SPRAB41F–January 2014–Revised January 2019 Using the OMAP-L132/L138 Bootloader Joseph Coombs ABSTRACT This application report describes various boot mechanisms supported by the OMAP-L132/L138 bootloader read-only memory (ROM) image. Topics covered include the Application Image Script (AIS) boot process, an AISgen tool used to generate boot scripts, protocol for booting the device from an external master device, a UART Boot Host GUI for booting the device from a host PC, and any limitations, default settings, and assumptions made by the bootloader. Project collateral discussed in this application report can be downloaded from the following URL: http://www.ti.com/lit/zip/sprab41. Contents 1 Introduction ................................................................................................................... 3 2 Boot Modes................................................................................................................... 3 3 Non-AIS Boot Modes........................................................................................................ 3 4 Application Image Script (AIS) Boot....................................................................................... 6 5 AISgen: Tool to Generate Boot Script (AIS Image).................................................................... 11 6 Master Boot – Booting From a Slave Memory Device ................................................................ 19 7 Slave Boot – Booting From an External Master Host ................................................................
    [Show full text]
  • A Brief History of Unix
    A Brief History of Unix Tom Ryder [email protected] https://sanctum.geek.nz/ I Love Unix ∴ I Love Linux ● When I started using Linux, I was impressed because of the ethics behind it. ● I loved the idea that an operating system could be both free to customise, and free of charge. – Being a cash-strapped student helped a lot, too. ● As my experience grew, I came to appreciate the design behind it. ● And the design is UNIX. ● Linux isn’t a perfect Unix, but it has all the really important bits. What do we actually mean? ● We’re referring to the Unix family of operating systems. – Unix from Bell Labs (Research Unix) – GNU/Linux – Berkeley Software Distribution (BSD) Unix – Mac OS X – Minix (Intel loves it) – ...and many more Warning signs: 1/2 If your operating system shows many of the following symptoms, it may be a Unix: – Multi-user, multi-tasking – Hierarchical filesystem, with a single root – Devices represented as files – Streams of text everywhere as a user interface – “Formatless” files ● Data is just data: streams of bytes saved in sequence ● There isn’t a “text file” attribute, for example Warning signs: 2/2 – Bourne-style shell with a “pipe”: ● $ program1 | program2 – “Shebangs” specifying file interpreters: ● #!/bin/sh – C programming language baked in everywhere – Classic programs: sh(1), awk(1), grep(1), sed(1) – Users with beards, long hair, glasses, and very strong opinions... Nobody saw it coming! “The number of Unix installations has grown to 10, with more expected.” — Ken Thompson and Dennis Ritchie (1972) ● Unix in some flavour is in servers, desktops, embedded software (including Intel’s management engine), mobile phones, network equipment, single-board computers..
    [Show full text]