Cover Intro: Kernel Tricks KERNEL TRICKS. Developers are constantly looking for new ways to interact with the versatile Linux kernel.

Size: px
Start display at page:

Download "Cover Intro: Kernel Tricks KERNEL TRICKS. Developers are constantly looking for new ways to interact with the versatile Linux kernel."

Transcription

1 Promising projects from the Linux kernel community KERNEL TRICKS Developers are constantly looking for new ways to interact with the versatile Linux kernel. This month we study some innovative projects leading deep into kernel space. BY JON MASTERS, JAN RÄHM, AND JOE CASAD M ost Linux users know they can rely on the kernel without ever giving it much thought. But if you do look a little deeper, you ll find some evolving technologies that extend the kernel in interesting ways. This month we cover some innovations at the edges of the Linux kernel. Our first article describes the new userspace driver model in upcoming kernel versions. In our second story, Klaus Knopper looks at block device compression with the Cloop module, which lets Live CD developers put up to 2GBs on a 700MB CD. We ll also examine kernelbased virtualization with KVM, and we ll end with a look at the Flash Translation Layer and the LogFS flash filesystem. We hope you enjoy this month s Kernel Tricks cover story collection. But first, read on for a brief introduction to the brain of Linux. tion. At the heart of that distribution is the Linux kernel itself a complex collection of software routines that takes control whenever a machine first boots and periodically (many times each second) handles the resource requirements of applications, manages system hardware devices, and generally does a lot of the low level dirty work. The Linux kernel is regarded as a fully functional, complex, and well-documented role model for open source software. Everyone has access to the source code, which is updated daily; and everyone can join in with discussions on the mailing lists or submit patches. To understand what the kernel is really doing, take a look at Figure 1. The kernel appears in the center of the diagram, surrounded by a sample of the operations it assists in performing. On the left, hardware interrupts from devices such as disks, network cards, sound devices, graphics cards, and so on arrive at unpredictable times (data has perhaps been requested, but there is no way to know exactly when the device will actually deliver that data). In a similar way, the system timer (on most sys- The Linux Kernel The term Linux, in the strictest sense, does not refer to the shiny collection of software components and applications that is often known as a Linux distribu- Userspace Drivers Cloop KVM LogFS JANUARY 2008 ISSUE 86 21

2 Figure 1: The Linux kernel manages processes, hardware interrupts, and housekeeping tasks. tems) fires regularly to allow Linux to perform periodic housekeeping operations many times per second. A kernel would not be particularly useful if it were not able to also service the user in the provision of support for running programs (called tasks, within the world of the Linux kernel). On the right side of the diagram are three tasks. Each represents a different kind of application. The first, at the bottom, is a regular user program in this case, a Bash shell running on a user s desktop. Most programs don t communicate with the kernel directly. Instead, they use the GNU C Library functions, which in turn call standard kernel interfaces in order to provide required services. Sometimes, an application does not use the C library but talks to the kernel more directly instead. This is the case with certain low-level, statically linked tools for example, busybox (commonly used as a recovery tool, as well as in embedded gadgets such as the Nokia N810 Internet Tablet). In the diagram, you can see one of these special tools providing the services of init. Finally, at times the kernel runs special kernel code as if it were almost a regular program (but with privileges). The key point of Figure 1 is that a kernel is far from magical. Its behaviors and processes can be explained. Many people believe that a kernel is somehow running all the time and constantly overseeing system operations. Although it is true that Linux does perform a variety of system monitoring functions, the kernel itself should be thought of more as a collection of software routines in a privileged library. These specially privileged routines are always executed in response to specific events, and at that time, whatever else was running is temporarily saved as the system switches into kernel code. Most of the time, kernel code runs either as a result of timers and hardware interrupts, or as the result of a request from an application. It also runs at startup and in various error conditions. A Little History The Linux operating system dates back to Linus Torvalds first experiments in At that time, Linux was merely a toy operating system alternative. It ran only on Intel 386-compatible processors; however, it was very hackable, and it wasn t long before Linux was available for a wide variety of different machines first came the more generic PC support, but thereafter, developers began to port Linux to other architectures. After almost a decade of development, Linux 2.4 was released in the late 1990s. Linux 2.4 was significant because it was the first kernel release widely used by the masses not just computer enthusiasts, but also those trying Linux for the first time on their desktop computers, servers, and even embedded gadgets. Version 2.4 was also used in the new generation of Enterprise distributions from major Linux vendors. Once Linux 2.4 was safely out of the way, work began in earnest on a 2.5 development series, leading up to a major 2.6 kernel release a few years ago. Version 2.6 was a complete revolution for Linux. It had a rewritten scheduler (that can scale to many thousands of CPUs by now), a full device management subsystem with greatly improved and re-written dynamic device support, and literally countless other improvements that came as a result of the growing acceptance of Linux as a viable commercial offering. By this point, features weren t coming in from enthusiasts at nearly the same rate that they were being offered by well-known Linux hackers employed by Linux vendors and companies like IBM. Linux Is Not Just Linus Although it should be obvious by now, Linux is not the day-to-day product of one man s efforts. Linus Torvalds is widely recognized as the inventor and head of the Linux kernel project, but Linus serves more as a highly skilled project manager at this point (Figure 2). From a qualitative point of view, Linus Figure 2: Linus Torvalds at the Kernel Summit 2007: the founding father of the Linux kernel still makes a major contribution to its development. 22 ISSUE 86 JANUARY 2008

