u-boot community analysis

34
Introduction Methodology Results Conclusions Thanks! U-Boot community analysis Xulio Coira S´ anchez aster Software Libre, 2009-2010. A Coru˜ na Edition January 22, 2010 (cc) 2010 Xulio Coira Some rights reserved. This work licensed under Creative Commons Attribution-ShareAlike License. To view a copy of full license, see http://creativecommons.org/licenses/by-sa/3.0/ or write to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Upload: xulioc

Post on 26-Jun-2015

1.164 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

U-Boot community analysis

Xulio Coira Sanchez

Master Software Libre, 2009-2010. A Coruna Edition

January 22, 2010

(cc) 2010 Xulio CoiraSome rights reserved. This work licensed under Creative Commons Attribution-ShareAlike License.

To view a copy of full license, see http://creativecommons.org/licenses/by-sa/3.0/ or write to Creative Commons,559 Nathan Abbott Way, Stanford, California 94305, USA.

Page 2: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Content

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 3: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

What is U-Boot?

”Das U-Boot” (Universal Bootloader) is a bootloader for a numberof different computer architectures, including PPC, ARM, AVR32,MIPS, x86, 68k, Nios, and MicroBlaze. Its name comes from theabbreviated form of Das Unterseeboot, German for ”thesubmarine.”It is free software released under the terms of the GNU GeneralPublic License. It can be built on an x86 PC for any supportedarchitecture using a cross development GNU toolchain.

Page 4: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

U-Boot design principles

The design principles of U-Boot are:

Easy to port to new architectures, new processors, and newboards

Easy to debug: serial console output as soon as possible

Features and commands configurable

As small as possible

As reliable as possible

Page 5: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

History

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 6: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

History

History

Originated in work done by Magnus Damm on a 8xx PowerPCbootloader called 8xxROM.

When Wolfgang Denk moved the project to SourceForge.net,the project was renamed PPCBoot, because SF.net did notallow project names starting with digits.

In November 2002 the project was renamed again, whensupport had been extended beyond booting on PowerPCs.

Page 7: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

History

Prehistoric milestones

1999 8xxrom (Magnus Damm - Raphael Bossek)Jul 2000 PPCBoot (Wolfgang Denk)

Siemens PSE, Vienna: First commercial sponsorAug 2000 Only PPC (4 boards)Oct 2000 Added network support

Support for IBM PPC (Stefan Roese)End 2000 27 boardsEnd 2001 63 boardsNov 2002 106 boards PPCBoot-2.0.0 (last release)

Page 8: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

History

Modern milestones

Nov 2002 Start U-Boot projectNov 2002 x86 supportMar 2003 MIPS32Apr 2003 MIPS64Oct 2003 Altera NIOS-32Dec 2003 ColdfireApr 2004 Microblaze

> 216 boards

Page 9: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Tools

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 10: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Tools

LibreSoft tools

cvsanaly http://tools.libresoft.es/A tool that extracts information out of source coderepository logs and stores it into a database.

mlstats http://tools.libresoft.es/A command line based tool used to analyze mboxes.It downloads the mboxes in a directory wheredatabase will be created. It stores all the informationwhich is contained in a e-mail.

guilty http://git.libresoft.es/guilty/A tool to extract blame command information fromSCM repositories.

Page 11: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Tools

Other tools

sloccount http://www.dwheeler.com/sloccount/A set of tools for counting physical Source Lines ofCode (SLOC) in a large number of languages.

R http://www.r-project.org/R is a free software environment for statisticalcomputing and graphics.

Page 12: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Tools

Custom tools

Several scripts were written in order to automatize data gatheringand graphics generation. The main goal was to obtain the mostgeneric as possible tool, capable of analyse several communityaspects providing only the original information sources, andreproducible in the future. The tool flow is:

1 Download code repository.

2 Download mailing list mailboxes.

3 Run cvsanaly and sanitize database based on duplicatedemails and names provided in config file.

4 Run guilty and sanitize based on duplicated names provided inconfig file.

5 Run mlstats.

6 Run several R scripts for table and graphics generation.

7 Generate PDF report from LATEX sources.

Page 13: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Tools

Configuration file example

PROJECT_NAME="uboot"

REPOSITORY="git://git.denx.de/u-boot.git"

MAILING_LIST="http://lists.denx.de/pipermail/u-boot/"

DB_HOST="localhost"

DB_USER="root"

DB_PASS="root"

CVSANALY_DUPLICATED=(("[email protected]","wdenk"),

("stefan@debian.(none)","stroese"))

