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!

History

Outline


          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!

History

History




               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!

History

Prehistoric 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!

History

Modern 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!

Tools

Outline


        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!

Tools

LibreSoft 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!

Tools

Other 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!

Tools

Custom 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!

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=(("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 sources

Outline


       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 sources

Data 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!

Analysis

Outline


       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!

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
Introduction              Methodology    Results   Conclusions   Thanks!

Repository analysis

Outline


       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 analysis

SLOCCOUNT 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 analysis

TOP 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 analysis

TOP 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 analysis

TOP 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 analysis

Commits 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 analysis

Commits 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 analysis

Lorenz & 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 analysis

Outline


        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 analysis

TOP 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 analysis

Messages 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 analysis

Outline


       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 analysis

Who 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!

More Related Content

PDF
Hands on with embedded linux using zero hardware
PDF
Building Embedded Linux Full Tutorial for ARM
PDF
Embedded Linux On A R M
PDF
Building Embedded Linux Systems Introduction
PDF
Embedded linux system development (slides)
PDF
Linux Kernel and Driver Development Training
PPT
Building Embedded Linux
PPTX
Introduction to Embedded Linux
Hands on with embedded linux using zero hardware
Building Embedded Linux Full Tutorial for ARM
Embedded Linux On A R M
Building Embedded Linux Systems Introduction
Embedded linux system development (slides)
Linux Kernel and Driver Development Training
Building Embedded Linux
Introduction to Embedded Linux

What's hot (20)

PPSX
Introduction to embedded linux device driver and firmware
PDF
Device Tree for Dummies (ELC 2014)
PDF
Building Mini Embedded Linux System for X86 Arch
PDF
Embedded Linux Basics
PPT
linux minimal os tutorial - by shatrix
PDF
Module 4 Embedded Linux
PDF
Embedded Linux from Scratch to Yocto
PPT
001 linux revision
PDF
Porting linux on ARM
PPT
linux device driver
PDF
Embedded Linux Kernel - Build your custom kernel
PPT
Embedded Linux
PDF
Linux for embedded_systems
PDF
Embedded Os [Linux & Co.]
PDF
Linux Porting to a Custom Board
PDF
Kernel Recipes 2013 - Easy rootfs using Buildroot
PDF
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
PPT
Linux Kernel Image
PDF
005 skyeye
PPTX
Eclipse IDE Yocto Plugin
Introduction to embedded linux device driver and firmware
Device Tree for Dummies (ELC 2014)
Building Mini Embedded Linux System for X86 Arch
Embedded Linux Basics
linux minimal os tutorial - by shatrix
Module 4 Embedded Linux
Embedded Linux from Scratch to Yocto
001 linux revision
Porting linux on ARM
linux device driver
Embedded Linux Kernel - Build your custom kernel
Embedded Linux
Linux for embedded_systems
Embedded Os [Linux & Co.]
Linux Porting to a Custom Board
Kernel Recipes 2013 - Easy rootfs using Buildroot
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Linux Kernel Image
005 skyeye
Eclipse IDE Yocto Plugin
Ad

Viewers also liked (20)

PPTX
U-Boot presentation 2013
PDF
Uboot startup sequence
PDF
Solaio bidirezionale a piastra alleggerito con U Boot Beton di Daliform Group
PPT
U Boot or Universal Bootloader
PPT
U Boot Presentation Final
PPT
U boot porting guide for SoC
DOCX
Document
PPT
Bootstrap process of u boot (NDS32 RISC CPU)
PPTX
Presentation & interview skills
PDF
Trusted firmware deep_dive_v1.0_
PDF
RETROFITTING
PPTX
Pile foundation
PDF
Microsoft Word - BASE ISOLATION
PPT
Concept of Green Roof
PPT
Base Isolation(2000.12.28)
PPTX
Green roofs
PPT
Device tree support on arm linux
PPTX
Pile Foundation presentation
PPTX
Green roofs and their implementations
PPTX
Base isolation of structures
U-Boot presentation 2013
Uboot startup sequence
Solaio bidirezionale a piastra alleggerito con U Boot Beton di Daliform Group
U Boot or Universal Bootloader
U Boot Presentation Final
U boot porting guide for SoC
Document
Bootstrap process of u boot (NDS32 RISC CPU)
Presentation & interview skills
Trusted firmware deep_dive_v1.0_
RETROFITTING
Pile foundation
Microsoft Word - BASE ISOLATION
Concept of Green Roof
Base Isolation(2000.12.28)
Green roofs
Device tree support on arm linux
Pile Foundation presentation
Green roofs and their implementations
Base isolation of structures
Ad

Similar to U-Boot community analysis (20)

PDF
Open Source Tools and the Software Engineering Process
PDF
Resume A. Rinaldi - ENG
PDF
Teaching Open Source In The University
PDF
Crunching the numbers: Open Source Community Metrics at OSCON
PDF
Crunching the numbers: Open Source Community Metrics
PDF
Open source caqdas what is in the box and what is missing
PDF
14_Ed_Symp_Open_Source
DOCX
Unix commands
PDF
Software Security - Static Analysis Tools
PDF
IzPack - fOSSa 2009
PDF
Resume A. Rinaldi (ENG-ME)
PDF
MSL2008. Debugging
PDF
Open source community metrics
PDF
Learning Free Software Development from Real­World Experience
PDF
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
PDF
Open Source Community Metrics LibreOffice Conference
PDF
Tool Up Your LAMP Stack
Open Source Tools and the Software Engineering Process
Resume A. Rinaldi - ENG
Teaching Open Source In The University
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics
Open source caqdas what is in the box and what is missing
14_Ed_Symp_Open_Source
Unix commands
Software Security - Static Analysis Tools
IzPack - fOSSa 2009
Resume A. Rinaldi (ENG-ME)
MSL2008. Debugging
Open source community metrics
Learning Free Software Development from Real­World Experience
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Open Source Community Metrics LibreOffice Conference
Tool Up Your LAMP Stack

Recently uploaded (20)

PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPTX
The various Industrial Revolutions .pptx
PDF
CloudStack 4.21: First Look Webinar slides
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPT
What is a Computer? Input Devices /output devices
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Five Habits of High-Impact Board Members
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
Modernising the Digital Integration Hub
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
O2C Customer Invoices to Receipt V15A.pptx
The various Industrial Revolutions .pptx
CloudStack 4.21: First Look Webinar slides
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Final SEM Unit 1 for mit wpu at pune .pptx
Univ-Connecticut-ChatGPT-Presentaion.pdf
A review of recent deep learning applications in wood surface defect identifi...
What is a Computer? Input Devices /output devices
Benefits of Physical activity for teenagers.pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
sustainability-14-14877-v2.pddhzftheheeeee
Taming the Chaos: How to Turn Unstructured Data into Decisions
Five Habits of High-Impact Board Members
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Modernising the Digital Integration Hub
Zenith AI: Advanced Artificial Intelligence
1 - Historical Antecedents, Social Consideration.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Assigned Numbers - 2025 - Bluetooth® Document
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...

U-Boot community analysis

  • 1. 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.
  • 2. 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
  • 3. 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.
  • 4. 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
  • 5. Introduction Methodology Results Conclusions Thanks! History Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 6. Introduction Methodology Results Conclusions Thanks! History History 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.
  • 7. Introduction Methodology Results Conclusions Thanks! History Prehistoric 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)
  • 8. Introduction Methodology Results Conclusions Thanks! History Modern 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
  • 9. Introduction Methodology Results Conclusions Thanks! Tools Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 10. Introduction Methodology Results Conclusions Thanks! Tools LibreSoft 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.
  • 11. Introduction Methodology Results Conclusions Thanks! Tools Other 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.
  • 12. Introduction Methodology Results Conclusions Thanks! Tools Custom 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.
  • 13. 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=(("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
  • 14. Introduction Methodology Results Conclusions Thanks! Data sources Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 15. Introduction Methodology Results Conclusions Thanks! Data sources Data 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
  • 16. Introduction Methodology Results Conclusions Thanks! Analysis Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 17. 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
  • 18. Introduction Methodology Results Conclusions Thanks! Repository analysis Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 19. Introduction Methodology Results Conclusions Thanks! Repository analysis SLOCCOUNT 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
  • 20. Introduction Methodology Results Conclusions Thanks! Repository analysis TOP 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
  • 21. Introduction Methodology Results Conclusions Thanks! Repository analysis TOP 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
  • 22. Introduction Methodology Results Conclusions Thanks! Repository analysis TOP 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
  • 23. Introduction Methodology Results Conclusions Thanks! Repository analysis Commits 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
  • 24. Introduction Methodology Results Conclusions Thanks! Repository analysis Commits 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
  • 25. Introduction Methodology Results Conclusions Thanks! Repository analysis Lorenz & 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
  • 26. Introduction Methodology Results Conclusions Thanks! Mailing list analysis Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 27. Introduction Methodology Results Conclusions Thanks! Mailing list analysis TOP 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
  • 28. Introduction Methodology Results Conclusions Thanks! Mailing list analysis Messages 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
  • 29. Introduction Methodology Results Conclusions Thanks! Mixed analysis Outline 1 Introduction History 2 Methodology Tools Data sources Analysis 3 Results Repository analysis Mailing list analysis Mixed analysis 4 Conclusions
  • 30. Introduction Methodology Results Conclusions Thanks! Mixed analysis Who 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. Introduction Methodology Results Conclusions Thanks! Thanks!