~/talk

Bring me to life; A tale of dyld, and how iOS launches your app

Talkat iOS Conf SG 2020 · on Thursday, 2020-01-30· [ios]
slides:none on file

Explains exactly what dyld does before main: parses Mach-O headers, mmaps text/data/linkedit pages, verifies per-page code signatures, recursively loads up to 400 dylibs, and performs rebasing and binding (fixing pointers via writable stubs) before registering Objective‑C runtime tables and running static initializers. Uses the print_statistics env var to show real timings (example run shows 1.5 seconds startup vs Apple’s goal of 400 milliseconds) and reports a case where switching a library to static reduced startup by 40%.

AI-written summary · about

  1. 0:00Introduction
  2. 2:40Agenda
  3. 3:39What is macOS
  4. 4:44What are frameworks
  5. 5:19What is inside dyld
  6. 8:03macro headers
  7. 9:16macro header
  8. 10:52virtual memory
  9. 13:23copyonwrite
  10. 16:25Security
  11. 18:17Fun part
  12. 20:56What does dyld do
  13. 22:23Memory mapping
  14. 23:47Fixing pointers
  15. 24:45Rebasing
  16. 25:36Calling a function
  17. 25:51Function assembly
  18. 26:49Binding
  19. 27:45How does this work
  20. 28:56Setting up ObjectiveC Runtime
  21. 30:03Static Initializers
  22. 30:36C Initializers
  23. 30:51Summary
  24. 31:25Tips
  25. 31:40Profile
  26. 31:55Print Statistics
  27. 33:06Should you profile warm or cold launches
  28. 34:03Dynamic vs static libraries
  29. 35:18Extensions
  30. 35:44Use Case
  31. 35:57Reverse Engineering
  32. 36:09Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.