3 Anzeige Nokia

4 Figure 3: Andrew Morton is the number two in kernel development. His -mm branch provides the impetus for new features in the Linux kernel. may not be the main code developer; however, he still coordinates releases and work on the kernel, contributes to mailing lists, and takes an active part in discussions on new functions. Below Linus Torvalds in the kernel hierarchy are a number of maintainers supervising work on different parts of the kernel. A maintainer decides on the development roadmap, typically in collaboration with other developers. Andrew Morton (Figure 3) is often considered the second in command of the kernel development team. Morton maintains the -mm kernel branch, as well as various subprojects, such as the development of the netdev driver and the Ext3 and Ext4 filesystems. The MAINTAINERS document in the main branch of the kernel source package lists the various maintainers associated with Linux kernel development. Which Linux Kernel? Many variants of the Linux kernel are currently in use. For many reasons including timing of individual product releases few distributions ship exactly the same release of the kernel, and each may apply different patches that modify the kernel in some way. For example, last-minute updates might need to be made to various sound drivers just before release, and these may not yet be in the official Linux kernel from kernel. org. In some cases, Linux vendors apply their own optimizations as a means of adding value. Whatever the reason for the differences, you should know that it is unlikely that your Linux system is running the current official Linux kernel posted at kernel. org. When you read the document, you may notice some gaps and that the column contains an s for orphaned status. These orphaned projects are projects that nobody is currently working on. Of course, the developer community is always happy for somebody to step in and assume responsibility for an orphaned development sector, but if you are new to kernel development, you should probably consider sticking to bug fixes and patches before attempting the maintainer role. Linux Day-to-Day Development Linux kernel development takes place on a minute-by-minute basis, around the clock, every day of the year. Central co-ordination happens using the Linux Kernel Mailing List (LKML), an archive of which you can find at lkml. org. Although general Linux kernel development discussion happens on the LKML, literally dozens of other popular ing lists cover each of the many features within Linux. The central repository of Linux kernel source is held at kernel. org, to which only a limited number of people have direct write access, but from which everyone can freely download the Linux source itself. Most developers, however, don t download source archives from kernel. org. They instead pull from Before you send bug reports or patches to the kernel community, it makes sense to keep to a couple of rules: Patches must be available as diffs. If you have clearly identified and removed the bug, the maintainer of the subsystem affected by the patch is the right person to contact. An undocumented patch is more or less useless. Add a description of the bug, the patch itself, and the effect of the patch to make it easier for the maintainer to investigate your proposal and, at the same time, approve your chances of it being accepted. Claims such as This patch makes 2000 lines of code superfluous or I have tested this patch on five different architectures will grab the maintainer's attention. But mails saying things like: I ve been doing it this way for 20 years, so pay attention are likely to get on the maintainer's nerves. Constructive Contributions Linus git repository. Git is the Linux kernel source management utility written by Linus Torvalds. Tree Structure The kernel tree structure consists of four main trees above the branches or subtrees: main 2.6.x, 2.6.x.y-stable, 2.6.x-git, and 2.6.x-mm. Linus Torvalds maintains the main 2.6.x tree. When a new kernel version is imminent, Torvalds opens a two-week window in which developers can send him their diffs. In nearly every case, changes destined for the main tree have been tested in the -mm kernel over a period of days or weeks. Andrew Morton s 2.6.x-mm tree differs from Torvald s Vanilla kernel in that it contains untested changes by Morton himself or resulting from patches reviewed by Morton. Morton integrates changes to all subsystems and patches from the mailing list with his version. The -mm branch is regarded as a playground for new developments and features. Once a patch has proved its reliability, it is very likely to make it into Torvalds' kernel tree. Under normal circumstances, Linus publishes the first release candidate at the end of the two-week window. From then, major changes are typically ruled out, although Linus Torvalds might make an exception in case of critical In addition to an unequivocal description, submitters should note the following: Large patches that solve complex problems are easier for the maintainer to investigate if you split them into several smaller subpatches. Maintainers are unlikely to have much time to investigate work by a newbie near the end of a merge window. Because kernel developers always check patches before accepting them, you should keep your patches as simple and transparent as possible. Unfinished patches accompanied with a promise to fix or complete later are typically ignored or dropped into a black hole. For more information, read the documents applying-patches.txt, SubmittingPatches, SubmittingDrivers,and SubmitChecklist in the kernel source Documentation directory. 24 ISSUE 86 JANUARY 2008

5 drivers or security patches. If everything works as planned, a second release candidate appears after another week. The differences between the two are typically no more than cosmetic code modifications. After the sixth release candidate, the process is normally completed, and the next stable version of the Linux kernel is ready. The 2.6.x.y-stable tree, the kernel versions with four-digit release numbers, see only minor changes, with the focus on security fixes. This branch is considered particularly reliable. If no version has a four-digit number, the highest 2.6.x version is typically the most stable. The 2.6.x-git tree is a daily snapshot of Torvald s kernel tree on the Git version control system initiated by Linus himself. This tree is far more experimental than a release candidate. The snapshots are taken automatically without developer interaction. Pulling from the git Tree If you want to experiment with living like a kernel developer, you can obtain a Figure 4: Linux source code is maintained through the git code management tool, which was designed and developed by Linus himself. list of all of the public git repositories at git. kernel. org. Browse Linus git tree at: git. kernel. org/?p=linux/ kernel/ git/ torvalds/ linux git;a=summary. To obtain a copy of this development tree for your own uses, you first need to make sure you have the git tools installed. Linux distributions typically

