• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
U-Boot community analysis
 

U-Boot community analysis

on

  • 1,080 views

 

Statistics

Views

Total Views
1,080
Views on SlideShare
1,080
Embed Views
0

Actions

Likes
0
Downloads
16
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    U-Boot community analysis U-Boot community analysis Presentation Transcript

    • Introduction Methodology Results Conclusions Thanks! U-Boot community analysis Xulio Coira S´nchez a M´ster Software Libre, 2009-2010. A Coru˜a Edition a n 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.
    • Introduction Methodology Results Conclusions Thanks!Content 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!What is U-Boot? ”Das U-Boot” (Universal Bootloader) is a bootloader for a number of different computer architectures, including PPC, ARM, AVR32, MIPS, x86, 68k, Nios, and MicroBlaze. Its name comes from the abbreviated form of Das Unterseeboot, German for ”the submarine.” It is free software released under the terms of the GNU General Public License. It can be built on an x86 PC for any supported architecture using a cross development GNU toolchain.
    • 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 new boards Easy to debug: serial console output as soon as possible Features and commands configurable As small as possible As reliable as possible
    • Introduction Methodology Results Conclusions Thanks!HistoryOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!HistoryHistory Originated in work done by Magnus Damm on a 8xx PowerPC bootloader called 8xxROM. When Wolfgang Denk moved the project to SourceForge.net, the project was renamed PPCBoot, because SF.net did not allow project names starting with digits. In November 2002 the project was renamed again, when support had been extended beyond booting on PowerPCs.
    • Introduction Methodology Results Conclusions Thanks!HistoryPrehistoric milestones 1999 8xxrom (Magnus Damm - Raphael Bossek) Jul 2000 PPCBoot (Wolfgang Denk) Siemens PSE, Vienna: First commercial sponsor Aug 2000 Only PPC (4 boards) Oct 2000 Added network support Support for IBM PPC (Stefan Roese) End 2000 27 boards End 2001 63 boards Nov 2002 106 boards PPCBoot-2.0.0 (last release)
    • Introduction Methodology Results Conclusions Thanks!HistoryModern milestones Nov 2002 Start U-Boot project Nov 2002 x86 support Mar 2003 MIPS32 Apr 2003 MIPS64 Oct 2003 Altera NIOS-32 Dec 2003 Coldfire Apr 2004 Microblaze > 216 boards
    • Introduction Methodology Results Conclusions Thanks!ToolsOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!ToolsLibreSoft tools cvsanaly http://tools.libresoft.es/ A tool that extracts information out of source code repository 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 where database will be created. It stores all the information which is contained in a e-mail. guilty http://git.libresoft.es/guilty/ A tool to extract blame command information from SCM repositories.
    • Introduction Methodology Results Conclusions Thanks!ToolsOther tools sloccount http://www.dwheeler.com/sloccount/ A set of tools for counting physical Source Lines of Code (SLOC) in a large number of languages. R http://www.r-project.org/ R is a free software environment for statistical computing and graphics.
    • Introduction Methodology Results Conclusions Thanks!ToolsCustom tools Several scripts were written in order to automatize data gathering and graphics generation. The main goal was to obtain the most generic as possible tool, capable of analyse several community aspects providing only the original information sources, and reproducible in the future. The tool flow is: 1 Download code repository. 2 Download mailing list mailboxes. 3 Run cvsanaly and sanitize database based on duplicated emails and names provided in config file. 4 Run guilty and sanitize based on duplicated names provided in config file. 5 Run mlstats. 6 Run several R scripts for table and graphics generation. 7 A Generate PDF report from LTEX sources.
    • Introduction Methodology Results Conclusions Thanks!ToolsConfiguration 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=(("wd@castor.denx.de","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
    • Introduction Methodology Results Conclusions Thanks!Data sourcesOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!Data sourcesData Sources The data sources used for analyzing the developer community were three: the code repository, the mailing list and the project web page. 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
    • Introduction Methodology Results Conclusions Thanks!AnalysisOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!AnalysisAnalysis 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
    • Introduction Methodology Results Conclusions Thanks!Repository analysisOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!Repository analysisSLOCCOUNT results Language Lines of Code ansic 828008(94.78%) asm 42417(4.86%) sh 1618(0.19%) ansic (94.78%) sh (0.19%) php 1299(0.15%) asm (4.86%) python 236(0.03%) awk 40(0.00%) sed 11(0.00%) TOTAL 873629 95% C 5% assembler
    • Introduction Methodology Results Conclusions Thanks!Repository analysisTOP 20 coders Name Lines Name Lines 1 Wolfgang Denk 916064 1 Wolfgang Denk 36551 2 Stefan Roese 143443 2 Stefan Roese 32095 3 Mike Frysinger 79912 3 Jean-Christophe PLAGNIOL-VILLARD 9447 4 Jean-Christophe PLAGNIOL-VILLARD 69761 4 Tom Rix 9196 5 TsiChung Liew 34323 5 Prafulla Wadaskar 7164 6 Kumar Gala 20596 6 Ilya Yanok 5569 7 Kyungmin Park 18099 7 Mike Frysinger 4761 8 William Juul 17107 8 Kumar Gala 4510 9 Marian Balakowicz 17024 9 Peter Tyser 4505 10 Jon Loeliger 16427 10 Roy Zang 3485 11 Heiko Schocher 16279 11 Dirk Behme 3416 12 Daniel Hellstrom 14371 12 Minkyu Kang 3246 13 Dave Liu 13457 13 Graeme Russ 2948 14 Jason Jin 12441 14 Kazuaki Ichinohe 2602 15 Matthias Fuchs 11645 15 Heiko Schocher 2567 16 Nobuhiro Iwamatsu 11577 16 Giuseppe CONDORELLI 2475 17 Tom Rix 9196 17 Luigi ’Comio’ Mantellini 2458 18 Dirk Behme 8461 18 Matthias Fuchs 2419 19 Guennadi Liakhovetski 8338 19 Ilko Iliev 2086 20 Peter Tyser 8286 20 TsiChung Liew 2081 2000-2009 2009
    • Introduction Methodology Results Conclusions Thanks!Repository analysisTOP 20 comitters Commiter Commits Commiter Commits 1 Wolfgang Denk 4528 1 Wolfgang Denk 1068 2 Stefan Roese 1261 2 Jean-Christophe PLAGNIOL-VILLARD 221 3 Jean-Christophe PLAGNIOL-VILLARD 411 3 Kumar Gala 206 4 Jon Loeliger 349 4 Mike Frysinger 202 5 Kim Phillips 316 5 Stefan Roese 164 6 Kumar Gala 313 6 Ben Warren 109 7 Andy Fleming 288 7 Tom Rix 87 8 Mike Frysinger 259 8 Scott Wood 79 9 Ben Warren 239 9 Andy Fleming 64 10 Scott Wood 152 10 Kim Phillips 64 11 Nobuhiro Iwamatsu 126 11 Remy Bohmer 53 12 John Rigby 125 12 Anatolij Gustschin 29 13 Haavard Skinnemoen 113 13 Nobuhiro Iwamatsu 29 14 Marian Balakowicz 112 14 Heiko Schocher 28 15 Michal Simek 101 15 John Rigby 20 16 Gerald Van Baren 93 16 Michal Simek 16 17 Tom Rix 87 17 Haavard Skinnemoen 13 18 Markus Klotzbuecher 80 18 TsiChung Liew 11 19 Peter Pearse 71 19 Shinya Kuribayashi 7 20 Shinya Kuribayashi 65 20 Gerald Van Baren 6 2000-2009 2009
    • Introduction Methodology Results Conclusions Thanks!Repository analysisTOP 20 authors Author Commits Author Commits 1 Wolfgang Denk 2752 1 Wolfgang Denk 375 2 Stefan Roese 955 2 Mike Frysinger 285 3 Mike Frysinger 374 3 Peter Tyser 164 4 Kumar Gala 367 4 Jean-Christophe PLAGNIOL-VILLARD 147 5 Jean-Christophe PLAGNIOL-VILLARD 358 5 Stefan Roese 133 6 Jon Loeliger 293 6 Kumar Gala 106 7 Peter Tyser 195 7 Heiko Schocher 54 8 TsiChung Liew 165 8 Sandeep Paulraj 49 9 Matthias Fuchs 145 9 Matthias Fuchs 45 10 Heiko Schocher 143 10 Tom Rix 45 11 Marian Balakowicz 132 11 Graeme Russ 40 12 Haavard Skinnemoen 126 12 Prafulla Wadaskar 37 13 Kim Phillips 115 13 Dirk Behme 34 14 Michal Simek 115 14 Anton Vorontsov 32 15 Nobuhiro Iwamatsu 109 15 Kim Phillips 28 16 Dave Liu 91 16 Paul Gortmaker 24 17 Andy Fleming 84 17 Detlev Zundel 23 18 Shinya Kuribayashi 78 18 David Brownell 23 19 Anton Vorontsov 77 19 Alessandro Rubini 22 20 Ben Warren 74 20 Haiying Wang 22 2000-2009 2009
    • Introduction Methodology Results Conclusions Thanks!Repository analysisCommits evolution 400 80 300 60 data data 200 40 100 20 0 0 30 10 seasonal seasonal 5 10 0 −10 −5 −30 −10 40 200 30 trend trend 20 50 100 10 0 0 60 150 40 remainder remainder 50 20 0 0 −100 −20 2002 2004 2006 2008 2010 2002 2004 2006 2008 2010 time time Total commits Maintainer commits
    • Introduction Methodology Results Conclusions Thanks!Repository analysisCommits by author Commits by author 5000 q q 500 q q q q q q q q qq 50 100 qq Commits qq qq qq qqq qq q q q qq q q qq q 10 q qq 5 qq q q q q 1 1 2 5 10 20 50 Authors
    • Introduction Methodology Results Conclusions Thanks!Repository analysisLorenz & Gini Lorenz curve 1.0 0.8 0.6 Gini coefficient 0.7914597 L(p) 0.4 0.2 0.0 0.0 0.2 0.4 0.6 0.8 1.0 p
    • Introduction Methodology Results Conclusions Thanks!Mailing list analysisOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!Mailing list analysisTOP 20 mailers e-mail mails e-mail mails 1 wd@denx.de 2312 1 wd@denx.de 10592 2 vapier@gentoo.org 664 2 sr@denx.de 1478 3 plagnioj@jcrosoft.com 656 3 plagnioj@jcrosoft.com 1443 4 galak@kernel.crashing.org 461 4 galak@kernel.crashing.org 1150 5 sr@denx.de 433 5 vapier@gentoo.org 921 6 ptyser@xes-inc.com 356 6 scottwood@freescale.com 583 7 Tom.Rix@windriver.com 319 7 biggerbadderben@gmail.com 568 8 scottwood@freescale.com 282 8 timur@freescale.com 463 9 hs@denx.de 250 9 ptyser@xes-inc.com 453 10 biggerbadderben@gmail.com 249 10 support@denx.de 445 11 s-paulraj@ti.com 217 11 dirk.behme@googlemail.com 406 12 dirk.behme@googlemail.com 201 12 kim.phillips@freescale.com 394 13 prafulla@marvell.com 171 13 jdl@freescale.com 392 14 Joakim.Tjernlund@transmode.se 164 14 grant.likely@secretlab.ca 378 15 kim.phillips@freescale.com 151 15 Gerald.VanBaren@smiths-aerospace.com 377 16 dzu@denx.de 131 16 Tom.Rix@windriver.com 326 17 linux@bohmer.net 115 17 hs@denx.de 321 18 simon.kagstrom@netinsight.net 112 18 dzu@denx.de 312 19 ksi@koi8.net 112 19 Joakim.Tjernlund@transmode.se 286 20 graeme.russ@gmail.com 111 20 gerald.vanbaren@ge.com 286 2000-2009 2009
    • Introduction Methodology Results Conclusions Thanks!Mailing list analysisMessages evolution Messages Messages 400 1500 300 data data 200 500 100 0 0 40 100 200 20 seasonal seasonal 0 0 −20 −200 −40 1000 200 800 150 trend trend 600 100 400 50 1000 150 remainder remainder 500 50 0 −50 −500 −150 18 19 20 21 22 23 24 25 14 15 16 17 18 19 20 21 time time Total messages Maintainer messages
    • Introduction Methodology Results Conclusions Thanks!Mixed analysisOutline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
    • Introduction Methodology Results Conclusions Thanks!Mixed analysisWho is behind? COMPANY CUSTODIAN RANK Wolfgang Denk DENX MAIN/MPC 120 Jean-Christophe PV JCROSOFT - 106 Stefan Roese DENX CFI/PPC4xx 105 Mike Frysinger AD/GENTOO BLACKFIN 102 Kumar Gala FREESCALE MPC85xx 99 Peter Tyser XES-INC PASemi 60 Kim Phillips FREESCALE MPC83xx 58 Scott Wood FREESCALE NAND 52 Heiko Schocher DENX I2C 49 Tom Rix WINDRIVER ARM 49 Jon Loeliger FREESCALE MPC86xx 41 Ben Warren Network Library 39 Andy Fleming FREESCALE MMC/MPC85xx 30 Matthias Fuchs - 24 Haavard Skinnemoen ATMEL AVR32 21
    • 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
    • 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 of Technology Worked at Friedrich Schiller University, PCS Computer Systeme, Siemens AG, ICN Has done porting, driver, and release work with Unix since 1983 Founded Denx Software Engineering in 1999, and Denx Computer Systems 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
    • Introduction Methodology Results Conclusions Thanks!U-Boot health Activity decreasing!!! U-Boot has already the major features implemented, so the work to be done is to port to new architectures/boards. This issue requires less code/commits than feature adding. Overall activity still increasing and major semiconductor companies supporting the project predict a healthy future for the most spread embedded bootloader
    • Introduction Methodology Results Conclusions Thanks!Thanks!