Intro to Kernel Hacking - finding things to work on.

Similar documents
THE COFFEE SHOP INTERVIEW

Getting Affiliates to Sell Your Stuff: What You Need To Know

Referral Request (Real Estate)

CLICK HERE TO SUBSCRIBE

MJ s New 2 Step Scripting System for Getting New Leads for Your List!

Transcript for Session 049

2015 Mark Whitten DEJ Enterprises, LLC 1

Terms and Conditions

Dodge Development, Inc. 423 W Wheatland Rd, Ste 102 Duncanville TX or

Reversing Subconscious Limiting Beliefs in 2 Hours

COPYWRITER CHECKLIST. Find Out If You ve Got What It Takes to Succeed

Using Google Analytics to Make Better Decisions

So, again, that was addressing that main problem of how to attract new members. Even though people in that stage, you know, it's not just about

MITOCW watch?v=-qcpo_dwjk4

Ep #181: Proactivation

Coach Approach Ministries Podcast Episode 6: How to Generate Great Coaching Topics Published: July 26, 2016

COLD CALLING SCRIPTS

an easy read booklet What is Self-Directed Support?

just going to flop as soon as the doors open because it's like that old saying, if a tree falls in the wood and no one's around to hear it.

MJ DURKIN 2016 MJ DURKIN ALL RIGHTS RESERVED mjdurkinseminars.com

What My Content Was Like Four Years Ago

3 Ways to Make $10 an Hour

Investing in your future establishing a marketing budget

Blunt object, meet nail. Choosing tools and wrangling Unity

"The Lottery Shotgun Method:

CLICK HERE TO SUBSCRIBE

CLICK HERE TO SUBSCRIBE

THE WORKBOOK VIDEO #1 MAKE IT HAPPEN

David Cutler: Omar Spahi, thank you so much for joining me today. It's such an honor speaking to you. You are living my dream.

OWN YOUR DIVINE FEMININE POWER AT WORK

NOTICE: THIS REPORT IS COPYRIGHT OF ANGELA WILLS & MARKETERS MOJO

YOU CAN WRITE A SUPER KIDS BOOK

Do You Want To Be Your Own Boss?

"Of course you always lose your voice," she said "Your technique is wrong." And from that moment on, my life would never be the same.

Arduino: 101 Beginner's Guide (Tech Geek Book Book 5) Ebooks Free

Buying and Holding Houses: Creating Long Term Wealth

What I Would Do Differently If I Was Starting Today (Transcript)

CHAPTER ONE. Getting Started

Introduction. Parkinson s Law: Work expands to fill the time allotted.

How would you describe your current levels of self-care?

How Experienced Traders Think Differently

FAT EXTINGUISHER INTRO & QUICK-START GUIDE. [From the desk of Troy Adashun]

Teenagers Preparing for the Real World

Class 1 - Introduction

If you are an action-oriented individual and you're ready to discover your Purpose as you fall in love with your life s Vision, this is for you

Snowboarding Fun! Wings Of Success Page 1 of 1

How to Get Started Making Money Online

MODULE 4 CREATING SOCIAL MEDIA CONTENT

Writing Prompts. for grades 2-4. #18 Best/Worst Day Ever #19 Celebration #20 Scared

Polar Award: Self Awareness

Getting It Done

Negotiating Essentials

How do I position myself if I m not an expert, plus steps to take to build an audience/following/tribe, and more! By Eric Louviere

Bonus Training: How To Change Your Life

Today s Date. How to Live the Life of Your Dreams Through Setting Goals. Remember follow every step! Good luck.

Date Started: Date Completed: VIRTUES EXERCISE: Instructions and Definitions

Communication Miracles for Couples Guest: Jonathan Robinson Host: Noel Meador

6 Sources of Acting Career Information

Health & Happiness Guide

Smart Money, Smart Kids 6 Contentment Priceless

Best way to make a presentation about yourself. Best way to make a presentation about yourself.zip

OG TRAINING - Recording 2: Talk to 12 using the Coffee Sales Script.

Manifesting Worksheet

Academic job market: how to maximize your chances

CLICK HERE TO SUBSCRIBE

Show notes at: engineeringcareercoach.com/mentoring

How would you describe your current levels of self-care?

Feel Good English. 4 Simple Steps to. The transcript to episode #69

Masterpiece Inked Publications, LLC.

Building Blocks, are they like the ones my little brother plays with?

Lesson 2: Finding Your Niche Market

UFYB 27: Busy Is a State of Mind

Make God Your Senior Business Partner

25 Reasons You Are Not a Millionaire

Telephone Practice Profile Invitation To invite people you know to a Practice Profile

A Guide to Digital Marketing for Beginners: How to get started and boost your business

