Open source programování



Podobné dokumenty
Open source programování

1 Nástroje pro správu verzí. 1.1 Pojmy:

Kompilace Makele C++ Zadání úlohy. Kompilace a Makele. OSD. O. Fi²er. April 18, O. Fi²er Kompilace, Makele

PB071 Úvod do jazyka C

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Multiplatformní GUI toolkity

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

Matematika v programovacích

Co je L Y X? Vlastnosti a nástroje Instalace Zdroje. Adam Farnik. V B - TU Ostrava. Elektronické publikování, 2008

Monitorování sítě pomocí OpenWrt

Linux pro uživatele. Arcibiskupské gymnázium v Praze 2

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

Liberix o.p.s. Free & Open Source software. Jazyky C, C++ Autotools. Jazyky Perl, Python, Ruby. Knihovny pro tvorbu oken.

Doxygen. Jakub Břečka

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

Martin Kopta. Unixové shelly. Středisko Unixových Technologií, 2009

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

AUTHOR : Robert Follner DATE. Abstrakt ABSTRACT: Několik poznatků autora (Robert Follner) z programování

Operační systémy. Cvičení 4: Programování v C pod Unixem

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd

Tipy a triky nejenom v shellu nejenom pro programátory

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Programování v Linuxu. Ondřej Vondrouš

Linux na mobilních telefonech

Team Engineering. New in V13. TIA Portal news. Restricted / Siemens AG All Rights Reserved.

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

PB071 Programování v jazyce C

Dotazování nad stromem abstraktní syntaxe

Vývoj software pro Linuxové distribuce. Installfest Praha,

Využití aplikace SketchUp pro tvorbu jednoduchého informačního systému

Specifikace systému ESHOP

Linux na prapodivných deskách. LinuxDays 2017, Lenka Kosková Třísková Technická univerzita v Liberci

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

Java/QE Akademie - Osnova

Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Efektivní vyuºívání programových nástroj Ansys na infrastrukturách MetaCentra / CERIT-SC

ČÁST 1. Základy 32bitového programování ve Windows

Rozsáhlé programy = projekty

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Knihovna QT4 a moºnosti jejího vyuºití

Sazba zdrojových kód. Jakub Kadl ík

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií


faktura, LaTeX, open source, freeware, Python, multiplatformní program

MATURITNÍ PRÁCE dokumentace

2C Tisk-ePROJEKTY

Instalace a konfigurace web serveru. WA1 Martin Klíma

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Radek Krej í. NETCONF a YANG. ... pohledem v vojá e. Internet a Technologie 13.2

Programování v C++ 1, 1. cvičení

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Radek Krej í. NETCONF a YANG NETCONF. 29. listopadu 2014 Praha, IT 14.2

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

11. Přehled prog. jazyků


PB071 Programování v jazyce C

Profesionální služby kolem Linuxu

2011 Jan Janoušek BI-PJP. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Verzovací systémy. Pořádek především!

Vývoj hybridní aplikace pro webos

Novinky ve Visual Studio Tomáš Kroupa

Sphinx Doc. Hádanky o jednom zdroji (dokumentace) Lena

Skriptovací jazyky. Obsah


IB111 Úvod do programování skrze Python Přednáška 13

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>


MATLB: p edná²ka 1. Prom nné, indexování a operátory. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

PARADIGMATA PROGRAMOVÁNÍ 2A MAKRA III

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

Uživatelská nápověda k systému factinfo.net

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s.

Počítačová Podpora Studia. Přednáška 4. Nástroje pro vědecko-technické výpočty a zpracování dat. (v rámci PPS) PPS 2014

Obecné informace o cvičeních

ISU Cvičení 2. Marta Čudová


Cvi ení 1. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 2, Organizace cvi ení 2 Matlab Za ínáme Základní operace Základní funkce


Komunitní lokalizace svobodného a otevřeného softwaru. Petr Kovář LinuxAlt 2010, 6. listopadu 2010

O projektu Nasazení OpenOffice.org v praxi


UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Server-side technologie pro webové aplikace

C2110 Operační systém UNIX a základy programování

Groovy agilní Java. Pavel Kříž Filip Malý

Programování v Pythonu

09. Memory management. ZOS 2006, L.Pešička

REPREZENTACE 3D SCÉNY

Maturitní otázky z předmětu PROGRAMOVÁNÍ

První kapitola úvod do problematiky

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

Jazyk C# (seminář 9)

Transkript:

Otev ené vývojové prost edí MFF UK 2011

Outline 1 Úvod 2 C, C++ toolchain 3 Základní knihovny 4 Dokumentace 5 Skriptovací jazyky 6 Verzovací systémy

Úºasný nový sv t... Otev ené vývojové prost edí Tvo eno programátory... hlavn pro programátory? Excelentní podpora pro systémové programátory Kolísavá kvalita dokumentace, ale p ístup ke zdroják m Men²í d raz na IDE

O em dnes C, C++ toolchain Základní knihovny Dokumentace Skriptovací jazyky Verzovací systémy

Outline 1 Úvod 2 C, C++ toolchain 3 Základní knihovny 4 Dokumentace 5 Skriptovací jazyky 6 Verzovací systémy

GNU Compiler Collection gcc, jeden z prvních a úhelných kamen GNU Standardy C89, C99, C++98, C(++)1x; Objective C, Fortran, Java, Ada Roz²í ení typeof, long long, x? : y, case 1... 5, 0b1011 Atributy funkcí (aj.) noinline, pure a const, constructor, atd. Atomické operace, thread-local prom nné, vektorové typy Inline assembler

Model p ekladu C Preprocessing: gcc -E.c.o: P eklad, gcc -c.o spustitelný soubor: Linkování, gcc.c.o: Taky sta í gcc Jednoduché pouºití: gcc -Wall -O3 -g -o soubor soubor.c ELF: Univerzální formát binárních soubor (objekt, executable, core dump)

Tvorba knihoven (shared objects) Verzování: major.minor.patchlevel, API vs ABI, verzované symboly Viditelnost symbol : -fvisibility=hidden, attribute ((visibility ("default"))), version scripty Relokace: Vyhn te se externím prom nným, uvnit knihovny pouºívejte lokální denice Jednoduché pouºití: gcc -Wall -O3 -g -shared -fpic -o soubor.so soubor.c

GNU Binutils Linker ld: Obvykle jen backend pro gcc; linker skripty Assembler as: Vyrábí.c z.s místo.c AT&T synaxe! (vs. nasm) Dumpery: nm, objdump, readelf Konkurence: elfutils

GNU Make Automatický p eklad, p estaví práv v ci, které jsou pot eba Makele OBJS = soubor1.o soubor2.o all : program program : $( OBJS ) $(CC ) $( LDFLAGS ) -o $@ $^ clean : rm -f $( OBJS ) make clean make Úskalí: Rekurzivní make, paralelní make, automatický dependency tracking

GNU Autotools M4: Univerzální makroprocesor GNU automake: Zjednodu²ení tvorby Makeles GNU libtool: Portabilní výroba knihoven GNU autoconf: Automatická detekce p ítomných featur a knihoven, compile-time kongurace;./configure Buildovací návody knihoven: pkg-cong Konkurence: Makefile.lib apod., cmake

GNU Gettext Jak na i18n, l10n? Internationalization: Systém charset a locales Localization: P eklad textové komunikace s uºivatelem Ve zdrojáku anglický string obalený makrem _() Pro kaºdý jazyk katalog zpráv s p eklady Kostra automaticky generovaná ze zdrojáku Generuje separátní binární soubor, runtime lookup na základ $LC_MESSAGES Podpora pro kontext, plurály atd.

GNU Debugger gdb hlavn C, ale i spousta dal²ích jazyk Spu²t ní + breakpoint nebo analýza coredumpu Trasování, vypisování hodnot atd. Watchpointy, podmín né breakpointy, zm ny hodnot,... Interface: Rozhovor, TUI, GUI (ddd) Jednoduché pouºití: break a run a cont, bt a frame, print a display, next a step, list Low-level: disas, info reg a x, nexti a stepi ptrace() syscall