GUILTY_DUPLICATED=(("Wolfgang Denk","wdenk"),

("Stefan Roese","stroese"),

("TsiChung Liew", "TsiChungLiew"))

MLSTATS_START_DATE="2003-01-01"

MAX_SLOC_LANG=3

CREATE_PDF=False

Page 14: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Data sources

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 15: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Data sources

Data Sources

The data sources used for analyzing the developer community werethree: the code repository, the mailing list and the project webpage.

U-Boot code repository

git://git.denx.de/u-boot.git

U-boot mailing list

http://lists.denx.de/mailman/listinfo/u-boot

U-Boot wiki

http://www.denx.de/wiki/U-Boot/WebHome

Page 16: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Analysis

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 17: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Analysis

Analysis performed

Lines of code per language

Most active developers

Activity evolution

Maintainer evolution

Work distribution

Global ranking based on previous results

Relation between developers and companies

Page 18: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 19: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

SLOCCOUNT results

Language Lines of Codeansic 828008(94.78%)

asm 42417(4.86%)

sh 1618(0.19%)

php 1299(0.15%)

python 236(0.03%)

awk 40(0.00%)

sed 11(0.00%)

TOTAL 873629

ansic (94.78%)

asm (4.86%)

sh (0.19%)

95% C5% assembler

Page 20: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

TOP 20 coders

Name Lines1 Wolfgang Denk 9160642 Stefan Roese 1434433 Mike Frysinger 799124 Jean-Christophe PLAGNIOL-VILLARD 697615 TsiChung Liew 343236 Kumar Gala 205967 Kyungmin Park 180998 William Juul 171079 Marian Balakowicz 17024

10 Jon Loeliger 1642711 Heiko Schocher 1627912 Daniel Hellstrom 1437113 Dave Liu 1345714 Jason Jin 1244115 Matthias Fuchs 1164516 Nobuhiro Iwamatsu 1157717 Tom Rix 919618 Dirk Behme 846119 Guennadi Liakhovetski 833820 Peter Tyser 8286

2000-2009

Name Lines1 Wolfgang Denk 365512 Stefan Roese 320953 Jean-Christophe PLAGNIOL-VILLARD 94474 Tom Rix 91965 Prafulla Wadaskar 71646 Ilya Yanok 55697 Mike Frysinger 47618 Kumar Gala 45109 Peter Tyser 4505

10 Roy Zang 348511 Dirk Behme 341612 Minkyu Kang 324613 Graeme Russ 294814 Kazuaki Ichinohe 260215 Heiko Schocher 256716 Giuseppe CONDORELLI 247517 Luigi ’Comio’ Mantellini 245818 Matthias Fuchs 241919 Ilko Iliev 208620 TsiChung Liew 2081

2009

Page 21: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

TOP 20 comitters

Commiter Commits1 Wolfgang Denk 45282 Stefan Roese 12613 Jean-Christophe PLAGNIOL-VILLARD 4114 Jon Loeliger 3495 Kim Phillips 3166 Kumar Gala 3137 Andy Fleming 2888 Mike Frysinger 2599 Ben Warren 239

10 Scott Wood 15211 Nobuhiro Iwamatsu 12612 John Rigby 12513 Haavard Skinnemoen 11314 Marian Balakowicz 11215 Michal Simek 10116 Gerald Van Baren 9317 Tom Rix 8718 Markus Klotzbuecher 8019 Peter Pearse 7120 Shinya Kuribayashi 65

2000-2009

Commiter Commits1 Wolfgang Denk 10682 Jean-Christophe PLAGNIOL-VILLARD 2213 Kumar Gala 2064 Mike Frysinger 2025 Stefan Roese 1646 Ben Warren 1097 Tom Rix 878 Scott Wood 799 Andy Fleming 64

10 Kim Phillips 6411 Remy Bohmer 5312 Anatolij Gustschin 2913 Nobuhiro Iwamatsu 2914 Heiko Schocher 2815 John Rigby 2016 Michal Simek 1617 Haavard Skinnemoen 1318 TsiChung Liew 1119 Shinya Kuribayashi 720 Gerald Van Baren 6

2009

Page 22: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

TOP 20 authors

Author Commits1 Wolfgang Denk 27522 Stefan Roese 9553 Mike Frysinger 3744 Kumar Gala 3675 Jean-Christophe PLAGNIOL-VILLARD 3586 Jon Loeliger 2937 Peter Tyser 1958 TsiChung Liew 1659 Matthias Fuchs 145

10 Heiko Schocher 14311 Marian Balakowicz 13212 Haavard Skinnemoen 12613 Kim Phillips 11514 Michal Simek 11515 Nobuhiro Iwamatsu 10916 Dave Liu 9117 Andy Fleming 8418 Shinya Kuribayashi 7819 Anton Vorontsov 7720 Ben Warren 74

