SWI 075 Linux Kernel. Úvod



Podobné dokumenty
Linuxový kernel v posledních letech

Petr Holášek / 1 of 21

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

Linux jako real-time systém. Red Hat Czech Michal Schmidt Duben 2009

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Správa disků (storage) v Linuxu. Milan Brož Software Engineer / Kernel Storage / Red Hat mbroz@redhat.com

Debugging & Time v Linuxovém kernelu

PostgreSQL na EXT3/4, XFS, BTRFS a ZFS

Stavba operačního systému

11 Návrh programového vybavení

ACPI a Software Suspend

Vláknové programování část I

B4B35OSY: Operační systémy

Virtualizace. Lukáš Krahulec, KRA556

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Lukáš Brodský Praha Osnova. Objektový přístup Verze 4, 5, 6 / 7 Developer7 -funkčnost, nové vlastnosti HW

Open Solaris. Ladislav Pecen Client Solutions Sun Microsystems Czech

Mobilní malware na platformě Android Přednáška 2. Ing. Milan Oulehla

Metody připojování periferií

Linux Teorie operačních systémů a realita

PostgreSQL na EXT3/4, XFS, BTRFS a ZFS

Úvod. unx-predn_01-uvod.odt :13:43 1

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

Operační systémy. Tomáš Hudec.

Paralelizace datových přenosů

Zamykání v kernelu. Tomáš Pop tomas.pop at seznam.cz Připraveno na seminář linux kernel na MFF UK

OS řady Microsoft Windows

Vstup-výstup Input-Output Přehled a obsluha

Ukazky Zdroje:... 17

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

Bezpečnostní záplata linuxového jádra Ochrana přístupu k paměti Nabízí: podporu nespustitelných stránek randomizaci adresního prostoru (ASLR)

Storage... co je nového (SSD!)... a co se zatím nepovedlo rozbít:-)

Herní engine. Co je Engine Hotové enginy Jemný úvod do game designu

Souborový systém (File System FS) Souborové systémy. Souborová fragmentace. Disková fragmentace. Organizace dat na pevném disku

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

10GE síťový prvek. switch & router. Radim Roška & Moris Bangoura Installfest 2012 Silicon Hill

B4B35OSY: Operační systémy

operační systém vjj 1

Virtualizace na Linuxu

Rozhraní USB. Rozhraní USB. Specifikace USB. Doplnění (upřesnění) 1.0. Rychlosti Low Speed (1.5 Mb/sec) a Full Speed (12 Mb/sec).

Virtuální datacentrum na ovirt způsob

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

OpenSolaris 2005/2006 CZOSUG #5. Martin Červený

a co je operační systém?

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Operační systémy. Přednáška 8: Správa paměti II

Životní cyklus IT systémů

Von Neumannovo schéma

Metody připojování periferií

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Storage product guide Q4/2011

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

Tabulka Nabídková cena za předmět plnění *uchazeč vyplní cenu za celý kurz nebo cenu za 1 účastníka dle zadávací dokumentace a nabídky uchazeče

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Aplikovaná informatika

NMS. Linux na Strahově. Radim Roška & Moris Bangoura InstallFest Silicon Hill

Systémová volání Mgr. Josef Horálek

Modelování webových služeb v UML

NPRG051 Pokročilé programování v C /17 Úkol 2

Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Operační systém (Operating System)

Virtualizační platforma ovirt

Poslední aktualizace: 25. května 2017

Procesy a vlákna (Processes and Threads)

Open Source Programování

Linux (nejen) v Low End routerech

ŘPS Průmyslový Ethernet

Správa procesů a vláken Mgr. Josef Horálek

Red Hat Academy - možnosti linuxového vzdělávání pro školy

BIOS (BASIC INPUT-OUTPUT SYSTEM)

PB071 Programování v jazyce C Jaro 2015

Architektura DBMS. RNDr. Ondřej Zýka

GIT hands-on. Mgr. Šimon Tóth. 12. dubna () GIT hands-on 12. dubna / 25