Getting Back on Track with Your Business

Conversation with Rebecca Rhodes

7 Part Prospect Follow-Up s

We're excited to announce that the next JAFX Trading Competition will soon be live!

Writing Tips for PhD Theses

9 Quick. Hacks to DOUBLE Your Productivity THIS YEAR. by Charles Ngo

Get into the swing of things!!!

GETTING FREE TRAFFIC WHEN YOU HAVE NO TIME TO LOSE

Self-Sourcing Industry Placements

Hello and welcome to the CPA Australia podcast, your source for business, leadership and public practice accounting information.

Editing Your Novel by: Katherine Lato Last Updated: 12/17/14

Learn to Read Tarot With The Tarot House Deck

Okay, okay... It probably won't be so hysterical too you, but I'll tell you anyway.

Blogger s Ultimate Guide

5 Steps To Double Your Sales

Make an Altoids Flashlight.

MITOCW R3. Document Distance, Insertion and Merge Sort

SUNDAY MORNINGS April 8, 2018, Week 2 Grade: Kinder

Preparing For Your GCSEs

You may share this document as long as you don t make any changes to it and leave the links intact.

TIPS FOR DISSOCIATIVE DISORDER----

NFL Strength Coach of the Year talks Combine, Training, Advice for Young Strength Coaches

WEBSITE PROPOSAL OBJECTION ANSWER SCRIPTS

[DOCUMENT TITLE] [Document subtitle] [DATE] GLOBAL CASHFLOW SYSTEMS LLC [Company address]

Transcription:

Intro to Kernel Hacking - finding things to work on. Tobin C. Harding me@tobin.cc Slides: http://tobin.cc/kernel-dev-finding-work.pdf

Who I am and why I m doing this talk I'm just some guy from someplace who likes hacking on the kernel. I'm not being paid to be here, my opinions are my own.

Who I am and why I m doing this talk I'm just some guy from someplace who likes hacking on the kernel. I'm not being paid to be here, my opinions are my own. I have less than a year of full time kernel development experience.

Who I am and why I m doing this talk I'm just some guy from someplace who likes hacking on the kernel. I'm not being paid to be here, my opinions are my own. I have less than a year of full time kernel development experience. During that year I hit a wall and was stuck with nothing [kernel] to do for 2 months.

Intended audience This talk is targeted at wannabe kernel hackers, hopefully some of whom have a couple of patches mainlined already.

Intended audience This talk is targeted at wannabe kernel hackers, hopefully some of whom have a couple of patches mainlined already. The aim of this talk is to provide motivation/guidance to the target audience and also to get feed back from those more experienced.

Motivation Some reasons why you might not want to do kernel development: It s hard.

Motivation Some reasons why you might not want to do kernel development: It s hard. Some kernel developers are prickly.

Motivation Some reasons why you might not want to do kernel development: It s hard. Some kernel developers are prickly. It s not cool, we still use email.

Motivation Some reasons why you might not want to do kernel development: It s hard. Some kernel developers are prickly. It s not cool, we still use email. It can be lonely (if you get stuck working on something nobody cares about).

Motivation So, why do you want to do kernel development? What motivates you to get up in the morning and stand/sit in front of your keyboard?

Motivation So, why do you want to do kernel development? What motivates you to get up in the morning and stand/sit in front of your keyboard? How much time have you got to devote to this? It could easily be the best part of a year (full time) before you are really doing anything useful.

Motivation Some reasons why you might want to do kernel development:

Motivation Some reasons why you might want to do kernel development: It s cool, we still use email.

Motivation Some reasons why you might want to do kernel development: It s cool, we still use email. If you are the sort of person who likes programming, systems programming, systems programming in C, open source systems programming in C...

Motivation Some reasons why you might want to do kernel development: It s cool, we still use email. If you are the sort of person who likes programming, systems programming, systems programming in C, open source systems programming in C.. Most kernel developers are polite, well mannered, and extremely generous with their time. Many will go out of their way to help you if you ask the correct questions in the correct manner and are seen to be putting in effort.

Motivation Basically, if this sort of work is meaningful to you on an individual level and you feel you have the mental, financial, and temporal resources then you should definitely pursue it - for the right person kernel hacking is a seriously satisfying way to pass your days.

Skills - social 'The main issues faced by any large software system are not technical issues but people issues' unknown (possibly paraphrased) Get some people skills, read some books (How to win friends and influence people, more aptly named: 'How not to be a dick'). Pay attention, have 'beginners mind'. Everything is done in the open so observe how others act and imitate.

