Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Linux Kernel – Hogyan csapjunk bele?

Linux Kernel – Hogyan csapjunk bele?

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

Linux Kernel – Hogyan csapjunk bele?

  1. 1. Linux Kernel – Hogyan csapjunk bele? Előadja: Kurusa Levente <levex@linux.com> Embedded Software Engineer JW Technologies, AG.
  2. 2. Ki vagyok én? ➢ 19 éves számítógép őrült ➢ 2014 (& 2015) nyári gyakornok a Red Hat-nél ➢ Fedora nagykövet ➢ Kernelfejlesztő ➢ Upstream & Downstream ➢ ... bár igazából bármi ami 'low-level' ➢ AOSP fejlesztő
  3. 3. Tematika ➢ Gyors bevezetés ➢ Véletlenszerű konfiguráció ➢ Patchelés!
  4. 4. Miért pont a kernel? ➢ A Linux a világ mozgató rugója ➢ Szerverek! A felhő! A Desktop? Talán 2015-ben ➢ A kernel segít megérteni az alkalmazások működését ➢ Érdekes, eredeti kihívások
  5. 5. Kifogások ➢ Mítosz: “A kernelfejlesztés nehéz” ➢ Tény: A Linux Kernel ma már majdnem teljes libc-t tartalmaz
  6. 6. Kifogások ➢ Mítosz: “Nehéz a hibakeresés” ➢ Tény: GDB elérhető (!!!) Netconsole, serial port OOPS, BUG, stack-trace, etc.
  7. 7. Kifogások ➢ Mítosz: “Veszélyes a hardware-re nézve” ➢ Tény: A Linux kernel “fool-proof”
  8. 8. Kifogások ➢ Mítosz: “Nem mondható befogadónak a közösség” ➢ Tény: “Nem mondható befogadónak a közösség”
  9. 9. Első lépések ➢ A Linux kernel forráskódjának letöltése ➢ Szükséges a Git ➢ linux-next: ➢ http://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git ➢ linux-stable: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git ➢ Linus' tree http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
  10. 10. Eudyptula Challenge ➢ http://eudyptula-challenge.org/ ➢ Programozási feladatok sora ➢ Nehéz, de szórakoztató
  11. 11. linux-next ➢ State of Art kernel ➢ Stephen Rothwell fűzi össze ➢ Kiváló kiinduló pont ➢ Alapvető konfigurációk tesztelve
  12. 12. linux-stable ➢ Új patch-ek gyűjteménye régi kernelekhez ➢ Backport-ok kellenek! ➢ Greg KH & Co. tartja karban ➢ Documentation/stable_kernel_rules.txt
  13. 13. Véletlenszerű konfigurációk
  14. 14. Mik is ők? ➢ Véletlenszerű kernel konfiguráció ➢ Sok probléma van velük ➢ GCC figyelmeztetéses és hibák ➢ kconfig hibák és figyelmeztetések ➢ Néha (többnyire) nem is bootolnak ➢ Nagyon hasznos segítség!
  15. 15. Az első randconfig $ make randconfig ➢ Semmi értelme nincs a konfigurációnak ➢ Próbáljuk meg lefordítattni: make -j4 make -j`nproc`
  16. 16. Lehetséges hibák ➢ Undeclared functions ➢ Cirkuláris függőségek ➢ Bootolási hibák ➢ Emulátor!
  17. 17. Az első patch
  18. 18. checkpatch ➢ scripts/checkpatch.pl ➢ Gyakori hibák észlelése a patch küldése előtt (és fájlokat is...) ➢ Nem csak Coding Style hibákat keres (és talál)
  19. 19. drivers/staging ➢ Kezdetleges állapotú driver-ek ➢ TODO fájl ➢ checkpatch itt megengedett ... máshol inkább ne
  20. 20. A patchelés menete $ git checkout -b open-academy $ git reset --hard HEAD [ munka... ] $ git diff [ review ] $ git commit --signoff --all $ git format-patch -1 ... és most jön a legnehezebb dolog:
  21. 21. Elküldés ➢ 90%-nak nem fog sikerülni $ git send-email <patch-file> ➢ Thunderbird is lehetséges, de nehézkes
  22. 22. Maintainer keresés ➢ scripts/get_maintainer.pl ➢ A patch-hez elkészíti a maintainer listát ➢ MAINTAINERS fájl
  23. 23. Köszönöm a figyelmet! Kurusa Levente Email: <levex@linux.com> / <levex@fedoraproject.org> Twitter: @ilevex Google+: +LeventeKurusa Blog: http://ilevex.eu/

×