So You're a Linux Kernel Developer? Name All Subsystems

So You're a Linux Kernel Developer? Name All Subsystems

So you’re a Linux kernel developer? Name all subsystems. January 22, 2021 So you’re a Linux kernel developer? Name all subsystems. 1 Speaker Introduction Pia Eichinger I Student at the University of Applied Sciences in Regensburg (OTH) I Email: [email protected] I Research interests: organisational and maintenance structure of the Linux kernel So you’re a Linux kernel developer? Name all subsystems. 2 Collaborators Ralf Ramsauer I PhD student I [email protected] Stefanie Scherzinger I Professor for scalable database systems I [email protected] Wolfgang Mauerer I Professor for theoretical computer science I [email protected] So you’re a Linux kernel developer? Name all subsystems. 3 Collaboration and Motivation Motivation and Goals I Formalise/Assess the Linux kernel development process I Provide tools to support the open source community I Assist/Support Safety Critical Developments Collaboration Partners I ELISA (Linux Foundation) I University of Passau So you’re a Linux kernel developer? Name all subsystems. 4 Safety Critical Environments: Certification Safety Certification I Highly sensitive environment I Working software could ensure survival I Need to ensure software quality by all means necessary Process and Quality I Assumption: Development process impacts quality I Process adherence necessary (Degree?) So you’re a Linux kernel developer? Name all subsystems. 5 Motivation Linux + Safety Critical Environments = Major certification problem: Open development process I Ex post facto analysis I Characterise the process with hindsight (patch integration) I Statistical Methods to research/understand the development process So you’re a Linux kernel developer? Name all subsystems. 6 Maintainers Hierarchy So you’re a Linux kernel developer? Name all subsystems. 7 Integration Project - Motivation and Beginnings Original Projects I Conforming Integration of Patches I Patch traversal through maintainers hierarchy So you’re a Linux kernel developer? Name all subsystems. 8 The Subsystem Question Only problem is ... I ... where can I find the maintainers hierarchy? I ... where can I find the documentation on all subsystems? I ... what exactly is a subsystem even? So you’re a Linux kernel developer? Name all subsystems. 9 The Subsystem Question - What is a subsystem? Docs: Early-stage Planning “Again, the MAINTAINERS file is the place to start. [...] not all subsystems are represented there.” So you’re a Linux kernel developer? Name all subsystems. 10 The Subsystem Problem - What is a subsystem? But... I No “Media”/“Media Subsystem” entry in MAINTAINERS I Over 100 “subsystems” containing the word “Media” ) Which one? So you’re a Linux kernel developer? Name all subsystems. 11 Subsystem Definition Definition: Subsystem I Entries in MAINTAINERS: sections I Sections share files (measured in Lines of Code): thematically related I Grouping of thematically strong related sections: subsystem. So you’re a Linux kernel developer? Name all subsystems. 12 Integration Project - Change of Plan No clear listing of subsystems ) Let’s find out! New Projects I Conforming Integration of Patches I Subsystem Detection So you’re a Linux kernel developer? Name all subsystems. 13 Definition: Section Graph Goal: Find and analyse subsystems Visualise MAINTAINERS sections and thematical relations Definition: Section Graph I Undirected Graph I Vertices: Sections of MAINTAINERS I Edge: Do two sections share LoC? Yes ) Edge ) Detect clusters (subsystems) So you’re a Linux kernel developer? Name all subsystems. 14 Visualisation: Section Graph B C C A A B So you’re a Linux kernel developer? Name all subsystems. 15 Top-20% Section Graph So you’re a Linux kernel developer? Name all subsystems. 16 Cluster Discussion Cluster Discussion I Major clusters: isolate as own graph I “Recluster” again from within: substructure So you’re a Linux kernel developer? Name all subsystems. 17 Networking Subsystem NFS, SUNRPC, AND LOCKD CLIENTS NETFILTER IPVS RDS − RELIABLE DATAGRAM SOCKETS 9P FILE SYSTEM MAC80211 RXRPC SOCKETS (AF_RXRPC) KERNEL NFSD, SUNRPC, AND LOCKD SERVERS DCCP PROTOCOL ETHERNET BRIDGE CEPH COMMON CODE (LIBCEPH) BLUETOOTH SUBSYSTEM NETWORKING [IPv4/IPv6] NFC SUBSYSTEM BATMAN ADVANCED NETWORKING [TCP] 802.11 (including CFG80211/NL80211) IEEE 802.15.4 SUBSYSTEM NETWORKING [IPSEC] SCTP PROTOCOL TC subsystem SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS TIPC NETWORK LAYER OPENVSWITCH LLC (802.2) NETWORKING [GENERAL] DEVLINK NETWORKING [LABELED] (NetLabel, Labeled IPsec, SECMARK) So you’re a Linux kernel developer? Name all subsystems. 18 Media Subsystem STAGING − VIA VT665X DRIVERS GREYBUS SUBSYSTEM STAGING − REALTEK RTL8188EU DRIVERS STAGING − REALTEK RTL8712U DRIVERS STAGING − COMEDI STAGING − ATOMISP DRIVER INTEL IPU3 CSI−2 IMGU DRIVER EM28XX VIDEO4LINUX DRIVER CX88 VIDEO4LINUX DRIVER ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT STAGING SUBSYSTEM CEC FRAMEWORK MEDIA DRIVERS FOR FREESCALE IMX BTTV VIDEO4LINUX DRIVERRC−CORE / LIRC FRAMEWORK MEDIA DRIVERS FOR CXD2880 TI DAVINCI SERIES MEDIA DRIVER MEDIA INPUT INFRASTRUCTURE (V4L/DVB) SAA7134 VIDEO4LINUX DRIVER CX18 VIDEO4LINUX DRIVER PVRUSB2 VIDEO4LINUX DRIVER IVTV VIDEO4LINUX DRIVER VIVID VIRTUAL VIDEO DRIVER OMAP IMAGING SUBSYSTEM (OMAP3 ISP and OMAP4 ISS) ANDROID DRIVERS GSPCA USB WEBCAM DRIVER MEDIA DRIVERS FOR RENESAS − VSP1 QUALCOMM VENUS VIDEO ACCELERATOR DRIVER So you’re a Linux kernel developer? Name all subsystems. 19 DRM Drivers Subsystem DRM DRIVERS FOR TI OMAP DRM DRIVERS FOR GMA500 (Poulsbo, Moorestown and derivative chipsets) INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets) DRM DRIVERS FOR ROCKCHIP DRM DRIVERS FOR VC4 DRM DRIVER FOR MSM ADRENO GPU ARM MALI−DP DRM DRIVER INTEL GVT−g DRIVERS (Intel GPU Virtualization) RADEON and AMDGPU DRM DRIVERS DRM DRIVER FOR VMWARE VIRTUAL GPU DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS DRM PANEL DRIVERS DRM DRIVERS FOR BRIDGE CHIPS AMD POWERPLAY DRM DRIVERS DRM DRIVERS AND MISC GPU PATCHES AMD DISPLAY CORE AMD KFD DRM DRIVERS FOR ALLWINNER A10 DRM DRIVERS FOR NVIDIA TEGRA So you’re a Linux kernel developer? Name all subsystems. 20 Reminder: Conforming Patch Integration Conforming Patch Integration Patch integrated by relevant maintainer (from MAINTAINERS) ) Conforming Integration tl;dr I Analyse recent patch integrations I Determine conforming patch integration ) Analyse reasons for unconforming patch integration So you’re a Linux kernel developer? Name all subsystems. 21 Conforming Patch Integration Important Note I Goal: Characterise/Improve process and patch integration 1. Extract current status 2. Analyse/Characterise/Discuss 3. Enhance I We do not mean to point fingers! So you’re a Linux kernel developer? Name all subsystems. 22 Summary Results I Definition for subsystems I Visual representation of MAINTAINERS I Fully-automated and sensible subsystem detection I Strong argumentation basis for certifications So you’re a Linux kernel developer? Name all subsystems. 23 Future Work Future Work I Combination: Subsystems and Conforming Patch Integration I Cluster discussion on full section graph I Visualise earlier versions and subsystem development I Easier overview for newcomers (interactive graph) I Apply section graph to other open source projects (QEMU, U-Boot, buildroot) I Maintainer Graph All work integrated in https://github.com/lfd/PaStA So you’re a Linux kernel developer? Name all subsystems. 24 The End Thank you for listening! [email protected] https://github.com/lfd/PaStA So you’re a Linux kernel developer? Name all subsystems. 25.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    25 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us