SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Breaking into Open Source and Linux: 
A USB 3.0 Success Story 
Sarah Sharp 
http://sarah.thesharps.us 
University of Waterloo 
Nov 20,2014
https://cs.uwaterloo.ca/wics 
wics-ugrad@uwaterloo.ca
Sarah Sharp: Today 
Photo copyright LWN: http://lwn.net/Articles/568298/
"We struggle with insecurity because 
we compare our behind-the-scenes 
with everyone else's highlight reel." 
http://alistapart.com/column/seeing-past-the-highlight-reel
Sarah Sharp: 12 years ago
Sarah Sharp: College 
● Portland State University 
● Met ECE Professor Doug Hall 
● Learned how to program 
● My boyfriend introduced me to 
– open source, Linux, rockets
Portland State Aerospace Society
Rockets and Open Source
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
Lesson 1: 
Rules can be bent
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
Lesson 2: 
Find a mentor and 
do hands-on projects
USB filesystem (usbfs) 
USB device driver 
usbfs 
USB core 
USB host controller 
userspace 
kernel
usbfs2 
● Goal: replace IOCTLS with read/write syscalls 
● Didn't want to make userspace block 
● Needed asynchronous completion 
● Why not use ASYNC I/O?
Lesson 3: 
Technical Debt
Sarah: Senior year 
● Bart encouraged me to present at 
OSCON on usbfs2 
● Kristin Accardi was on OSCON 
paper selection committee
Characteristics of a 
good 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
Lesson 4: 
Grow your network
Sarah: Linux USB 3.0 developer 
● Hired by Intel in July 2007 
● USB 3.0 specification draft 
● Hardware was still in FPGA form
Linux USB Stack 
USB device driver 
USB core 
USB host controller 
userspace 
kernel
USB device topology 
Configuration 
Interface 
Alternate Setting 
● Endpoints: 
● IN or OUT 
● Buffer Size 
● Interval
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
Linux USB Stack 
USB device driver 
USB core 
USB host controller 
userspace 
kernel
Linux USB Maintainers 
USB 1.1 host and 
USB core 
USB 2.0 host USB device drivers and 
power management 
USB subsystem
What is being a 
Linux 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
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
Lesson 5: 
Open source is 
social and technical
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
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)
Lesson 6: 
Promote yourself
Sarah Sharp: Today 
Photo copyright LWN: http://lwn.net/Articles/568298/
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
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/d 
etail/

Más contenido relacionado

La actualidad más candente

Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming LanguageRobert 'Bob' Reyes
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101Linaro
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming LanguageJaeju Kim
 
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016Codemotion
 
Intro ipcberlin2012
Intro ipcberlin2012Intro ipcberlin2012
Intro ipcberlin2012Pierre Joye
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionSherif Mousa
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101Linaro
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingDonnie Berkholz
 
MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1Robert 'Bob' Reyes
 
How Linux uses Git
How Linux uses GitHow Linux uses Git
How Linux uses Gitdmgerman
 
Introduction to Git and GitHub #git_nyan
Introduction to Git and GitHub #git_nyanIntroduction to Git and GitHub #git_nyan
Introduction to Git and GitHub #git_nyanHiro Yoshioka
 
ProjectTox: Free as in freedom Skype replacement
ProjectTox: Free as in freedom Skype replacementProjectTox: Free as in freedom Skype replacement
ProjectTox: Free as in freedom Skype replacementWei-Ning Huang
 
MozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off MeetingMozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off MeetingRobert 'Bob' Reyes
 
Connected Devices, MozVR & Firefox Developer Tools
Connected Devices, MozVR & Firefox Developer ToolsConnected Devices, MozVR & Firefox Developer Tools
Connected Devices, MozVR & Firefox Developer ToolsRobert 'Bob' Reyes
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
001 linux revision
001 linux revision001 linux revision
001 linux revisionSherif Mousa
 