Skills - technical Learn C well: The C Programming Language - Brian W. Kernighan and Dennis M. Ritchie. The Linux Programming Interface - Michael Kerrisk. Unless you have written a lot of C then do yourself a favour and complete the above books including all exercises. Learn OS theory (and Linux in particular): Operating System Concepts - Avi Silberschatz, Peter Baer Galvin, Greg Gagne. Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah- Hartman Linux Kernel Development - Robert Love.

Good news There is unlimited amounts of work to do in the kernel.

Good news There is unlimited amounts of work to do in the kernel. The kernel community is very appreciative and welcoming of any beneficial help.

Guidelines Don't break anything.

Guidelines Don't break anything. Be exceedingly respectful of other peoples time.

Guidelines Don't break anything. Be exceedingly respectful of other peoples time. Work on what interests you.

Guidelines Don't break anything. Be exceedingly respectful of other peoples time. Work on what interests you. Focus on interesting tractable problems.

One method of progression Do your first patch. Do your first patch set. Do a bunch of checkpatch cleanup patches in staging. Get some real hardware and write a driver. Pick hardware with a driver currently in staging. Pick hardware that has a similar driver intree. (Please do not patch any kernel directory outside of staging until you have a bunch of patches merged (IMO at least 100)). then...

Moving on from Staging This talk hinges on three points: You can't/shouldn't do cleanups outside of staging.

Moving on from Staging This talk hinges on three points: You can't/shouldn't do cleanups outside of staging. You can't change code when you don't understand it.

Moving on from Staging This talk hinges on three points: You can't/shouldn't do cleanups outside of staging. You can't change code when you don't understand it. Even when you find something that needs doing, most likely it will not get accepted. Or not easily.

This is because the kernel is based on trust. You get patches in the kernel when people trust that you will be around to fix the bugs you introduce.

However Kernel hackers tend to have more things to work on than they have time. You can convince such a hacker to give you some of their work.

But hang on! Giving work to newbies takes effort too

But hang on! Giving work to newbies takes effort too It takes time to explain it.

But hang on! Giving work to newbies takes effort too It takes time to explain it. Reviewing patches takes time, especially newbie patches.

But hang on! Giving work to newbies takes effort too It takes time to explain it. Reviewing patches takes time, especially newbie patches. They have a nasty habit of pestering you when they either can't do it or they do it wrong.

Get some people skills If you can convince a kernel hacker to spend some of their time on you they benefit also

Get some people skills If you can convince a kernel hacker to spend some of their time on you they benefit also It's nice when things that you want done get done by other people.

Get some people skills If you can convince a kernel hacker to spend some of their time on you they benefit also It's nice when things that you want done get done by other people. It's nice when people respect you, asking someones guidance is a sign of respect.

Get some people skills If you can convince a kernel hacker to spend some of their time on you they benefit also It's nice when things that you want done get done by other people. It's nice when people respect you, asking someones guidance is a sign of respect. You learn things by teaching, hackers tend to like learning things.

You need to convince them, and yourself, that you are worth the effort

You need to convince them, and yourself, that you are worth the effort You have the base skill set (see above).

You need to convince them, and yourself, that you are worth the effort You have the base skill set (see above). You are putting in the effort.

You need to convince them, and yourself, that you are worth the effort You have the base skill set (see above). You are putting in the effort. You pay attention, no one likes saying things twice.

You need to convince them, and yourself, that you are worth the effort You have the base skill set (see above). You are putting in the effort. You pay attention, no one likes saying things twice. You are pleasant to interact with (you heard the bit about people skills right?).

You don't always need to ask directly. Often while talking, kernel developers may mention some thing they have been meaning to do, or they wish someone would do. Make a note of it, have a go at it, if you can get part way started that is enough to show 3 of the 4 points above. They will most likely step in and guide you on the things you are stuck on.

Talk to real kernel developers Go to conferences. Lurk on the mailing lists (kernel newbies and driver dev list). If anyone mentions anything that you feel you can do or you are interested in researching then do it. This is a gift economy, try to give without taking. Do stuff that helps others while demanding as little as possible of them in return.

Summing up Finding things to work on in the kernel may be not so much about the technical aspects of finding something to work on but rather the social aspects. Be patient, while at first it seems impossible to find something to do, very soon you will be swamped in tasks. There is unlimited amounts of work to do and no rush, take your time, do what you do meticulously. Expect that your changes will not get accepted, or if they do, not for a good while. You may have more success if you separate your patches from your ego. Or follow the concept of working not for the fruit of your labour but for the labour itself. Finally, when you wake up one morning and a patch set you put in has 20 responses to it or the first time you get an email from <insert kernel god here>, it will all be worth it. Money can't buy that feeling. Some of the best programmers in the world work on the kernel, and a bunch of them are very pleasant to work with. Thanks, enjoy yourself!