SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
SLINKY: Static Linking
Reloaded
Christian Collberg, John Hartman et. al.
CSC 630, Fall 2013, University of Arizona
Sumin Byeon
Linking
• Combining a program and its libraries into
a single executable
• Resolving symbolic names of variables and
functions into their resulting addresses
Static Linking
• Incorporating libraries at compile-time[^1]
• Pros
• Easy to understand, implement, and use
• Self-contained apps
• Cons
• Duplications - spatial inefficiency
[^1]: More precisely, at link-time
Dynamic Linking
• Deferring linking until run-time
• Pros
• Space efficient (disk and memory)
• Flexibility
• Cons
• Complexity (e.g., version, path, dependency, etc.)
• Potential security risks
SLINKY
• Implicit sharing of libraries and data by
deduplication
• Best of both worlds
• Sharing memory pages
• Sharing disk space
• Reducing network bandwidth
Sharing Memory Pages
• When a page modified, it is no longer valid for
other processes. Potential solution: copy-on-
write.
• Share read-only code pages
• Data pages are likely modified, thus unlikely to
be shared anyway
• slink, digest, a set of Linux kernel
modifications
Slink
• Position independent code required
• Converts a dynamically linked executable
into a statically linked executable
• Finds all necessary libraries, organizes them
in the process’s address space, and resolves
symbols
Digest
• Inserts the digests for each code page
• Linux page: 4 KB, digest: 20 bytes - less than
0.5% overhead
Kernel Modifications
• Per-process digest table (PDT) - Maps page
number to digest
• Global digest table (GDT) - Contains the
digest of every code page in memory
Security
• Possibility of inserting malicious code
• Digest verification before loading a page to
the GDT
• Memory protection hardware
• SHA-1 or a different hash function of your
choice
Sharing Disk Space
• Breaking an executable into variable-size
chunks
• Only one copy of each unique chunk is
stored
• Similar idea to LBFS
Reducing Network
Bandwidth
• Transfers only a fraction of the chunks
• The initial transfer represents a worst-case
scenario
• Deduplication!
Performance
• Measured:
• Elapsed time to build the Linux kernel
• Page fault handling in both an unmodified Linux kernel
and a modified kernel
• Number of page faults - SLINKY’s effect on the page fault
rate and the memory footprints
• Suffers fewer page faults than their dynamically linked
counterparts
• Page fault rate decreased after several other executables
have added pages to the GDT
Memory Footprint
Storage Space
Network Bandwidth
• File size:
SLINKY exe >>>>> dynamically linked exe
• Amount of transferred data:
SLINKY exe > dynamically linked exe
Conclusion
• SLINKY overcomes disadvantages of static
linking by implicitly sharing data chunks
based on their digests
• Trivial performance degradation,
comparable memory footprint to dynamic
linking, and low overhead on storage

Contenu connexe

Tendances

MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011Preferred Networks
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)Casey Bisson
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into ContainerdAkihiro Suda
 
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)lestrrat
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Mario Ishara Fernando
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdockerJaehwa Park
 
Docker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - GoraeDocker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - GoraeRhio kim
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornPROIDEA
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAlan Forbes
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefMatt Ray
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewiredotCloud
 
Docker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサDocker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサYuji Oshima
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and HowSneha Inguva
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇Philip Zheng
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless modeAkihiro Suda
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned RightScale
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016Walid Shaari
 

Tendances (20)

MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
 
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdocker
 
Docker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - GoraeDocker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - Gorae
 
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornJDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
 
Introduction To Docker
Introduction To DockerIntroduction To Docker
Introduction To Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with Chef
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
 
Docker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサDocker1.12イングレスロードバランサ
Docker1.12イングレスロードバランサ
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and How
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 

En vedette

Are Credit Cards Evil
Are Credit Cards EvilAre Credit Cards Evil
Are Credit Cards EvilSumin Byeon
 
【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01
【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01
【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01schoowebcampus
 
Ashleigh Bird C.V. 2016
Ashleigh Bird C.V. 2016Ashleigh Bird C.V. 2016
Ashleigh Bird C.V. 2016Ashleigh Bird
 
Oracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen FlügelOracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen Flügelenpit GmbH & Co. KG
 
Small enhancements - Edition 2016B
Small enhancements - Edition  2016BSmall enhancements - Edition  2016B
Small enhancements - Edition 2016BMarna Walle
 
超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄
超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄
超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄schoowebcampus
 
営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生
営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生
営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生schoowebcampus
 
【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生
【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生
【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生schoowebcampus
 