La actualidad más candente (20)

Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming Language
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming Language
 
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
Why Rust? - Matthias Endler - Codemotion Amsterdam 2016
 
Intro ipcberlin2012
Intro ipcberlin2012Intro ipcberlin2012
Intro ipcberlin2012
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile Everything
 
MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1
 
How Linux uses Git
How Linux uses GitHow Linux uses Git
How Linux uses Git
 
Introduction to Git and GitHub #git_nyan
Introduction to Git and GitHub #git_nyanIntroduction to Git and GitHub #git_nyan
Introduction to Git and GitHub #git_nyan
 
ProjectTox: Free as in freedom Skype replacement
ProjectTox: Free as in freedom Skype replacementProjectTox: Free as in freedom Skype replacement
ProjectTox: Free as in freedom Skype replacement
 
MozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off MeetingMozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off Meeting
 
Embedded Linux On A R M
Embedded  Linux On  A R MEmbedded  Linux On  A R M
Embedded Linux On A R M
 
FreeBSD Portscamp, Kuala Lumpur 2016
FreeBSD Portscamp, Kuala Lumpur 2016FreeBSD Portscamp, Kuala Lumpur 2016
FreeBSD Portscamp, Kuala Lumpur 2016
 
Connected Devices, MozVR & Firefox Developer Tools
Connected Devices, MozVR & Firefox Developer ToolsConnected Devices, MozVR & Firefox Developer Tools
Connected Devices, MozVR & Firefox Developer Tools
 
Embedded Linux - Building toolchain
Embedded Linux - Building toolchainEmbedded Linux - Building toolchain
Embedded Linux - Building toolchain
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
001 linux revision
001 linux revision001 linux revision
001 linux revision
 
OpenGen webinar 011110
OpenGen webinar 011110OpenGen webinar 011110
OpenGen webinar 011110
 

Destacado

Vampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts YouVampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts YouSage Sharp
 
Gnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-semGnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-semSagun Baijal
 
Linuxdd[1]
Linuxdd[1]Linuxdd[1]
Linuxdd[1]mcganesh
 
Device drivers Introduction
Device drivers IntroductionDevice drivers Introduction
Device drivers Introductionvijay selva
 
Linux kernel code
Linux kernel codeLinux kernel code
Linux kernel codeGanesh Naik
 
Device Drivers in Linux
Device Drivers in LinuxDevice Drivers in Linux
Device Drivers in LinuxShreyas MM
 
brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device driversAlexandre Moreno
 
Linux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emptionLinux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emptionHemanth Venkatesh
 
Raspberry Pi - Lecture 6 Working on Raspberry Pi
Raspberry Pi - Lecture 6 Working on Raspberry PiRaspberry Pi - Lecture 6 Working on Raspberry Pi
Raspberry Pi - Lecture 6 Working on Raspberry PiMohamed Abdallah
 
Performance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual MachinesPerformance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual MachinesSoheila Dehghanzadeh
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOKris Findlay
 
Device tree support on arm linux
Device tree support on arm linuxDevice tree support on arm linux
Device tree support on arm linuxChih-Min Chao
 
Containers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesContainers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesShreyas MM
 
Introduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwareIntroduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwaredefinecareer
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016Chris Simmonds
 
Advanced Git
Advanced GitAdvanced Git
Advanced Gitsegv
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 

Destacado (20)

Vampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts YouVampire Mice: How USB PM Impacts You
Vampire Mice: How USB PM Impacts You
 
Gnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-semGnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-sem
 
Linuxdd[1]
Linuxdd[1]Linuxdd[1]
Linuxdd[1]
 
Device drivers Introduction
Device drivers IntroductionDevice drivers Introduction
Device drivers Introduction
 
Linux kernel code
Linux kernel codeLinux kernel code
Linux kernel code
 
Device Drivers in Linux
Device Drivers in LinuxDevice Drivers in Linux
Device Drivers in Linux
 
brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device drivers
 
Linux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emptionLinux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emption
 
Raspberry Pi - Lecture 6 Working on Raspberry Pi
Raspberry Pi - Lecture 6 Working on Raspberry PiRaspberry Pi - Lecture 6 Working on Raspberry Pi
Raspberry Pi - Lecture 6 Working on Raspberry Pi
 
Linux Device Driver’s
Linux Device Driver’sLinux Device Driver’s
Linux Device Driver’s
 
Containers in the Cloud
Containers in the CloudContainers in the Cloud
Containers in the Cloud
 
Performance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual MachinesPerformance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual Machines
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIO
 
Device tree support on arm linux
Device tree support on arm linuxDevice tree support on arm linux
Device tree support on arm linux
 
Containers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesContainers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to Kubernetes
 
Introduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwareIntroduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmware
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
LINUX Device Drivers
LINUX Device DriversLINUX Device Drivers
LINUX Device Drivers
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
linux device driver
linux device driverlinux device driver
linux device driver
 

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

Network research
Network researchNetwork research
Network researchJisc
 
Introduction to linux at Introductory Bioinformatics Workshop
Introduction to linux at Introductory Bioinformatics WorkshopIntroduction to linux at Introductory Bioinformatics Workshop
Introduction to linux at Introductory Bioinformatics WorkshopSetor Amuzu
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primerDrew Fustini
 
Open Source Communities in Hong Kong (2013 COSCUP version)
Open Source Communities in Hong Kong (2013 COSCUP version)Open Source Communities in Hong Kong (2013 COSCUP version)
Open Source Communities in Hong Kong (2013 COSCUP version)Sammy Fung
 
Basics of GNU & Linux
Basics of GNU & LinuxBasics of GNU & Linux
Basics of GNU & LinuxBIT DURG
 
Connecting Arduino and Android
Connecting Arduino and AndroidConnecting Arduino and Android
Connecting Arduino and AndroidMichał Tuszyński
 
Archival Technologies 2014
Archival Technologies 2014Archival Technologies 2014
Archival Technologies 2014Cliff Landis
 
Software Freedom and Community
Software Freedom and CommunitySoftware Freedom and Community
Software Freedom and CommunitySammy Fung
 
Open Source Tools for Libraries
Open Source Tools for LibrariesOpen Source Tools for Libraries
Open Source Tools for LibrariesNicole C. Engard
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformaticsStephen Turner
 
Linux Presentation_SSD.pdf
Linux Presentation_SSD.pdfLinux Presentation_SSD.pdf
Linux Presentation_SSD.pdfssuser37b0e0
 
The RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux usersThe RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux usersMarco Fioretti
 
Open Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-VOpen Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-VDrew Fustini
 
01 zero lecture lovely professional university CSE111.pptx
01 zero lecture lovely professional university CSE111.pptx01 zero lecture lovely professional university CSE111.pptx
01 zero lecture lovely professional university CSE111.pptxmexebi1971
 
Freifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiFreifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiAnnika Wickert
 

Similar a Breaking into Open Source and Linux: A USB 3.0 Success Story (20)

Network research
Network researchNetwork research
Network research
 
Introduction to linux at Introductory Bioinformatics Workshop
Introduction to linux at Introductory Bioinformatics WorkshopIntroduction to linux at Introductory Bioinformatics Workshop
Introduction to linux at Introductory Bioinformatics Workshop
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Open Source Communities in Hong Kong (2013 COSCUP version)
Open Source Communities in Hong Kong (2013 COSCUP version)Open Source Communities in Hong Kong (2013 COSCUP version)
Open Source Communities in Hong Kong (2013 COSCUP version)
 
Basics of GNU & Linux
Basics of GNU & LinuxBasics of GNU & Linux
Basics of GNU & Linux
 
Connecting Arduino and Android
Connecting Arduino and AndroidConnecting Arduino and Android
Connecting Arduino and Android
 
