Openstack User Guide Openstack User Guide SUSE Openstack Cloud Crowbar

Total Page:16

File Type:pdf, Size:1020Kb

Openstack User Guide Openstack User Guide SUSE Openstack Cloud Crowbar SUSE OpenStack Cloud Crowbar OpenStack User Guide OpenStack User Guide SUSE OpenStack Cloud Crowbar Publication Date: 07/29/2021 SUSE LLC 1800 South Novell Place Provo, UT 84606 USA https://documentation.suse.com Contents 1 Glance User Guide 1 1.1 Image Identifiers 1 1.2 Image Statuses 1 1.3 Task Statuses 4 1.4 Image Statuses 4 1.5 Task Statuses 7 1.6 Disk and Container Formats 7 Disk Format 7 • Container Format 8 1.7 Common Image Properties 9 architecture 9 • instance_uuid 10 • kernel_id 10 • ramdisk_id 10 • os_distro 10 • os_version 10 1.8 Metadata Definition Concepts 10 Terminology 11 1.9 Using Glance’s Image Public APIs 14 Glance and the Images APIs: Past, Present, and Future 15 • Authentication 17 • Using v1.X 17 • Image Membership Changes in Version 2.0 28 • Images v2 Tasks API 29 • API Message Localization 31 1.10 Using Glance’s Client Tools 32 1.11 Using Glance’s Metadata Definitions Catalog Public APIs 32 Authentication 33 • Using v2.X 33 • API Message Localization 44 1.12 Image Signature Verification 45 Requirements 45 • Configuration 45 • Using the Signature Verification 46 • Example Usage 48 • Other Links 49 iii OpenStack User Guide 2 Ironic User Guide 50 2.1 Why Provision Bare Metal 50 2.2 Conceptual Architecture 50 2.3 Logical Architecture 53 2.4 Key Technologies for Bare Metal Hosting 55 Preboot Execution Environment (PXE) 55 • Dynamic Host Configuration Protocol (DHCP) 56 • Network Bootstrap Program (NBP) 56 • Trivial File Transfer Protocol (TFTP) 56 • Intelligent Platform Management Interface (IPMI) 56 2.5 Ironic Deployment Architecture 56 2.6 Understanding Bare Metal Deployment 57 Deploy Process 59 • Example 1: PXE Boot and iSCSI Deploy Process 61 • Example 2: PXE Boot and Direct Deploy Process 61 3 Horizon User Guide 62 3.1 OpenStack Dashboard User Documentation 62 Log in to the dashboard 62 • Upload and manage images 68 • Configure access and security for instances 75 • Launch and manage instances 79 • Create and manage networks 85 • Create and manage object containers 88 • Create and manage volumes 91 • Create and manage shares 95 • Launch and manage stacks 99 • Create and manage databases 106 • View and manage load balancers v2 110 • Supported Browsers 112 4 Keystone User Guide 116 4.1 User Documentation 116 API Examples using Curl 116 5 Magnum User Documentation 143 5.1 Introduction 143 5.2 Terminology 143 5.3 Overview 144 iv OpenStack User Guide 5.4 ClusterTemplate 144 Labels 149 5.5 Cluster 152 Infrastructure 152 • Life cycle 153 5.6 Python Client 158 Installation 158 • Verifying installation 158 • Using the command-line client 158 5.7 Horizon Interface 159 5.8 Cluster Drivers 160 Directory structure 160 • Sample cluster driver 161 • Installing a cluster driver 162 5.9 Cluster Type Definition 162 The Heat Stack Template 162 • The Template Definition 162 • The Definition Entry Point 162 • Installing Cluster Templates 163 5.10 Heat Stack Templates 164 5.11 Choosing a COE 165 5.12 Native Clients 166 5.13 Kubernetes 167 External load balancer for services 170 5.14 Swarm 171 5.15 Mesos 173 Building Mesos image 177 • Using Marathon 178 5.16 Transport Layer Security 179 Deploying a secure cluster 179 • Interfacing with a secure cluster 182 • User Examples 184 • Storing the certificates 186 5.17 Networking 187 5.18 High Availability 189 v OpenStack User Guide 5.19 Scaling 189 Performance tuning for periodic task 189 • Containers and nodes 190 5.20 Storage 192 Ephemeral storage 193 • Persistent storage 194 5.21 Image Management 198 Kubernetes on Fedora Atomic 199 • Kubernetes on CoreOS 200 • Kubernetes on Ironic 201 • Swarm on Fedora Atomic 201 • Mesos on Ubuntu 201 5.22 Notification 202 Auditing with CADF 202 • Supported Events 206 • Example Notification - Cluster Create 206 5.23 Container Monitoring 207 Container Monitoring in Kubernetes 208 5.24 Kubernetes External Load Balancer 208 Steps for the cluster administrator 209 • Steps for the users 210 • How it works 213 5.25 Terminology 215 5.26 Overview 216 5.27 ClusterTemplate 217 Labels 221 5.28 Cluster 224 Infrastructure 224 • Life cycle 226 5.29 Python Client 230 Installation 230 • Verifying installation 230 • Using the command-line client 231 5.30 Horizon Interface 231 5.31 Cluster Drivers 232 Directory structure 232 • Sample cluster driver 233 • Installing a cluster driver 234 vi OpenStack User Guide 5.32 Cluster Type Definition 234 The Heat Stack Template 234 • The Template Definition 234 • The Definition Entry Point 234 • Installing Cluster Templates 235 5.33 Heat Stack Templates 236 5.34 Choosing a COE 237 5.35 Native Clients 238 5.36 Kubernetes 239 External load balancer for services 242 5.37 Swarm 243 5.38 Mesos 245 Building Mesos image 249 • Using Marathon 250 5.39 Transport Layer Security 251 Deploying a secure cluster 251 • Interfacing with a secure cluster 254 • User Examples 256 • Storing the certificates 258 5.40 Networking 259 5.41 High Availability 261 5.42 Scaling 261 Performance tuning for periodic task 261 • Containers and nodes 262 5.43 Storage 264 Ephemeral storage 265 • Persistent storage 266 5.44 Image Management 270 Kubernetes on Fedora Atomic 271 • Kubernetes on CoreOS 272 • Kubernetes on Ironic 273 • Swarm on Fedora Atomic 273 • Mesos on Ubuntu 273 5.45 Notification 274 Auditing with CADF 274 • Supported Events 278 • Example Notification - Cluster Create 278 5.46 Container Monitoring 279 Container Monitoring in Kubernetes 280 vii OpenStack User Guide 5.47 Kubernetes External Load Balancer 280 Steps for the cluster administrator 281 • Steps for the users 282 • How it works 285 6 Nova User Guide 288 6.1 Tools for using Nova 288 6.2 Writing to the API 288 Glossary 290 viii OpenStack User Guide 1 Glance User Guide 1.1 Image Identifiers Images are uniquely identied by way of a URI that matches the following signature: <Glance Server Location>/v1/images/<ID> where <Glance Server Location> is the resource location of the Glance service that knows about an image, and <ID> is the image’s identier. Image identiers in Glance are uuids, making them globally unique. 1.2 Image Statuses Images in Glance can be in one the following statuses: queued The image identier has been reserved for an image in the Glance registry. No image data has been uploaded to Glance and the image size was not explicitly set to zero on creation. saving Denotes that an image’s raw data is currently being uploaded to Glance. When an image is registered with a call to POST /images and there is an x-image-meta-location header present, that image will never be in the saving status (as the image data is already available in some other location). active Denotes an image that is fully available in Glance. This occurs when the image data is uploaded, or the image size is explicitly set to zero on creation. deactivated Denotes that access to image data is not allowed to any non-admin user. Prohibiting downloads of an image also prohibits operations like image export and image cloning that may require image data. killed Denotes that an error occurred during the uploading of an image’s data, and that the image is not readable. 1 Image Identifiers SUSE OpenStack Cl… deleted Glance has retained the information about the image, but it is no longer available to use. An image in this state will be removed automatically at a later date. pending_delete This is similar to deleted , however, Glance has not yet removed the image data. An image in this state is not recoverable. 2 Image Statuses SUSE OpenStack Cl… FIGURE 1.1: THIS IS A REPRESENTATION OF HOW THE IMAGE MOVE FROM ONE STATUS TO THE NEXT. 3 Image Statuses SUSE OpenStack Cl… 1.3 Task Statuses Tasks in Glance can be in one the following statuses: pending The task identier has been reserved for a task in the Glance. No processing has begun on it yet. processing The task has been picked up by the underlying executor and is being run using the backend Glance execution logic for that task type. success Denotes that the task has had a successful run within Glance. The result eld of the task shows more details about the outcome. failure Denotes that an error occurred during the execution of the task and it cannot continue processing. The message eld of the task shows what the error was. 1.4 Image Statuses Images in Glance can be in one the following statuses: queued The image identier has been reserved for an image in the Glance registry. No image data has been uploaded to Glance and the image size was not explicitly set to zero on creation. saving Denotes that an image’s raw data is currently being uploaded to Glance. When an image is registered with a call to POST /images and there is an x-image-meta-location header present, that image will never be in the saving status (as the image data is already available in some other location). active Denotes an image that is fully available in Glance. This occurs when the image data is uploaded, or the image size is explicitly set to zero on creation. deactivated 4 Task Statuses SUSE OpenStack Cl… Denotes that access to image data is not allowed to any non-admin user. Prohibiting downloads of an image also prohibits operations like image export and image cloning that may require image data. killed Denotes that an error occurred during the uploading of an image’s data, and that the image is not readable. deleted Glance has retained the information about the image, but it is no longer available to use.
Recommended publications
  • Interrupt Handling in Linux
    Department Informatik Technical Reports / ISSN 2191-5008 Valentin Rothberg Interrupt Handling in Linux Technical Report CS-2015-07 November 2015 Please cite as: Valentin Rothberg, “Interrupt Handling in Linux,” Friedrich-Alexander-Universitat¨ Erlangen-Nurnberg,¨ Dept. of Computer Science, Technical Reports, CS-2015-07, November 2015. Friedrich-Alexander-Universitat¨ Erlangen-Nurnberg¨ Department Informatik Martensstr. 3 · 91058 Erlangen · Germany www.cs.fau.de Interrupt Handling in Linux Valentin Rothberg Distributed Systems and Operating Systems Dept. of Computer Science, University of Erlangen, Germany [email protected] November 8, 2015 An interrupt is an event that alters the sequence of instructions executed by a processor and requires immediate attention. When the processor receives an interrupt signal, it may temporarily switch control to an inter- rupt service routine (ISR) and the suspended process (i.e., the previously running program) will be resumed as soon as the interrupt is being served. The generic term interrupt is oftentimes used synonymously for two terms, interrupts and exceptions [2]. An exception is a synchronous event that occurs when the processor detects an error condition while executing an instruction. Such an error condition may be a devision by zero, a page fault, a protection violation, etc. An interrupt, on the other hand, is an asynchronous event that occurs at random times during execution of a pro- gram in response to a signal from hardware. A proper and timely handling of interrupts is critical to the performance, but also to the security of a computer system. In general, interrupts can be emitted by hardware as well as by software. Software interrupts (e.g., via the INT n instruction of the x86 instruction set architecture (ISA) [5]) are means to change the execution context of a program to a more privileged interrupt context in order to enter the kernel and, in contrast to hardware interrupts, occur synchronously to the currently running program.
    [Show full text]
  • User Manual Issue 2.0.2 September 2017
    The Embedded I/O Company TDRV015-SW-82 Linux Device Driver Reconfigurable FPGA Version 2.0.x User Manual Issue 2.0.2 September 2017 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany Phone: +49 (0) 4101 4058 0 Fax: +49 (0) 4101 4058 19 e-mail: [email protected] www.tews.com TDRV015-SW-82 This document contains information, which is Linux Device Driver proprietary to TEWS TECHNOLOGIES GmbH. Any Reconfigurable FPGA reproduction without written permission is forbidden. Supported Modules: TEWS TECHNOLOGIES GmbH has made any TAMC631 (TPLD001) effort to ensure that this manual is accurate and TAMC640 (TPLD002) complete. However TEWS TECHNOLOGIES GmbH TAMC641 (TPLD003) reserves the right to change the product described TAMC651 (TPLD004) in this document at any time without notice. TPMC632 (TPLD005) TEWS TECHNOLOGIES GmbH is not liable for any damage arising out of the application or use of the device described herein. 2011-2017 by TEWS TECHNOLOGIES GmbH Issue Description Date 1.0.0 First Issue March 14, 2011 1.0.1 SupportedModulesadded September30,2011 2.0.0 New API implemented March 7, 2012 2.0.1 IncludestatementinExampleCodescorrected August 18, 2015 Reference to Engineering Documentation removed 2.0.2 Filelistmodified(licenseadded) September28,2017 TDRV015-SW-82 - Linux Device Driver Page 2 of 75 Table of Contents 1 INTRODUCTION......................................................................................................... 4 2 INSTALLATION.........................................................................................................
    [Show full text]
  • Faux Disk Encryption: Realities of Secure Storage on Mobile Devices August 4, 2015 – Version 1.0
    NCC Group Whitepaper Faux Disk Encryption: Realities of Secure Storage On Mobile Devices August 4, 2015 – Version 1.0 Prepared by Daniel A. Mayer — Principal Security Consultant Drew Suarez — Senior Security Consultant Abstract In this paper, we discuss the challenges mobile app developers face in securing data stored on devices including mobility, accessibility, and usability requirements. Given these challenges, we first debunk common misconceptions about full-disk encryption and show why it is not sufficient for many attack scenarios. We then systematically introduce the more sophisticated secure storage techniques that are available for iOS and Android respectively. For each platform, we discuss in-depth which mechanisms are available, how they technically operate, and whether they fulfill the practical security and usability requirements. We conclude the paper with an analysis of what still can go wrong even when current best-practices are followed and what the security and mobile device community can do to address these shortcomings. Table of Contents 1 Introduction ......................................................................... 3 2 Challenges in Secure Mobile Storage .................................................. 4 3 Threat Model Considerations ......................................................... 5 4 Secure Data Storage on iOS .......................................................... 6 4.1 Fundamentals of iOS Data Protection .................................................. 7 4.2 Filesystem Encryption ..............................................................
    [Show full text]
  • Linux Kernel and Driver Development Training Slides
    Linux Kernel and Driver Development Training Linux Kernel and Driver Development Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 9, 2021. Document updates and sources: https://bootlin.com/doc/training/linux-kernel Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/470 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/470 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/470 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • Linux Kernal II 9.1 Architecture
    Page 1 of 7 Linux Kernal II 9.1 Architecture: The Linux kernel is a Unix-like operating system kernel used by a variety of operating systems based on it, which are usually in the form of Linux distributions. The Linux kernel is a prominent example of free and open source software. Programming language The Linux kernel is written in the version of the C programming language supported by GCC (which has introduced a number of extensions and changes to standard C), together with a number of short sections of code written in the assembly language (in GCC's "AT&T-style" syntax) of the target architecture. Because of the extensions to C it supports, GCC was for a long time the only compiler capable of correctly building the Linux kernel. Compiler compatibility GCC is the default compiler for the Linux kernel source. In 2004, Intel claimed to have modified the kernel so that its C compiler also was capable of compiling it. There was another such reported success in 2009 with a modified 2.6.22 version of the kernel. Since 2010, effort has been underway to build the Linux kernel with Clang, an alternative compiler for the C language; as of 12 April 2014, the official kernel could almost be compiled by Clang. The project dedicated to this effort is named LLVMLinxu after the LLVM compiler infrastructure upon which Clang is built. LLVMLinux does not aim to fork either the Linux kernel or the LLVM, therefore it is a meta-project composed of patches that are eventually submitted to the upstream projects.
    [Show full text]
  • Singularityce User Guide Release 3.8
    SingularityCE User Guide Release 3.8 SingularityCE Project Contributors Aug 16, 2021 CONTENTS 1 Getting Started & Background Information3 1.1 Introduction to SingularityCE......................................3 1.2 Quick Start................................................5 1.3 Security in SingularityCE........................................ 15 2 Building Containers 19 2.1 Build a Container............................................. 19 2.2 Definition Files.............................................. 24 2.3 Build Environment............................................ 35 2.4 Support for Docker and OCI....................................... 39 2.5 Fakeroot feature............................................. 79 3 Signing & Encryption 83 3.1 Signing and Verifying Containers.................................... 83 3.2 Key commands.............................................. 88 3.3 Encrypted Containers.......................................... 90 4 Sharing & Online Services 95 4.1 Remote Endpoints............................................ 95 4.2 Cloud Library.............................................. 103 5 Advanced Usage 109 5.1 Bind Paths and Mounts.......................................... 109 5.2 Persistent Overlays............................................ 115 5.3 Running Services............................................. 118 5.4 Environment and Metadata........................................ 129 5.5 OCI Runtime Support.......................................... 140 5.6 Plugins.................................................
    [Show full text]
  • Linux GPIO: Evolution and Current State of the User
    Linux GPIO: Evolution and Current State of the User API Embedded Linux Conference 2020 Bartosz Golaszewski About us ● Embedded Linux Engineering Firm ● ~40 senior engineers, coming from the semiconductor world ● HW and SW products: from concept to manufacturing ● Upstream Linux kernel development and maintenance ● Founding developers of kernelCI.org project About me ● 10 years experience ● Kernel and user-space developer ● Maintainer of libgpiod and co-maintainer of the GPIO kernel sub-system 2 A lot can change in a couple months... 3 A lot can change in a couple months... The GPIO character device has been extended with new features in linux v5.5 and final new additions before declaring it feature-complete are planned for v5.6 & v5.7. 4 A lot can change in a couple months... The GPIO character device has been extended with new features in linux v5.5 but due to shortcomings in the first version of the ABI, the existing ioctl() calls are being retired and v2 of the ABI is being introduced aiming at a release as part of linux v5.9. 5 Linux GPIO: A Lesson in user API design Embedded Linux Conference 2020 Bartosz Golaszewski Agenda 1. Current state of user API a. sysfs = bad b. Character device c. Recently added features d. GPIO aggregator 2. Upcoming overhaul a. What’s wrong? b. What’s new? c. Advice on designing good uAPI 3. libgpiod a. what’s new b. Future 7 Current state of GPIO uAPI 8 GPIO in userspace ● Writing drivers for devices using GPIOs is encouraged wherever possible, but..
    [Show full text]
  • Fabric Manager for NVIDIA Nvswitch Systems
    Fabric Manager for NVIDIA NVSwitch Systems User Guide / Virtualization / High Availability Modes DU-09883-001_v0.7 | January 2021 Document History DU-09883-001_v0.7 Version Date Authors Description of Change 0.1 Oct 25, 2019 SB Initial Beta Release 0.2 Mar 23, 2020 SB Updated error handling and bare metal mode 0.3 May 11, 2020 YL Updated Shared NVSwitch APIs section with new API information 0.4 July 7, 2020 SB Updated MIG interoperability and high availability details. 0.5 July 17, 2020 SB Updated running as non-root instructions 0.6 Aug 03, 2020 SB Updated installation instructions based on CUDA repo and updated SXid error details 0.7 Jan 26, 2021 GT, CC Updated with vGPU multitenancy virtualization mode Fabric Ma nager fo r NVI DIA NVSwitch Sy stems DU-09883-001_v0.7 | ii Table of Contents Chapter 1. Overview ...................................................................................................... 1 1.1 Introduction .............................................................................................................1 1.2 Terminology ............................................................................................................1 1.3 NVSwitch Core Software Stack .................................................................................2 1.4 What is Fabric Manager?..........................................................................................3 Chapter 2. Getting Started With Fabric Manager ...................................................... 5 2.1 Basic Components...................................................................................................5
    [Show full text]
  • Documentation and Analysis of the Linux Random Number Generator
    Documentation and Analysis of the Linux Random Number Generator Version: 3.6 Document history Version Date Editor Description 2.0 2018-03-21 Stephan Müller Covering kernel 4.15 Re-running all tests of chapters 6 and following on 4.15 2.1 2018-04-11 Stephan Müller Updating the test results for the reboot tests on bare metal with 50,000 reboot cycles 2.2 2018-04-11 Stephan Müller Covering kernel 4.16 2.3 2018-06-18 Stephan Müller Covering kernel 4.17 2.4 2018-08-24 Stephan Müller Covering kernel 4.18 2.5 2018-11-12 Stephan Müller Covering kernel 4.19 Updated seeding process ChaCha20 DRNG documented 2.6 2019-01-11 Stephan Müller Covering kernel 4.20 3.0 2019-04-05 Stephan Müller Covering kernel 5.0 Re-running all tests of chapters 6 and following on 5.0 3.1 2019-04-12 Stephan Müller Adding results of reboot-tests for 5.0 3.2 2019-05-17 Stephan Müller Addressing comments from BSI Covering kernel 5.1 3.3 2019-08-13 Stephan Müller Covering kernel 5.2 3.4 2019-09-26 Stephan Müller Covering kernel 5.3 3.5 2019-12-13 Stephan Müller Covering kernel 5.4 3.6 2020-04-07 Stephan Müller Covering kernel 5.5 Federal Office for Information Security Post Box 20 03 63 D-53133 Bonn Internet: https://www.bsi.bund.de © Federal Office for Information Security 2020 Document history This analysis was prepared for BSI by atsec information security GmbH.
    [Show full text]
  • (Thingspro Gateway V2.6.0 Installation File for Debian 9) Release Notes
    Software Package for ThingsPro 2 (ThingsPro Gateway v2.6.0 installation file for Debian 9) Release Notes Version: v2.6.0 Build: Build 20200616 Release Date: Jul 31, 2020 Applicable Products MC-1121-E2-T, MC-1121-E4-T, MC-1121-E4-T-US, UC-2100 Series, UC-2100-W Series, UC-3100 Series, UC-5100 Series, UC-8112-LX, UC-8112-ME-T-LX, UC-8112-ME-T-LX1, UC-8100A-ME-T Series, UC-8200 Series Supported Operating Systems Moxa Industrial Linux (Debian 9) New Features • Core: ThingsPro now supports Python 3 (Python 2 is deprecated). • Modbus: Shows Modbus TX/RX packet in debug mode. • AWS IoT Core: Supports 0 and 1 settings in QoS. • Aliyun IoT Platform: Supports 0 and 1 settings in QoS. • Sparkplug: Support user-scheduled periodic group uploading of tags. Enhancements • Modbus: Improved the TCP/RTU reconnect mechanism. • Modbus: Serial port will not be occupied if no RTU device is configured. Bugs Fixed • Cellular: An incorrect tag name. • Cellular: Apply the watchdog to prevent system freeze during the reboot process. • Cellular: Keepalive fails due to arping bind with the MAC address of the host instead of the target. • Route: The routing priority is not working when the cellular interface is not WWAN0. • Route: Changing route priority frequently could lead to a deadlock. • OpenVPN: Missing DNS information when OpenVPN is enabled or disabled. • OpenVPN: DNS info missing in the default route update script. • OpenVPN: Incorrect status for MC1121. • AVEVA Insight: All datatypes are changed to string value type in JSON payload. Keep the original datatype.
    [Show full text]
  • Designing a Fast Index Format for Git
    Free University of Bolzano - Bozen Bachelor Thesis Designing a Fast Index Format for Git Author: Supervisor: Thomas Gummerer Dr. Johann Gamper A thesis submitted in fulfillment of the requirements for the degree of Bachelor in Computer Science in July 2013 Contents List of Figures iv Abstract v 1 Introduction1 1.1 Motivation...................................1 1.2 Problem Description and Objectives.....................2 1.3 Organization of the Thesis...........................2 2 Related Work4 2.1 Version Control Systems............................4 2.2 Types of Version Control Systems.......................4 2.3 Git........................................5 3 A New Index for Git7 3.1 The Git Index File...............................7 3.2 Index v2.....................................8 3.3 The New Index File Format v5........................ 11 4 Implementation 15 4.1 Convert Index.................................. 15 4.2 Read Index................................... 15 4.3 Internal Implementation............................ 16 4.4 New In-memory Format............................ 18 4.5 Index Reading API............................... 19 4.6 Writing the New Index Format........................ 20 5 Discussion 22 5.1 Alternative Solutions.............................. 22 5.1.1 B-tree Format............................. 22 5.1.2 Append-only Data Structure..................... 22 5.1.3 Database Format............................ 23 5.1.4 Padded Structure............................ 23 5.2 Discussion.................................... 24 6
    [Show full text]
  • A Technical Companion to Windows Embedded Automotive 7 Proven Technology Adapted for the Automotive Industry
    A Technical Companion to Windows Embedded Automotive 7 Proven technology adapted for the automotive industry Published: July 2010 For the latest information, please see: www.windowsembedded.com/auto Abstract Windows® Embedded Automotive 7―based on the newest generation of embedded operating systems from Microsoft and combining the award-winning Windows® Automotive and Microsoft® Auto platforms―is designed specifically for developing state-of-the-art, in-vehicle infotainment systems. It offers a standardized, industry-proven platform for building communication, entertainment, and service-enabled location-based solutions. This release of Windows Embedded Automotive includes a large set of integrated, tested, and flexible middleware components and tools, in addition to hundreds of components that are available with Windows® Embedded Compact 7. These components make it possible for Windows Embedded Automotive 7–based systems to scale across a broad range of automotive makes and models. By capitalizing on these tools and on the broad Microsoft partner ecosystem, suppliers can reduce development costs and speed time-to-market while extending customers’ lifestyles into the vehicles that they drive. Table of Contents TABLE OF FIGURES ................................................................................................................................... 4 OVERVIEW ............................................................................................................................................... 5 THE BUSINESS CASE FOR WINDOWS
    [Show full text]