+ All Categories
Home > Software > Breaking into Open Source and Linux: A USB 3.0 Success Story

Breaking into Open Source and Linux: A USB 3.0 Success Story

Date post: 15-Jul-2015
Category:
Upload: saharabeara
View: 1,422 times
Download: 3 times
Share this document with a friend
Popular Tags:
33
Breaking into Open Source and Linux: A USB 3.0 Success Story Sarah Sharp http://sarah.thesharps.us University of Waterloo Nov 20,2014
Transcript
Page 1: Breaking into Open Source and Linux: A USB 3.0 Success Story

Breaking into Open Source and Linux:A USB 3.0 Success Story

Sarah Sharphttp://sarah.thesharps.us

University of WaterlooNov 20,2014

Page 2: Breaking into Open Source and Linux: A USB 3.0 Success Story

https://cs.uwaterloo.ca/[email protected]

Page 3: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: Today

Photo copyright LWN: http://lwn.net/Articles/568298/

Page 4: Breaking into Open Source and Linux: A USB 3.0 Success Story

"We struggle with insecurity becausewe compare our behind-the-sceneswith everyone else's highlight reel."

http://alistapart.com/column/seeing-past-the-highlight-reel

Page 5: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: 12 years ago

Page 6: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: College

● Portland State University● Met ECE Professor Doug Hall● Learned how to program● My boyfriend introduced me to

– open source, Linux, rockets

Page 7: Breaking into Open Source and Linux: A USB 3.0 Success Story

Portland State Aerospace Society

Page 8: Breaking into Open Source and Linux: A USB 3.0 Success Story

Rockets and Open Source

Page 9: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: College

● Met CS Professor Bart Massey● ECE senior capstone:

USB-based sensor nodes for PSAS rocket● Class credit:

microprocessor pin-out combinatorial search

Page 10: Breaking into Open Source and Linux: A USB 3.0 Success Story

Lesson 1:Rules can be bent

Page 11: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: College

● Bart introduced me to– The local Linux kernel community

– Greg Kroah-Hartman

● Greg suggested usbfs2 project● Bart helped me get:

– ECE elective credit

– Intel undergraduate research grant

Page 12: Breaking into Open Source and Linux: A USB 3.0 Success Story

Lesson 2:Find a mentor and

do hands-on projects

Page 13: Breaking into Open Source and Linux: A USB 3.0 Success Story

USB filesystem (usbfs)

USB device driver

usbfs

USB core

USB host controller

userspace

kernel

Page 14: Breaking into Open Source and Linux: A USB 3.0 Success Story

usbfs2

● Goal: replace IOCTLS with read/write syscalls● Didn't want to make userspace block● Needed asynchronous completion● Why not use ASYNC I/O?

Page 15: Breaking into Open Source and Linux: A USB 3.0 Success Story

Lesson 3:Technical Debt

Page 16: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah: Senior year

● Bart encouraged me to present at OSCON on usbfs2

● Kristin Accardi was on OSCON paper selection committee

Page 17: Breaking into Open Source and Linux: A USB 3.0 Success Story

Characteristics of agood open source developer

● Meticulous– Double checks work, addresses feedback

● Excellent communication skills– Clear, concise, persuasive, responsive

● Self learner, curious, asks questions● Prefers to work in an open manner

Page 18: Breaking into Open Source and Linux: A USB 3.0 Success Story

Lesson 4:Grow your network

Page 19: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah: Linux USB 3.0 developer

● Hired by Intel in July 2007● USB 3.0 specification draft● Hardware was still in FPGA form

Page 20: Breaking into Open Source and Linux: A USB 3.0 Success Story

Linux USB Stack

USB device driver

USB core

USB host controller

userspace

kernel

Page 21: Breaking into Open Source and Linux: A USB 3.0 Success Story

USB device topology

Configuration

Interface

Alternate Setting● Endpoints:

● IN or OUT● Buffer Size● Interval

Page 22: Breaking into Open Source and Linux: A USB 3.0 Success Story

USB 3.0 host changes

● USB 1.1/2.0 hosts– scheduling done in software

– unaware of device endpoints

● USB 3.0 host– supports virtualization

– scheduling done in hardware

– must be aware of device endpoints

Page 23: Breaking into Open Source and Linux: A USB 3.0 Success Story

Linux USB Stack

USB device driver

USB core

USB host controller

userspace

kernel

Page 24: Breaking into Open Source and Linux: A USB 3.0 Success Story

Linux USB Maintainers

USB 1.1 host andUSB core

USB 2.0 host USB device drivers and power management

USB subsystem

Page 25: Breaking into Open Source and Linux: A USB 3.0 Success Story

What is being aLinux kernel maintainer like?

● Ten to hundreds of emails a day● Very rapid development cycle● Looking at long-term health of the project● Maintains code for 5 - 20 years● Reputation is on the line for each patch

Page 26: Breaking into Open Source and Linux: A USB 3.0 Success Story

Linux kernel code submission

● Many revisions (often up to v8)● Must meet coding style standards● Must be complete and maintainable● Often old code needs to be refactored● Can't break other users, subsystems

Page 27: Breaking into Open Source and Linux: A USB 3.0 Success Story

Lesson 5:Open source is

social and technical

Page 28: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: Kernel maintainer

● xHCI driver was accepted in 2009– two years after I was hired

● USB 3.0 kernel maintainer● Learned about:

– reviewing other people's code

– working with bug reporters

– sending pull requests

– stable backports

Page 29: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: Conference Speaker

● Uploaded USB 3.0 demo video to reddit● Articles published about Linux getting USB 3.0 support

before Windows● Spoke or demoed at numerous conferences

– SuperSpeed Developer Conference Japan 2010

– Linux Conference Australia 2010, 2011, 2013

– Libre Software Meeting (France) 2011

– LinuxCon (North America & Europe)

– OSCON, Open Source Bridge (Portland)

Page 30: Breaking into Open Source and Linux: A USB 3.0 Success Story

Lesson 6:Promote yourself

Page 31: Breaking into Open Source and Linux: A USB 3.0 Success Story

Sarah Sharp: Today

Photo copyright LWN: http://lwn.net/Articles/568298/

Page 32: Breaking into Open Source and Linux: A USB 3.0 Success Story

Linux Kernel Resources

● Linux Device Drivers book:http://lwn.net/Kernel/LDD3

● Linux Device Driver tutorial:https://github.com/gregkh/kernel-tutorial

● First kernel patch tutorial:http://kernelnewbies.org/FirstKernelPatch

● FOSS Outreach Program for Women (OPW)(paid open source and Linux kernel internships)http://gnome.org/opw

Page 33: Breaking into Open Source and Linux: A USB 3.0 Success Story

Photo Attribution

● Kernel Panel: http://lwn.net/Articles/568298/

● Rainier: https://www.flickr.com/photos/misternaxal/513732031

● Dusty computer: https://www.flickr.com/photos/garhol/4417674619

● PSAS photos CC BY-SA-NC Sarah Sharp

● Bart Massey: https://www.flickr.com/photos/igalko/7570219768

● OSCON sign: https://www.flickr.com/photos/kubina/912778997

● Logitech webcam: https://www.flickr.com/photos/bshunrichs/162199777

● Greg Kroah-Hartman: https://www.flickr.com/photos/tian2992/6208491794

● David Brownell: https://www.flickr.com/photos/13825348@N03/sets/72157608741347102/detail/


Recommended