event:codenight:programovani
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
event:codenight:programovani [2013/11/11 19:34] – created jenda | event:codenight:programovani [2015/06/07 17:46] (current) – ruza | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ==== Základy x86 assembleru (1-2 večery) ==== | ||
+ | Sylabus: | ||
+ | * Základní kurz architektury x86 / x86_64 - nebudou z vás zruční assembleroví programátoři, | ||
+ | * AT&T vs. Intel syntax assembleru | ||
+ | * Registry, zásobník | ||
+ | * Paměť a její adresování, | ||
+ | * Základní instrukční sada; přesuny dat, aritmetika, skoky, cykly | ||
+ | * Testy a příznaky | ||
+ | * Binární kódování instrukcí (stručně) | ||
+ | * GNU toolchain: Překlad assembleru, disassemblování, | ||
+ | * SystemV ABI | ||
+ | * Funkce v assembleru: předávání parametrů, zásobník podruhé (stack frames) | ||
+ | * Systémová volání: předávání parametrů, návratová hodnota, příklady | ||
+ | * FP, MMX, SSE, AVX registry a instrukce (stručně) | ||
+ | |||
+ | Je dobré mít s sebou linuxový notebook, není to ale nutné (na cvičné úlohy asi bude čas až na konci sezení pozdě večer). Odhadovaná délka cca 2.5h. | ||
+ | |||
+ | ==== Jazyk C pořádně (1-2 večery) ==== | ||
+ | |||
+ | * Není určeno pro úplné začátečníky (to asi lze změnit, bude-li poptávka) - **očekává se, že máte s C praktickou zkušenost**, | ||
+ | * Účel je znalosti Cčka shrnout, zesystematizovat, | ||
+ | * Trochu podle http:// | ||
+ | |||
+ | ==== Perl Crash Course (1-2 večery) ==== | ||
+ | |||
+ | * Praktický úvod do jazyka Perl 5; očekává se zkušenost s programováním a základní znalost regulárních výrazů | ||
+ | * Syntaxe, typy proměnných (skalár, list, hash; kontext; proměnná $_), základní příkazy a operátory, cykly a podmínky; perldoc | ||
+ | * Perlové regulární výrazy a jejich použití | ||
+ | * Onelinery, implicitní cyklus | ||
+ | * Složitější datové struktury, reference; Data::Dump | ||
+ | * Základní práce se soubory: filehandles | ||
+ | * Funkce, práce s parametry | ||
+ | * Anonymní funkce, práce se seznamy pomocí map, grep, sort | ||
+ | * Jemný úvod do perlových modulů; packages, CPAN | ||
+ | * Pokročilejší témata dle zájmu: | ||
+ | * Jemný úvod do perlového objektového systému; Moose | ||
+ | * Základní práce s databázemi; | ||
+ | * Asynchronní programy; POE (brmdoor) | ||
+ | * Výjimky: eval + die :) | ||
+ | |||
+ | ==== Lowlevel Linux Userspace (dva večery?) ==== | ||
+ | |||
+ | * Vnitřnosti Linuxu pohledem aplikačního programátora; | ||
+ | * Standardy, POSIX, SystemV ABI | ||
+ | * Rozhraní jádra | ||
+ | * Systémová volání | ||
+ | * Syscall ptrace() for fun' | ||
+ | * Syscall mmap() for fun' | ||
+ | * Signály jako rozhraní pro předávání zpráv | ||
+ | * Trap signály SIGILL a SIGSEGV | ||
+ | * Formát ELF | ||
+ | * Toolchain pro překlad Cčkových programů | ||
+ | * Co se děje při spouštění programu: execve(), binfmt handler, parametry předávané programu, crt1 | ||
+ | * Dynamický linker ld.so a jeho praktické featury | ||
+ | * Symboly, relokace, GOT | ||
+ | * Case studies: retty, linuxtycoon, | ||
+ | |||
+ | recording: http:// | ||
+ | {{tag> |