Linux Bowman Hindle

Embed Size (px)

Citation preview

  • 8/6/2019 Linux Bowman Hindle

    1/23

  • 8/6/2019 Linux Bowman Hindle

    2/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    This Presentation What am I going to cover?

    Introduction

    Conceptual Architecture

    Concrete Architecture

    Previous Work

    Summary

    Abram Hindle 2

  • 8/6/2019 Linux Bowman Hindle

    3/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Introduction Want to make a conceptual model

    Want to extract a concrete model

    Compare the two.

    Use Linux 1998

    Abram Hindle 3

  • 8/6/2019 Linux Bowman Hindle

    4/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Linux Open Source Unix-like Operating System

    Liberal licensing, free and open distribution of source.

    Able to share results with research community and they can verify

    10 KLOC in 1991 to 1.5 MLOC in 1998

    Kernel was 800 KLOC in 1998

    Lack of documentation

    Abram Hindle 4

  • 8/6/2019 Linux Bowman Hindle

    5/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Research Context Reverse Engineering Community

    Some Architecture Extraction

    This paper was based on work done for this class in 1998

    Design Patterns had been out 4 years

    Earliest citation in this paper was 1992

    Relatively new field (altho the class was already a 700 level)

    Abram Hindle 5

  • 8/6/2019 Linux Bowman Hindle

    6/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 6

  • 8/6/2019 Linux Bowman Hindle

    7/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Conceptual Architecture

    Built using the descriptions of the architecture from various sources.

    Used descriptions of UNIX and OS Architecture

    The documentation about Linux that was available.

    Abram Hindle 7

  • 8/6/2019 Linux Bowman Hindle

    8/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Conceptual Architecture Subsystems

    Process Scheduler

    IPC

    Memory Manager

    File System

    Network Interface

    Init

    Library

    Abram Hindle 8

  • 8/6/2019 Linux Bowman Hindle

    9/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 9

  • 8/6/2019 Linux Bowman Hindle

    10/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    File System Conceptual Arch. Subsystems

    Device Drivers

    Logical Filesystem

    Executable File Format

    File Quota

    Buffer Cache

    Facades: SysCall Interface and Virtual File System

    Abram Hindle 10

  • 8/6/2019 Linux Bowman Hindle

    11/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 11

  • 8/6/2019 Linux Bowman Hindle

    12/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Extraction Linux Kernel (800KLOC) (1682 source files)

    Symbols extracted through cfx

    Symbols related via grok

    Subsystems grouped via lsedit and grok

    Used Hierarchical grouping to group subsystems into bigger systems (e.g. the

    filesystem)

    Abram Hindle 12

  • 8/6/2019 Linux Bowman Hindle

    13/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 13

  • 8/6/2019 Linux Bowman Hindle

    14/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 14

  • 8/6/2019 Linux Bowman Hindle

    15/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Concrete Architecture Similar to conceptual

    More interconnections (some surprising and somewhat spurious dependencies(printk))

    19/42 Inter subsystem dependencies in the conceptual model

    37/42 Inter subsystem dependencies in the concrete model

    Abram Hindle 15

  • 8/6/2019 Linux Bowman Hindle

    16/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 16

  • 8/6/2019 Linux Bowman Hindle

    17/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Filesystem Concrete Architecture Same as the conceptual + more dependencies

    Surprises included networking dependencies (NCPFS, SMBFS)

    Depended on the IPC system for kernel level synchronization

    Some shortcuts

    Abram Hindle 17

  • 8/6/2019 Linux Bowman Hindle

    18/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Abram Hindle 18

  • 8/6/2019 Linux Bowman Hindle

    19/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Logical Filesystem Concrete Arch PROC Filesystem had crosscutting dependencies

    ISO 9660 Filesystem to CDROM Device Drivers

    Win32 related filesystems related to themselves

    UNIX filesystems (Ext2, SYSV) related to each other.

    Abram Hindle 19

  • 8/6/2019 Linux Bowman Hindle

    20/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Their Conclusions Linux might have cut some of the dependencies in the future

    Still needed humans to come up with the hierarchical decomposition

    Concrete Architecture had more dependencies than expected.

    Efficiency in Linux was sometimes improved via bypassing dependencies.

    Headers files could be moved to more local locations

    Abram Hindle 20

  • 8/6/2019 Linux Bowman Hindle

    21/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Issues Was the concrete architecture simply interpretted via the conceptual

    architecture?

    Were shown how the concrete model is almost a fully connected graph, it would

    be nice to compare this against other software systems.

    Abram Hindle 21

  • 8/6/2019 Linux Bowman Hindle

    22/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Summary: Researched Linux and UNIX OSes to produce a conceptual model

    Analyzed Linux to produce a concrete model

    Discovered some unexpected interdependencies

    Refined conceptual model using the concrete model

    Abram Hindle 22

  • 8/6/2019 Linux Bowman Hindle

    23/23

    Linux as a Case Study: Its Extracted Software Architecture CS764

    Questions What about alternatives views of architecture (4+1, etc.)

    Did the conceptual architecture match mostly because thats what they were

    looking for?

    What other diagrams or comparisons could be shown to make this study more

    valuable?

    Are these dependencies bad?

    Abram Hindle 23