Kernel driver maintenance : Upstream vs. Industry

Size: px
Start display at page:

Download "Kernel driver maintenance : Upstream vs. Industry"

Transcription

1 1 Kernel driver maintenance : Upstream vs. Industry Brice Goglin RMLL Talence /07/08

2 Industry contributing to the Linux kernel? 2 Linux developed by people on their free time? 750,000 lines changed in , who's paying? No employer or unknown < 20% Broadcom 7.7% Intel 4.5% Chelsio 1.9% IBM 1.9% Qlogic 1.8% Samsung 1.7% TI 1.5% Many others

3 Why do these company contribute to Linux? 3 Linux widely used Companies want their hardware to work out of the box Need proper support from the operating system No need for users to download drivers manually No need for companies to adapt drivers to kernel changes Community support Actually, it's not that simple

4 What do companies want? 4 They want customers to buy their products Customers must be happy Hardware must work well and easily Management people point of view What's important is money, customers must be happy :) More important than using the right coding style More important than being portable More important than being friendly

5 Timing 5 Current Linux kernel is expected within a month (2-3-month release cycle) Many distributions use (stable kernel release) Debian, Ubuntu, Fedora, «professional» distributions use much older kernels Redhat EL 5 : SLES 11 :

6 Timing (2/2) 6 Production sites don't want to upgrade Things work fine, upgrading is too risky Some sites still run Redhat EL 4 (based on 2.6.9) How long between merging a driver in Linux and having it in the kernel of production sites? Years?

7 Example of company dealing with community work 7 Intel releases a graphics stack for Linux every 3 months Intel 2009Q3 graphics package is made of 2D driver: xf86-video-intel release 3D driver: mesa 7.6 release Kernel: release LIBDRM: libdrm release (xserver is recommended to use with this package) These components work fine together for real Validated on various platform

8 Example of company dealing with community work (2/2) 8 Releases for these components aren't synchronized Bug fixes and stable branches not managed the same Release schedules are different Intel adds an interesting comment «Multiple fixes (need rc1+ kernel) to make the driver stable for 8xx chipsets» Would you use a rc1 kernel?

9 Code lifecycle Who's doing what? 9 Company Linux Kernel Distributions Bug Fixes Bug Fixes Bug Fixes Hardware support Features Features Performance Performance Cleanups Backports

10 Bug fixes 10 Somebody in the company or in the community finds a bug in the driver Fix is pushed to next official kernel If important, pushed to next stable kernel releases too Management checks whether the bug is important Does it matter for customer? If fix needed on production sites as soon as possible? Make sure the fix goes in professional distributions Make sure the fix goes in stable kernel releases

11 How to ship new features 11 New features are only added in new kernels Not backported in stable kernel releases What if management wants the new feature to be available on production sites? Ask professional distribution to backport it? Often requires a lot of work, and may be hard to certify

12 How to ship new features early? 12 Ship a custom kernel module that includes the new feature for every kernel Maintain a custom version of the driver aside of the official one in the Linux kernel?! «The version of the driver included in the Linux kernel unfortunately does not include several features which are present in our driver distribution. These features include Large Receive Offload, which is critical for good 10GbE performance with standard frames. Until these features are accepted into the Linux kernel, we suggest you use our driver distribution.»

13 Is it worth maintaining a custom external module? 13 Enables latest features and performance improvements for many kernels, even old ones When compatibility is possible... The kernel interface changes a lot Need to cope with kernel interface changes Need to incorporate upstream kernel changes back Bug fixes, Customers must rebuild/reinstall it manually

14 Adapting to kernel interface changes : Looking at kernel version (bad idea) 14 If a new feature may help your code Find out manually which kernel introduced it Conditionally use it depending on the kernel version #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) Very easy! Applicable to other interface changes? No, because of backports Many distributions backport new features in their kernel Especially professional distributions Adding a patch to a certified kernel is easier than certifying a whole new kernel

15 Adapting to kernel interface changes : Checking feature availability 15 If the feature was backported, checking the kernel version will not work And you don't want to list all existing backports Check in the source if the new interface is available? Easy, configure can do that! AC_CHECK_FUNC(...) Not really, the kernel build system is very different CFLAGS, build system, We need to check manually...