2000-2009

Author Commits1 Wolfgang Denk 3752 Mike Frysinger 2853 Peter Tyser 1644 Jean-Christophe PLAGNIOL-VILLARD 1475 Stefan Roese 1336 Kumar Gala 1067 Heiko Schocher 548 Sandeep Paulraj 499 Matthias Fuchs 45

10 Tom Rix 4511 Graeme Russ 4012 Prafulla Wadaskar 3713 Dirk Behme 3414 Anton Vorontsov 3215 Kim Phillips 2816 Paul Gortmaker 2417 Detlev Zundel 2318 David Brownell 2319 Alessandro Rubini 2220 Haiying Wang 22

2009

Page 23: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

Commits evolution0

100

200

300

400

data

−30

−10

1030

seas

onal

050

100

200

tren

d

−10

00

5015

0

2002 2004 2006 2008 2010

rem

aind

er

time

Total commits

020

4060

80

data

−10

−5

05

10

seas

onal

010

2030

40

tren

d

−20

020

4060

2002 2004 2006 2008 2010

rem

aind

er

time

Maintainer commits

Page 24: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

Commits by author

●●

● ● ●● ●

●● ●

● ●●●●●

●●●●●

●●

●●

●●●

●●●●●

●●●

●●●

●●

1 2 5 10 20 50

15

1050

100

500

5000

Commits by author

Authors

Com

mits

Page 25: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Repository analysis

Lorenz & Gini

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

Lorenz curve

p

L(p)

Gini coefficient

0.7914597

Page 26: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Mailing list analysis

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 28: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Mailing list analysis

Messages evolution0

500

1500

data

−20

00

100

200

seas

onal

400

600

800

1000

tren

d

−50

00

500

1000

18 19 20 21 22 23 24 25

rem

aind

er

time

Messages

Total messages

010

020

030

040

0

data

−40

−20

020

40

seas

onal

5010

015

020

0

tren

d

−15

0−

5050

150

14 15 16 17 18 19 20 21

rem

aind

er

time

Messages

Maintainer messages

Page 29: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Mixed analysis

Outline

1 IntroductionHistory

2 MethodologyToolsData sourcesAnalysis

3 ResultsRepository analysisMailing list analysisMixed analysis

4 Conclusions

Page 30: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Mixed analysis

Who is behind?

COMPANY CUSTODIAN RANKDENX MAIN/MPC 120

Jean-Christophe PV JCROSOFT - 106DENX CFI/PPC4xx 105

AD/GENTOO BLACKFIN 102Kumar Gala FREESCALE MPC85xx 99

XES-INC 60Kim Phillips FREESCALE MPC83xx 58Scott Wood FREESCALE NAND 52

DENX I2C 49WINDRIVER ARM 49FREESCALE MPC86xx 41

Ben Warren Network Library 39Andy Fleming FREESCALE MMC/MPC85xx 30Matthias Fuchs - 24

ATMEL AVR32 21

Wolfgang Denk

Stefan RoeseMike Frysinger

Peter Tyser PASemi

Heiko SchocherTom RixJon Loeliger

Haavard Skinnemoen

Page 31: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Community

Clear Onion Model

Wolfgang Denk is the maintainer and most active developer

Repository activity independent of maintainer activity

Denx supported project (git, mailing list, wiki, ...)

Major semiconductor companies supporting the project

Core team remains almost unchanged over the time

Repository activity decreasing the last months

Mailing list activity still increasing

Page 32: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Who is Wolfgang Denk?

He is the Maintainer.

He is the ”Benevolent Dictator for Life”.

Top committer, author, coder, mailer.

Graduated with honours in civil engineering from Ilmenau Institute ofTechnology

Worked at Friedrich Schiller University, PCS Computer Systeme, SiemensAG, ICN

Has done porting, driver, and release work with Unix since 1983

Founded Denx Software Engineering in 1999, and Denx ComputerSystems in 2000

He says he has never worked under any sort of MS-DOS or Windows OS,”and never will, I guess.”

Both Denx companies are 100 percent Microsoft-free

Page 33: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

U-Boot health

Activity decreasing!!!

U-Boot has already the major features implemented, so the workto be done is to port to new architectures/boards. This issuerequires less code/commits than feature adding.

Overall activity still increasing and majorsemiconductor companies supporting the

project predict a healthy future for the mostspread embedded bootloader

Page 34: U-Boot community analysis

Introduction Methodology Results Conclusions Thanks!

Thanks!