software runs the world · desktops, laptops, routers, smartphones, tablets! coffee makers, tvs,...
TRANSCRIPT
![Page 1: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/1.jpg)
Software runs the world
2
Monday, October 15, 12
![Page 2: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/2.jpg)
Software runs the world
2
Monday, October 15, 12
![Page 3: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/3.jpg)
Software runs the world
• We (sometimes indirectly) interact with devices running (lots of) software every day
2
Monday, October 15, 12
![Page 4: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/4.jpg)
Software runs the world
• We (sometimes indirectly) interact with devices running (lots of) software every day! Desktops, laptops, routers, smartphones, tablets
2
Monday, October 15, 12
![Page 5: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/5.jpg)
Software runs the world
• We (sometimes indirectly) interact with devices running (lots of) software every day! Desktops, laptops, routers, smartphones, tablets
! Coffee makers, TVs, energy meters, medical devices
2
Monday, October 15, 12
![Page 6: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/6.jpg)
Software runs the world
• We (sometimes indirectly) interact with devices running (lots of) software every day! Desktops, laptops, routers, smartphones, tablets
! Coffee makers, TVs, energy meters, medical devices
! Cars, aircraft, weapon systems, nuclear centrifuges
2
Monday, October 15, 12
![Page 7: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/7.jpg)
Software failures are disruptive
3
Monday, October 15, 12
![Page 8: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/8.jpg)
Software failures are disruptive
• 3/11: Mizuho FG’s ATM system goes down
! 5,600 machines offline for 24 hours
3
Monday, October 15, 12
![Page 9: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/9.jpg)
Software failures are disruptive
• 3/11: Mizuho FG’s ATM system goes down
! 5,600 machines offline for 24 hours
• 8/10: Toyota Prius brakes fail due to software glitch
! Ford also issues patch for similar problem
3
Monday, October 15, 12
![Page 10: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/10.jpg)
Software failures are disruptive
• 3/11: Mizuho FG’s ATM system goes down
! 5,600 machines offline for 24 hours
• 8/10: Toyota Prius brakes fail due to software glitch
! Ford also issues patch for similar problem
• 6/10: Stuxnet malware
! Exploits flaws in industrial control systems
3
Monday, October 15, 12
![Page 11: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/11.jpg)
Software failures are disruptive
• 3/11: Mizuho FG’s ATM system goes down
! 5,600 machines offline for 24 hours
• 8/10: Toyota Prius brakes fail due to software glitch
! Ford also issues patch for similar problem
• 6/10: Stuxnet malware
! Exploits flaws in industrial control systems
• 3/08: Heartland exposes 134M credit cards
! SQL injection used to install spyware
3
Monday, October 15, 12
![Page 12: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/12.jpg)
Software failures are disruptive
• 3/11: Mizuho FG’s ATM system goes down
! 5,600 machines offline for 24 hours
• 8/10: Toyota Prius brakes fail due to software glitch
! Ford also issues patch for similar problem
• 6/10: Stuxnet malware
! Exploits flaws in industrial control systems
• 3/08: Heartland exposes 134M credit cards
! SQL injection used to install spyware
• 8/07: LAX offline due to faulty network card
! 17,000 planes grounded for eight hours
3
Monday, October 15, 12
![Page 13: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/13.jpg)
Software failures are disruptive
• 3/11: Mizuho FG’s ATM system goes down
! 5,600 machines offline for 24 hours
• 8/10: Toyota Prius brakes fail due to software glitch
! Ford also issues patch for similar problem
• 6/10: Stuxnet malware
! Exploits flaws in industrial control systems
• 3/08: Heartland exposes 134M credit cards
! SQL injection used to install spyware
• 8/07: LAX offline due to faulty network card
! 17,000 planes grounded for eight hours
• 8/03: Northeast, multi-state blackout
! Race condition in power plant management software cascades
3
Monday, October 15, 12
![Page 14: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/14.jpg)
Software updates are crucial
• Updates: fix bugs, modify behavior, add features
• 2010 NASDAQ hacking incident! investigators blame vulnerability on
out-of-date software
4
Oracle Critical Patch Update Advisory - April 2009DescriptionA Critical Patch Update is a collection of patches for multiple security vulnerabilities. ...
Due to the threat posed by a successful attack, Oracle strongly recommends that customers apply fixes as soon as possible. This Critical Patch Update contains 43 new security fixes across all products.
Monday, October 15, 12
![Page 15: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/15.jpg)
• Typically require restarting the program
• interrupts active users / processing
• makes services unavailable
5
Software updates are disruptive
Monday, October 15, 12
![Page 16: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/16.jpg)
• Typically require restarting the program
• interrupts active users / processing
• makes services unavailable
5
Software updates are disruptive
Monday, October 15, 12
![Page 17: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/17.jpg)
• Typically require restarting the program
• interrupts active users / processing
• makes services unavailable
5
Software updates are disruptive
Monday, October 15, 12
![Page 18: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/18.jpg)
• Typically require restarting the program
• interrupts active users / processing
• makes services unavailable
5
Software updates are disruptive
Monday, October 15, 12
![Page 19: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/19.jpg)
• Typically require restarting the program
• interrupts active users / processing
• makes services unavailable
5
Software updates are disruptive
Monday, October 15, 12
![Page 20: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/20.jpg)
Dynamic Software Updating (DSU)
6
Monday, October 15, 12
![Page 21: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/21.jpg)
Dynamic Software Updating (DSU)
• Goal: Update programs while they run ! Avoid interruptions
- Overwhelming number of security breaches due to unpatched software
! Preserve critical program state
6
Monday, October 15, 12
![Page 22: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/22.jpg)
Dynamic Software Updating (DSU)
• Goal: Update programs while they run ! Avoid interruptions
- Overwhelming number of security breaches due to unpatched software
! Preserve critical program state
• Useful for:! Non-stop services
- E.g., Financial processing, air traffic control, network infrastructure
! Programs with long-lived connections
- E.g., OpenSSH and media streaming
! Long-running programs with large in-memory state
- E.g., operating systems, caching servers, in-memory databases
6
Monday, October 15, 12
![Page 23: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/23.jpg)
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
5Thursday, March 29, 2012
![Page 24: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/24.jpg)
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
v0 process
Update
5Thursday, March 29, 2012
![Page 25: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/25.jpg)
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
v0 process
v0 state Update
5Thursday, March 29, 2012
![Page 26: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/26.jpg)
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
v1 code
v0 process
v0 state Update
5Thursday, March 29, 2012
![Page 27: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/27.jpg)
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
v1 code
v0 process
v0 state transformed stateUpdate
5Thursday, March 29, 2012
![Page 28: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/28.jpg)
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
v1 code
v0 process
v0 state transformed state
5Thursday, March 29, 2012
![Page 29: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/29.jpg)
upd. process
Dynamic Software Updating (DSU)
• Run program at the old version
• At some point update to the new version, preserving and updating existing program state
• existing connections, important data on the stack and heap, program counter, ...
v1 code
v0 process
v0 state transformed state
5Thursday, March 29, 2012
![Page 30: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/30.jpg)
Research DSU systems
• C/C++ application support
! PODUS, Ginseng, UpStare, POLUS, Ekiden, Gupta et al
• C/C++ operating systems
! K42, LUCOS, DynaMOS
• Java applications
! Jvolve, JDRUMS, Prose
• Other languages
! *Mod, DLpop, Dynamic ML
6
6Thursday, March 29, 2012
![Page 31: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/31.jpg)
Many forms of DSU now mainstream
7
7Thursday, March 29, 2012
![Page 32: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/32.jpg)
Many forms of DSU now mainstream
language run-times
7
7Thursday, March 29, 2012
![Page 33: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/33.jpg)
Many forms of DSU now mainstream
language run-times app. tools
7
7Thursday, March 29, 2012
![Page 34: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/34.jpg)
Many forms of DSU now mainstream
language run-times app. tools OSes
7
Bought byOracle in
2011
7Thursday, March 29, 2012
![Page 35: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/35.jpg)
Practical DSU system features
• Ease of Use
! Update behavior should be easy to reason about
! Should be easy to retrofit existing programs
! Minimize per-update programmer work
• Flexibility
! Support natural program evolution, on-the-fly
• Efficiency
! Quick update times
! Little or no overhead on normal execution
• Scalability
! Support large, real-world programs8
8Thursday, March 29, 2012
![Page 36: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/36.jpg)
Kitsune, a practical DSU system
9
9Thursday, March 29, 2012
![Page 37: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/37.jpg)
Kitsune, a practical DSU system
• Updates the entire program at once
! A dynamic update “restarts” the program with the new code and the existing state
! Only requires simple source-to-source translator
- Employs entirely standard compilation and tools
9
9Thursday, March 29, 2012
![Page 38: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/38.jpg)
Kitsune, a practical DSU system
• Updates the entire program at once
! A dynamic update “restarts” the program with the new code and the existing state
! Only requires simple source-to-source translator
- Employs entirely standard compilation and tools
• Update orchestration controlled by developer
! Extra manual effort is worth it: easier to reason about
9
9Thursday, March 29, 2012
![Page 39: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/39.jpg)
Kitsune, a practical DSU system
• Updates the entire program at once
! A dynamic update “restarts” the program with the new code and the existing state
! Only requires simple source-to-source translator
- Employs entirely standard compilation and tools
• Update orchestration controlled by developer
! Extra manual effort is worth it: easier to reason about
• New tool called xfgen generates code to transform the existing state
! based on simple developer-written specifications
9
9Thursday, March 29, 2012
![Page 40: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/40.jpg)
Kitsune: Results
• Applied Kitsune to five open-source programs
! memcached, redis, icecast: 3-6 mos. of releases
! vsftpd, Tor: 2-4 years of releases
• Performance overhead in the noise
• Update times typically less than 40ms
• Programmer effort small
! < 100 LOC per program (largely one-time effort)
! ~ 100 LOC of xfgen specs across all releases
! All comparable to or less than prior systems
10
Flexible
Efficient
Easy to use
Scalable
10Thursday, March 29, 2012
![Page 41: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/41.jpg)
Kitsune build process
11
Summary:•For each source file
•replace gcc -c with composition of kitc and gcc•Add -shared flag to linker and include kit-rt.a
.c.c
.ckitc gcc -c
-fPIC
-fvis...=
gcc
-shared
.c.c
.c
.c.c
.o
.so
kit-rt.a
11Thursday, March 29, 2012
![Page 42: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/42.jpg)
Kitsune updating model
12
driver
12Thursday, March 29, 2012
![Page 43: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/43.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
1.Load first version
12Thursday, March 29, 2012
![Page 44: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/44.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
1.Load first version2.Run it
12Thursday, March 29, 2012
![Page 45: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/45.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
,-#-)
1.Load first version2.Run it
12Thursday, March 29, 2012
![Page 46: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/46.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
,-#-)
1.Load first version2.Run it3.Call back to driver when update ready
12Thursday, March 29, 2012
![Page 47: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/47.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
,-#-)
!!!!!!"#$%&'
()*!.
1.Load first version2.Run it3.Call back to driver when update ready4.Load second version
12Thursday, March 29, 2012
![Page 48: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/48.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
,-#-)
!!!!!!"#$%&'
()*!.
1.Load first version2.Run it3.Call back to driver when update ready4.Load second version
12Thursday, March 29, 2012
![Page 49: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/49.jpg)
Kitsune updating model
12
driver !!!!!!!!"#$%&'
()*!+
!!!!!!"#$%&'
()*!.
,-#-)
1.Load first version2.Run it3.Call back to driver when update ready4.Load second version5.Migrate and transform state
12Thursday, March 29, 2012
![Page 50: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/50.jpg)
Kitsune updating model
12
driver !!!!!!"#$%&'
()*!.
,-#-)
1.Load first version2.Run it3.Call back to driver when update ready4.Load second version5.Migrate and transform state6.Free up old resources
12Thursday, March 29, 2012
![Page 51: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/51.jpg)
Kitsune updating model
12
driver !!!!!!"#$%&'
()*!.
,-#-)
1.Load first version2.Run it3.Call back to driver when update ready4.Load second version5.Migrate and transform state6.Free up old resources7.Continue with new version
12Thursday, March 29, 2012
![Page 52: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/52.jpg)
Programmer obligations
13
13Thursday, March 29, 2012
![Page 53: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/53.jpg)
Programmer obligations
• Kitsune DSU requires the programmer to
! Identify where updates may take place
13
13Thursday, March 29, 2012
![Page 54: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/54.jpg)
Programmer obligations
• Kitsune DSU requires the programmer to
! Identify where updates may take place
! Identify the state to be transferred, and where it should be received in the new code
13
13Thursday, March 29, 2012
![Page 55: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/55.jpg)
Programmer obligations
• Kitsune DSU requires the programmer to
! Identify where updates may take place
! Identify the state to be transferred, and where it should be received in the new code
! Move the program counter to the right event loop when the new version restarts
13
13Thursday, March 29, 2012
![Page 56: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/56.jpg)
Example single-threaded server
14
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
!!!A!!!
A
$%-!"#$%&'!:
!!!$%-!8921B!789213
!!!"#00$%5!C!"#8867&>>>'3
!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!!!!!!!78921!C!5)-976%%&8921'3
!!!!!!!78$)%-98660&78921'3
!!!A!!
A
before modification
14Thursday, March 29, 2012
![Page 57: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/57.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
15Thursday, March 29, 2012
![Page 58: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/58.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
15Thursday, March 29, 2012
![Page 59: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/59.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
15Thursday, March 29, 2012
![Page 60: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/60.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
!!!D$-,@%)9169#@-6"$5*#-)&'3
==!#@-6"$5*#-)1
15Thursday, March 29, 2012
![Page 61: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/61.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
!!!$2!&FD$-,@%)9$,9@01#G%5&''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
!!!D$-,@%)9169#@-6"$5*#-)&'3
==!#@-6"$5*#-)1
15Thursday, March 29, 2012
![Page 62: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/62.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
!!!$2!&FD$-,@%)9$,9@01#G%5&''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
!!!D$-,@%)9169#@-6"$5*#-)&'3
HIJK9LIMNLO
==!#@-6"$5*#-)1
15Thursday, March 29, 2012
![Page 63: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/63.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
!!!$2!&FD$-,@%)9$,9@01#G%5&''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
!!!D$-,@%)9169#@-6"$5*#-)&'3
HIJK9LIMNLO
==!#@-6"$5*#-)1
!!!$2!&FPQRSNJK9LIMNL&8921''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
15Thursday, March 29, 2012
![Page 64: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/64.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
!!!$2!&FD$-,@%)9$,9@01#G%5&''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
!!!D$-,@%)9169#@-6"$5*#-)&'3
!!!$2!&FD$-,@%)9$,9@01#G%592*6"
!!!!!!!!!!&T78$)%-U''!:
!!!!!!PQRSNJK9LIMNL&78921'3
!!!A
HIJK9LIMNLO
==!#@-6"$5*#-)1
!!!$2!&FPQRSNJK9LIMNL&8921''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
15Thursday, March 29, 2012
![Page 65: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/65.jpg)
Example single-threaded server
15
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53
(6$1!78$)%-98660&$%-!21'!:
!!!!;<$8)!&+'!:
!!!!!!!==!>>>!0*67),,!78$)%-!*)?@),-,
A!!!A
$%-!"#$%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&'!:
!!!$%-!8921B!789213
!!!!!"#00$%5!C!"#8867&>>>'3
!!!!!8921!C!,)-@0976%%&'3
!!!;<$8)!&+'!:
!
!!!!!!78921!C!5)-976%%&8921'3
!!!!!!78$)%-98660&78921'3
!!!A
A
modification for Kitsune
!!!D$-,@%)9@01#-)&E"#$%E'3
!!!D$-,@%)9@01#-)&E78$)%-E'3
!!!$2!&FD$-,@%)9$,9@01#G%5&''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
!!!D$-,@%)9169#@-6"$5*#-)&'3
!!!$2!&FD$-,@%)9$,9@01#G%592*6"
!!!!!!!!!!&T78$)%-U''!:
!!!!!!PQRSNJK9LIMNL&78921'3
!!!A
HIJK9LIMNLO
==!#@-6"$5*#-)1
!!!$2!&FPQRSNJK9LIMNL&8921''!:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A
!!!!!!78$)%-98660&78921'3
15Thursday, March 29, 2012
![Page 66: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/66.jpg)
Multithreading support
• All threads synchronize at update points
! Assumes threads will reach update points eventually
! Assumes they hold no resources (e.g., locks)
• Main thread restarts (as in the ST case)
• Restarts child threads at update points
! Hijack threads library to track pthread function, args
• Done when all threads reach their update points after restarting
16
16Thursday, March 29, 2012
![Page 67: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/67.jpg)
Migrating and transforming state
• State may need to be transformed to work with the new program
! Transformation piggybacks on top of migration
17
17Thursday, March 29, 2012
![Page 68: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/68.jpg)
Migrating and transforming state
• State may need to be transformed to work with the new program
! Transformation piggybacks on top of migration
17
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53old
17Thursday, March 29, 2012
![Page 69: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/69.jpg)
Migrating and transforming state
• State may need to be transformed to work with the new program
! Transformation piggybacks on top of migration
17
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53old
-/0)1)2!7<#*!41#-#3
1#-#!4"#00$%53new
17Thursday, March 29, 2012
![Page 70: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/70.jpg)
Migrating and transforming state
• State may need to be transformed to work with the new program
! Transformation piggybacks on top of migration
17
!"#$%&'($)&*+%$!$",$-./%$"#$#$01$-(%$#+11012$/#"2#&3
&14$0-5$'"##%5/"14012$*"'&6"1$%$01$-(%$1%7$/#"2#&3$
4"
!!!&%'(')#**+,-./0
'''12%3425-&%6.678"76!/0
%14
Migration
Xform
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53old
-/0)1)2!7<#*!41#-#3
1#-#!4"#00$%53new
17Thursday, March 29, 2012
![Page 71: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/71.jpg)
Migrating and transforming state
• State may need to be transformed to work with the new program
! Transformation piggybacks on top of migration
17
!"#$%&'($)&*+%$!$",$-./%$"#$#$01$-(%$#+11012$/#"2#&3
&14$0-5$'"##%5/"14012$*"'&6"1$%$01$-(%$1%7$/#"2#&3$
4"
!!!&%'(')#**+,-./0
'''12%3425-&%6.678"76!/0
%14
Migration
Xform
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53old
-/0)1)2!7<#*!41#-#3
1#-#!4"#00$%53new
1%7883&/59$:$"*4883&/59;
1%7883&//012$:$3&**"'<1%7883&/59=509%",<'(&#=>>;
,"#$<01-$0:?;0@1%7883&/59;0AA>$B
$$"*4884&-&$C$:$"*4883&//012D0E;
$$1%7884&-&$=/$:$F1%7883&//012D0E;
!!40!C!"#8867&H'3
!!,%0*$%V&40BHBUW1UBX'3
G
17Thursday, March 29, 2012
![Page 72: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/72.jpg)
Migrating and transforming state
• State may need to be transformed to work with the new program
! Transformation piggybacks on top of migration
17
-/0)1)2!$%-!1#-#3
1#-#!4"#00$%53old
-/0)1)2!7<#*!41#-#3
1#-#!4"#00$%53new
Xfgen tool•Automate migration code•Require programmer to write relevant xform code using high-level specs
17Thursday, March 29, 2012
![Page 73: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/73.jpg)
xfgen specs
18
18Thursday, March 29, 2012
![Page 74: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/74.jpg)
xfgen specs
• INIT tgt: { action }
! Initializes new variable or values of a new type
- tgt is a global/local variable, or a C type or a struct field
- action is C-like code for initializing it
18
18Thursday, March 29, 2012
![Page 75: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/75.jpg)
xfgen specs
• INIT tgt: { action }
! Initializes new variable or values of a new type
- tgt is a global/local variable, or a C type or a struct field
- action is C-like code for initializing it
• tgt " tgt: { action }
! Copies and transforms changed variables/values
- action may refer to old value when initializing the new one
18
18Thursday, March 29, 2012
![Page 76: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/76.jpg)
xfgen specs
• INIT tgt: { action }
! Initializes new variable or values of a new type
- tgt is a global/local variable, or a C type or a struct field
- action is C-like code for initializing it
• tgt " tgt: { action }
! Copies and transforms changed variables/values
- action may refer to old value when initializing the new one
• xfgen generates C code from these specs and integrates it with generated migration code
18
18Thursday, March 29, 2012
![Page 77: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/77.jpg)
Example 1
19
$%-!60976@%-3old$%-!,)-976@%-3
$%-!5)-976@%-new
19Thursday, March 29, 2012
![Page 78: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/78.jpg)
Example 1
19
$%-!60976@%-3old$%-!,)-976@%-3
$%-!5)-976@%-new
QHQJ!5)-976@%-Y!:!Z6@-!C![66*&Z681,/"&60976@%-'!=!.'3!A
QHQJ!,)-976@%-Y!:!Z6@-!C!7)$8$%5&Z681,/"&60976@%-'!=!.'3!A
xfgen spec
19Thursday, March 29, 2012
![Page 79: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/79.jpg)
Example 1
19
$%-!60976@%-3old$%-!,)-976@%-3
$%-!5)-976@%-new
QHQJ!5)-976@%-Y!:!Z6@-!C![66*&Z681,/"&60976@%-'!=!.'3!A
QHQJ!,)-976@%-Y!:!Z6@-!C!7)$8$%5&Z681,/"&60976@%-'!=!.'3!A
xfgen spec
9+4"!9D$-,@%)9-*#%,26*"95)-976@%-&'!:
!!42$!4681960976@%-!C!&42$4'!D$-,@%)9866D@09D)/9681&T60976@%-U'3
!!42$!4%);95)-976@%-!C!&42$4'!D$-,@%)9866D@09D)/9%);&T5)-976@%-U'3
!!4%);95)-976@%-!C![66*&4681960976@%-!=!.'3
A
9+4"!9D$-,@%)9-*#%,26*"9,)-976@%-&'!:!!H=$&5$&I")%$=H!A
generated code
19Thursday, March 29, 2012
![Page 80: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/80.jpg)
Example 2
20
$:%;";<!42$!1#-#3
1$3=,$!8$,-!:
!!42$!D)/3
!!1#-#!4(#83
!!1$3=,$!8$,-!4%)X-3
A!4"#00$%53
old new
$:%;";<!*+2>!1#-#3
1$3=,$!8$,-!:
!!42$!D)/3
!!1#-#!4(#83
!!42$!7$13
!!1$3=,$!8$,-!40%)X-3
A!4"#00$%53
20Thursday, March 29, 2012
![Page 81: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/81.jpg)
Example 2
20
$:%;";<!1#-#!\]!$:%;";<!1#-#Y!:!Z6@-!C!&*+2>'Z$%3!A
QHQJ!1$3=,$!8$,->7$1!:!Z6@-!C!\+3!A
,-*@7-!8$,->%)X-!\]!,-*@7-!8$,->0%)X-
xfgen spec
$:%;";<!42$!1#-#3
1$3=,$!8$,-!:
!!42$!D)/3
!!1#-#!4(#83
!!1$3=,$!8$,-!4%)X-3
A!4"#00$%53
old new
$:%;";<!*+2>!1#-#3
1$3=,$!8$,-!:
!!42$!D)/3
!!1#-#!4(#83
!!42$!7$13
!!1$3=,$!8$,-!40%)X-3
A!4"#00$%53
20Thursday, March 29, 2012
![Page 82: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/82.jpg)
Example 3
21
1#-#!44"#00$%53old ,-*@7-!8$,-!:
!!$%-!D)/3
!!1#-#!4(#83
!!,-*@7-!8$,-!4%)X-3
A!4"#00$%53
new
21Thursday, March 29, 2012
![Page 83: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/83.jpg)
Example 3
21
1#-#!44"#00$%53old ,-*@7-!8$,-!:
!!$%-!D)/3
!!1#-#!4(#83
!!,-*@7-!8$,-!4%)X-3
A!4"#00$%53
new
"#00$%5!\]!"#00$%5!:
!!42$!D)/3
!!Z6@-!C!H^LL3
!!<+3&D)/!C!_3!D)/!`!Z681,/"&76%a59,$b)'3!D)/cc'!:
!!!!4<!&Z$%dD)/e!FC!_'!:
!!!!!!Z%);-/0)&1$3=,$!8$,-'!47@*!C
!!!!!!!!"#8867&14?;+<&Z%);-/0)&1$3=,$!8$,-'''3
!!!!!!7@*\]D)/!C!D)/3
!!!!!!7@*\](#8!C!Z$%dD)/e3
!!!!!!7@*\]%)X-!C!Z6@-3
A!!A!A xfgen spec
21Thursday, March 29, 2012
![Page 84: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/84.jpg)
xfgen C extensions
• Convenient syntax to hide complexity of dealing with two versions:
! $out, $in - address of input/output of rule
! $newsym(name), $oldsym(name) - return address of new/old version variable or function
! $newtype(type name), $oldtype(type name) - refer to the new or old types from xfgen code
! $xform(old_type, new_type) - returns the address of a function to transform between two types
22
22Thursday, March 29, 2012
![Page 85: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/85.jpg)
vsftpd transformation example
standalone.c/s_p_ip_count_hash -> standalone.c/s_p_ip_count_hash: {
$oldtype(struct hash) *in_hash = ($oldtype(struct hash) *)$in;
int i;
$out = ($newtype(struct hash) *)hash_alloc(256, sizeof($newtype(struct in6_addr)),
sizeof(unsigned int), $newsym(hash_ip));
/* for each bucket */
for (i=0; i<in_hash->buckets; i++) {
$oldtype(struct hash_node) *old_p_node = in_hash->p_nodes[i];
/* for each bucket element, rehash */
while(old_p_node != NULL) {
void *ip = xform_ip_address(old_p_node->p_key);
hash_add_entry(($newtype(struct hash) *)$out, ip, old_p_node->p_value);
free(ip);
old_p_node = old_p_node->p_next;
}
}
}
23
23Thursday, March 29, 2012
![Page 86: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/86.jpg)
Using Kitsune and xfgen
24
.c.c
.ckitc gcc -c
-fPIC
-fvis...=
gcc
-sharedxfgen
.c.c
.ts
.xf
.c.c
.c
.c.c
.o
.so
st.c rt.a
.c.c
.ts
(old)
24Thursday, March 29, 2012
![Page 87: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/87.jpg)
Using Kitsune and xfgen
24
• Transformation specs in per-update .xf file• Linked in with new version and invoked by D$-,@%)9169#@-6"$5*#-)&' and PQRSNJK9LIMNL&'
.c.c
.ckitc gcc -c
-fPIC
-fvis...=
gcc
-sharedxfgen
.c.c
.ts
.xf
.c.c
.c
.c.c
.o
.so
st.c rt.a
.c.c
.ts
(old)
24Thursday, March 29, 2012
![Page 88: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/88.jpg)
Annotations
25
25Thursday, March 29, 2012
![Page 89: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/89.jpg)
Annotations
• To generate traversal code, we look at the types
25
25Thursday, March 29, 2012
![Page 90: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/90.jpg)
Annotations
• To generate traversal code, we look at the types
• Add annotations to help code generator
! KS_PTRARRAY(S) – size of pointed-to array
25
1$3=,$!f@g)*!:
!!42$!%3
!!1#-#!4JKLMNOPOOPQ<1>!f3
A3
25Thursday, March 29, 2012
![Page 91: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/91.jpg)
Annotations
• To generate traversal code, we look at the types
• Add annotations to help code generator
! KS_PTRARRAY(S) – size of pointed-to array
! KS_ARRAY(S) – size of array
25
1$3=,$!$%8$%)f@2!:
!!42$!%3
!!1#-#!JKLPOOPQ<1>!fde3
A3
25Thursday, March 29, 2012
![Page 92: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/92.jpg)
Annotations
• To generate traversal code, we look at the types
• Add annotations to help code generator
! KS_PTRARRAY(S) – size of pointed-to array
! KS_ARRAY(S) – size of array
! KS_OPAQUE – non-traversed pointer
25
25Thursday, March 29, 2012
![Page 93: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/93.jpg)
Annotations
• To generate traversal code, we look at the types
• Add annotations to help code generator
! KS_PTRARRAY(S) – size of pointed-to array
! KS_ARRAY(S) – size of array
! KS_OPAQUE – non-traversed pointer
! KS_FORALL(@t) – polymorphism intro.
! KS_VAR(@t) – refer to type var
! KS_INST(typ) – instantiate poly. type
25
25Thursday, March 29, 2012
![Page 94: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/94.jpg)
Polymorphic types
26
$;)%*#$;@AB'
1$3=,$'8$,-!:
!!!J!4(#83!
!!!8$,-`J]!4%)X-3
A! C++
1$3=,$'8$,-!:
!!!9+4"!4(#83!
!!!1$3=,$!8$,-!4%)X-3
A3C
26Thursday, March 29, 2012
![Page 95: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/95.jpg)
Polymorphic types
26
$;)%*#$;@AB'
1$3=,$'8$,-!:
!!!J!4(#83!
!!!8$,-`J]!4%)X-3
A! C++
1$3=,$!8$,-!:
!!9+4"!JKLRPO<S->!4(#83
!!1$3=,$!8$,-!JKLTUKN<S->!4%)X-3
A!JKL!VOPWW<S->3
annotated C
1$3=,$'8$,-!:
!!!9+4"!4(#83!
!!!1$3=,$!8$,-!4%)X-3
A3C
26Thursday, March 29, 2012
![Page 96: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/96.jpg)
Polymorphic types
26
$;)%*#$;@AB'
1$3=,$'8$,-!:
!!!J!4(#83!
!!!8$,-`J]!4%)X-3
A! C++
1$3=,$!8$,-!:
!!9+4"!JKLRPO<S->!4(#83
!!1$3=,$!8$,-!JKLTUKN<S->!4%)X-3
A!JKL!VOPWW<S->3
annotated C
• Given such a definition, xfgen can generate transformers for instances of type ,-*@7-!8$,-
! Given ,-*@7-!8$,-!hO9QHOJ&1#-#'!48, can apply transformation to generic type:
! 1#-#!\]!1#-#!:!Z6@-!C!>>>!Z$%!>>>!A
1$3=,$'8$,-!:
!!!9+4"!4(#83!
!!!1$3=,$!8$,-!4%)X-3
A3C
26Thursday, March 29, 2012
![Page 97: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/97.jpg)
Benchmark programs
• Very secure FTP daemon - file transfers, securely
• Redis - key/value server
• Tor - anonymous routing daemon
• Memcached - caching daemon
• Icecast - streaming music server
27
27Thursday, March 29, 2012
![Page 98: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/98.jpg)
!"#$F"&'&"(
)*+,-.*C,0##"$*$1"#
2.3*$,4"1#$-
51$-6#,!*&&-
7B9,#:F*#-B"F+-
!"#"$%&'()ABCD)C#E'F0%#1CB
;*<"F1$=>"B>51$-6#,>C?*#9,->*F,>1#>$?,>1#1$1*&>@,F-1"#
!?*#9,->B"F>A#"F$>B>C#$F6-1"#>D,$,C$1"#>A=-$,+
![Page 99: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/99.jpg)
Steady state performance overhead
28
• Overall: -2.18% to 1.79% overhead (in the noise)
• Also: UpStare (different platform): 4.9% and 7.4% for vsftpd
28Thursday, March 29, 2012
![Page 100: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/100.jpg)
Update times
29
• < 40ms in all cases but icecast
29Thursday, March 29, 2012
![Page 101: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/101.jpg)
Update times, by state size
34
• Key difference is data representation: arrays vs. nested objects with pointers to static memory
!"
!#"
!$""
!$#"
!%""
!" !%""" !&""" !'""" !(""" !$"""" !$%""" !$&"""
)*+,-.!-/0.!1023
4!5.678,9).!*,/:2
:.+/2!8"7;8$
:.+/2!8$7;8%
:.+/2!8%7;8<
:.+/2!8<7;8&
:.+/270=+!8"7;8$
:.+/270=+!8$7;8%
:.+/270=+!8%7;8<
:.+/270=+!8<7;8&
0.0>,>?.+!8"7;8$
0.0>,>?.+!8$7;8%
Monday, October 15, 12 30
![Page 102: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/102.jpg)
Conclusions
• Kitsune treats DSU as a program feature! Deliberately makes update semantics apparent to
programmer
! But, programmers only need to “pay for what they use”
- Effort for changing program roughly corresponds to effort in thinking about DSU
• Gives C programmers the control they need
• Results promising! Applied to 35 updates of 5 real applications
! Most easy-to-use, efficient, and flexible C DSU system to date
39
Monday, October 15, 12
![Page 103: Software runs the world · Desktops, laptops, routers, smartphones, tablets! Coffee makers, TVs, energy meters, medical devices 2 Monday, October 15, 12. Software runs the world •](https://reader033.vdocuments.us/reader033/viewer/2022060609/60606631d0d1886ca92e1002/html5/thumbnails/103.jpg)
Questions?
Monday, October 15, 12