Mapa mental analy
Mapa mental analyMapa mental analy
Mapa mental analyjoelvall
 

En vedette (12)

Are Credit Cards Evil
Are Credit Cards EvilAre Credit Cards Evil
Are Credit Cards Evil
 
【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01
【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01
【AIDちゃんねる】アプリ生産数日本一!? Goodia代表に聞く ”アプリを創ること”「ほろ酔いナイト」vol.01
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Ashleigh Bird C.V. 2016
Ashleigh Bird C.V. 2016Ashleigh Bird C.V. 2016
Ashleigh Bird C.V. 2016
 
Oracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen FlügelOracle Cloud verleiht ADF-Anwendungen Flügel
Oracle Cloud verleiht ADF-Anwendungen Flügel
 
Small enhancements - Edition 2016B
Small enhancements - Edition  2016BSmall enhancements - Edition  2016B
Small enhancements - Edition 2016B
 
超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄
超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄
超絶UXを実現したい!小規模Web制作会社でもフロントエンドのスキルを磨く方法と実践 【実践編】 先生:桟 義雄
 
Chicago CTA Expo
Chicago CTA ExpoChicago CTA Expo
Chicago CTA Expo
 
Plh
PlhPlh
Plh
 
営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生
営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生
営業職×専門性=高年収 ~未経験からMRになる方法~ 先生:梅澤悠希先生
 
【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生
【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生
【1限目】超効率型英語学習法~TOEIC265点だった僕が、海外で就職しちゃいました~ 先生:佐藤渉先生
 
Mapa mental analy
Mapa mental analyMapa mental analy
Mapa mental analy
 

Similaire à SLINKY: Static Linking Reloaded

Tachyon memory centric, fault tolerance storage for cluster framworks
Tachyon  memory centric, fault tolerance storage for cluster framworksTachyon  memory centric, fault tolerance storage for cluster framworks
Tachyon memory centric, fault tolerance storage for cluster framworksViet-Trung TRAN
 
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural LessonsCassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural LessonsDataStax
 
Distributed Data processing in a Cloud
Distributed Data processing in a CloudDistributed Data processing in a Cloud
Distributed Data processing in a Cloudelliando dias
 
Cloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation inCloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation inRahulBhole12
 
Cloud Computing and Genealogical Collaboration
Cloud Computing and Genealogical CollaborationCloud Computing and Genealogical Collaboration
Cloud Computing and Genealogical CollaborationGenealogyMedia.com
 
Leveraging Endpoint Flexibility in Data-Intensive Clusters
Leveraging Endpoint Flexibility in Data-Intensive ClustersLeveraging Endpoint Flexibility in Data-Intensive Clusters
Leveraging Endpoint Flexibility in Data-Intensive ClustersRan Ziv
 
Introduction to Data Storage and Cloud Computing
Introduction to Data Storage and Cloud ComputingIntroduction to Data Storage and Cloud Computing
Introduction to Data Storage and Cloud ComputingRutuja751147
 
Petabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructurePetabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructureelliando dias
 
Benchmarking Personal Cloud Storage
Benchmarking Personal Cloud StorageBenchmarking Personal Cloud Storage
Benchmarking Personal Cloud StorageSpyros Eleftheriadis
 
Scalable Storage for Massive Volume Data Systems
Scalable Storage for Massive Volume Data SystemsScalable Storage for Massive Volume Data Systems
Scalable Storage for Massive Volume Data SystemsLars Nielsen
 
Large scale computing with mapreduce
Large scale computing with mapreduceLarge scale computing with mapreduce
Large scale computing with mapreducehansen3032
 
Storing and distributing data
Storing and distributing dataStoring and distributing data
Storing and distributing dataPhil Cryer
 
Enterprise Software Development Patterns
Enterprise Software Development PatternsEnterprise Software Development Patterns
Enterprise Software Development PatternsJosh Lane
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Richard Esplin
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB InternalsSiraj Memon
 
Linux operating system
Linux operating systemLinux operating system
Linux operating systemITz_1
 
network ram parallel computing
network ram parallel computingnetwork ram parallel computing
network ram parallel computingNiranjana Ambadi
 

Similaire à SLINKY: Static Linking Reloaded (20)

Tachyon memory centric, fault tolerance storage for cluster framworks
Tachyon  memory centric, fault tolerance storage for cluster framworksTachyon  memory centric, fault tolerance storage for cluster framworks
Tachyon memory centric, fault tolerance storage for cluster framworks
 
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural LessonsCassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
 
