Slide 1

Slide 1 text

Hacking the LINUX KERNEL Bevezetés Kurusa Levente Szabad Szoftver Konferencia Szeged, Szent-Györgyi Albert Agóra, 2013. november 29. 15:00

Slide 2

Slide 2 text

Egy kis történelem... ● Linus Torvalds, a finn tanuló 1991-ben kezdi el fejleszteni ● UNIX klón ● Eredetileg nem akarták portolhatónak

Slide 3

Slide 3 text

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 elősegítése

Slide 4

Slide 4 text

És milyen is a Linux? ● Monolitikus ● Moduláris ● Szabad szoftver!

Slide 5

Slide 5 text

A kernel gyökere

Slide 6

Slide 6 text

Fejlesztési statisztikák ● 2005 óta több mint 10000 fejlesztő több, mint 1000 cégből ● 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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Fejlesztési lehetősé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.

Slide 10

Slide 10 text

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!

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Patch készítése II. ● 'git commit -a' elmenti a változásokat

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

Patch elküldése ● SMTP szerver beállítása ● ● ● Maintainer lista megkeresése: 'scripts/get_maintainer.pl ' ● ● ● 'git send-email --to=$maintainer --cc=”Levente Kurusa ” '

Slide 15

Slide 15 text

Kezdődhet az örömködés!

Slide 16

Slide 16 text

Posztszkriptum ● Remélhetőleg ezután aki hazamegy, csinál egy hasonló patchet! :-) ● Utána már elmondhatja, hogy kernel hacker!

Slide 17

Slide 17 text

Köszönöm a figyelmet! ● Kernel panic – not syncing: Reached end of presentation.