際際滷

際際滷Share a Scribd company logo
Hacking the
LINUX KERNEL
Bevezet辿s
Kurusa Levente
<levex@linux.com>
Szabad Szoftver Konferencia Szeged, Szent-Gy旦rgyi Albert Ag坦ra, 2013. november 29. 15:00
Egy kis t旦rt辿nelem...
 Linus Torvalds, a finn tanul坦 1991-ben kezdi el
fejleszteni
 UNIX kl坦n
 Eredetileg nem akart叩k portolhat坦nak
Mi is az a kernel 辿s minek is kell?
 Az oper叩ci坦s rendszer magja
 Feladatai:
 A rendszer inicializ叩l叩sa a haszn叩lathoz.
 Az adatok alapvet v辿delme.
 A fejleszt辿s elseg鱈t辿se
s milyen is a Linux?
 Monolitikus
 Modul叩ris
 Szabad szoftver!
A kernel gy旦kere
Fejleszt辿si statisztik叩k
 2005 坦ta t旦bb mint 10000 fejleszt t旦bb, mint 1000
c辿gbl
 Minden 70 nap 炭j release, 2012-ben m辿g 80 nap volt.
 Nagyj叩b坦l 10000 m坦dos鱈t叩s kiad叩sonk辿nt
 Minden 坦r叩ban 7.14 v叩ltoz叩s, 2012-ben m辿g csak 6.71
volt ez a sz叩m
K坦d statisztik叩k
 44.000 f叩jl
 18.000.000 sornyi k坦d
 Programoz叩si nyelvek:
 96.08% ANSI-C
 3.63 % Assembly
 0.10 % Perl
Haszn叩lati ter端letek
 Android eszk旦z旦k (Napi 1.3 milli坦)
 Okos t辿v辿k (Napi 700.000)
 P辿nz端gyek (80%)
 Szupersz叩m鱈t坦g辿pek (98%)
s:
 Felh (Google, Facebook, Amazon)
 V辿delmi rendszerek
 Nukle叩ris tengeralattj叩r坦k
 Vonatok, l辿gi ir叩ny鱈t叩s
Fejleszt辿si lehets辿gek
 Ez a legnagyobb k旦z旦ss辿gi projekt!
 A kernelhekkerek m叩r kital叩ltak egy egyszer撤,
de hasznos utat.
 'scripts/checkpatch.pl'
 Ezzel a szkripttel gyakori k坦dst鱈lus hib叩kat
lehet tal叩lni.
Staging driverek
 Ezek az apr坦 startup c辿gek f辿lk辿sz driverei
 Tele vannak k坦dst鱈lus hib叩kkal
 A checkpatch.pl f叩jl megkeresi 辿s azonos鱈tja a
hib叩kat.
 Az 旦nk辿ntes fejleszt kijav鱈tja :-) (patchel辿s)
 s m叩ris hozz叩j叩rult a Linux siker辿hez!
Patch k辿sz鱈t辿se I.
 git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-
next.git
 'drivers/staging' mappa felder鱈t辿se
 Ebben a mapp叩ban egy f叩jl kiv叩laszt叩sa
 'scripts/checkpatch.pl -f <f叩jl el辿r辿si helye>
Patch k辿sz鱈t辿se II.
 'git commit -a' elmenti a v叩ltoz叩sokat
Patch k辿sz鱈t辿se III.
 'git format-patch -1 ' elk辿sz鱈t egy f叩jlt aminek a
nev辿t ki is dobja stdout-ra.
 A k旦vetkez l辿p辿s a patch elk端ld辿se.
Patch elk端ld辿se
 SMTP szerver be叩ll鱈t叩sa


 Maintainer lista megkeres辿se:
'scripts/get_maintainer.pl <patchf叩jl>'


 'git send-email --to=$maintainer --cc=Levente
Kurusa <levex@linux.com> <patchf叩jl>'
Kezddhet az 旦r旦mk旦d辿s!
Posztszkriptum
 Rem辿lhetleg ezut叩n aki hazamegy, csin叩l
egy hasonl坦 patchet! :-)
 Ut叩na m叩r elmondhatja, hogy kernel hacker!