Distributed Data processing in a Cloud
Distributed Data processing in a CloudDistributed Data processing in a Cloud
Distributed Data processing in a Cloud
 
Cloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation inCloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation in
 
Cloud Computing and Genealogical Collaboration
Cloud Computing and Genealogical CollaborationCloud Computing and Genealogical Collaboration
Cloud Computing and Genealogical Collaboration
 
Leveraging Endpoint Flexibility in Data-Intensive Clusters
Leveraging Endpoint Flexibility in Data-Intensive ClustersLeveraging Endpoint Flexibility in Data-Intensive Clusters
Leveraging Endpoint Flexibility in Data-Intensive Clusters
 
Introduction to Data Storage and Cloud Computing
Introduction to Data Storage and Cloud ComputingIntroduction to Data Storage and Cloud Computing
Introduction to Data Storage and Cloud Computing
 
Petabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructurePetabyte scale on commodity infrastructure
Petabyte scale on commodity infrastructure
 
Cnam azure 2015 storage
Cnam azure 2015  storageCnam azure 2015  storage
Cnam azure 2015 storage
 
Ioppt
IopptIoppt
Ioppt
 
Benchmarking Personal Cloud Storage
Benchmarking Personal Cloud StorageBenchmarking Personal Cloud Storage
Benchmarking Personal Cloud Storage
 
Scalable Storage for Massive Volume Data Systems
Scalable Storage for Massive Volume Data SystemsScalable Storage for Massive Volume Data Systems
Scalable Storage for Massive Volume Data Systems
 
Hot sec10 slide-suzaki
Hot sec10 slide-suzakiHot sec10 slide-suzaki
Hot sec10 slide-suzaki
 
Large scale computing with mapreduce
Large scale computing with mapreduceLarge scale computing with mapreduce
Large scale computing with mapreduce
 
Storing and distributing data
Storing and distributing dataStoring and distributing data
Storing and distributing data
 
Enterprise Software Development Patterns
Enterprise Software Development PatternsEnterprise Software Development Patterns
Enterprise Software Development Patterns
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB Internals
 
Linux operating system
Linux operating systemLinux operating system
Linux operating system
 
network ram parallel computing
network ram parallel computingnetwork ram parallel computing
network ram parallel computing
 

Plus de Sumin Byeon

PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]Sumin Byeon
 
BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩Sumin Byeon
 
NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법
NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법
NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법Sumin Byeon
 
NDC 2016 마이크로토크 - 프로그래머가 투자하는 법
NDC 2016 마이크로토크 - 프로그래머가 투자하는 법NDC 2016 마이크로토크 - 프로그래머가 투자하는 법
NDC 2016 마이크로토크 - 프로그래머가 투자하는 법Sumin Byeon
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
더 나은 번역기는 나의 삶을 어떻게 바꾸었는가
더 나은 번역기는 나의 삶을 어떻게 바꾸었는가더 나은 번역기는 나의 삶을 어떻게 바꾸었는가
더 나은 번역기는 나의 삶을 어떻게 바꾸었는가Sumin Byeon
 
2015 PyCon - 프로그래머가 이사하는 법
2015 PyCon - 프로그래머가 이사하는 법2015 PyCon - 프로그래머가 이사하는 법
2015 PyCon - 프로그래머가 이사하는 법Sumin Byeon
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담Sumin Byeon
 
Cross-Language Information Retrieval
Cross-Language Information RetrievalCross-Language Information Retrieval
Cross-Language Information RetrievalSumin Byeon
 
Project Proposal: Translation Example Search Engine
Project Proposal: Translation Example Search EngineProject Proposal: Translation Example Search Engine
Project Proposal: Translation Example Search EngineSumin Byeon
 
Self-Tuning Wireless Network Power Management
Self-Tuning Wireless Network Power ManagementSelf-Tuning Wireless Network Power Management
Self-Tuning Wireless Network Power ManagementSumin Byeon
 
Error tolerant search
Error tolerant searchError tolerant search
Error tolerant searchSumin Byeon
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucketSumin Byeon
 
Git with bitbucket (draft)
Git with bitbucket (draft)Git with bitbucket (draft)
Git with bitbucket (draft)Sumin Byeon
 
RNA Secondary Structure Prediction
RNA Secondary Structure PredictionRNA Secondary Structure Prediction
RNA Secondary Structure PredictionSumin Byeon
 

Plus de Sumin Byeon (15)

PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
 
BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩
 
NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법
NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법
NDC 2017 마이크로토크 - 프로그래머가 뉴스 읽는 법
 
