Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The first milliseconds...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Cristian Prieto
August 31, 2015
Programming
0
24
The first milliseconds...
What happens when I run my application
Cristian Prieto
August 31, 2015
Tweet
Share
More Decks by Cristian Prieto
See All by Cristian Prieto
Docker, Containers and Cats...
cprieto
1
53
Other Decks in Programming
See All in Programming
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
700
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
450
AI & Enginnering
codelynx
0
110
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.3k
CSC307 Lecture 09
javiergs
PRO
1
840
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
270
Fragmented Architectures
denyspoltorak
0
150
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
The SEO identity crisis: Don't let AI make you average
varn
0
240
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
120
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
310
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
61
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
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