You can be a kernel hacker
-
Upload
jvans -
Category
Technology
-
view
276 -
download
0
description
Transcript of You can be a kernel hacker
![Page 1: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/1.jpg)
YOU CAN BE A KERNEL HACKER
by Julia Evans
twitter.com/b0rkgithub.com/jvns
jvns.ca
![Page 2: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/2.jpg)
![Page 3: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/3.jpg)
WHERE WE'RE GOING1. 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 system4. Do an internship
![Page 4: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/4.jpg)
1. WTF IS A KERNEL?
![Page 5: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/5.jpg)
KERNELS ARE JUST CODE!
![Page 6: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/6.jpg)
When I go to http://google.com, kernel code runs for:
Typing in the addressHandling every network packetWriting history files to diskAllocating memoryCommunicating with the graphics card
![Page 7: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/7.jpg)
HOW TO CALL KERNEL CODE
System calls!!!
![Page 8: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/8.jpg)
SYSTEM CALLS: A KERNEL'S API
open a file! (open)start a program! (execve)change a file's permissions! (chmod)
![Page 9: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/9.jpg)
WHAT WE'VE LEARNEDYour kernel does tons of stuffPrograms tell it what to do using system calls
![Page 10: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/10.jpg)
2. WHY SHOULD YOUCARE?
People will think you're a badassYou'll become a better programmer
![Page 11: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/11.jpg)
USUAL STRATEGIESRead LKMLSubmit patchesLinus yells at you for being dumbCry
![Page 12: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/12.jpg)
OUR STRATEGIES1. Read some kernel code!2. Write a kernel module!3. Write your own operating system4. Do an internship
![Page 13: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/13.jpg)
3. STRATEGIES FORGETTING STARTED
![Page 14: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/14.jpg)
STRATEGY 1: READ SOME
KERNEL CODE
![Page 15: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/15.jpg)
BUT THAT'STERRIFYING!!!!!
Pick one system call and try to understand one thing about it
![Page 16: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/16.jpg)
Linux kernel: LXR,
OS X kernel:
http://livegrep.comhttp://opensource.apple.com
![Page 17: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/17.jpg)
![Page 18: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/18.jpg)
![Page 19: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/19.jpg)
STRATEGY 2: WRITE A
LINUX KERNEL MODULEDEMO DEMO DEMO
![Page 20: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/20.jpg)
![Page 21: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/21.jpg)
![Page 22: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/22.jpg)
![Page 23: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/23.jpg)
![Page 24: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/24.jpg)
OKAY NO MORE CODE I PROMISE
![Page 25: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/25.jpg)
STRATEGY 3: WRITE YOUR OWN OS
Not as scary as it sounds. I promise!
![Page 26: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/26.jpg)
STRATEGY 4: DO A LINUX KERNEL
INTERNSHIP
![Page 27: You can be a kernel hacker](https://reader036.fdocuments.us/reader036/viewer/2022081413/545cecdbb0af9fa42c8b4a38/html5/thumbnails/27.jpg)
LINUX INTERNSHIPSGoogle Summer of CodeGNOME Outreach Program for Women