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
Top Related