POPIS TUN TAP. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky. (Chci si ujasnit o kterem bloku z toho schematu se mluvi.

Algoritmus (nebo dřívějším pravopisem algorithmus)

MKZ III. Windows CE architektura. Procesy, vlákna, plánování Správa paměti GWES Souborový systém

Jak na speciální klávesy v Linuxu

Když se Linux nevejde. Jiné operační systémy Lenka Kosková Třísková, LinuxDays2018

Téma 5. Ovladače přístrojů Instrument Drivers (ID)

Vlastnosti Xen na univerzitě. Michal Švamberg

vjj 1. Priority. Dispatcher

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

Brno. 30. května 2014

Opakování k maturitní zkoušce z informatických předmětů

Příloha č. 1 Servisní smlouvy. Katalog služeb. S2_P1_Katalog služeb

Name of Presentation Red Hat Presenter. Red Hat Czech. Kdo jsme a co nabízíme? Radek Vokál <rvokal@redhat.com>

Srovnání alternativních implementací DirectX

Příloha č. 1 k zadávací dokumentaci na zakázku "Obměna serverů pro systém SAP" pro koncového zákazníka Pražská plynárenská, a.s.

Kontejnerová virtualizace na Linuxu

Placeholder PR Quotes

Část 2 POROVNÁNÍ VÝKONNOSTI A POUŽITELNOSTI ARCHITEKTUR V TYPICKÝCH APLIKACÍCH

Management procesu I Mgr. Josef Horálek

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

Úpravy jádra operačního systému pro Clondike

Operační paměti počítačů PC

IT ESS II. 1. Operating Systém Fundamentals

HW počítače co se nalézá uvnitř počítačové skříně

Transkript:

SWI 075 Linux Kernel Úvod

Outline Organizace semináře Vývojový model kernelu Developer essentials jak si kernel stáhnout, zkompilovat,... Dokumentace Témata referátů, zápočťáky,...

Organizace semináře Zápočet za (přiměřeně kvalitní) referát nebo (přiměřeně kvalitní) patch do kernelu Témata poměrně libovolná (týkající se kernelu); návrhy na závěr prezentace Neobsazené semináře/témata odpřednáším já, na libovolné téma na kterém se domluvíme http://www.jikos.cz/lk/ návrhy na témata, přidělená témata a rozvrh, odpřednášené referáty,...

Vývojový model kernelu Žádná oficiální roadmap, žádné UML diagramy, žádne formální specifikace, žádné release plány, design dokumenty,... Linux is evolution, not intelligent design Linus 15 let od svého vzniku se kernel stále vyvíjí značnou rychlostí (bug fixy, nové featury, cleanupy,...)

Vývojový model kernelu

Vývojový model kernelu Cca 9200 řádek kódu denně změněno Distribuovaný vývoj pro správu verzí používán GIT Většina subsystémů má vlastní vývojovou větev seznam hlavních větví na kernel.org viz http://www.kernel.org/git/ Patche do konkrétních subsystémů vždy skrz příslušné větve, ze kterých Linus periodicky pulluje do mainline

Vývojový model kernelu Andrew Morton udržuje (mimo GIT) speciální sadu patchů mm větev Experimentální nové featury (reiser4, ext4, rozsáhlé změny subsystémů, apod) Určena pro testování po čase kdy je patch v mm a ukáže se jako správný ho Andrew pushuje upstream (subsystem tree, mainline) Funguje dobře Andrew je daleko pečlivější maintainer než Linus

Vývojový model kernelu Stabilní release každé cca 2 3 měsíce (2.6.x) Pro opravy kritických chyb (security, crashe, data corruption,...) stable kernel releases: 2.6.x.y Každý 2.6.x release je major release obsahuje nové featury, mění vnitřní kernelové API,...

Vývojový model kernelu Týden 0 Několik set patchů začleněno nové featury, změny API, zásadní změny,... Týden 2 3: 2.6.x rc1 Zavřené merge okno (vetšinou) žádné nové featury, jen bugfixy Stále vysoký patchrate Týdny 3 8: další 2.6.x rcy releases. Po snížení bugfix patchrate release dalšího 2.6.(x+1) Později dle potřeby releases 2.6.x.y stable, paralelně s dalším vývojem

Developer essentials http://www.kernel.org/ seznam aktualních releases (stable, rc, mm, git (snapshot)) GIT http://git.or.cz/ Documentation/Changes obsahuje seznam minimálních SW požadavků ke kompilaci kernelu

Developer essentials make defconfig/allyesconfig/oldconfig/allmo dconfig/allnoconfig/randconfig make menuconfig/xconfig/gconfig make make modules_install && make install

Dokumentace Documentation/* KernelNewbies http://kernelnewbies.org/ LXR http://lxr.linux.no/ Robert Love Linux Kernel Development 2nd Edition http://rlove.org/kernel_book/ (není zdarma) Alessandro Rubini & Jonathan Corbet Linux Device Drivers 3 rd Edition http://lwn.net/kernel/ldd3/ Mel Gorman Understanding the Linux Virtual Memory Manager http://www.skynet.ie/~mel/projects/vm/guide/pdf/un derstand.pdf

Témata návrh Kernel build systém, přenositelnost VCS GIT, Cogito Konfigurace kernelu, Kconfig, závislosti mezi konfiguračními volbami Stavba Makefiles, jak přidat svůj driver/kód do build systému Jak kernel řeší přenositelnost mezi různými architekturami oddělení arch dependent kódu od zbytku Přenositelnost datových typů opaque typy, endianita, typy s explicitně udanou velikostí, padding struktur,...

Témata návrh Procesy a plánování Vznik procesu, datové struktury (task_struct, thread_info), mechanismus copy on write, signály Alokace PID, stavy procesu a přechody mezi nimi, přechod mezi userspace a kernelspace; process context, interrupt context Implementace threadů v linuxu; kernelové thready Scheduler I/O bound vs. CPU bound procesy, O(1) scheduler, priority, timeslices, runqueues, waitqueues, loadbalancer na SMP a HT, contextswitch

Témata návrh Syscally, zámky Pasivní a aktivní čekání (spinlocky, semafory, mutexy); kdy co použít Co je potřeba zamykat, jak může dojít k race condition (preemptivní vs. nepreemptivní kernel, interrupt, sleep, SMP,...). Lockdep validator. RCU lockless data access. Completion variables, BKL, memory barriers Syscall vztah mezi libc a kernelem, int 0x80 vs. SYSENTER. Co je vsyscall, vdso page. Předávání argumentů mezi kernelem a userspacem

Témata návrh Interrupt handling Asynchronní a synchronní interrupty. ISR co se v ní smí a co ne. Přiřazení ISR k IRQ. Sdílené a reentrantní ISR, interrupt context. Povolení a zakázání přerušení, cli()/sti() vs. local_irq_{disable,restore}(). disable_irq() a disable_irq_nosync(). Bottom halves. Softirqs, tasklety. Kernelový thread ksoftirqd. Workqueues. Zamykání v interruptech a mezi bottom halves

Témata návrh VFS a filesystémy Co je abstrakce VFS. Nejdůležitější datové struktury (superblock, inode, file, dentry) a operace nad nimi. Vztah mezi VFS a skutečnými filesystémy. Vazba mezi VFS a procesem. Přehled filesystémů, jejich vlastností a implementace (ext2,3,4, ReiserFS3,4, XFS, GFS2,...)

Témata návrh Memory management Alokace paměti v kernelu kmalloc() vs. vmalloc() struct page. Zóny (DMA, NORMAL, HIGHMEM). Alokace a dealokace stránek alloc_pages(), get_free_pages(), get_zeroed_page(). Slab allocator princip cachování u slab cache, vztah mezi cache, slab a object. Alokace na stacku, dočasná mapování kmap(), highmem, 3:1 split,...

Témata návrh Adresní prostor procesu, stránkování Memory deskriptor (struct mm_struct). Kernel thready a jejich address space. Co jsou to VMA, jak jsou v kernelu reprezentovány. Přemisťování, spojování, rušení VMA, přístupová práva. Co se stane když proces volá mmap() či malloc() Jak funguje stránkování a swapování, pagetables, co je page cache a buffer cache. K čemu slouží thread pdflush

Témata návrh Ovladače zařízení Co je ovladač zařízení. Ovladače v userspace (vgalib, libusb) Bloková a znaková zařízení, SCSI, PCI, input drivers (myš, klávesnice, joystick) Bloková zařízení struct bio, request queues, I/O schedulery (deadline, anticipatory, elevator, cfq)

Témata návrh Síť Síťová zařízení (jak funguje transport mezi různými vrstvami (i v vzhledem k ISO/OSI), co je skb, netfilter, nastavování parametrů socketu, raw sockety) NAPI nové síťové API Nové protokoly v kernelu DCCP, SCTP,...

Témata návrh Debugging, Time Problémy s debugováním kernelu a jejich řešení sériová konzole, printk(), kgdb, kprobes. Co je kernel oops a jak ho použít k ladění ksymoops, kallsyms. User mode linux Počítání času v Kernelu hodnota HZ (přesnější timery, select(), poll(), scheduler). Co jsou jiffies a jejich reprezentace. RTC. BogoMIPS, hrtimers kernel patch, podpora pro realtime scheduling.

Témata návrh Bezpečnost LSM, SELinux. Podpora kernelu pro šifrování cryptoapi, šifrované filesystémy Bezpečnostní 3rd party patche do kernelu (grsecurity, RBAC,...) Exploity Rootkity

Témata návrh ACPI (, APM) K čemu ACPI je, stav implementace v linuxu. Problémy s HW neodpovídajícímu specifikaci. Co je DSDT, její dekompilace, úpravy, kompilace....

Zápočťáky Kernelová bugzilla http://bugzilla.kernel.org/ http://www.kerneljanitors.org/ We go through the Linux kernel source code, doing code reviews, fixing up unmaintained code and doing other cleanups and API conversions. It is a good start to kernel hacking....