6 include the git tools, which you can install using: $ yum install git U # Fedora and OpenSUSE systems $ apt-get install git U # Debian and Ubuntu systems You can also install these tools from source, which is available directly from git. kernel. org. Once you have installed git, you can use it to obtain the latest release of Linus code tree: $ git cloneu git:// git.kernel.org/ pub/u scm/ linux/ kernel/ git/ torvalds/u linux-2.6.git linus-2.6 This command will place a copy of Linus kernel in a local directory called linus-2.6. To update this copy to the latest version, at any time, simply go to that directory and type: $ git pull The steps for building the Linux kernel may vary from one distribution to another (your distribution will supply an example of how to do this for modern 2.6 Linux kernels). This brief summary is intended for illustration purposes. Consult your vendor documentation. In the case of a Fedora-like system, you d first want to install the standard Fedora kernel config file from your /boot directory: $ cp /boot/config- U `uname -r`.config $ make oldconfig Linux supports a variety of make targets, including both oldconfig, menuconfig, and many others. The oldconfig command will pull in existing selections from the.config file that was supplied by your Linux vendor, though there will likely be some differences in configuration options (you will be prompted about these, and offered some help in deciding appropriate options), so don t get too flustered when these come up. Once you have imported an existing configuration, you can also run the menuconfig target for a visual menu of available configuration options: Building the Kernel Figure 5: The Linux Kernel Archive at kernel.org is the epicenter for Linux kernel development. You can find a complete set of git commands in the git reference documentation. Don t forget to experiment with the gitk utility if you would like a graphical source browser. Once you have copied the code to the linus-2.6 directory, you can build the kernel as usual (see the box titled Building the Kernel ), or you $ make menuconfig After saving the kernel, you can build it using: $ make and install the updated kernel modules using: $ make modules_install Finally, you will need to rebuild any initial ramdisk (initrd/ initramfs) that you are using. Your distribution will have more detail, but in the case of a Fedora system, try a command similar to: $ mkinird /boot/initrd=u initrd-2.6.x.y 2.6.x.y where x.y reflects whatever version of the 2.6 Linux kernel you just built. You will then need to update your bootloader (such as grub) by editing /boot/ grub/menu.lst to reference your new kernel before you can try test booting it. Most major Linux vendor distributions include tools to help with this. Fedora provides the new-kernel-pkg command, which automates the last two steps (rebuilding the initrd and installing the modified grub bootloader entries). can just study the code to learn more about the art of kernel programming. Further Reading If you are getting started with Linux kernel development, try joining the Linux Kernel Newbies project www. kernelnewbies. org/. Here, you can meet with like-minded people who help each other learn about the Linux kernel. You might also want to try the Kernel Janitors Project an ongoing effort at making various trivial cleanups to the Linux kernel source tree (a great way to get started). You ll even find a kernelnewbies Facebook group. Although there is no substitute for reading the Linux Kernel Mailing List (LKML) if you want to keep on top of individual patches as they are posted, most people don t have nearly enough time in their day for such things. Especially those people who are not paid to follow the development so closely. This is why online resources such as Linux Weekly News (LWN) were created. For a small contribution of less than US$ 10 per month, you can read the latest (and highly detailed) summaries of kernel development from Jonathan Corbet (author of Linux Device Drivers and a longtime Linux kernel hacker). Even if you don t feel like subscribing, you can always read postings from previous weeks for free online. 26 ISSUE 86 JANUARY 2008

Kernel maintainership: an oral tradition

Kernel maintainership: an oral tradition Embedded Linux Conference Europe 2015 Kernel maintainership: an oral tradition Gregory CLEMENT Bootlin gregory.clement@bootlin.com (Image credit: Andrew Cheal under license CC BY-ND 2.0) - Kernel, drivers

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

A Review of the 2006 Linux Kernel Summit & >linuxsymposium

A Review of the 2006 Linux Kernel Summit & >linuxsymposium A Review of the 2006 Linux Kernel Summit & Presented at the Japan Linux Symposium, Tokyo, Japan September 11th, 2006 By Craig Ross, Linux Symposium Outline 2006 Linux Kernel Summit Introduction to Linux

More information

Using GitHub to Share with SparkFun a

Using GitHub to Share with SparkFun a Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing

More information

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub Git 101: Overview 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub Github icon 1 Install git and a create GitHub

More information

Linux Kernel Compilation

Linux Kernel Compilation Linux Kernel Compilation from source to running Muli Ben-Yehuda mulix@mulix.org IBM Haifa Research Labs Linux Kernel Development, TAU Linux Workshop, July 2003 p.1/9 introduction In this talk, I will talk

More information

Project 0: Linux & Virtual Machine Dabbling

