Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The first milliseconds...
Search
Cristian Prieto
August 31, 2015
Programming
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The first milliseconds...
What happens when I run my application
Cristian Prieto
August 31, 2015
More Decks by Cristian Prieto
See All by Cristian Prieto
Docker, Containers and Cats...
cprieto
1
58
Other Decks in Programming
See All in Programming
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
210
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
2
400
sbt 2.0: takeoff
eed3si9n
0
160
APNsからLive Activityを開始する話
yumnumm
0
170
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
260
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
640
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
phperだってパンチカードでコーディングしたい
o0h
PRO
0
340
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
The Cult of Friendly URLs
andyhume
79
7k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
sira's awesome portfolio website redesign presentation
elsirapls
0
460
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Six Lessons from altMBA
skipperchong
29
4.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
The first milliseconds Or what happens before the ‘hello world’
I promise unicorns and cats
Who am I? Cristian Prieto (@cprieto)
Why? What is all about?
None
You will see… • Lot’s of unrelated cat pictures (and
maybe unicorns) • Hexadecimal notation • Debugger commands • A little of .NET code • ASSEMBLER!!!
It is simple…
The “classic” ‘Hello World’
We can compile this with GCC (the compiler)
Yay! we now have an executable!
So… the compiler generates executable code, right?
Not exactly
• Compiler: Compiles the code into assembler code • Assembler:
assemble the code into object format • Linker: Links the code with libraries • Loader: Loads the program for execution
None
• Compiler/assembler produce an object file • Object files are
consumed by the linker • The linker produces image files • An image file can be an executable, a static library or a shared (dynamic) library • The loader consumes image files
A 64 bit ELF Executable
What?! an ELF?!
Every OS has their own binary file format.
• Windows uses PE+ (which is a variant of COFF)
• MacOSX and iOS use Mach-O • Almost everything else (Linux, BSDs, Android, blah blah blah) use ELF
We will concentrate in “Windows” now
Time for history…
We had DOS…
Fitting memory…
The big jump…
PE was released for Windows NT
None
This program cannot be run in DOS mode
What about real Windows apps?
I thought this talk was about .NET
As part of the IL standard we generate PE files