YOU CAN BE A
KERNEL HACKER
by Julia Evans
titrcmbr
wte.o/0k
gtu.o/vs
ihbcmjn
jn.a
vsc
WHERE WE'RE GOING
1. WTF is a kernel?
2. Why should you care?
3. Strategies for getting started with kernel programming
1....
1. WTF IS A KERNEL?
KERNELS ARE
JUST CODE!
When I go to http://google.com, kernel code runs for:
Typing in the address
Handling every network packet
Writing history ...
HOW TO CALL
KERNEL CODE
System calls!!!
SYSTEM CALLS:
A KERNEL'S API
open a file! (o e )
pn
start a program! (e e v )
xce
change a file's permissions! (c m d
ho)
WHAT WE'VE LEARNED
Your kernel does tons of stuff
Programs tell it what to do using system calls
2. WHY SHOULD YOU
CARE?
People will think you're a badass
You'll become a better programmer
USUAL STRATEGIES
Read LKML
Submit patches
Linus yells at you for being dumb
Cry
OUR STRATEGIES
1.
2.
3.
4.

Read some kernel code!
Write a kernel module!
Write your own operating system
Do an internship
3. STRATEGIES FOR
GETTING STARTED
STRATEGY 1:
READ SOME
KERNEL CODE
BUT THAT'S
TERRIFYING!!!!!
Pick one system call and try to understand one thing about it
Linux kernel: LXR, h t : / i e r p c m
tp/lvge.o
OS X kernel: h t : / p n o r e a p e c m
tp/oesuc.pl.o
STRATEGY 2:
WRITE A
LINUX KERNEL MODULE
DEMO DEMO DEMO
OKAY NO MORE
CODE I PROMISE
STRATEGY 3:
WRITE YOUR OWN OS
Not as scary as it sounds. I promise!
STRATEGY 4:
DO A LINUX KERNEL
INTERNSHIP
LINUX INTERNSHIPS
Google Summer of Code
GNOME Outreach Program for Women
QUESTIONS?
ht:/ihbcmjn
tp/gtu.o/vs
ht:/wte.o/0k
tp/titrcmbr
jlajn.a
ui@vsc
Resources:
ht:/i.ykrefn
tp/btl/enlu
You can be a kernel hacker
You can be a kernel hacker
You can be a kernel hacker
You can be a kernel hacker
You can be a kernel hacker
You can be a kernel hacker
You can be a kernel hacker
Upcoming SlideShare
Loading in …5
×

You can be a kernel hacker

374 views
241 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
374
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

You can be a kernel hacker

  1. 1. YOU CAN BE A KERNEL HACKER by Julia Evans titrcmbr wte.o/0k gtu.o/vs ihbcmjn jn.a vsc
  2. 2. WHERE WE'RE GOING 1. WTF is a kernel? 2. Why should you care? 3. Strategies for getting started with kernel programming 1. Read some kernel code! 2. Write a kernel module! 3. Write your own operating system 4. Do an internship
  3. 3. 1. WTF IS A KERNEL?
  4. 4. KERNELS ARE JUST CODE!
  5. 5. When I go to http://google.com, kernel code runs for: Typing in the address Handling every network packet Writing history files to disk Allocating memory Communicating with the graphics card
  6. 6. HOW TO CALL KERNEL CODE System calls!!!
  7. 7. SYSTEM CALLS: A KERNEL'S API open a file! (o e ) pn start a program! (e e v ) xce change a file's permissions! (c m d ho)
  8. 8. WHAT WE'VE LEARNED Your kernel does tons of stuff Programs tell it what to do using system calls
  9. 9. 2. WHY SHOULD YOU CARE? People will think you're a badass You'll become a better programmer
  10. 10. USUAL STRATEGIES Read LKML Submit patches Linus yells at you for being dumb Cry
  11. 11. OUR STRATEGIES 1. 2. 3. 4. Read some kernel code! Write a kernel module! Write your own operating system Do an internship
  12. 12. 3. STRATEGIES FOR GETTING STARTED
  13. 13. STRATEGY 1: READ SOME KERNEL CODE
  14. 14. BUT THAT'S TERRIFYING!!!!! Pick one system call and try to understand one thing about it
  15. 15. Linux kernel: LXR, h t : / i e r p c m tp/lvge.o OS X kernel: h t : / p n o r e a p e c m tp/oesuc.pl.o
  16. 16. STRATEGY 2: WRITE A LINUX KERNEL MODULE DEMO DEMO DEMO
  17. 17. OKAY NO MORE CODE I PROMISE
  18. 18. STRATEGY 3: WRITE YOUR OWN OS Not as scary as it sounds. I promise!
  19. 19. STRATEGY 4: DO A LINUX KERNEL INTERNSHIP
  20. 20. LINUX INTERNSHIPS Google Summer of Code GNOME Outreach Program for Women
  21. 21. QUESTIONS? ht:/ihbcmjn tp/gtu.o/vs ht:/wte.o/0k tp/titrcmbr jlajn.a ui@vsc Resources: ht:/i.ykrefn tp/btl/enlu

×