16 Adapting to kernel interface changes : Checking feature availability (2/3) Sometimes you're lucky A #define was added together with the new feature 16 pgd = pgd_offset(mm, addr);... #ifdef PUD_SHIFT pud = pud_offset(pgd, addr);... pmd = pmd_offset(pud, addr); #else pmd = pmd_offset(pgd, addr); #endif Unfortunately, it's often more difficult No way to check in preprocessor (no relevant #define) Need manual detection before build (grep,...)

17 Adapting to kernel interface changes : Checking feature availability (2/3) Detecting before building if grep for_each_netdev linux/netdevice.h ; then if grep "for_each_netdev *(.*,.*)" linux/netdevice.h ; then echo "#define HAVE_FOR_EACH_NETDEV 1" >> else echo "#define HAVE_FOR_EACH_NETDEV_WITHOUT_NS 1" >> Using detection result during build #ifdef HAVE_FOR_EACH_NETDEV #define my_for_each_netdev(ifp) for_each_netdev(&init_net, ifp) #elif defined HAVE_FOR_EACH_NETDEV_WITHOUT_NS #define my_for_each_netdev(ifp) for_each_netdev(_fp) #else #define my_for_each_netdev(ifp) for(ifp=dev_base; ifp!=null ; #endif my_for_each_netdev(...)

18 Maintaining external modules 18 So, you really want to maintain two drivers?! One in the kernel and another one outside? How to keep their code in sync? Kernel driver is usually a subpart of the external one Extract the kernel one from the external one? Only keep support for latest kernel interface Replace abstraction layers with official kernel interface Remove ugly stuff that kernel people don't want (see later)

19 Extracting kernel driver from external driver 19 cat myexternaldriver.c unifdef -DPUD_SHIFT -DNETIF_F_TSO -DNETIF_F_GRO -UMY_UGLY_STUFF... sed -r -e 's/my_for_each_netdev/for_each_netdev/' -e 's/my_func\(([^\)]+)\)/func(\&(\1)->napi)/g' > mykerneldriver.c Removes the need to maintain two source codes The extracting script may become harder to maintain that the code itself Complex API changes imply complex rewriting rules Indentation changes hard to follow Kernel coding style isn't really applied Indentation may vary with new patches, the extracting script would have to reindent manually

20 Maintaining external modules (2/2) 20 Maintaining our own external module doesn't mean the kernel will wait for us before modifying its copy We need to incorporate upstream kernel changes back in our external module When we send a patch to the kernel, we must generate it against the latest kernel code Needs monitoring of the kernel trees (obviously) Is all this really doable? Not when people start cleaning up the kernel tree Addition of random new helpers, reindentation, Things that make the code highly different The extracting script would be horrible

21 Developing directly in a git clone instead? 21 The official way is to clone Linus git tree and directly develop there Or even development trees New networking stuff go to the net-next-2.6 tree first Immediate usage/dependency on latest programming interfaces Our code is not compatible with earlier kernels Early testing requires experimental kernels Hard do deploy Open to bugs, security issues not fixed early...

22 So what? 22 You probably want to use a mix of both models Develop directly in git trees when the driver is mature Maintain an external module until the official driver reaches distribution and/or production sites Only support old kernels there? Less kernel versions to support = Less interface changes to manage Need to maintain two source codes One for old kernels (external module), one for latest kernel (official module)

23 Performance hacks 23 Management people want best performance for their customer Why bother being portable if 99% of customers use x86? Hardware is full of bugs Kernel is full of work-arounds PCI quirks, DMI quirks, «I know this PCI chipset does this thing wrong, so I enable this hack in my driver to get good performance anyway.»

24 Performance hacks (2/2) 24 If one chipset/server/... is widely used, getting optimal performance out of it will be important for management People tend to add performance hacks to drivers Don't care about portability, maintainability,... Kernel people won't accept this You should expose the «feature» of the hardware in its own driver and have a clean way to use it in your driver How long before this arrives on production sites? Performance hacks end up in external drivers as a way to improve performance until the clean solution arrives

25 Summary 25 Many companies now contribute to Linux Nice initiatives such as Free Linux driver development or the Staging tree encourage them Even if they don't know how to write a driver Management and kernel people have very different requirements Finding a tradeoff may be hard for some developers Getting your work on production sites may take time

26 26 Thanks for your attention! Questions?

Flatpak and your distribution. Simon McVittie

Flatpak and your distribution. Simon McVittie Flatpak and your distribution Simon McVittie smcv@{collabora.com,debian.org} 2018-02-04 Introduction to Flatpak tl;dr edition A sandboxed app framework for desktop Linux GUI, desktop apps, as in /usr/share/applications,

More information

Increasing Automation in the Backporting of Linux Drivers Using Coccinelle

Increasing Automation in the Backporting of Linux Drivers Using Coccinelle Increasing Automation in the Backporting of Linux Drivers Using Coccinelle Luis R. Rodriguez, (SUSE Labs) Julia Lawall (Inria/LIP6/UPMC/Sorbonne University-Whisper) January, 2015 (Unpublished work) What

More information

Increasing Automation in the Backporting of Linux Drivers Using Coccinelle

Increasing Automation in the Backporting of Linux Drivers Using Coccinelle 1 Increasing Automation in the Backporting of Linux Drivers Using Coccinelle Luis R. Rodriguez, (SUSE Labs) Julia Lawall (Inria/LIP6/UPMC/Sorbonne Universités) September 10, 2015 What is backporting? Linux

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

The Embedded Linux Problem

The Embedded Linux Problem The Embedded Linux Problem Mark.gross@intel.com Android-Linux kernel Architect February 2013 outline Little about me Intro History Environment Key questions Techniques Moving modules out of tree Summary

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

CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE

CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE HISAO MUNAKATA RENESAS SOLUTIONS CORP hisao.munakata.vt(at)renesas.com who am I Work for Renesas (semiconductor provider) Over 15 years real embedded Linux business

More information

Upstreaming Hardware Enablement

Upstreaming Hardware Enablement Upstreaming Hardware Enablement December 8th 2011 Anthony Wong Project Manager, Hardware Enablement Team Agenda Introduction to Hardware Enablement Team Difficulties of Hardware Enablement on Linux How

More information

Understanding Browsers

Understanding Browsers Understanding Browsers What Causes Browser Display Differences? Different Browsers Different Browser Versions Different Computer Types Different Screen Sizes Different Font Sizes HTML Errors Browser Bugs

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

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

Chapter 21a Other Library Issues

Chapter 21a Other Library Issues Chapter 21a Other Library Issues Nick Maclaren http://www.ucs.cam.ac.uk/docs/course-notes/un ix-courses/cplusplus This was written by me, not Bjarne Stroustrup Function Objects These are not the only way

More information

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy s Sylvain Bouveret, Grégory Mounié, Matthieu Moy 2017 [first].[last]@imag.fr http://recherche.noiraudes.net/resources/git/git-workflow-slides.pdf 1 / 16 Goals of the presentation Global history: multiple

More information

Setup Error Code 404 Spotify Won't

Setup Error Code 404 Spotify Won't Setup Error Code 404 Spotify Won't I was getting the "no internet connection available" error even tho everything else was using the internet fine. Googling Google that and I'm supposed to uninstall and

More information

Hostless Xen Deployment

Hostless Xen Deployment Hostless Xen Deployment Xen Summit Fall 2007 David Lively dlively@virtualiron.com dave.lively@gmail.com Hostless Xen Deployment What Hostless Means Motivation System Architecture Challenges and Solutions

More information

Releasing and Testing Free Opensource Graphics Drivers: the case of Mesa3D

Releasing and Testing Free Opensource Graphics Drivers: the case of Mesa3D Releasing and Testing Free Opensource Graphics Drivers: the case of Mesa3D Emil Velikov (emil.velikov@collabora.com) Juan A. Suárez (jasuarez@igalia.com) with PierreLoup Griffais (pgriffais@valvesoftware.com)

More information

kpatch Have your security and eat it too!

kpatch Have your security and eat it too! kpatch Have your security and eat it too! Josh Poimboeuf Senior Software Engineer, Red Hat LinuxCon North America August 22, 2014 Agenda What is kpatch? Why use kpatch? Demo How it works Features & Limitations

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

Tracking FreeBSD in a Commercial Environment

Tracking FreeBSD in a Commercial Environment Tracking FreeBSD in a Commercial Environment imp@freebsd.org The FreeBSD Project BSDCan 2009 Ottawa, Canada 8 May 2009 Outline Background and Context 1 Background and Context 2 Theory Reality 3 Upgrading

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

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

Basic Fiction Formatting for Smashwords in OpenOffice L. Leona Davis. Copyright 2012 L. Leona Davis All Rights Reserved

Basic Fiction Formatting for Smashwords in OpenOffice L. Leona Davis. Copyright 2012 L. Leona Davis All Rights Reserved Basic Fiction Formatting for Smashwords in OpenOffice L. Leona Davis Copyright 2012 L. Leona Davis All Rights Reserved Cover Photo by Dmitry Maslov Cover Design by L. Leona Davis Smashwords Edition June

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

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015 Git all meaningful operations can be expressed in terms of the rebase command -Linus Torvalds, 2015 a talk by alum Ross Schlaikjer for the GNU/Linux Users Group Sound familiar? add commit diff init clone

More information

How to git with proper etiquette

How to git with proper etiquette How to git with proper etiquette Let's start fixing how we use git here in crew so our GitHub looks even more awesome and you all get experience working in a professional-like git environment. How to use

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

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

Getting Perl modules into Debian

Getting Perl modules into Debian Getting Perl modules into Debian Debian s Perl team from an end-user perspective 11th September 2010 HantsLUG @ IBM Hursley What is the Debian Perl team? Maintain about 2000 Perl packages within Debian

More information

Structure and Config

Structure and Config Ubuntu Linux Server Structure and Config interlab at AIT Network Management Workshop March 11 Hervey Allen What's Our Goal? A bit of Debian & Ubuntu philosophy Differences from the Red Hat world Package

More information

ARC infrastructure and releases. Anders Wäänänen, NBI

ARC infrastructure and releases. Anders Wäänänen, NBI ARC infrastructure and releases Anders Wäänänen, NBI Overview Source code repository Binary repository ARC release status Legal stuff Globus issues 0.6 11/08/06 www.knowarc.eu 2 Software development Need

More information

Belle II - Git migration

Belle II - Git migration Belle II - Git migration Why git? Stash GIT service managed by DESY Powerful branching and merging capabilities Resolution of (JIRA) issues directly be map to branches and commits Feature freeze in pre-release

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

Atrium Webinar- What's new in ADDM Version 10

Atrium Webinar- What's new in ADDM Version 10 Atrium Webinar- What's new in ADDM Version 10 This document provides question and answers discussed during following webinar session: Atrium Webinar- What's new in ADDM Version 10 on May 8th, 2014 Q: Hi,

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

Linux. What is it? What s good about it? What s bad about it?

Linux. What is it? What s good about it? What s bad about it? Linux What is it? What s good about it? What s bad about it? History Minix by Tanenbaum in late 1980s Linus Torvalds started Linux as a hobby project to improve on Minix First official public version late

More information

ctio Computer Hygiene /R S E R ich

ctio Computer Hygiene /R S E R ich Computer Hygiene Protect Yourself You don't want to be part of the problem If there is a serious attack, you want your systems to be clean You rely on your systems on the air these days Packet NBEMS Logging

More information

Client Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module

Client Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module Basic Class Design Goal of OOP: Reduce complexity of software development by keeping details, and especially changes to details, from spreading throughout the entire program. Actually, the same goal as

More information

Building a home lab : From OK to Bada$$$ By Maxime Mercier

Building a home lab : From OK to Bada$$$ By Maxime Mercier Building a home lab : From OK to Bada$$$ By Maxime Mercier Disclaimer The following presentation is a generic guideline on building a home lab. It should not be used for production servers without proper

More information

Transparent Hugepage Support

Transparent Hugepage Support Transparent Hugepage Support Red Hat Inc. Andrea Arcangeli aarcange at redhat.com KVM Forum 2010 Boston Copyright 2010 Red Hat Inc. 9 Aug 2010 Benefit of hugepages Enlarge TLB size TLB is separate for

More information

FileWave 10 Webinar Q&A

FileWave 10 Webinar Q&A FileWave 10 Webinar Q&A When will 10 be released? October 14 th, but you can sign up today to get into the beta program. Link: www.filewave.com/beta-program How stable is the beta? Should we use it for

More information

Open Enterprise & Open Community opensuse & SLE Empowering Each Other. Richard Brown opensuse Chairman

Open Enterprise & Open Community opensuse & SLE Empowering Each Other. Richard Brown opensuse Chairman Open Enterprise & Open Community & SLE Empowering Each Other Richard Brown Chairman rbrown@opensuse.org Contents Introduction to the Project Looking Back - 2014 and before Rolling into the Future with

More information

Red Hat Fedora as a model for irods Community Architecture Ray Idaszak Director Collaborative Environments

Red Hat Fedora as a model for irods Community Architecture Ray Idaszak Director Collaborative Environments @RENCI: Red Hat Fedora as a model for Community Architecture Ray Idaszak Director Collaborative Environments Fedora Fedora Fedora Linux (Red Hat) http://fedoraproject.org/ Fedora Digital Repository http://fedora-commons.org/

More information

Update Manual Ios 7.1 Iphone 4s Wont >>>CLICK HERE<<<

Update Manual Ios 7.1 Iphone 4s Wont >>>CLICK HERE<<< Update Manual Ios 7.1 Iphone 4s Wont ios 7.1.2 has caused some problems for some iphone, ipad and ipod touch users. Here's how you can That way, if anything goes wrong, at least you won't lose any data.

More information

Parallels Workstation 4.0 Extreme Read Me

Parallels Workstation 4.0 Extreme Read Me Parallels Workstation 4.0 Extreme Read Me Welcome to Parallels Workstation Extreme build 4.0.6740. This document contains the information you should know to successfully install Parallels Workstation Extreme

More information

Building X 2D rendering acceleration with OpenGL. Eric Anholt Intel Open Source Technology Center

Building X 2D rendering acceleration with OpenGL. Eric Anholt Intel Open Source Technology Center Building X 2D rendering acceleration with OpenGL Eric Anholt Intel Open Source Technology Center How 2D has worked X has always implemented graphics acceleration in a hardware specific driver Acceleration

More information

manifold Documentation

manifold Documentation manifold Documentation Release 0.0.1 Open Source Robotics Foundation Mar 04, 2017 Contents 1 What is Manifold? 3 2 Installation 5 2.1 Ubuntu Linux............................................... 5 2.2

More information

Do you think you'll be using a computer with the Windows 8 operating system on it anytime soon?

Do you think you'll be using a computer with the Windows 8 operating system on it anytime soon? Do you think you'll be using a computer with the Windows 8 operating system on it anytime soon? No Yes 53.1% 46.9% Do you think you'll be using a computer with the Windows 8 operating system on it anytime

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

Why you should care about hardware locality and how.

Why you should care about hardware locality and how. Why you should care about hardware locality and how. Brice Goglin TADaaM team Inria Bordeaux Sud-Ouest Agenda Quick example as an introduction Bind your processes What's the actual problem? Convenient

More information

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CS 520: VCS and Git. Intermediate Topics Ben Kushigian CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards

More information

How To Repair Win 7's Boot Loader After You Install Xp

How To Repair Win 7's Boot Loader After You Install Xp How To Repair Win 7's Boot Loader After You Install Xp Here we're installing XP Professional on the new partition. This is due to XP writing it's bootloader over Windows 7's. After getting the bootloader

More information

Case study on PhoneGap / Apache Cordova

Case study on PhoneGap / Apache Cordova Chapter 1 Case study on PhoneGap / Apache Cordova 1.1 Introduction to PhoneGap / Apache Cordova PhoneGap is a free and open source framework that allows you to create mobile applications in a cross platform

More information

My Favorite bash Tips and Tricks

My Favorite bash Tips and Tricks 1 of 6 6/18/2006 7:44 PM My Favorite bash Tips and Tricks Prentice Bisbal Abstract Save a lot of typing with these handy bash features you won't find in an old-fashioned UNIX shell. bash, or the Bourne

More information

By Arjan Van De Ven, Senior Staff Software Engineer at Intel.

By Arjan Van De Ven, Senior Staff Software Engineer at Intel. Absolute Power By Arjan Van De Ven, Senior Staff Software Engineer at Intel. Abstract: Power consumption is a hot topic from laptop, to datacenter. Recently, the Linux kernel has made huge steps forward

More information

SUSE at the Point of Service. Joachim Werner Senior Product Manager

SUSE at the Point of Service. Joachim Werner Senior Product Manager SUSE at the Point of Service Joachim Werner Senior Product Manager joe@suse.com Agenda Introduction Product Overview SUSE Linux Enterprise Point of Service 11 Typical Configuration SUSE Linux Enterprise

More information

TDF Infra Overview. from developers' perspective

TDF Infra Overview. from developers' perspective Introduction Christian Lohmaier AKA cloph on irc/elsewhere part of the project since the very beginning (infra side) since a few years employed by TDF initially part-time as infrastructure administrator

More information

Software configuration management

Software configuration management Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2017-03-27 2 Maintenance Requirements System Design (Architecture,

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

Boot Camp. Dave Eckhardt Bruce Maggs

Boot Camp. Dave Eckhardt Bruce Maggs Boot Camp Dave Eckhardt de0u@andrew.cmu.edu Bruce Maggs bmm@cs.cmu.edu 1 This Is a Hard Class Traditional hazards 410 letter grade one lower than other classes All other classes this semester: one grade

More information

Close Your File Template

Close Your File Template In every sale there is always a scenario where I can t get someone to respond. No matter what I do. I can t get an answer from them. When people stop responding I use the Permission To. This is one of

More information

Most of the class will focus on if/else statements and the logical statements ("conditionals") that are used to build them. Then I'll go over a few

Most of the class will focus on if/else statements and the logical statements (conditionals) that are used to build them. Then I'll go over a few With notes! 1 Most of the class will focus on if/else statements and the logical statements ("conditionals") that are used to build them. Then I'll go over a few useful functions (some built into standard

More information

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47 Working with GIT MNXB01 2017 Florido Paganelli Lund University florido.paganelli@hep.lu.se Florido Paganelli MNXB01-2017 - Working with git 1/47 Required Software Git - a free and open source distributed

More information

Windows 7 Manual Update Install Clean Disk. Space >>>CLICK HERE<<<

Windows 7 Manual Update Install Clean Disk. Space >>>CLICK HERE<<< Windows 7 Manual Update Install Clean Disk Space How to Clean up the WinSxS Directory and Free Up Disk Space on Windows Server 2008 -andfree-up-disk-space-with-a-new-update-for-windows-7-sp1-clients.aspx

More information

EasyHook: Down & Dirty with Microsoft Windows

EasyHook: Down & Dirty with Microsoft Windows EasyHook: Down & Dirty with Microsoft Windows By Aaron Grothe/NEbraskaCERT 03/17/2010 LibSafe Has anybody heard of it? Very interesting little library for Linux written by Avaya Did function call interceptions

More information

How to decide Linux Kernel for Embedded Products. Tsugikazu SHIBATA NEC 20, Feb Embedded Linux Conference 2013 SAN FRANCISCO

How to decide Linux Kernel for Embedded Products. Tsugikazu SHIBATA NEC 20, Feb Embedded Linux Conference 2013 SAN FRANCISCO How to decide Linux Kernel for Embedded Products Tsugikazu SHIBATA NEC 20, Feb. 2013 Embedded Linux Conference 2013 Parc55 @ SAN FRANCISCO Agenda Points to be considered to decide Linux kernel version

More information

Windows 7 Will Not Load On My Computer Says I'm

Windows 7 Will Not Load On My Computer Says I'm Windows 7 Will Not Load On My Computer Says I'm There are various programs which will allow you to make a copy of your entire apply to my computer even though it does say it works for this issue in Windows

More information

How Rust views tradeoffs. Steve Klabnik

How Rust views tradeoffs. Steve Klabnik How Rust views tradeoffs Steve Klabnik 03.04.2019 What is a tradeoff? Bending the Curve Overview Design is about values Case Studies BDFL vs Design By Committee Stability Without Stagnation Acceptable

More information

LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED

LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED LINUX KERNEL UPDATES FOR AUTOMOTIVE: LESSONS LEARNED TOM MCREYNOLDS, VLAD BUZOV AUTOMOTIVE SOFTWARE OCTOBER 15TH, 2013 Why kernel upgrades : the problem Linux Kernel cadence doesn t match Automotive s

More information

Maintaining an Out-of-Tree Driver and an Upstream Driver Simultaneously (with minimal pain)

Maintaining an Out-of-Tree Driver and an Upstream Driver Simultaneously (with minimal pain) Maintaining an Out-of-Tree Driver and an Upstream Driver Simultaneously (with minimal pain) Catherine Sullivan Intel LinuxCon 2015 Me Intel ND Linux Ethernet drivers 40G product line A little 10G Network

More information

git-flow Documentation

git-flow Documentation git-flow Documentation Release 1.0 Johan Cwiklinski Jul 14, 2017 Contents 1 Presentation 3 1.1 Conventions............................................... 4 1.2 Pre-requisites...............................................

More information

Reboot adieu! Online Linux kernel patching. Udo Seidel

Reboot adieu! Online Linux kernel patching. Udo Seidel Reboot adieu! Online Linux kernel patching Udo Seidel Agenda Who & Why? How? Players & Show! And? Me :-) Teacher of mathematics and physics PhD in experimental physics Started with Linux in 1996 Linux/UNIX

More information

Manual Update To Ios 7 Ipad 3 Won't >>>CLICK HERE<<<

Manual Update To Ios 7 Ipad 3 Won't >>>CLICK HERE<<< Manual Update To Ios 7 Ipad 3 Won't Even if you manage to manually install the software it probably won't even turn on Is there a jailbreak to trick it to see the ipad as running ios7 or 8 just don't want

More information

Review of the Stable Realtime Release Process

Review of the Stable Realtime Release Process Review of the Stable Realtime Release Process An unscientific, slightly opinionated stab at the current status... With the intent of generating some discussion. Frank Rowand, Sony Network Entertainment

More information

Produced by. Mobile Application Development. Eamonn de Leastar

Produced by. Mobile Application Development. Eamonn de Leastar Mobile Application Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie Introducing

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

SALOME Maintenance Procedure. Frédéric Pons (Open Cascade) Roman Nikolaev (Open Cascade)

SALOME Maintenance Procedure. Frédéric Pons (Open Cascade) Roman Nikolaev (Open Cascade) SALOME Maintenance Procedure Frédéric Pons (Open Cascade) Roman Nikolaev (Open Cascade) Back Office Back Office Organization Back Office Tasks Continuous integration Production and Qualification of Released

More information

mid=81#15143

mid=81#15143 Posted by joehillen - 06 Aug 2012 22:10 I'm having a terrible time trying to find the Lightworks source code. I was under the impression that Lightworks was open source. Usually that means that it's possible

More information

Home Page. Title Page. Contents. Page 1 of 17. Version Control. Go Back. Ken Bloom. Full Screen. Linux User Group of Davis March 1, Close.

Home Page. Title Page. Contents. Page 1 of 17. Version Control. Go Back. Ken Bloom. Full Screen. Linux User Group of Davis March 1, Close. Page 1 of 17 Version Control Ken Bloom Linux User Group of Davis March 1, 2005 Page 2 of 17 1. Version Control Systems CVS BitKeeper Arch Subversion SVK 2. CVS 2.1. History started in 1986 as a bunch of

More information

1 Getting used to Python

1 Getting used to Python 1 Getting used to Python We assume you know how to program in some language, but are new to Python. We'll use Java as an informal running comparative example. Here are what we think are the most important

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

ERICH PRIMEHAMMER REFACTORING

ERICH PRIMEHAMMER REFACTORING ERICH KADERKA @ PRIMEHAMMER REFACTORING WHAT IS REFACTORING? Martin Fowler: Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of

More information

Aurelien Jarno 26/02/2006 FOSDEM. Debian GNU/kFreeBSD. Aurelien Jarno. What? Why? Status. The future. How to help?

Aurelien Jarno 26/02/2006 FOSDEM. Debian GNU/kFreeBSD. Aurelien Jarno. What? Why? Status. The future. How to help? aurel32@debian.org FOSDEM 26/02/2006 What is? port FreeBSD kernel (kfreebsd for short) kfreebsd 5.4 experimental version of kfreebsd 6.0 GNU userland GNU libc Cool tools (dpkg, apt,...) A Gentoo port has

More information

T Mobile Manual Contract Deals Iphone 5s Work In India

T Mobile Manual Contract Deals Iphone 5s Work In India T Mobile Manual Contract Deals Iphone 5s Work In India cheap. I saw that the Apple Store in Canada was selling them unlocked. I bought the no-contract T-mobile iphone 6 from Apple's website and am using

More information

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration Who am I? I m a python developer who has been working on OpenStack since 2011. I currently work for Aptira, who do OpenStack, SDN, and orchestration consulting. I m here today to help you learn from my

More information

How to Connect & Share your Internet Connection (Wired & Wireless)

How to Connect & Share your Internet Connection (Wired & Wireless) How to Connect & Share your Internet Connection (Wired & Wireless) I have Ubuntu 12.04 on a HP 430 notebook and this has a single wired internet connection and I would like to share this with a LG Optimus

More information

Linked Lists. What is a Linked List?

Linked Lists. What is a Linked List? Linked Lists Along with arrays, linked lists form the basis for pretty much every other data stucture out there. This makes learning and understand linked lists very important. They are also usually the

More information

HTTP/2 Out Of The Box

HTTP/2 Out Of The Box HTTP/2 Out Of The Box Can you get it with stable Linux? Sergej Kurakin HTTP/2 was published at May 14, 2015 HTTP 1.1 was standardized in 1997 - it s 18 years old! HTTP/2 was published at May 14, 2015

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

Embedded in 2010: An End to the Entropy? Matt Asay COO, Canonical

Embedded in 2010: An End to the Entropy? Matt Asay COO, Canonical Embedded in 2010: An End to the Entropy? Matt Asay COO, Canonical 1 ...and where smart meets bankruptcy 2 Remember these? 3 The Past ARMv1 ARMv3 ARMv4 Obsolete: Not powerful enough to run Linux. Some very

More information

How to Work with Mercurial

How to Work with Mercurial How to Work with Mercurial Author: Organization: Sjoerd Mullender CWI, MonetDB B.V. Abstract The MonetDB repository has moved from CVS on Sourceforge to Mercurial on dev.monetdb.org. In this document,

More information

Agenda How DPDK can be used for your Application DPDK Ecosystem boosting your Development Meet the Community Challenges

Agenda How DPDK can be used for your Application DPDK Ecosystem boosting your Development Meet the Community Challenges SPEED MATTERS. All rights reserved. All brand names, trademarks and copyright information cited in this presentation shall remain the property of its registered owners. Agenda How DPDK can be used for

More information

Git tips. Some tips to use Git.

Git tips. Some tips to use Git. Some tips to use Git. Summary I.... 1. Add remote repository on a project and how to use it... 2. Squash commits... 3. Rewrite a project history... 4. Reset a branch on a precise commit... p. 3 p. 3 p.

More information

Adafruit's Raspberry Pi Lesson 1. Preparing an SD Card for your Raspberry Pi

Adafruit's Raspberry Pi Lesson 1. Preparing an SD Card for your Raspberry Pi Adafruit's Raspberry Pi Lesson 1. Preparing an SD Card for your Raspberry Pi Created by Simon Monk Last updated on 2013-07-08 12:15:38 PM EDT Guide Contents Guide Contents Overview You Will Need Downloading

More information

Instant Keyword Riches

Instant Keyword Riches Instant Keyword Riches Instant Keyword Riches Table of Contents Introduction... 3 Preliminary Keyword Research... 4 Keyword Assessment... 6 Keywords in SEO... 10 Domain Names... 10 URLs... 11 Heading Tags...

More information

contribution-guide.org Release

contribution-guide.org Release contribution-guide.org Release August 06, 2018 Contents 1 About 1 1.1 Sources.................................................. 1 2 Submitting bugs 3 2.1 Due diligence...............................................

More information

CptS 360 (System Programming) Unit 3: Development Tools

CptS 360 (System Programming) Unit 3: Development Tools CptS 360 (System Programming) Unit 3: Development Tools Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation Using UNIX-style development tools lets

More information

Manual Update Java 7 25 Mac Windows Xp

Manual Update Java 7 25 Mac Windows Xp Manual Update Java 7 25 Mac Windows Xp This release will be the last Oracle JDK 7 publicly available update. JavaFX SDK is now included in JDK 7 for Windows, Mac OS X, and Linux x86/x64. 5.3.1 Java Control

More information

SMB3 and Linux Seamless POSIX file serving. Jeremy Allison Samba Team.

SMB3 and Linux Seamless POSIX file serving. Jeremy Allison Samba Team. SMB3 and Linux Seamless POSIX file serving Jeremy Allison Samba Team jra@samba.org Isn't cloud storage the future? Yes, but not usable for many existing apps. Cloud Storage is a blob store Blob stores

More information

QUIZ Friends class Y;

QUIZ Friends class Y; QUIZ Friends class Y; Is a forward declaration neeed here? QUIZ Friends QUIZ Friends - CONCLUSION Forward (a.k.a. incomplete) declarations are needed only when we declare member functions as friends. They

More information