Archival Technologies 2014
Archival Technologies 2014Archival Technologies 2014
Archival Technologies 2014
 
linux.ppt
linux.pptlinux.ppt
linux.ppt
 
Ghc14
Ghc14Ghc14
Ghc14
 
Software Freedom and Community
Software Freedom and CommunitySoftware Freedom and Community
Software Freedom and Community
 
Open Source Tools for Libraries
Open Source Tools for LibrariesOpen Source Tools for Libraries
Open Source Tools for Libraries
 
up-down-stream-flows-20190411rzr
up-down-stream-flows-20190411rzrup-down-stream-flows-20190411rzr
up-down-stream-flows-20190411rzr
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
 
Linux Presentation_SSD.pdf
Linux Presentation_SSD.pdfLinux Presentation_SSD.pdf
Linux Presentation_SSD.pdf
 
A Gnu Way of Learning
A Gnu Way of LearningA Gnu Way of Learning
A Gnu Way of Learning
 
The RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux usersThe RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux users
 
Open Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-VOpen Source Hardware, Linux and RISC-V
Open Source Hardware, Linux and RISC-V
 
01 zero lecture lovely professional university CSE111.pptx
01 zero lecture lovely professional university CSE111.pptx01 zero lecture lovely professional university CSE111.pptx
01 zero lecture lovely professional university CSE111.pptx
 
Android slides
Android slidesAndroid slides
Android slides
 
Freifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale JitsiFreifunk Munich - How to scale Jitsi
Freifunk Munich - How to scale Jitsi
 

Último

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 

Último (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

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

  • 1. Breaking into Open Source and Linux: A USB 3.0 Success Story Sarah Sharp http://sarah.thesharps.us University of Waterloo Nov 20,2014
  • 3. Sarah Sharp: Today Photo copyright LWN: http://lwn.net/Articles/568298/
  • 4. "We struggle with insecurity because we compare our behind-the-scenes with everyone else's highlight reel." http://alistapart.com/column/seeing-past-the-highlight-reel
  • 5. Sarah Sharp: 12 years ago
  • 6. Sarah Sharp: College ● Portland State University ● Met ECE Professor Doug Hall ● Learned how to program ● My boyfriend introduced me to – open source, Linux, rockets
  • 9. 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
  • 10. Lesson 1: Rules can be bent
  • 11. 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
  • 12. Lesson 2: Find a mentor and do hands-on projects
  • 13. USB filesystem (usbfs) USB device driver usbfs USB core USB host controller userspace kernel
  • 14. usbfs2 ● Goal: replace IOCTLS with read/write syscalls ● Didn't want to make userspace block ● Needed asynchronous completion ● Why not use ASYNC I/O?
  • 16. Sarah: Senior year ● Bart encouraged me to present at OSCON on usbfs2 ● Kristin Accardi was on OSCON paper selection committee
  • 17. Characteristics of a good 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
  • 18. Lesson 4: Grow your network
  • 19. Sarah: Linux USB 3.0 developer ● Hired by Intel in July 2007 ● USB 3.0 specification draft ● Hardware was still in FPGA form
  • 20. Linux USB Stack USB device driver USB core USB host controller userspace kernel
  • 21. USB device topology Configuration Interface Alternate Setting ● Endpoints: ● IN or OUT ● Buffer Size ● Interval
  • 22. 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
  • 23. Linux USB Stack USB device driver USB core USB host controller userspace kernel
  • 24. Linux USB Maintainers USB 1.1 host and USB core USB 2.0 host USB device drivers and power management USB subsystem
  • 25. What is being a Linux 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
  • 26. 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
  • 27. Lesson 5: Open source is social and technical
  • 28. 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
  • 29. 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)
  • 30. Lesson 6: Promote yourself
  • 31. Sarah Sharp: Today Photo copyright LWN: http://lwn.net/Articles/568298/
  • 32. 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
  • 33. 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/d etail/