K旦sz旦n旦m a figyelmet!
 Kernel panic  not syncing: Reached end of
presentation.

More Related Content

Linux Kernel - Bevezetes

  • 1. Hacking the LINUX KERNEL Bevezet辿s Kurusa Levente <levex@linux.com> Szabad Szoftver Konferencia Szeged, Szent-Gy旦rgyi Albert Ag坦ra, 2013. november 29. 15:00
  • 2. Egy kis t旦rt辿nelem... Linus Torvalds, a finn tanul坦 1991-ben kezdi el fejleszteni UNIX kl坦n Eredetileg nem akart叩k portolhat坦nak
  • 3. Mi is az a kernel 辿s minek is kell? Az oper叩ci坦s rendszer magja Feladatai: A rendszer inicializ叩l叩sa a haszn叩lathoz. Az adatok alapvet v辿delme. A fejleszt辿s elseg鱈t辿se
  • 4. s milyen is a Linux? Monolitikus Modul叩ris Szabad szoftver!
  • 6. Fejleszt辿si statisztik叩k 2005 坦ta t旦bb mint 10000 fejleszt t旦bb, mint 1000 c辿gbl Minden 70 nap 炭j release, 2012-ben m辿g 80 nap volt. Nagyj叩b坦l 10000 m坦dos鱈t叩s kiad叩sonk辿nt Minden 坦r叩ban 7.14 v叩ltoz叩s, 2012-ben m辿g csak 6.71 volt ez a sz叩m
  • 7. K坦d statisztik叩k 44.000 f叩jl 18.000.000 sornyi k坦d Programoz叩si nyelvek: 96.08% ANSI-C 3.63 % Assembly 0.10 % Perl
  • 8. Haszn叩lati ter端letek Android eszk旦z旦k (Napi 1.3 milli坦) Okos t辿v辿k (Napi 700.000) P辿nz端gyek (80%) Szupersz叩m鱈t坦g辿pek (98%) s: Felh (Google, Facebook, Amazon) V辿delmi rendszerek Nukle叩ris tengeralattj叩r坦k Vonatok, l辿gi ir叩ny鱈t叩s
  • 9. Fejleszt辿si lehets辿gek Ez a legnagyobb k旦z旦ss辿gi projekt! A kernelhekkerek m叩r kital叩ltak egy egyszer撤, de hasznos utat. 'scripts/checkpatch.pl' Ezzel a szkripttel gyakori k坦dst鱈lus hib叩kat lehet tal叩lni.
  • 10. Staging driverek Ezek az apr坦 startup c辿gek f辿lk辿sz driverei Tele vannak k坦dst鱈lus hib叩kkal A checkpatch.pl f叩jl megkeresi 辿s azonos鱈tja a hib叩kat. Az 旦nk辿ntes fejleszt kijav鱈tja :-) (patchel辿s) s m叩ris hozz叩j叩rult a Linux siker辿hez!
  • 11. Patch k辿sz鱈t辿se I. git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux- next.git 'drivers/staging' mappa felder鱈t辿se Ebben a mapp叩ban egy f叩jl kiv叩laszt叩sa 'scripts/checkpatch.pl -f <f叩jl el辿r辿si helye>
  • 12. Patch k辿sz鱈t辿se II. 'git commit -a' elmenti a v叩ltoz叩sokat
  • 13. Patch k辿sz鱈t辿se III. 'git format-patch -1 ' elk辿sz鱈t egy f叩jlt aminek a nev辿t ki is dobja stdout-ra. A k旦vetkez l辿p辿s a patch elk端ld辿se.
  • 14. Patch elk端ld辿se SMTP szerver be叩ll鱈t叩sa Maintainer lista megkeres辿se: 'scripts/get_maintainer.pl <patchf叩jl>' 'git send-email --to=$maintainer --cc=Levente Kurusa <levex@linux.com> <patchf叩jl>'
  • 16. Posztszkriptum Rem辿lhetleg ezut叩n aki hazamegy, csin叩l egy hasonl坦 patchet! :-) Ut叩na m叩r elmondhatja, hogy kernel hacker!
  • 17. K旦sz旦n旦m a figyelmet! Kernel panic not syncing: Reached end of presentation.