open source fundamentals
TRANSCRIPT
05/03/2023
Open Source Fundamentals
Guy MartinSenior Open Source/Community
Strategist
Who Is This ‘Guy’?• 21 years in software/technology• 12 years in open source• Leading strategy for Samsung
Open Source Group• Built open source
consulting/communities for several organizations
Question….
How many of you use, or have used, open source?
OPEN SOURCEIS
EVERYWHERE
THE INTERNET
MOBILE PHONES
WEATHER
STOCK EXCHANGES
AUTOMOBILES
AIRPLANES
HERE WE GOWhat is open source, anyway?What this process is, and where you can find it in your everyday life.
Where did it start?A brief history of nerds changing the world.
How does it work?The mechanics of freedom.
Why is it important?Strategy and monetizing.
THE BASICS
HOW DEVELOPMENT WORKS
COMPILERS MAKE SOURCE INTO
BINARIESint main() { printf(“Hello world.\n”); exit (0);}
DEVELOPER
SOURCE CODE
$ ./hello-worldHello world.$
BINARY
10101011010101010101010101010101001010101011101010101011110101010111101000100101010101010011001010101101
USER
COMPILER
WE STARTED SHARING CODE...
int main() { printf(“Hello world.\n”); exit (0);}
DEVELOPER
COPY #1
USER #1
int main() { printf(“Hello world.\n”); exit (0);} COPY #2
USER #2
int main() { printf(“Hello world.\n”); exit (0);}
BINARY #1
$ ./hello-worldHello world.$
BINARY #2
$ ./hello-worldHello world.$
AND ANYONE COULD IMPROVE IT
COPY #1
USER #1
int main() { printf(“What up.\n”); exit (0);} COPY #2
USER #2
int main() { printf(“Bonjour!\n”); exit (0);}
BINARY #1
$ ./hello-worldWhat up.$
BINARY #2
$ ./hello-worldBonjour!$
int main() { printf(“Hello world.\n”); exit (0);}
DEVELOPER
WE STARTED SELLING BINARIES
int main() { printf(“Hello world.\n”); exit (0);}
DEVELOPER
DEVELOPER’S BINARY
$ ./hello-worldHello world.$
DEVELOPER’S BINARY
USER #1
$ ./hello-worldHello world.$
USER #2
DEVELOPER’S BINARY
$ ./hello-worldHello world.$
WHICH CENTRALIZED CONTROL
int main() { printf(“Hello world.\n”); exit (0);}
DEVELOPER
DEVELOPER’S BINARY
$ ./hello-worldWhat up.$
DEVELOPER’S BINARY
USER #1
$ ./hello-worldWhat up.$
USER #2
DEVELOPER’S BINARY
$ ./hello-worldHello world.$
$
int main() { printf(“What up.\n”); exit (0);}
DEVELOPER’S BINARY
$ ./hello-worldHello world.$
OPEN SOURCEint main() { printf(“Hello world.\n”); exit (0);}
COMMITTER
int main() { printf(“What up.\n”); exit (0);}
DEVELOPER’S CODE
USER #1
int main() { printf(“Wassup.\n”); exit (0);}
BINARY #1
$ ./hello-worldWassup.$
int main() { printf(“Bonjour.\n”); exit (0);}
DEVELOPER’S BINARY
$ ./hello-worldHello world.$
USER #2
RMS
FOUR FREEDOMShttp://fsf.org
Free to use.Anyone can use it, however they like.
Free to copy.Anyone can get a copy for the cost of media.
Free to modify.If I don’t like how it works, I can change it.
Free to distribute.I can share my changes.
GNU PUBLIC LICENSEhttp://gnu.org
Implements the four freedoms.Use, copy, modify, distribute.
Built on copyright.The author provides additional rights for additional responsibilities.
In some cases, problematic.But more on that later.
LINUX IS BORN
From: [email protected] (Linus Benedict Torvalds)Newsgroups: comp.os.minixSubject: What would you like to see most in minix?Message-ID: <[email protected]>Date: 25 Aug 91 20:57:08 GMTOrganization: University of Helsinki
“I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix...”
INNOVATIONIT’S MORE THAN PRODUCTS
SERVICES
PRODUCTS
HOBBIES
AMATEURS
24
"Springfield Model 1861"http://en.wikipedia.org/wiki/Springfield_Model_1861
MODULARITY DRIVES INNOVATION
“The Springfield Rifle cost $20 each at the Springfield Armory where they were officially made. Overwhelmed by the demand, the armory opened its weapons patterns up to twenty private contractors. The most notable producer of contract Model 1861 Springfields was Colt, who made several minor design changes in their version, the "Colt Special" rifled musket. These changes included redesigned barrel bands, a new hammer, and a redesigned bolster. Several of these changes were eventually adopted by the Ordnance Department and incorporated into the model 1863 rifled musket."
More IdeasGood ideas comes from lots of good ideas.
LONG TAILS MEAN INNOVATIONMORE PARTICIPANTS, MORE GOOD IDEAS
26
HIGHER QUALITYMORE CODE, FEWER BUGS
Coverity has tracked the code quality of open source software since 2004. Proprietary software, on average, has 20,000 to 30,000 defects per million lines of code. This has been true since 1960.2004 Linux has 985 defects in 5.7 MLOC, or 99.3% lower
than a proprietary system.
2005 Linux grew 4.7%, but defect density went down 2.3%.2006 Funded by DHS, Coverity adds the LAMP stack and 32
OSS projects, and defect density stayed the same.
2008 Now covers 250 projects, with 434 defects per MLOC. Worst performer has 1237 defects per MLOC.
2009 Now covers 280 projects, with defect density down 16%.
2727
What differentiates all of these devices?
Software is where much of the value is
created.
It’s not something you can always outsource, but
it’s something you need to collaborate on.
Open Source is Eating the Software
World
“If you are going to master software you must master open source. It is hard to build something without open source code.” Jim Zemlin, Executive Director, The Linux FoundationCollaboration Summit Keynote 2013
31
OPEN SOURCE ENABLEMENT