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> | ||