breaking into open source and linux: a usb 3.0 success story
TRANSCRIPT
![Page 1: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/1.jpg)
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://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/2.jpg)
https://cs.uwaterloo.ca/[email protected]
![Page 3: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/4.jpg)
"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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/5.jpg)
Sarah Sharp: 12 years ago
![Page 6: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/7.jpg)
Portland State Aerospace Society
![Page 8: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/8.jpg)
Rockets and Open Source
![Page 9: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/10.jpg)
Lesson 1:Rules can be bent
![Page 11: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/12.jpg)
Lesson 2:Find a mentor and
do hands-on projects
![Page 13: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/15.jpg)
Lesson 3:Technical Debt
![Page 16: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/18.jpg)
Lesson 4:Grow your network
![Page 19: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/27.jpg)
Lesson 5:Open source is
social and technical
![Page 28: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/30.jpg)
Lesson 6:Promote yourself
![Page 31: Breaking into Open Source and Linux: A USB 3.0 Success Story](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032616/55a684ac1a28ab48498b4836/html5/thumbnails/33.jpg)
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/