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

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

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Software Základní pojmy a rozdělení. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1123_Software Základní pojmy a rozdělení_pwp

Matematika v programovacích

Software. Mgr. Krejčí Jan (UJEP) Software 23. října / 6

Software. RNDr. Krejčí Jan, Ph.D. 5. listopadu RNDr. Krejčí Jan, Ph.D. (UJEP) Software 5. listopadu / 6

INSTALACE SW V GNU/LINUXU

Úvod. Programovací paradigmata

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

Jak funguje GNU/Linux

Operační systémy: funkce

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Projekt implementace OS Linux do výuky informačních technologií

Srovnání Linuxu a BSD z pohledu jádra. Jan Dyrczyk

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

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

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

Operační systém GNU/Linux

11. Přehled prog. jazyků

99 % všech desktopů na platformě MS Windows

IT ESS II. 1. Operating Systém Fundamentals

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Základy programování (IZP)

INSTALACE SW PROID+ V OS LINUX

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

Profesionální služby kolem Linuxu

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

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

Software programové vybavení. 1. část

Úvod do Linuxu. SŠSI Tábor 1

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Programové prostředky IS/IT

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

IB111 Programování a algoritmizace. Programovací jazyky

VirtualBox desktopová virtualizace. Zdeněk Merta

Instalace a konfigurace web serveru. WA1 Martin Klíma

úvod Historie operačních systémů

Angličtina program k procvičování slovní zásoby

Karel Hanousek Ruská Praha 10

PSK3-11. Instalace software a nastavení sítě. Instalace software

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Vytvoření bootovatelného média

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Seznámení s prostředím dot.net Framework

Základy operačních systémů

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Systémy pro sběr a přenos dat

09. Operační systémy PC 1. DOS. Nejdůležitější zástupci DOSu:

Testovací protokol USB Token Cryptomate

Projekt do předmětu PAS. Textový editor

Middleware eop. Instalační příručka pro práci s eop v prostředí Mozilla Firefox, Thunderbird a Adobe Reader na systémech Ubuntu Linux

Linux CryptoFS. Petr Novický

Opakování programování

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Alternativní operační systémy. Martin Drlík, Daniel Krotil OSY2A, ITV

Porovnání instalací linuxových distribucí Fedora x Debian Administrace počítačových sítí (2010/2011)

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Middleware eop. Instalační příručka pro práci s eop v prostředí Mozilla Firefox, Thunderbird a Adobe Reader na systémech Ubuntu Linux

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Vladimír Václavek 2010/2011

Úvod do operačního systému Linux Mgr. Josef Horálek

Linuxové distribuce. Michal Dočekal

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

Identifikátor materiálu: ICT-1-17

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Vývoj SW aplikací. Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení

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

Vysoké učení technické v Brně Fakulta informačních technologií. Ústav informačních systémů. Ročníkový projekt

GNU/LINUX SILNÉ A SLABÉ STRÁNKY

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

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

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Server Security, Serverové produkty

Základní informace. Operační systém (OS)

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

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

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Ročníkový projekt DYNAMICKÉ HTML. Projektová dokumentace. Jan Ehrlich, Petr Marek, Tomáš Marván, Martin Paľo. Vedoucí projektu: RNDr.

Profilová část maturitní zkoušky 2013/2014

Základy programování (IZP)

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Programování II. Modularita 2017/18

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Rudolf Marek. Kompilujeme jádro a aplikace (Mplayer) ALL YOUR BASE ARE BELONG TO US!

SOU Valašské Klobouky. VY_32_INOVACE_01_15 IKT Operační systémy, základní vlastnosti, přehled. Mgr. Radomír Soural

Testování, ladění a dokumentace programů

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Semestrální práce KIV/PC

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í

Testovací protokol čipová karta ACOS5

Nebojte se přiznat, že potřebujete SQA

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Profilová část maturitní zkoušky 2017/2018