NDC 2016 마이크로토크 - 프로그래머가 투자하는 법
NDC 2016 마이크로토크 - 프로그래머가 투자하는 법NDC 2016 마이크로토크 - 프로그래머가 투자하는 법
NDC 2016 마이크로토크 - 프로그래머가 투자하는 법
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
더 나은 번역기는 나의 삶을 어떻게 바꾸었는가
더 나은 번역기는 나의 삶을 어떻게 바꾸었는가더 나은 번역기는 나의 삶을 어떻게 바꾸었는가
더 나은 번역기는 나의 삶을 어떻게 바꾸었는가
 
2015 PyCon - 프로그래머가 이사하는 법
2015 PyCon - 프로그래머가 이사하는 법2015 PyCon - 프로그래머가 이사하는 법
2015 PyCon - 프로그래머가 이사하는 법
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
 
Cross-Language Information Retrieval
Cross-Language Information RetrievalCross-Language Information Retrieval
Cross-Language Information Retrieval
 
Project Proposal: Translation Example Search Engine
Project Proposal: Translation Example Search EngineProject Proposal: Translation Example Search Engine
Project Proposal: Translation Example Search Engine
 
Self-Tuning Wireless Network Power Management
Self-Tuning Wireless Network Power ManagementSelf-Tuning Wireless Network Power Management
Self-Tuning Wireless Network Power Management
 
Error tolerant search
Error tolerant searchError tolerant search
Error tolerant search
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Git with bitbucket (draft)
Git with bitbucket (draft)Git with bitbucket (draft)
Git with bitbucket (draft)
 
RNA Secondary Structure Prediction
RNA Secondary Structure PredictionRNA Secondary Structure Prediction
RNA Secondary Structure Prediction
 

Dernier

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Dernier (20)

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

SLINKY: Static Linking Reloaded

  • 1. SLINKY: Static Linking Reloaded Christian Collberg, John Hartman et. al. CSC 630, Fall 2013, University of Arizona Sumin Byeon
  • 2. Linking • Combining a program and its libraries into a single executable • Resolving symbolic names of variables and functions into their resulting addresses
  • 3. Static Linking • Incorporating libraries at compile-time[^1] • Pros • Easy to understand, implement, and use • Self-contained apps • Cons • Duplications - spatial inefficiency [^1]: More precisely, at link-time
  • 4. Dynamic Linking • Deferring linking until run-time • Pros • Space efficient (disk and memory) • Flexibility • Cons • Complexity (e.g., version, path, dependency, etc.) • Potential security risks
  • 5. SLINKY • Implicit sharing of libraries and data by deduplication • Best of both worlds • Sharing memory pages • Sharing disk space • Reducing network bandwidth
  • 6. Sharing Memory Pages • When a page modified, it is no longer valid for other processes. Potential solution: copy-on- write. • Share read-only code pages • Data pages are likely modified, thus unlikely to be shared anyway • slink, digest, a set of Linux kernel modifications
  • 7. Slink • Position independent code required • Converts a dynamically linked executable into a statically linked executable • Finds all necessary libraries, organizes them in the process’s address space, and resolves symbols
  • 8. Digest • Inserts the digests for each code page • Linux page: 4 KB, digest: 20 bytes - less than 0.5% overhead
  • 9. Kernel Modifications • Per-process digest table (PDT) - Maps page number to digest • Global digest table (GDT) - Contains the digest of every code page in memory
  • 10. Security • Possibility of inserting malicious code • Digest verification before loading a page to the GDT • Memory protection hardware • SHA-1 or a different hash function of your choice
  • 11. Sharing Disk Space • Breaking an executable into variable-size chunks • Only one copy of each unique chunk is stored • Similar idea to LBFS
  • 12. Reducing Network Bandwidth • Transfers only a fraction of the chunks • The initial transfer represents a worst-case scenario • Deduplication!
  • 13. Performance • Measured: • Elapsed time to build the Linux kernel • Page fault handling in both an unmodified Linux kernel and a modified kernel • Number of page faults - SLINKY’s effect on the page fault rate and the memory footprints • Suffers fewer page faults than their dynamically linked counterparts • Page fault rate decreased after several other executables have added pages to the GDT
  • 16. Network Bandwidth • File size: SLINKY exe >>>>> dynamically linked exe • Amount of transferred data: SLINKY exe > dynamically linked exe
  • 17. Conclusion • SLINKY overcomes disadvantages of static linking by implicitly sharing data chunks based on their digests • Trivial performance degradation, comparable memory footprint to dynamic linking, and low overhead on storage