Project 0: Linux & Virtual Machine Dabbling Project 0: Linux & Virtual Machine Dabbling CS-3013 Operating Systems Hugh C. Lauer (Slides include materials from Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

More information

E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT

E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT E-Guide WHAT WINDOWS 10 ADOPTION MEANS FOR IT E nterprise adoption of Windows 10 isn t likely to follow the same pattern as for Windows 7, and that s a good thing, writes columnist Brian Madden. And even

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists

More information

Ubuntu Server Succinctly

Ubuntu Server Succinctly 1 Ubuntu Server Succinctly By José Roberto Olivas Mendoza Foreword by Daniel Jebaraj 2 Copyright 2016 by Syncfusion, Inc. 2501 Aerial Center Parkway Suite 200 Morrisville, NC 27560 USA All rights reserved.

More information

An introduction of operating system project. Seo Bon Keun

An introduction of operating system project. Seo Bon Keun An introduction of operating system project Seo Bon Keun Content Linux introduction Running Linux Developing Kernel Useful Tools Project 0 Project Policy 2 /24 Operating system What is an operating system?

More information

A Guide to the Linux Kernel Development Process. Jonathan Corbet LWN.net

A Guide to the Linux Kernel Development Process. Jonathan Corbet LWN.net A Guide to the Linux Kernel Development Process Jonathan Corbet LWN.net corbet@lwn.net 1 Agenda Why participation matters Guiding principles Trees Some tips 2 For more information ldn.linuxfoundation.org/book/

More information

Getting Things GNOME! Documentation

Getting Things GNOME! Documentation Getting Things GNOME! Documentation Release 0.3.1 The GTG Team December 20, 2015 Contents 1 Contents 3 1.1 Contributing to GTG........................................... 3 2 Man pages 5 2.1 gtg(1)...................................................

More information

SharePoint Virtualization and the Benefits of Modern Data Protection with Veeam Explorer for Microsoft SharePoint

SharePoint Virtualization and the Benefits of Modern Data Protection with Veeam Explorer for Microsoft SharePoint SharePoint Virtualization and the Benefits of Modern Data Protection with Veeam Explorer for Microsoft SharePoint Chris Henley Microsoft Certified Professional, MCSE, MCSA and Veeam Product Strategy Specialist

More information

Getting started with GitHub

Getting started with GitHub Getting started with GitHub A beginner s guide. (There s no code in this slide deck!) Presented by Quinn Supplee https://github.com/quinns What is GitHub? GitHub is a code hosting platform for version

More information

RED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE.

RED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE. RED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE. Is putting Contact us INTRODUCTION You know the headaches of managing an infrastructure that is stretched to its limit. Too little staff. Too many users. Not

More information

Understanding the Open Source Development Model. » The Linux Foundation. November 2011

Understanding the Open Source Development Model. » The Linux Foundation. November 2011 » The Linux Foundation Understanding the Open Source Development Model November 2011 By Ibrahim Haddad (PhD) and Brian Warner, The Linux Foundation A White Paper By The Linux Foundation This paper presents

More information

Project 0: Linux Dabbling

Project 0: Linux Dabbling Project 0 (0 points) Assigned: Friday, January 13, 2012 Due: Tuesday, January 17, 2012 CS-3013, Operating Systems C-Term 2012 Introduction Project 0: Linux Dabbling This project is intended to get you

More information

Fundamentals of Git 1

Fundamentals of Git 1 Fundamentals of Git 1 Outline History of Git Distributed V.S Centralized Version Control Getting started Branching and Merging Working with remote Summary 2 A Brief History of Git Linus uses BitKeeper

More information

Building CircuitPython

Building CircuitPython Building CircuitPython Created by Dan Halbert Last updated on 2018-05-18 03:47:12 AM UTC Guide Contents Guide Contents Introduction Linux Setup Install a Real or Virtual Linux Machine Native Linux Linux

More information

The Debian Kernel and its Team http//www.vergenet.net/linux/debian kernel/

The Debian Kernel and its Team http//www.vergenet.net/linux/debian kernel/ The Debian Kernel and its Team http//www.vergenet.net/linux/debian kernel/ Simon Horman aka Horms horms@valinux.co.jp horms@debian.org horms@verge.net.au April 2005 What is the Debian Kernel Team? Loose

More information

Newspilot: A print focused, digital enabled, CMS for the news industry

Newspilot: A print focused, digital enabled, CMS for the news industry Newspilot: A print focused, digital enabled, CMS for the news industry Newspilot supports your editorial processes for planning, gathering of material, writing, proofing, editing cross-media, cross-platform.

More information

How to version control like a pro: a roadmap to your reproducible & collaborative research

How to version control like a pro: a roadmap to your reproducible & collaborative research How to version control like a pro: a roadmap to your reproducible & collaborative research The material in this tutorial is inspired by & adapted from the Software Carpentry lesson on version control &

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

Disclaimer. This talk vastly over-simplifies things. See notes for full details and resources.

Disclaimer. This talk vastly over-simplifies things. See notes for full details and resources. Greg Kroah-Hartman Disclaimer This talk vastly over-simplifies things. See notes for full details and resources. https://github.com/gregkh/presentation-spectre Spectre Hardware bugs Valid code can be tricked

More information

You Can t Move Forward Unless You Can Roll Back. By: Michael Black

You Can t Move Forward Unless You Can Roll Back. By: Michael Black You Can t Move Forward Unless You Can Roll Back By: Michael Black The VP of Sales walks in and tells you that your largest and oldest client wants to pay for a custom modification. But here s the clincher,

More information

UNIT 9 Introduction to Linux and Ubuntu

UNIT 9 Introduction to Linux and Ubuntu AIR FORCE ASSOCIATION S CYBERPATRIOT NATIONAL YOUTH CYBER EDUCATION PROGRAM UNIT 9 Introduction to Linux and Ubuntu Learning Objectives Participants will understand the basics of Linux, including the nature,

More information

Intro to Linux & Command Line

Intro to Linux & Command Line Intro to Linux & Command Line Based on slides from CSE 391 Edited by Andrew Hu slides created by Marty Stepp, modified by Jessica Miller & Ruth Anderson http://www.cs.washington.edu/391/ 1 Lecture summary

More information

How to be a git. Dominic Mitchell

How to be a git. Dominic Mitchell How to be a git Dominic Mitchell Git! It s new! Everybody s talking about it! What is it? Distributed Version Control Why Git? Fast Local Toolkit Widely used Github Toolkit lets other people build tools

More information

Introduction to Linux

Introduction to Linux Introduction to Linux Prof. Jin-Soo Kim( jinsookim@skku.edu) TA - Kisik Jeong (kisik@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating

More information

e2 factory the emlix Embedded Build Framework

e2 factory the emlix Embedded Build Framework e2 factory the emlix Embedded Build Framework Agenda Motivation Basic Concepts Design and Implementation Working with e2 factory e2 factory Motivation Motivation Development Tools Source Code Management

More information

Submitting your Work using GIT

Submitting your Work using GIT Submitting your Work using GIT You will be using the git distributed source control system in order to manage and submit your assignments. Why? allows you to take snapshots of your project at safe points

More information

Managing build infrastructure of a Debian derivative

Managing build infrastructure of a Debian derivative Managing build infrastructure of a Debian derivative Andrej Shadura 4 February 2018 Presentation Outline Who am I Enter Apertis Build infrastructure Packaging workflows Image builds Andrej Shadura contributing

More information

HTCondor: Virtualization (without Virtual Machines)

HTCondor: Virtualization (without Virtual Machines) HTCondor: Virtualization (without Virtual Machines) Brian Bockelman HTCondor Week 2013 Dictionary Definition vir tu al ize [vur-choo-uh-lahyz] verb to create a virtual version of (a computer, operating

More information

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18 Common Git Commands Git Crash Course Teon Banek theongugl@gmail.com April 7, 2016 Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18 Outline 1 Introduction About Git Setup 2 Basic Usage Trees Branches

More information

Crash Course in Modernization. A whitepaper from mrc

Crash Course in Modernization. A whitepaper from mrc Crash Course in Modernization A whitepaper from mrc Introduction Modernization is a confusing subject for one main reason: It isn t the same across the board. Different vendors sell different forms of

More information

IDERA HELPS PPG INDUSTRIES REDUCE SQL SERVER BACKUP STORAGE COSTS BY OVER 70%

IDERA HELPS PPG INDUSTRIES REDUCE SQL SERVER BACKUP STORAGE COSTS BY OVER 70% IDERA HELPS PPG INDUSTRIES REDUCE SQL SERVER BACKUP STORAGE COSTS BY OVER 70% PPG LEVERAGES IDERA S ON 60 MICROSOFT SQL SERVERS ACROSS THE US AND CANADA PROCESSING MORE THAN 3,400 BACKUPS PER DAY PPG Industries,

More information

Running Network Services under User-Mode

Running Network Services under User-Mode Running Network Services under User-Mode Linux, Part I Mick Bauer Abstract Leverage the Linux kernel's virtualization features to isolate network dæmons. In my May 2006 Paranoid Penguin column, I expounded

More information

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group About SJTUG SJTU *nix User Group SJTU Joyful Techie User Group Homepage - https://sjtug.org/ SJTUG Mirrors - https://mirrors.sjtug.sjtu.edu.cn/ GitHub - https://github.com/sjtug Git Basic Tutorial Zhou

More information

Computer Software. c 2016 by David W. Gerbing. School of Business Administration Portland State University

Computer Software. c 2016 by David W. Gerbing. School of Business Administration Portland State University Computer Software c 2016 by David W. Gerbing School of Business Administration Portland State University Computer Software Introduction Operating Systems Application Software Unix Command Line (on a Mac)

More information

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017 GETTING STARTED WITH Michael Lessard Senior Solutions Architect June 2017 Agenda What is Git? Installation of Git Git basis Github First steps with Git 2 WHAT IS GIT? What is Git? Started in 2005 Created

More information

Software Revision Control for MASS. Git Basics, Best Practices

Software Revision Control for MASS. Git Basics, Best Practices Software Revision Control for MASS Git Basics, Best Practices Matthew Sell, CSSE Student MASS Research Participant, February 2014 What is revision control? The obligatory Wikipedia definition: revision

More information

Welcome to Linux Foundation E-Learning Training

Welcome to Linux Foundation E-Learning Training Welcome to Linux Foundation E-Learning Training by The Linux Foundation 06/04/2018 Version 7.3. All rights reserved. Specific instructions for your course will be addressed in the Appendix. After reading

More information

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2 Git Git 1 Topics covered Introduction to Git Git workflows Git key concepts Hands on session Branching models Git 2 Introduction to Git Git 3 Version control systems The source files of a project changes

More information

Contribute To Linux Mainline

Contribute To Linux Mainline Contribute To Linux Mainline Wu Zhangjin / Falcon wuzhangjin@gmail.com Tiny Lab 泰晓实验室 http://tinylab.org June 3, 2013 Outline 1 About Linux Kernel Development 2 Upstream your source code 3 Reference 4

More information

Using Git to Manage Source RTL

Using Git to Manage Source RTL Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the

More information

Contractors Guide to Search Engine Optimization

Contractors Guide to Search Engine Optimization Contractors Guide to Search Engine Optimization CONTENTS What is Search Engine Optimization (SEO)? Why Do Businesses Need SEO (If They Want To Generate Business Online)? Which Search Engines Should You

More information

A Survivor's Guide to Contributing to the Linux Kernel

A Survivor's Guide to Contributing to the Linux Kernel A Survivor's Guide to Contributing to the Linux Kernel Javier Martinez Canillas Samsung Open Source Group javier@osg.samsung.com Samsung Open Source Group 1 Agenda Motivation Linux development process

More information

Computer Architecture Lab 1 (Starting with Linux)

Computer Architecture Lab 1 (Starting with Linux) Computer Architecture Lab 1 (Starting with Linux) Linux is a computer operating system. An operating system consists of the software that manages your computer and lets you run applications on it. The

More information

Virtualization with colinux

Virtualization with colinux Using, installing, and configuring Cooperative Linux Level: Introductory M. Tim Jones (mtj@mtjones.com), Consultant Engineer, Emulex 31 Mar 2007 Virtualization with VmWare, Xen, and Kernel-based Virtual

More information

For Volunteers An Elvanto Guide

For Volunteers An Elvanto Guide For Volunteers An Elvanto Guide www.elvanto.com Volunteers are what keep churches running! This guide is for volunteers who use Elvanto. If you re in charge of volunteers, why not check out our Volunteer

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

Learn Linux in a Month of Lunches by Steven Ovadia

Learn Linux in a Month of Lunches by Steven Ovadia Learn Linux in a Month of Lunches by Steven Ovadia Sample Chapter 17 Copyright 2017 Manning Publications brief contents PART 1 GETTING LINUX UP AND RUNNING... 1 1 Before you begin 3 2 Getting to know Linux

More information

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang Department of Computer Sciences THE UNIVERSITY OF TEXAS AT AUSTIN CS 378 (Spring 2003) Linux Kernel Programming Yongguang Zhang (ygz@cs.utexas.edu) Copyright 2003, Yongguang Zhang Read Me First Everything

More information

Linux Kernel Evolution. OpenAFS. Marc Dionne Edinburgh

Linux Kernel Evolution. OpenAFS. Marc Dionne Edinburgh Linux Kernel Evolution vs OpenAFS Marc Dionne Edinburgh - 2012 The stage Linux is widely deployed as an OpenAFS client platform Many large OpenAFS sites rely heavily on Linux on both servers and clients

More information

Device Tree as a stable ABI: a fairy tale?

Device Tree as a stable ABI: a fairy tale? Embedded Linux Conference 2015 Device Tree as a stable ABI: a fairy tale? Thomas Petazzoni Free Electrons thomas.petazzoni@free-electrons.com Free Electrons - Embedded Linux, kernel, drivers and Android

More information

The Cost of Going it Alone Dave Neary

The Cost of Going it Alone Dave Neary The Cost of Going it Alone Dave Neary dneary@gnome.org Photo by jucanils@flickr CC by-sa Also: The Cost of Collaboration Act I: Softway 1996-97 OpenNT/Interix: POSIX for NT GCC suite work: - 6-8 man-months

More information

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

Git Workbook. Self-Study Guide to Git. Lorna Mitchell. This book is for sale at

Git Workbook. Self-Study Guide to Git. Lorna Mitchell. This book is for sale at Git Workbook Self-Study Guide to Git Lorna Mitchell This book is for sale at http://leanpub.com/gitworkbook This version was published on 2018-01-15 This is a Leanpub book. Leanpub empowers authors and

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

Introduction to Linux

Introduction to Linux Introduction to Linux Prof. Jin-Soo Kim( jinsookim@skku.edu) TA - Dong-Yun Lee (dylee@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating

More information

Real-Time and Performance Improvements in the

Real-Time and Performance Improvements in the 1 of 7 6/18/2006 8:21 PM Real-Time and Performance Improvements in the 2.6 Linux Kernel William von Hagen Abstract Work on improving the responsiveness and real-time performance of the Linux kernel holds

More information

Git Introduction CS 400. February 11, 2018

Git Introduction CS 400. February 11, 2018 Git Introduction CS 400 February 11, 2018 1 Introduction Git is one of the most popular version control system. It is a mature, actively maintained open source project originally developed in 2005 by Linus

More information

CBS For Windows CDROM Backup System Quick Start Guide Installation Preparation:

CBS For Windows CDROM Backup System Quick Start Guide Installation Preparation: CBS For Windows CDROM Backup System Quick Start Guide Installation If you have your CBS CD Writer Backup system on CD, simply insert the CD. It will automatically start and install the software. If you

More information

Keeping Up With The Linux Kernel. Marc Dionne AFS and Kerberos Workshop Pittsburgh

Keeping Up With The Linux Kernel. Marc Dionne AFS and Kerberos Workshop Pittsburgh Keeping Up With The Linux Kernel Marc Dionne AFS and Kerberos Workshop Pittsburgh - 2015 The stage Linux is widely deployed as an AFS client platform OpenAFS client available in popular distributions Ubuntu,

More information

Version Control for Fun and Profit

Version Control for Fun and Profit Version Control for Fun and Profit Chris Brady Heather Ratcliffe The Angry Penguin, used under creative commons licence from Swantje Hess and Jannis Pohlmann. Warwick RSE 30/11/2017 Version control 30/11/2017

More information

Overview LEARN. History of Linux Linux Architecture Linux File System Linux Access Linux Commands File Permission Editors Conclusion and Questions

Overview LEARN. History of Linux Linux Architecture Linux File System Linux Access Linux Commands File Permission Editors Conclusion and Questions Lanka Education and Research Network Linux Architecture, Linux File System, Linux Basic Commands 28 th November 2016 Dilum Samarasinhe () Overview History of Linux Linux Architecture Linux File System

More information

Programming with Haiku

Programming with Haiku Programming with Haiku Lesson 4 Written by DarkWyrm All material 2010 DarkWyrm Source Control: What is It? In my early days as a developer on the Haiku project I had troubles on occasion because I had

More information

What Makes Up the Modern Linux OS?

What Makes Up the Modern Linux OS? White Paper by David Davis, ActualTech Media What Makes Up the Modern Linux OS? In this Paper The History of Linux... 2 The Components that Comprise the Linux Operating System... 3 What Is a Distribution?...

More information

THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory

THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory and executing them. However, the CPU and main memory are only two out of many components in a real computer system. A complete system

More information

Disclaimer. This talk vastly over-simplifies things. See notes for full details and resources.

Disclaimer. This talk vastly over-simplifies things. See notes for full details and resources. Greg Kroah-Hartman Disclaimer This talk vastly over-simplifies things. See notes for full details and resources. https://github.com/gregkh/presentation-spectre Spectre Hardware bugs Valid code can be tricked

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn CSE 374 Programming Concepts & Tools Hal Perkins Winter 2012 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person, multi-platform, multi-month

More information

SOFTWARE CONFIGURATION MANAGEMENT

SOFTWARE CONFIGURATION MANAGEMENT SOFTWARE CONFIGURATION MANAGEMENT Cape Town SPIN - Albert Visagie - 19 March 2008 Goals Where were we? And get back there reliably. Where are we? How did we get here? Which bugs were fixed in this version?

More information

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 WHO AM I? @tushar_rishav GSoC'16 student contributing to coala - a static code analysis tool, under Python So ware Foundation. A senior

More information

The ClassPass Front Desk Guide. ClassPass Front Desk Guide 1

The ClassPass Front Desk Guide. ClassPass Front Desk Guide 1 The ClassPass Front Desk Guide ClassPass Front Desk Guide 1 Welcome to ClassPass! We re excited to partner with you. In the following guide, we ll share everything you need to know about ClassPass users

More information

2 Initialize a git repository on your machine, add a README file, commit and push

2 Initialize a git repository on your machine, add a README file, commit and push BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal

More information

Subject: Top-Paying IT Certificates for 2015 (And Our New Courses)

Subject: Top-Paying IT Certificates for 2015 (And Our New Courses) ITProTV Emails What You Missed Email #1 Subject: Top-Paying IT Certificates for 2015 (And Our New Courses) If you re like me you re already thinking about your 2015 goals. So I thought I d share a few

More information

Parallels Virtuozzo Containers 4.6 for Linux Readme

Parallels Virtuozzo Containers 4.6 for Linux Readme Parallels Virtuozzo Containers 4.6 for Linux Readme This document provides the first-priority information about Parallels Virtuozzo Containers 4.6 for Linux and supplements the included documentation.

More information

Project 1. Fast correction

Project 1. Fast correction Project 1 Fast correction Project #1 waitpid vs wait WEXITSTATUS Memory leaks! fflush after the >, before the fork Why? Because the children and the parent can run in any order When piping a list of commands

More information

Inside the PostgreSQL Shared Buffer Cache

Inside the PostgreSQL Shared Buffer Cache Truviso 07/07/2008 About this presentation The master source for these slides is http://www.westnet.com/ gsmith/content/postgresql You can also find a machine-usable version of the source code to the later

More information

Are you Really Helped by Upstream Kernel Code?

Are you Really Helped by Upstream Kernel Code? Are you Really Helped by Upstream Kernel Code? 1 HISAO MUNAKATA RENESAS SOLUTIONS CORP hisao.munakata.vt(at)renesas.com who am I Working for Renesas (semiconductor) 2 Over 15 years real embedded Linux

More information

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011) Basic Agenda 1 Project information Who is ussing 2 14 Oct 2011 3 Basic Data Transport Work ow 4 Con gure 5 Basic Project information Who is ussing Project information Who is ussing Project information

More information

Introduction To Linux. Rob Thomas - ACRC

Introduction To Linux. Rob Thomas - ACRC Introduction To Linux Rob Thomas - ACRC What Is Linux A free Operating System based on UNIX (TM) An operating system originating at Bell Labs. circa 1969 in the USA More of this later... Why Linux? Free

More information

Introduction to GIT. Jordi Blasco 14 Oct 2011

Introduction to GIT. Jordi Blasco 14 Oct 2011 Jordi Blasco (jblasco@xrqtc.com) 14 Oct 2011 Agenda 1 Project information Who is ussing GIT 2 Branch Tag Data Transport Workow 3 Congure 4 Working with remotes 5 Project information Who is ussing GIT Project

More information

Operating Systems. Written by Justin Browning. Linux / UNIX Distributions Report

Operating Systems. Written by Justin Browning. Linux / UNIX Distributions Report Operating Systems Written by Justin Browning Linux / UNIX Distributions Report 1 Table of Contents Table of Contents... 2 Chapter 1: A Linux Free Distribution... 3 A Brief Description:... 3 Chapter 2:

More information

Availability and the Always-on Enterprise: Why Backup is Dead

Availability and the Always-on Enterprise: Why Backup is Dead Availability and the Always-on Enterprise: Why Backup is Dead Backups certainly fit the bill at one time, but data center needs have evolved and expanded. By Nick Cavalancia Every business has experienced

More information

Recovering GRUB: Dual Boot Problems and Solutions

Recovering GRUB: Dual Boot Problems and Solutions Recovering GRUB: Dual Boot Problems and Solutions Published by the Open Source Software Lab at Microsoft. October 2007. Special thanks to Chris Travers, Contributing Author to the Open Source Software

More information

Considerations for Mobilizing your Lotus Notes Applications

Considerations for Mobilizing your Lotus Notes Applications Considerations for Mobilizing your Lotus Notes Applications John Kingsley Teamstudio Technical Director Why Mobilize? It all started with email. Not any one email in particular, just the fact that you

More information

OpenEmbedded in the Real World

OpenEmbedded in the Real World OpenEmbedded in the Real World Scott Murray Senior Staff Software Engineer Konsulko Group http://konsulko.com Who am I? Long time Linux user (over 20 years) Have done Linux software development for over

More information

AMath 483/583 Lecture 2

AMath 483/583 Lecture 2 AMath 483/583 Lecture 2 Outline: Binary storage, floating point numbers Version control main ideas Client-server version control, e.g., CVS, Subversion Distributed version control, e.g., git, Mercurial

More information

Deploying and Using SLIM Suite in a Global Environment

Deploying and Using SLIM Suite in a Global Environment Deploying and Using SLIM Suite in a Global Environment Introduction The SLIM Suite of applications includes SLIM Estimate, SLIM Control, SLIM Metrics, SLIM DataManager and SLIM MasterPlan. Our clients

More information

Welcome to Linux Foundation E-Learning Training

Welcome to Linux Foundation E-Learning Training Welcome to Linux Foundation E-Learning Training by The Linux Foundation 08/26/2018 Version 7.6. All rights reserved. Specific instructions for your course will be addressed in the Appendix. After reading

More information

Instructions: Step 1: Respond to the following: IT131 Linux+

Instructions: Step 1: Respond to the following: IT131 Linux+ IT131 Linux+ Course Objectives Upon completion of this course, the student will be able to: 1. Create a new installation of Fedora/RHEL; 2. Use utilities to manage the Fedora/RHEL system; 3. Describe how

More information

Good morning. The MoMA Archives has been very busy this past year and before I begin my main presentation I want to shamelessly promote two

Good morning. The MoMA Archives has been very busy this past year and before I begin my main presentation I want to shamelessly promote two Good morning. The MoMA Archives has been very busy this past year and before I begin my main presentation I want to shamelessly promote two particular activities that have taken up our time. 1 The first

More information

The Kernel Report. (Plumbers 2010 edition) Jonathan Corbet LWN.net

The Kernel Report. (Plumbers 2010 edition) Jonathan Corbet LWN.net The Kernel Report (Plumbers 2010 edition) Jonathan Corbet LWN.net corbet@lwn.net Yeah, yeah, maybe you're waiting for flower power and free sex. Good for you. But if you are, don't ask the Linux kernel

More information

OpsCenter Basics Why Aren t You Using It?

OpsCenter Basics Why Aren t You Using It? OpsCenter Basics Why Aren t You Using It? This is a SELF-GUIDED LAB if you prefer. You are welcome to get started and leave when you are finished, or you can play with the OC instance to gain more knowledge.

More information

FOSS: Road to a Quality Technical Resume

FOSS: Road to a Quality Technical Resume FOSS: Road to a Quality Technical Resume Computer Tech 2018 Tom Browder [tom.browder@gmail.com] Northwest Florida Linux User Group [nwflug.org] 2018-01-27 AUDIENCE EXPECTATIONS What do you expect from

More information

Standards for Test Automation

Standards for Test Automation Standards for Test Automation Brian Tervo Windows XP Automation Applications Compatibility Test Lead Microsoft Corporation Overview Over the last five years, I ve had the opportunity to work in a group

More information

About the Presentations

About the Presentations About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning of each presentation. You may customize the presentations

More information

Introduction, Instructions and Conventions

Introduction, Instructions and Conventions Encodo Systems AG Garnmarkt 1 8400 Winterthur Telephone +41 52 511 80 80 www.encodo.com Encodo GIT handbook Introduction, Instructions and Conventions Abstract This document is an introduction to using

More information