Transkript:

ÚVOD DO OPERAČNÍCH SYSTÉMŮ Vývoj programů. Programovací nástroje. Aplikační programové rozhraní API. Standard POSIX. Vytvoření spustitelného souboru, použití kompilátoru a linkeru. Statické a dynamické (sdílené) knihovny. Ladění programů. České vysoké učení technické Fakulta elektrotechnická Ver.1.00 2010

Požadavky na programy Efektivnost/výkonnost - čím méně zdrojů program k dosažení cíle použije, tím lépe. Program musí také se zdroji korektně nakládat: např. mazat dočasné soubory či minimalizovat úniky paměti. Spolehlivost - jak často jsou výsledky běhu programu správné. (správnost algoritmu, chyby při programování) Robustnost - jak se program vypořádá s chybami v okolí. (vstupní dat, nedostupnost potřebných prostředků) Použitelnost - uživatelské rozhraní budiž jasné, intuitivní, konzistentní a kompletní. Portovatelnost - na kolik hardwarových platforem a operačních systémů je program přenositelný Spravovatelnost - jednoduchá modifikovatelnost v budoucnosti. Opravy (bug and security holes) a doplnění funkcí

Kompilátor vs. interpret Úroveň jazyka Vhodnost jazyka pro danou úlohu Volba jazyka

Programovací nástroje programátorské editory + syntaktická kontrola, našeptávač, zvýraznění (obarvení) kódu kompilátory/interpretry zvolených jazyků debuggery profilovací nástroje návrhář grafického rozhraní podporu verzování (CVS) nástroje pro práci s komentářem a vytváření dokumentace integrovaná vývojová prostředí

API - POSIX http://www.opengroup.org/onlinepubs/9699919799/ IEEE 1003 a ISO/IEC 9945 Single Unix Specification (SUS), Linux Standard Base

Kompilace Proč? Potřebujeme program upravit => zásah do zdrojových kódů. Neexistuje binární balíček pro naši distribuci. Chceme provést překlad na míru. Potřebujeme balíček pro nestandardní architekturu. Balíčky, které máme, nejsou s knihovnami v naší distribuci kompatibilní.

Linkování větší projekty se píší po častech a ty se překládají jednotlivě - object moduly knihovny - není třeba tvořit již hotové vytvořené objekty je třeba pospojovat => linker staticky nebo dynamicky? /usr/bin/ld --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/../../../../lib64/crt1.o /usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/crtbegin.o -L/usr/lib64/gcc/x86_64- slamd64-linux/4.2.3 -L/usr/lib/gcc/x86_64-slamd64-linux/4.2.3 -L/usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/../../../../x86_64- slamd64-linux/lib -L/usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/../../.. hello.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --noas-needed /usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/crtend.o /usr/lib64/gcc/x86_64-slamd64-linux/4.2.3/../../../../lib64/crtn.o

zajistí kompilaci, linkování,... make + makefile

Instalační trojkombinace configure - umožní nastavení požadavků (často jen jako přepínače z příkazového řádku), otestuje cílový systém a podle něj připraví následnou kompilaci, vyžádá si doinstalování chybějících programů potřebných pro překládaný program. make - přeloží a slinkuje nový program make install (checkinstall) - nainstaluje přeloženou aplikaci (kam?, a jak se odinstaluje?)

Kde se vzalo jádro? - konfigurace make menuconfig make xconfig

make make bzimage make modules make modules_install make mrproper make clean Kde se vzalo jádro? - kompilace

nástroje: strace, gdb, valgrind ladicí kód jako součást programu Ladění

Distribuce distribuce - víceméně kompletní sada programového vybavení binární/zdrojové live komerční/nekomerční příklady: debian, gentoo, redhat, slackware, suse, ubuntu balíčkovací systémy řeší korektní instalaci a odinstalaci jednotlivých programů řeší závislosti mezi jednotlivými programy - balíčky