SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
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 elősegí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é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
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 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.
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>'
Kezdődhet az örömködés!
Posztszkriptum
● Remélhetőleg 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.

Más contenido relacionado

Similar a Linux Kernel - Bevezetes

CoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdábanCoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdábanFerenc Szalai
 
A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...
A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...
A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...Ferenc Szalai
 
Nyílt forráskód a Fővárosi Bíróságon
Nyílt forráskód a Fővárosi BíróságonNyílt forráskód a Fővárosi Bíróságon
Nyílt forráskód a Fővárosi BíróságonNorbert Laky
 
PHP alkalmazások minőségbiztosítása
PHP alkalmazások minőségbiztosításaPHP alkalmazások minőségbiztosítása
PHP alkalmazások minőségbiztosításaFerenc Kovács
 
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti ÖnkormányzatOSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti ÖnkormányzatF L
 
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti ÖnkormányzatOSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti ÖnkormányzatF L
 
Grid és adattárolás
Grid és adattárolásGrid és adattárolás
Grid és adattárolásFerenc Szalai
 
Syslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekSyslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekJános Pásztor
 
SUSE Linux Enterprise 11 admin 2
SUSE Linux Enterprise 11 admin 2SUSE Linux Enterprise 11 admin 2
SUSE Linux Enterprise 11 admin 2Kálmán Kéménczy
 
Forráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analíziseForráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analíziseDániel Stein
 
A világ változik, változik a Mozilla is
A világ változik, változik a Mozilla isA világ változik, változik a Mozilla is
A világ változik, változik a Mozilla isKálmán "KAMI" Szalai
 
Objektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanObjektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanAntal Orcsik
 
Android fejlesztés
Android fejlesztésAndroid fejlesztés
Android fejlesztésOpen Academy
 
GN4-UP2U update - Moodlemoot19
GN4-UP2U update - Moodlemoot19GN4-UP2U update - Moodlemoot19
GN4-UP2U update - Moodlemoot19Mihály Mészáros
 
Firefox Thunderbird Seamonkey - felpörgetve!
Firefox Thunderbird Seamonkey - felpörgetve!Firefox Thunderbird Seamonkey - felpörgetve!
Firefox Thunderbird Seamonkey - felpörgetve!Kálmán "KAMI" Szalai
 

Similar a Linux Kernel - Bevezetes (20)

CoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdábanCoLinux - avagy két dudás egy csárdában
CoLinux - avagy két dudás egy csárdában
 
A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...
A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...
A ClusterGrid rendszer - avagy hogyan üzemeltessünk, több mint 1000 csomópont...
 
Nyílt forráskód a Fővárosi Bíróságon
Nyílt forráskód a Fővárosi BíróságonNyílt forráskód a Fővárosi Bíróságon
Nyílt forráskód a Fővárosi Bíróságon
 
PHP alkalmazások minőségbiztosítása
PHP alkalmazások minőségbiztosításaPHP alkalmazások minőségbiztosítása
PHP alkalmazások minőségbiztosítása
 
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti ÖnkormányzatOSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
 
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti ÖnkormányzatOSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
OSF.hu - Önkormányzat FLOSS alapokon – Törökbálinti Önkormányzat
 
SZTAKI presentation
SZTAKI presentationSZTAKI presentation
SZTAKI presentation
 
Grid és adattárolás
Grid és adattárolásGrid és adattárolás
Grid és adattárolás
 
Linux alapok
Linux alapokLinux alapok
Linux alapok
 
Syslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekSyslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknek
 
SUSE Linux Enterprise 11 admin 2
SUSE Linux Enterprise 11 admin 2SUSE Linux Enterprise 11 admin 2
SUSE Linux Enterprise 11 admin 2
 
Forráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analíziseForráskódtárak gráfalapú statikus analízise
Forráskódtárak gráfalapú statikus analízise
 
A világ változik, változik a Mozilla is
A világ változik, változik a Mozilla isA világ változik, változik a Mozilla is
A világ változik, változik a Mozilla is
 
Diagram és barcode
Diagram és barcodeDiagram és barcode
Diagram és barcode
 
Objektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatbanObjektum-orinetált mérések a gyakorlatban
Objektum-orinetált mérések a gyakorlatban
 
Alumni Release Process
Alumni Release ProcessAlumni Release Process
Alumni Release Process
 
Android fejlesztés
Android fejlesztésAndroid fejlesztés
Android fejlesztés
 
A Mozilla nem csak Firefox
A Mozilla nem csak FirefoxA Mozilla nem csak Firefox
A Mozilla nem csak Firefox
 
GN4-UP2U update - Moodlemoot19
GN4-UP2U update - Moodlemoot19GN4-UP2U update - Moodlemoot19
GN4-UP2U update - Moodlemoot19
 
Firefox Thunderbird Seamonkey - felpörgetve!
Firefox Thunderbird Seamonkey - felpörgetve!Firefox Thunderbird Seamonkey - felpörgetve!
Firefox Thunderbird Seamonkey - felpörgetve!
 

Más de Levente Kurusa

Hacking the Linux Kernel - An Introduction
Hacking the Linux Kernel - An IntroductionHacking the Linux Kernel - An Introduction
Hacking the Linux Kernel - An IntroductionLevente Kurusa
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentLevente Kurusa
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Levente Kurusa
 
How is the Fedora Kernel different?
How is the Fedora Kernel different?How is the Fedora Kernel different?
How is the Fedora Kernel different?Levente Kurusa
 
Linux Desktop: When is our year?
Linux Desktop: When is our year?Linux Desktop: When is our year?
Linux Desktop: When is our year?Levente Kurusa
 
Let's write a Debugger!
Let's write a Debugger!Let's write a Debugger!
Let's write a Debugger!Levente Kurusa
 

Más de Levente Kurusa (6)

Hacking the Linux Kernel - An Introduction
Hacking the Linux Kernel - An IntroductionHacking the Linux Kernel - An Introduction
Hacking the Linux Kernel - An Introduction
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel Development
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!
 
How is the Fedora Kernel different?
How is the Fedora Kernel different?How is the Fedora Kernel different?
How is the Fedora Kernel different?
 
Linux Desktop: When is our year?
Linux Desktop: When is our year?Linux Desktop: When is our year?
Linux Desktop: When is our year?
 
Let's write a Debugger!
Let's write a Debugger!Let's write a Debugger!
Let's write a Debugger!
 

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 elősegí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é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
  • 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 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.
  • 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élhetőleg 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.