IDE Eclipse RHIDE KDevelop EMACS nebo vim!

Outline 1 Úvod 2 C, C++ toolchain 3 Základní knihovny 4 Dokumentace 5 Skriptovací jazyky 6 Verzovací systémy

GNU libc glibc C runtime (ne C++), POSIXové API a p íbuzní Standardy Cx9, POSIX.*, SysV/BSD ƒáste ná koevoluce s libiberty a GNUlib Charsets a locales, gettext runtime, t íd ní a vyhledávání, matchování glob a regulárních výraz, I/O nad streamy i deskriptory, soubory a sockety, terminály, signály a IPC, procesy, job control, syslog, name resolution, matematické funkce, datum a as, control ow, dynamický linker, prom nné prost edí, charakteristiky systému, kryptogracké funkce Multi-threading (pthreads: NPTL, (mrtvé) LinuxThreads) Zajímavé featurky: I/O (vektorové, asynchronní, mmapové, dyn. alokované,... ), do asné soubory, backtrace(), NSS, customizace printf, roz²í ení pam ového alokátoru, obstacks ƒasto GNU roz²í ení pro reentrantní verze; strverscmp(), hledej _GNU_SOURCE

Systémové knihovny libevent libnih GLib libucw Terminálové knihovny Termcap a terminfo GNU Readline NCurses SLang

Omalovánkové knihovny SDL low-level graka, I/O, zvuk,... Cairo vektorová graka, mnoho výstup GTK okénka C kov (event a callback) Qt okénka C++kov (signal a slot), i non-gui v ci

Outline 1 Úvod 2 C, C++ toolchain 3 Základní knihovny 4 Dokumentace 5 Skriptovací jazyky 6 Verzovací systémy

... ostatních projekt Manuálové stránky (linux-manpages) GNU info (pinfo!) Web : ( Use the Source, Luke

Generování dokumentace Docbook Dokumentace v (rozumném) XML formátu, export do spousty výstupních formát (HTML, PDF, man,... ) Preprocesory (asciidoc, markdown,... ) Doxygen Referen ní programátorská dokumentace Z komentá p ímo v kódu Automatické cross-reference

Outline 1 Úvod 2 C, C++ toolchain 3 Základní knihovny 4 Dokumentace 5 Skriptovací jazyky 6 Verzovací systémy

Shell GNU bash, zsh, (dash) GNU coreutils POSIX (aktivní drive; $POSIXLY_CORRECT) Roztodivná roz²í ení

Dal²í Perl: There is more than one way to do it Python: There should be one and preferably only one obvious way to do it Scheme: Tradi ní skriptovací jazyk GNU Tcl: Hordy zombies Lua, CLisp, Ruby, PHP,... SWIG: Bindingy C funkcí do r zných skriptovacích jazyk Naopak: Problematické, nutno ru n ex a bison scanner a parser (generátor C kódu)

Outline 1 Úvod 2 C, C++ toolchain 3 Základní knihovny 4 Dokumentace 5 Skriptovací jazyky 6 Verzovací systémy

Tradi ní RCS (a SCCS) jednotlivé soubory CVS sí ové RCS, které umí dávkov zpracovávat celý adresá ový strom Subversion po ádný VCS/SCM, ale centralizovaný

Distribuované Git It's simplest to think of the state of your Git repository as a point in a high-dimensional code-space, in which branches are represented as n-dimensional membranes, mapping the spatial loci of successive commits onto the projected manifold of each cloned repository. http://tartley.com/?p=1267 Git nejroz²í en j²í(?), idiosynkratický, mocný Mercurial p átel²t j²í (moºná) Bazaar nejp átel²t j²í Fossil vy²perkovaný, (zatím) neroz²í ený

D kuji za pozornost P í²t : Gitový tutorial (SU1!)