Zpracování signálu z obrazového senzoru

Rozměr: px
Začít zobrazení ze stránky:

Download "Zpracování signálu z obrazového senzoru"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření Zpracování signálu z obrazového senzoru s využitím OS Linux pro embedded zařízení Bc. Jan Breuer Vedoucí práce: Ing. Jan Fischer, CSc. Diplomová práce květen 2009

2 Abstrakt Cílem této diplomové práce je vytvoření aplikace pro zpracování obrazu ve vestavném (embedded) zařízení. Na cílové zařízení byl portován operační systém Linux. V tomto systému byla vytvořena aplikace detekující pohyb v obraze. V práci jsou dále porovnány rozdíly mezi detekcí pohybu pomocí senzoru PIR a detekcí pohybu v obraze.

3 Abstract The purpose of this Diploma s thesis is to develop an image processing application on an embadded device. For this purpose, Linux had to be ported on the target device in order to develop a picture motion detection application on it. Furthermore, differences between a PIR sensor and picture motion detection are compared.

4 Poděkování Chtěl bych poděkovat Ing. Janu Fischerovi, CSc., vedoucímu mé diplomové práce, za podnětné rady a připomínky. Děkuji také firmě JabloCOM, především pak Ing. Jiřímu Holnigerovi, za poskytnutí zázemí pro tvorbu práce a za poskytnutí vzorku kamery EYE-02. Dále bych chtěl poděkovat své rodině zapodporuafinální korektury.

5

6 Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně apoužil jsem pouze podklady (literaturu, projekty, SW atd.) uvedené vpřiloženém seznamu. V Praze dne podpis

7 Obsah 1 Rozbor problematiky 7 2 Bezpečnostní kamera JabloCOM EYE Popis bezpečnostní kamery EYE Hardwarové uspořádání kamery EYE Operační systém Linux Úvod do operačního systémulinux Obecné vlastnosti operačních systémů Existující operační systémy pro vestavná zařízení Linuxové distribuce pro vestavná zařízení Výhody a nevýhody použití OSLinux Popis některých vlastností OSLinux Souborový systém a adresářová struktura Virtuální soubory zařízení Operace se soubory Sdílené knihovny a knihovna libc Procesy a vlákna Portování OS Linux na nové zařízení Vývojové nástroje jazyka C pro procesory ARM Úprava a kompilace jádra Linuxu Balíčkovací systém distribucí Příprava obrazu souborového systému Inicializace a start systému Bootloader zavaděč systému Start linuxového jádra

8 3.4.3 Souborový systém v pamětiram Program init a spuštění služeb Přístup k zařízení pro digitalizaci obrazu Inicializace kamery a získání informací Vyčítání obrázků ze senzoru Testování náročnosti detekce pohybu Aplikace pro testování náročnosti detekce Komunikace s vestavným zařízením Způsoby komunikace s kamerou Spouštění programů v kameře Sdílení souborů Detekce pohybu v obraze Přehled projektů zabývajících se detekcí pohybu v obraze Metody detekce pohybu v obraze Definice Metody využívající model pozadí Metody založené na korelaci obrázků Detekce pohybu kamery Nastavení parametrů detekce Volba prahu rozdílového obrázku Požadavky na detekci pohybu v obraze Detekce pohybu ve venkovním prostředí Adaptace na změny pozadí Necitlivost na změny celkového osvětlení scény Potlačení falešných poplachů Výpočet v reálném čase Filtrace šumu Implementace detekce pohybu v obraze Implementace metod v programu Matlab Implementace metod s použitím knihovny OpenCV Vlastnířešení implementace detekce pohybu Vlastnířešení detekce pohybu Optimalizace výpočtu

9 5.1.1 Přístup k prvkůmpole Rychlý výpočet odmocniny Dělení celých čísel Požadavky na prostředí pro detekci pohybu Použitá metoda pro detekci pohybu Zmenšení nasnímaného obrazu pro potřeby detekce Stabilizace obrazu kamery Celková změna jasu v obraze Modelování odhadu pozadí scény Detekce objektůnapopředí Zpracování detekovaných bodů popředí Zpracování detekovaných souvislých komponent Naměřené výsledky v různých prostředích Detekce pohybu pomocí senzoru PIR Pasivní infračervený senzor Typické výstupní průběhy signálů Zpracování signálu z čidla Rušivé vlivy senzoru PIR Porovnání detekce pohybu v obraze se senzorem PIR Uživatelské rozhraní a vizualizace detekce pohybu Počítačový program pro demonstraci detekce pohybu v obraze Demonstrace detekce pohybu přímo v kameře EYE Ovládání kamery z osobního počítače Ovládání kamery přes mobilní telefon Závěr 80 Obsah CD 84 Literatura 86 6

10 Kapitola 1 Rozbor problematiky Tato diplomová práce se zabývá několika oblastmi, které umožňují zpracování obrazu ve vestavném zařízení. Pro vytvoření výsledné aplikace byl zvolen operační systém Linux, který musí být upraven pro potřeby každého specifického vestavného zařízení. Zpracování obrazu je demonstrováno na detekci pohybu v obraze. V této části je brán ohled na výpočetní náročnost použitých algoritmů. Cílové zařízení je zabezpečovací kamera EYE-02 firmy JabloCOM. V kameře je používán proprietární systém, který je pro tuto práci nahrazen operačním systémem Linux. Použití operačního systému přináší oproti proprietárnímu systému několik výhod. Vývoj jednotlivých částí systému může probíhat naprosto odděleně. Na jednotlivéčásti mohou být napsány testovací skripty, které automaticky odhalí regrese v nových verzích. Operační systém přináší dokonalejší správu procesů a paměti a poskytuje vývojáři definovaná aplikační rozhraní pro přístup k zařízením. Pro operační systém Linux bylo napsáno množství aplikací, které jsou zveřejněny se zdrojovým kódem. Mnohé z nich lze použít pro vestavnázařízení bez velkých změn. Tím je možné ušetřit čas vývoje stejné funkcionality pro proprietární systém. Jádro Linuxu se musí připravit pro určené zařízení. Celý systém Linux zabírá větší množství paměti než původní proprietární systém. Je tedy nutné nalézt způsob pro uložení jádra systému a pro uložení souborového systému. Se způsobem uložení také souvisí způsob startu celého systému. Pro start systému je třeba vytvořit jednoduchý program, který celý systém zavede do paměti. Operační systém Linux přináší pro kameru výhody v podobě abstrakce hard- 7

11 ware. Aplikace vyvinuté pro cílovou platformu mohou být použity beze změny na jiných zařízeních se stejným procesorem. Aplikace jsou psány v jazyce CaC++ a je tedy velice snadné je použít i na jiných platformách. Díky abstrakci hardware je tak možné vyvíjet, testovat a spouštět aplikace na jiném stroji, například osobním počítači. Pro cílové zařízení jetřeba sestavit upravené jádro a sadu utilit pro vytvoření základního souborového systému. Dále je nutné vytvořit ovladače zařízení, která nejsou součástí hlavnířady jádra. K ovladačům zařízení musí být napsány služby, které s daty zacházejí. Pro kamery EYE-02 je například nutné vytvořit ovladač senzoru PIR a dále vytvořit službu, která bude tento senzor hlídat z uživatelského prostoru operačního systému. Cílové zařízení nemá obrazovku, je tedy nutné nalézt způsob přístupu. Pro tyto účely jsou nejvhodnějšísériové porty nebo porty USB. Dále je nutné nalézt způsob přenosu velkého objemu informací v podobě obrázků. Dalším úkolem je navrhnout metodu detekce pohybu v obraze. Existuje mnoho projektů a odborných článků, které se touto problematikou zabývají. Některé metody jsou náročnější, ale dokáží lépe popsat sledované prostředí, jiné metody jsou jednodušší, ale horší v identifikaci pohybujících se objektů. Je třeba nalézt vhodnou metodu, která bude dostatečně přesná ipři minimálních nárocích. Je třeba eliminovat vlivy prostředí jako jsou změny osvětlení, pohybující se pozadí apod. Vytvořenou metodu je tedy nutné otestovat v různých prostředích a vyhodnotit výsledky. Detekce pohybu v obraze je doplňková funkce zabezpečovací kamery EYE- 02. Je třeba porovnat vlastnosti detekce pohybu v obraze a vlastnosti detekce pohybu pomocí senzoru PIR, který je také součástí kamery. Senzor PIR je vhodný pro vnitřní použití, ale pro venkovní ne, protože vyvolává příliš velké množství falešných poplachů. Implementace pohybu v obraze musíbýt napsána s přihlédnutím na výpočetní náročnost. V aplikaci je několik funkcí, které procházejí každý obrazový bod v obraze. Tyto funkce musí být optimalizované pro rychlé vykonání. Díky tomu, že jsou všechny aplikace psány pro operační systém, je jednoduché je modifikovat tak, aby fungovaly bez velkých změn na osobním počítači a na vestavném zařízení. Toho lze využít jednak pro vlastní vývoj, který je na osobním počítači jednodušší a jednak pro vytvoření demonstrační aplikace detekce pohybu 8

12 v obraze. Další demonstrace činnosti je možná vytvořením webového rozhraní kamery, přes které jsou přenášeny jednotlivé obrázky. Výsledkem celé práce by měl být funkční systém detekce pohybu v obraze a návrh spolupráce se senzorem PIR. Detekce by měla co nejvíce odolat rušivým vlivům tak, aby vytvářela minimální počet falešných poplachů. 9

13 Kapitola 2 Bezpečnostní kamera JabloCOM EYE Popis bezpečnostní kamery EYE-02 Kamera JabloCOM EYE-02 je zabezpečovací zařízení, které slouží pro monitorování prostor. Kamera obsahuje jednak vizuální monitorovací systém s detekcí pohybu a jednak zvukový monitorovací systém. Veškerá data je možné odesílat prostřednictvím vestavěného GSM modulu v podobě SMS, MMS, hlasového volání nebo u. Kamera může komunikovat s centrálním serverem a je tedy možné kontrolovat stav kamery pomocí webového rozhraní. Kameru je možné ovládat pomocí zaslané SMS nebo pomocí bezdrátové klíčenky. Obrázek 2.1: Fotografie kamery EYE-02 [25] V kameře běží proprietární systém firmy JabloCOM, který je vyvinut přímo 10

14 pro tuto kameru. Systém se stará o sledování senzorů a o zpracování a zaslání poplachu. Kamera může být připojena k počítači pomocí USB portu. K ovládání funkcí kamery z počítače sloužínástroj JabloTool. V tomto nástroji je možné sledovat obraz z kamery, číst události z historie kamery a nastavovat parametry kamery. Kamera je vyvíjena s cílem jednoduché obsluhy a montáže. Je určena pro nepřetržité sledování a monitorování prostor odkudkoli pomocí počítače nebo mobilního telefonu. Kamera umožňuje jednak režim hlídánísvyvoláním poplachu a jednak režim samostatného monitorování prostor bez vyvolání poplachu. Kamera je chráněna před neoprávněnou manipulací pomocí otřesového senzoru. Nasnímané video sekvence a obrázky k jednotlivým událostem jsou uloženy na microsd kartě. 2.2 Hardwarové uspořádání kamery EYE-02 Cílem práce je vytvořit aplikaci detekce pohybu pro kamery EYE-02. Kamera je navržena pro běh firemního software. Dostupné periferie v zařízení jsou popsány na blokovém schématu. Základem celé kamery je mikrokontrolér s jádrem ARM926EJ-S. Jedná se o mikrokontrolér firmy ATMEL AT91SAM9260. Tento mikrokontrolér obsahuje sadu čítačůačasovačů, řadič DMA, periferie pro sériovou komunikaci (UART, I2C/SMBUS, SPI, I2S), periferie pro ladění JTAG a sériový port pro ladění. Disponuje třemi 32bit paralelními IO řadiči, hostitelským portem USB, portem USB zařízení, řadičem pro obsluhu obrazového senzoru a řadičem pro obsluhu pamět ových karet MMC/SD. Systém běží na frekvenci 198MHz, která jeměnitelná zaběhu pomocí PLL. Změnou frekvence lze dosáhnout úspory energie. Pro detekování zaseknutí vykonávání vnitřního programu je dostupný čítač watchdog. Řízení hodin reálného času obstarává vnitřní oscilátor 32kHz. Jádro mikrokontroléru může zpracovávat 32bit instrukce ARM a nebo 16bit instrukce Thumb. Dále může být přepnuto do režimu Jazelle, ve kterém přímo vykonává bytecode Javy. Pomocí instrukcí Thumb lze přeložit kód, u kterého není důležitá rychlost, ale velikost výsledného binárního programu. Většina běžných funkcí může být přeložena do instrukcí Thumb, pouze některé náročné funkce pro zpracování obrazu by měly být přeloženy do instrukcí ARM. Překladač GNU 11

15 Obrázek 2.2: Hardwarová koncepce kamery EYE-02 GCC ovládá oba režimy a umožňuje použít režim Thumb i ARM v jednom programu. K mikrokontroléru je připojena operační pamět DRAM o velikosti 32MB. Pamět je ve verzi pro mobilní zařízení pro snížení spotřeby. Velikost operační paměti dostačuje pro použití systémem Linux. K mikrokontroléru je dále připojena pamět EEPROM pro ukládání nastavení. Hlavní program je načítán z DataFlash velikosti 512kB. Tato pamět je plně dostačující pro firemní systém, ale pro použití se systémem Linux je příliš malá. Doporučená změna hardware pro kameru je nahrazení této paměti DataFlash ekvivalentem s větší kapacitou. Nejmenší doporučená hodnota je 4MB optimálně však 8MB pro kompletní systém. Pro vývojové účely jsem pamět DataFlash použil jen pro umístění zavaděče systému (Bootloaderu). Tento zavaděč načte jádro Linuxu z externí pamět ové karty, na které jeicelý souborový systém Linuxu. Na pamět ové kartě je dostatek místa a není třeba změny hardware. Pokud by měla být kamera vyráběna komerčně se systémem Linux, byla by změna hardware nutná. Pokud by uživatel smazal pamět ovou kartu, smazal by tím i celý systém a kamera by přestala fungovat. Další periferie obsažené v kameře slouží pro komunikaci se zařízeními. Kamera obsahuje rádiový modul pro obsluhu externích čidel, klíčenek a sirén. Dále je v kameře umístěn GSM/GPRS modul. Ten slouží k předávání informací o poplachu pomocí SMS, MMS a u. GSM modul je připojen přes sériový port a je ovládán AT příkazy. Kamera obsahuje senzory pro detekci vniknutí dohlídané oblasti. Pro de- 12

16 tekci pohybu v interiérech slouží senzor PIR. Dále je k dispozici detekce otřesu a detekce rozbití skla. Kamera obsahuje obrazový snímač CMOS. Tento snímač je schopný dodávat obraz v rozlišení až px. Obrazový snímač je barevnýa barevné filtry jednotlivých obrazových bodů snímače jsou umístěny v Bayerově mřížce. Funkci senzoru PIR lze rozšířit pomocí detekce pohybu v obraze a tím umožnit detekci pohybu i v prostředích, kde PIR nelze použít. 13

17 Kapitola 3 Operační systém Linux Kapitola o Linuxu ukazuje možnosti použití tohoto systému ve vestavném zařízení. Jsou zde uvedeny informace potřebné pro pochopení ovladačůzařízení v systému. Dále je popsána metoda pro komunikaci s takovým ovladačem, konkrétně s ovladačem kamery. Tato část je určena pro navázání na tuto práci a pro poskytnutí základních informací pro vývoj software pro kameru EYE-02 v Linuxu. 3.1 Úvod do operačního systému Linux Obecné vlastnosti operačních systémů Operační systém vytváří rozhraní mezi aplikačním programem a hardware. Skládá sezjádra systému a obslužných programů a knihoven. Slouží pro zavedení a start aplikací a pro správu zdrojů, jako je například pamět nebo procesor. Operační systém poskytuje aplikacím systémová volání, která jsou definována jako aplikační rozhraní systému (API). Obsluhu jednotlivých specifických částí zařízení zajišt ují ovladače, které přistupují přímo k hardware a poskytují další systémová volání pro obsluhu takových zařízení z uživatelské aplikace. Některé ovladače poskytují pouze mezivrstvu pro další ovladače. Například ovladač pro USB řadič zprostředkovává komunikaci připojeného zařízení s ovladačem tohoto zařízení. Takový ovladač zařízení pak může fungovat s libovolným řadičem USB, protože všechny ovladače řadičů USB poskytují stejné API. 14

18 Abstrakce hardware je výhodná, protože uživatelské aplikace mohou být napsány v době, kdy konkrétní zařízení ještě neexistuje. Správný ovladač zařízení pouze poskytne definované API k novému zařízení. Operační systém se dále stará opřidělování paměti aplikacím a o přepínání procesů. V moderních operačních systémech je přepínání procesů plně v režii operačního systému, který v pravidelných intervalech přeruší provádění aplikací a podle situace přidělí procesor aplikaci jiné. V takto řešeném systému nevede například nekonečná smyčka v jedné aplikaci k úplnému zaseknutí systému. Takovému chování seříká preemptivní multitasking. Záleží na složitosti implementace, jak vhodně budou jednotlivé aplikace přepínány mezi sebou. Více procesů s sebou samozřejmě nese problémy v podobě současného přístupu více aplikací ke stejnému zdroji. V takových případech se používají zámky, semafory a mutexy. Zařízení, která obsahují jednotku pro správu paměti (MMU) mohou dále poskytovat ochranu paměti před neoprávněným přepsáním. Aplikace, která se snažípřistupovat do paměti, kterou si nealokovala, je ukončena. Nenaruší tak chod jiných aplikací. Chyby způsobené zápisem do paměti, která patří jinému procesu, by mohly způsobit neočekávané chování jiných aplikací, které jinak pracují vpořádku. Ochrana paměti zajistí, že se tak nestane. Zápis do špatné části paměti, která shodou okolností patří stejnému procesu není detekován Existující operační systémy pro vestavná zařízení Pro vestavná zařízení existuje mnoho operačních systémů a exekutiv. Existují jak komerční systémy, tak systémy s otevřeným zdrojovým kódem. Mezi komerční systémy patří například VxWorks, Windows CE. Známých otevřených operačních systémů existuje celářada, např. FreeRTOS, RTEMS, FreeBSD a Linux. Většina operačních systémů definuje své vlastní API. Dále většina systémů poskytuje ještě vybrané široce rozšířené API, jako je například POSIX nebo TRON. POSIX (Portable Operating System Interface for Unix) je standard definovaný IEEE. Definuje základní knihovnu jazyka C, vytváření ařízení procesů, jednoduchou meziprocesovou komunikaci, práci se soubory a adresáři a řízení vstupů avýstupů. Další rozšířenéčásti normy definují vytváření vláken a chování v systémech reálného času. 15

19 3.1.3 Linuxové distribuce pro vestavná zařízení Operační systém Linux implementuje z velkéčásti standard POSIX. Linux jako takový je pouze jádro operačního systému. Většinou se používá s programy a nástroji, které vznikly pod záštitou projektu GNU (GNU is Not Unix). Z tohoto důvodujeněkdy označován jako GNU/Linux. O spojení jádra s vybranými aplikacemi se starají skupiny lidí, které vytvářejí distribuce Linuxu. Nejznámější distribuce pro počítače PC jsou například Debian, SuSe, Ubuntu, Gentoo apod. Pro vestavná zařízení existují specializované distribuce, které předpokládají nasazení v systémech s omezeným množstvím paměti nebo diskového prostoru. Distribuce pro vestavná zařízení jsou vyvíjena jednak komerčními firmami a jednak komunitami vývojářů. Komerční produkty jsou většinou k zákazníkovi dodány již připravené pro předem domluvený hardware. Firma vytvoří a zprovozní všechny periferie v zařízení a vytvoří pro ně ovladače. Zákazník pak již píše jen uživatelské aplikace, které nepřistupují přímo k hardware. Mezi takové distribuce patří například MontaVista Linux a ELinOS. Komunitní distribuce se dále dělí na distribuce odvozené od kompletních linuxových distribucí, např. Emdebian, Embedded Gentoo apod. Některé distribuce jsou určeny pouze pro vestavná zařízení, nebo dokonce výhradně pro mobilní telefony, např. Openmoko, Angstrom, OpenWRT a Android. Poslední skupinou jsou pouze nástroje pro snadné vytvoření vlastního systému, jako je např. OpenEmbedded, nebo Buildroot. Jednou z cest je i vytvoření vlastního sestavení bezpoužití výše zmíněných nástrojů. Takové sestavení není komplikované, protože je většinou potřeba pouze velmi malé množství aplikací. Systém dále neobsahuje aplikace, které nebudou nikdy použity Výhody a nevýhody použití OS Linux Linux je škálovatelný operační systém. Koncepce Linuxu je univerzální, takže pracuje stejně dobře na vestavných zařízeních, osobních počítačích nebo na superpočítačích. Vytváří abstrakci hardware, takže je možné ladit aplikace na jiném stroji, než bude cílová platforma. Pro zařízení, která nemají ani jednotku pro správu paměti, byla vytvořena speciálníúprava jádra uclinux. Výhody Linuxu spočívají právě ve snadnosti vývoje aplikací. Jednotlivé služby 16

20 a aplikace mohou být vyvíjeny a testovány samostatně. Pro vývoj mohou být dále použity rozmanité ladící nástroje, které odhalí například nesprávné přístupy do paměti. Linux poskytuje definovaná a dokumentovaná API k různým standardním zařízením a je proto jednoduché pracovat například se sériovým portem bez znalosti konkrétní hardwarové implementace. Jedna z výhod Linuxu je také jeho otevřenost. Na vývoji se podílí komunita vývojářů složená jak z nadšenců, tak i z profesionálů zrůzných firem. Otevřený kód je dále dobrým vzorem pro psaní vlastních ovladačůzařízení, které by bylo jinak komplikované. Hlavní nevýhoda Linuxu je větší spotřeba operační paměti a paměti pro uložení aplikací. Minimální systém lze umístit do datové paměti o velikosti 4MB s využitím 16MB paměti RAM. 3.2 Popis některých vlastností OS Linux Souborový systém a adresářová struktura Květšině zdrojům se v Linuxu přistupuje pomocí souborů. Kdo může k jednotlivým souborům přistupovat je dáno uživatelskými právy. Každý uživatel má přiřazeno vlastníčíslo UID (user ID) a číslo skupiny, do které patří GID (group ID). Každý soubor má nastavena práva pro čtení, zápis a vykonání pro majitele, skupinu a pro všechny ostatní. Pokud například provedeme výpis adresáře /bin pomocípříkazu 1 # ls l Listing 3.1: Příkaz pro výpis adresáře bude jeden z řádků vypadat následovně: 1 rwxr xr x 1 root root dub mkdir Listing 3.2: Jeden řádek z výpisu adresáře První trojice rwx říká, že uživatel root má práva pro zápis, čtení a spuštění. Druhá trojice r-x říká, že všichni, kdo jsou ve skupině root mohou program mkdir pouze číst a spouštět a třetí trojice r-x říká, že tento program mohou 17

21 číst a spouštět také všichni ostatní. Uživatel root má vždy UID=0 a GID=0. Jde o takzvaného superuživatele nebo administrátora, který má práva provádět všechny operace. Soubory jsou organizovány v adresářích. Standardní adresářová struktura obsahuje následující adresáře. /bin adresář sdůležitými utilitami pro systém. /boot adresář obsahující obraz jádra a konfiguraci bootloaderu. V systému pro kameru není tento adresář využit. /dev adresář s virtuálními soubory zařízení. /etc adresář s nastavením systému. /home adresář ve kterém jsou domovské adresáře uživatelů. /lib adresář sesdílenými knihovnami. /mnt adresář, ve kterém jsou nejčastěji připojovány jiné souborové systémy. /opt adresář, který slouží k uložení programů, které nepocházejí od distributora. V systému pro kameru není adresář využit. /proc adresář s virtuálním souborovým systémem, každý spuštěný proces má v tomto adresáři svůj adresář ve kterém jsou všechny informace o procesu. Dále jsou zde informace o načtených modulech, informace o procesoru apod. /root domovský adresář uživatele root. /sbin adresář s utilitami, které jsou určené výhradně pro uživatele root. /sys adresář s virtuálním souborovým systémem, který poskytuje řadu informací o načtených ovladačích. Některá zařízení jemožné přes tento adresář ovládat. Například ovladač LED je možné nastavovat pomocí souborů v tomto adresáři. /tmp adresář pro odkládání dočasných souborů. V systému pro kameru je tento adresář připojen jako ramdisk. 18

22 /usr adresář pro uživatelské programy, které nejsou potřeba pro start systému. /usr/bin adresář pro spustitelné soubory programů. /usr/lib adresář pro knihovny programů. /usr/share adresář pro neměnná data programů. /var adresář pro data, která semění zaběhu systému. V systému pro kameru jsou všechny následující adresáře připojeny jako ramdisk. /var/lock adresář pro ukládání souborů zámků. /var/log adresář pro zapisování informací oběhu programů. /var/run adresář pro ukládání informací oběžících službách. /var/tmp adresář pro odkládání dočasných souborů Virtuální soubory zařízení V unixových systémech je pro přístup k zařízením používán adresář se soubory, které reprezentují jednotlivá zařízení. Tento adresář se nejčastěji jmenuje /dev. Každý soubor může reprezentovat znakové nebo blokové zařízení. Znakové zařízení reprezentuje sekvenční přístup k proudu dat. Typická znaková zařízení jsou sériové porty, USB endpointy, klávesnice, zařízení pro zpracování videa apod. U takových zařízení není možné přeskočit na jinou část pamětiatunačíst. Blokovézařízení reprezentuje přístup k datůmsnáhodným přístupem. Typická bloková zařízení jsou například pamět RAM, pevný disk, pamět ová karta apod. Tato zařízení podporují navíc funkci seek, která umožňuje přístup do libovolnéčásti paměti zařízení. Výpis některých souborů z adresáře /dev ukazuje typ zařízení (první písmeno vřádku) a major a minor číslo zařízení. Propojení mezi jadernýmauživatelským prostorem je vytvořeno pomocí souborů zařízení. Každý soubor je reprezentován třemi údaji. První je typ zařízení, který označuje, jestli jde o znakové nebo blokové zařízení. Druhý atřetí údaj jsou osmibitováčísla, která reprezentují takzvaná major a minor čísla. 19

23 1 /dev # ls l 2 crw rw 1 root audio 14, 4 Feb audio 3 crw r r 1 root root 61, 0 Jan 1 01:43 gpio 4 crw rw 1 root root 89, 0 Jan 1 01:18 i2c 0 5 crw rw 1 root root 1, 3 Jan 1 01:18 null 6 brw rw 1 root disk 179, 0 Jan 1 01:18 mmcblk0 7 crw rw 1 root tty 4, 0 Jan 1 01:18 tty0 8 crw rw 1 root root 1, 5 Jan 1 01:18 zero Listing 3.3: Příklad výpisu adresáře zařízení ukazuje přidělená čísla k souborům Major číslo udává číslo ovladače, se kterým má jádro komunikovat při používání takového souboru. Minor číslo udává pořadí zařízení pro ovladač. Může tak být najednou načteno až 256 znakových a 256 blokových ovladačůa každý znichmůže obsluhovat až 256 zařízení. Moderní linuxová jádra umožňují sdílení major čísel mezi ovladači tak, že si ovladače rozdělí rozsahy minor čísel. Většina ovladačůvjádře ale tento přístup stále nedovoluje. Ovladače zařízení, která jsou v systému načtena, je možné zjistit vyčtením virtuálního souboru /proc/devices 1 # cat /proc/devices 2 Character devices : 3 1 mem 4 2 pty 5 3 ttyp 6 4 /dev/vc/0 7 4 tty 8 4 ttys 9 5 /dev/tty 10 5 /dev/console 11 5 /dev/ptmx 12 7 vcs misc input i2c ptm pts rtc Block devices : 21 7 loop mmc Listing 3.4: Obsah souboru /proc/devices ukazuje načtené moduly znakových a blokových zařízení 20

24 3.2.3 Operace se soubory Všechny obyčejné soubory umožňují operace open, close, read, write. Dále je možné sobyčejnými soubory pracovat pomocí funkce fcntl, která umožňuje nadstandardní operace se soubory. Například umožňuje zamknout byty 100 až 110 v daném souboru. Virtuální soubory zařízení podporují stejnou sadu operací jako obyčejné soubory, ale navíc je možné používat funkce jako select nebo ioctl. Funkce select slouží k blokujícímu čekání nazměnu souboru. Pokud ovladač zařízení tuto funkci podporuje, může například po příchodu znaku z obsluhované periferie uvolnit čekání uživatelského procesu, který siokamžitě načte výsledek. Funkce ioctl slouží k nastavení a vyčtení parametrů zařízení, která jsou virtuálními soubory definována. Tato funkce slouží například pro nastavení přenosové rychlosti sériového portu, pro nastavení snímkové frekvence zařízení pro zachytávání videa apod. Některé virtuální soubory vůbec nemusí používat funkce read a write, protože jejich použití není vhodné aveškerá komunikace se zařízením probíhá pouze přes volání příslušných ioctl. Příkladem takového zařízení jsou některá zařízení pro zachytávání videa. Při použití funkce read by docházelo ke zbytečnému kopírování velkého množství dat. Proto se pro předávání nasnímaných obrázků používá sdílená pamět Sdílené knihovny a knihovna libc Všechny spustitelné soubory potřebují pro svoji činnost stejnou základní sadu funkcí. Pokud v systému není velké množství binárních aplikací, je možnévšechny aplikace slinkovat staticky se všemi knihovnami. Taková aplikace nebude ke své činnosti potřebovat žádné další soubory. Použití statického linkování má nevýhodu ve zvýšené velikosti aplikace. Výhoda statického linkování je zaručená funkčnost na každém systému s daným procesorem. Jediné, co je potřeba pro správnou funkčnost takové aplikace, je správné binární rozhraní jádra. Základem každé aplikace napsané v jazyce C je i knihovna libc. Tato knihovna je popsána v normě POSIX. Nejpoužívanější implementací této knihovny v prostředí operačního systému Linux je knihovna GNU C Library (glibc). Tato knihovna implementuje kompletně normu POSIX.1, ale pro svou univerzálnost 21

25 není vždy vhodná. Pro vestavná zařízení a pro jiné speciální účely vzniklo několik jiných implementací knihovny libc. Knihovna uclibc vznikla jako implementace knihovny libc se snahou o co nejmenší velikost výsledného binárního souboru. Není zde kladen důraz na plnou implementaci standardu. Knihovna vznikla jako součást projektu uclinux. Na rozdíl od této verze jádra podporuje plně jednotku pro správu paměti MMU, takže je vhodná pro libovolný systém. Nevýhoda této knihovny je nutnost úpravy některých programů, které využívají pokročilých funkcí glibc. Knihovna klibc vznikla pro účely inicializačních ramdisků. Inicializační ramdisk je načten do paměti bootloaderem spolu s jádrem Linuxu. Z ramdisku jsou dále spuštěny programy, které například pomohou připojit kořenový adresář. Po vykonání všech potřebných funkcí je ramdisk smazán. Pro rychlé načítání ramdisku do paměti je potřeba jeho malá velikost. Ta může být zaručena právě knihovnou klibc. linkování glib uclibc klibc statické dynamické ld.so velikost libc Tabulka 3.1: Porovnání velikostí aplikace Hello World Knihovny, které mohou být načteny za běhu aplikace se nejčastěji označují příponou.so a knihovny, které slouží jen v čas sestavení aplikace mají nejčastěji příponu.a. O načítání dynamických knihoven se stará základní knihovna /lib/ld.so, která ponačtení aplikace do paměti načte i vhodné knihovny do jejího pamět ového prostoru Procesy a vlákna Operační systém Linux nerozlišuje mezi procesem a vláknem. Všechna vlákna mají stejné vlastnosti jako proces. V Linuxu je implementován preemptivní multitasking. Každý proces má svoji prioritu s hodnotou od 20 do 19. Prioritu menší než 0může nastavit pouze uživatel root. Priorita 20 je nejvyššímožná. Procesy mohou být synchronizovány pomocí semaforů a signál. Pro sdílení dat mohou být použity mechanizmy sdílené paměti. Jednosměrnou komunikaci 22

26 lze realizovat jednoduše pomocí rour. Na jedné straně je roura otevřena aplikací, která vytváří data, a na druhé straně je roura otevřena aplikací, která data zpracovává. Obousměrná komunikace může být vytvořena pomocí UNIX socket. Jde o virtuální soubor, který se po otevření chová jako socket známý zesít ových rozhraní. Dokonalejší obousměrná komunikace může být vytvořena pomocí rozhraní SysV IPC, nebo pomocí DBUS. 3.3 Portování OS Linux na nové zařízení Pro vytvoření kompletního systému pro nové zařízení jsem prošel několik kroků. První krok je vytvoření nebo získání nástrojů pro vytváření aplikací pro danou architekturu. Následně jsem upravil a nakonfiguroval jádro a pomocí těchto nástrojů jsem jej přeložil. Následovala část přeložení zbývajících programů a příprava souborového systému. Inicializaci systému jsem provedl pomocí vlastního bootloaderu, který z pamět ové kartynačetl binární obraz jádra a spustil ho Vývojové nástroje jazyka C pro procesory ARM Projekt GNU zaštit uje veškeré nástroje pro vývoj aplikací pro procesory ARM. Jako první je nutné zvolit si knihovnu jazyka C, kterou budu používat. Dále je nutné vytvořit nástroje sloužící pro práci s binárními soubory. Následuje vytvoření samotného kompilátoru pro procesor ARM a celý proces přípravy je ukončen kompilací knihovny jazyka C. Jako základní knihovnu jsem zvolil knihovnu jazyka C glibc, protože je kompatibilní sevšemi programy, které jsou dostupné pro Linux. Dále volím novější aplikační binární rozhraní (ABI) jádra a knihovny C, které je upraveno speciálně pro vestavná zařízení a které zrychluje práci s čísly v plovoucířádovéčárce na procesorech, na kterých není k dispozici jednotka pro výpočty v plovoucířádové čárce. Pro vývojové účely je jednodušší používat kompletní nástroje a po vyvinutí programů použít optimalizace pro malá zařízení jako je například záměna za knihovnu uclibc. Před samotným započetím práce jsem se rozhodl pro použití distribuce Embedded Gentoo. V této distribuci jsou všechny balíčky distribuovány ve zdrojových souborech. Obsahuje také podporu pro křížovou kompilaci. Kompilace 23

27 samotná probíhá na silnějším stroji, obvykle osobním počítači, avýsledná aplikace se do cílového zařízení zkopíruje již v binárním tvaru. Celý proces začíná přípravou prostředí pomocí nástroje crossdev, podle zadaného řetězce vytvořínástroje pro křížovou kompilaci. 1 # crossdev arm softfloat linux gnueabi Listing 3.5: Příkaz pro vytvoření kompletního prostředí pro vytváření aplikací pro procesor ARM v jazycích C, C++ a Fortran. Podle zvoleného procesoru a použité knihovny vytvořím textovýřetězec, který bude nadále používán pro všechny nástroje. Textovýřetězec pro nástroje pro procesor ARM s využitím knihovny glibc aspoužitím nového binárního rozhraní (EABI) arm-softfloat-linux-gnueabi dále říká, že výsledné nástroje budou vytvářet aplikace pro Linux. Podobně by tento řetězec vypadal například pro použití knihovny uclibc arm-softfloat-linux-uclibcgnueabi. Balík nástrojů, který se stará o statické linkování a vytváření knihoven, se jmenuje binutils. Tento balík obsahuje skripty pro výsledné sestavení binárních aplikací. Dále obsahuje nástroj pro statické sestavení knihoven ar, nástroj pro statické a dynamické sestavování výsledných binárních souborů ld, dále je dostupný nástroj strip pro odstranění informací z binárního souboru, které nejsou potřeba pro správný běh, ale jsou například důležité pro ladění aplikace. Výsledné programy se jmenují arm-softfloat-linux-gnueabi-ar, arm-softfloat-linux-gnueabi-ld apod. Dále je sestaven vlastní kompilátor pro jazyk C a následně i pro jazyk C++. Nakonec je sestavena knihovna jazyka C, v tomto případě glibc. Pro snadné sestavování vlastních aplikací a pro sestavení jádra používám skript, který pro správně napsaný Makefile vytvoří spustitelný soubor pro platformu ARM. 1 #!/ bin/bash 2 SYSROOT= / usr /arm s o f t f l o a t linux gnueabi/ 3 TOOLCHAIN= arm softfloat linux gnueabi 4 make ARCH= arm CROSS COMPILE= $TOOLCHAIN INSTALL MOD PATH= $SYSROOT $ Listing 3.6: Náhrada programu make pro křížovou kompilaci Ladění aplikací jsem prováděl přímo v PC tím, že jsem programy zkompiloval pro architekturu x86. Díky abstrakci hardware je pro testování aplikací pro kameru jediný zásadní rozdíl rychlost procesoru a velikost dostupné paměti. 24

28 Jako vývojové prostředí jsem používal IDE code::blocks, které poskytovalo jednoduchou možnost vývoje a ladění jak aplikací pro x86 pomocí debuggeru GDB, tak vzdálené ladění aplikace pomocí nástroje GDBserver [41] [17]. Mocný nástroj na hledání problému s přístupem do paměti je program Valgrind, který slouží k detekci přístupu do nealokovaných míst v paměti a k detekci neuvolňované paměti (memory leak) Úprava a kompilace jádra Linuxu Jádro Linuxu je již připraveno pro procesory ARM, ale není předpřipraveno pro konkrétní zapojení různých zařízení. Nejpodobnější zapojení ke kameře EYE- 02 byl vývojový kit pro procesor AT91SAM9260. Z definice této desky jsem vycházel a vytvořil jsem vlastní definici pro kameru. 1 arch/arm/mach at91/board eye02. c Listing 3.7: Soubor pro vlastní definici hardware Dále jsem zaregistroval novou desku EYE-02 na internetových stránkách projektu Linuxu pro ARM, takže od verze jádra je tato definice již v hlavní větvi jádra. Desce EYE-02 bylo přiřazeno číslo arch /arm/ t o o l s /mach types Listing 3.8: Soubor s informacemi o zaregistrovaném zařízení Po vytvoření souboru desky s definicí všech připojených periferií jsem jádro nakonfiguroval a zkompiloval. Výsledný obraz je uložen v souboru arch/arm/boot/zimage. Tento soubor je pomocí bootloaderu načten do paměti RAM. V souboru zimage je zkomprimovaný obraz jádra. Jádro se po spuštění samo dekomprimuje Balíčkovací systém distribucí Většina linuxových distribucí obsahuje balíčkovací systém, který slouží pro jednoduchou instalaci aplikací. Distribuce Gentoo obsahuje balíčkovací systém portage, který je vhodný i pro křížovou kompilaci pro jinou architekturu. Využil jsem proto tento systém pro snadnou kompilaci a instalaci základních programů 25

29 potřebných pro běh systému. Program pro kompilaci balíčků se jmenuje emerge. Vytvořil jsem jednoduchý skript emerge arm, který nastaví proměnné prostředí tak, aby proběhla kompilace a instalace do správného adresáře. Následné vytvoření aplikace, která je součástí balíčkovacího systému Gentoo, lze elegantně zprostředkovat pomocí zavolání příkazu emerge. 1 # emerge busybox Listing 3.9: Příkaz pro sestavení a instalaci programu Busybox Konkrétně tento příkaz sám stáhne zdrojové soubory balíku busybox, provede konfiguraci, kompilaci a instalaci výsledného binárního programu do předem určeného adresáře Příprava obrazu souborového systému Základem celého systému je aplikace busybox, která obsahuje všechny důležité utility. Jedná se o jediný binární soubor, ke kterému je vytvořeno mnoho symbolických odkazů snázvy programů. Balík busybox obsahuje veškeré základní nástroje pro práci se soubory (mv, cp, rm,...), dále obsahuje například nástroje pro prácivsíti (udhcp, httpd, telnet, wget). Na připravovaném souborovém systémujedále pomocí balíku static-dev vytvořen adresář /dev se základními soubory zařízení. Ostatní aplikace a knihovny jsou získány stejným způsobem. Systém je nutné nakonfigurovat pomocí souborů v adresáři /etc. V souboru fstab jsou nadefinovány připojené diskové oddíly a připojené virtuální souborové systémy sysfs, procfs, ramfs apod. V souborech group a passwd jsou nadefinovány uživatelské účty a skupiny uživatelů. V souboru inittab je nastaveno chování po startu systému a chování při ukončení běhu systému. Je zde nadefinován první inicializační skript, který bude spuštěn procesem init. První spuštěný skript se jmenuje /etc/init.d/rcs aspouští další služby, jejichž inicializační skripty jsou umístěny v adresáři /etc/init.d. Inicializační skripty se skládají zedvoučástí, jedné, která je spuštěna při startu služby a druhé, která je spuštěna při žádosti o její ukončení. Základní inicializační skript má jednoduchou strukturu. Obsahuje hlavičku, spouštěcí a zastavovací funkci. Spouštěcí program /sbin/runscript vychází z programu, který je používán 26

30 1 #!/sbin/runscript 2 3 start () { 4 ebegin Start sluzby 5 start stop daemon start exec sluzba 6 eend $? 7 } 8 9 stop () { 10 ebegin Ukonceni sluzby 11 start stop daemon stop exec sluzba 12 eend $? 13 } Listing 3.10: Příklad jednoduchého inicializačního skriptu v distribuci Gentoo. Je použita podobná myšlenka, ale program jsem napsal jako jednoduchý skript pro program sh. Tento program netestuje závislosti služeb, pouze zjednodušuje práci při psaní inicializačních skriptů. Napsal jsem dále inicializační skripty pro sít ovou kartu přes USB, telnet, http, obsluhu GSM modulu a pro započetí vzdáleného sdílení adresáře. 3.4 Inicializace a start systému Obrázek 3.1: Bootovací proces Bootloader zavaděč systému První kód, který je nutné spustit v zařízení je bootloader. Jeho úkolem je připravit periferie k úspěšnému načtení jádra. Pro vývoj je nejprve inicializována sériová linka. K tomuto účelu je vyhrazena periferie DBGU (Debug Unit). Pomocí tohoto rozhraní jemožné sepřipojit například k nástroji SAM-BA, který slouží pro nahrání programu do pamětí připojených k procesoru. Z toho důvodu je volba 27

31 vhodná i pro zobrazování ladících informací, ke kterým by normální uživatel zařízení neměl mít přístup. Dále je provedena inicializace hodinových signálu do periferií. Jsou inicializovány některé GPIO piny a periferie potřebné pro start systému, jako například rozhraní MCI pro práci s pamět ovou kartou. Obrázek 3.2: Rozdělení pamět ové kartynaoddíly Bootloader se na ladícím rozhraní ohlásí azačne provádět přípravné práce. Po inicializaci pinů a rozhraní MCI následuje inicializace pamět ové karty. Pamět ová karta je rozdělena na několik primárních oddílů. Každý oddíl obsahuje část systému. Bootloader nejprve načte tabulku rozdělení disku (partition table) a na ní se snaží nalézt oddíl se souborovým systémem s identifikačním číslem 0x8A. Pro porovnání, NTFS máčíslo 0x07, souborové systémy Linuxu (Ext2, Ext3,...) majíčíslo 0x83. Identifikačníčíslo 0x8A bylo zvoleno tak, aby nekolidovalo sžádným známým souborovým systémem pro běžné operační systémy (Linux, Windows). Takto označený oddíl neobsahuje souborový systém, ale přímo obraz jádra. Podle informací [6] je pro označení oddílu obsahujícího přímo obraz jádra používáno identifikačníčíslo 0x8A programem AiR-BOOT [27]. Tato hodnota byla zachována i pro vlastní bootloader. Pokud je nalezen oddíl, který má nastaveno identifikačníčíslo 0x8A amá zároveň nastaven startovací příznak, je z tohoto oddílu načten obraz jádra do paměti. Nejprve je načten jen první sektor oddílu. Pokud sektor reprezentuji jako pole neznaménkových celočíselných 32bit proměnných, je na indexu 9 magické číslo 0x016F2818, které informuje bootloader, že jde o obraz jádra Linuxu ve formátu zimage pro architekturu ARM. Na pozici 10 je adresa začátku obrazu a na pozici 11 je adresa konce obrazu. Velikost celého obrazu je rozdíl těchto dvou čísel. Tím jsou zjištěny všechny informace pro načtení obrazu jádra do paměti. Pamět RAM začíná na adrese 0x a obraz jádra je načten na adresu 28

32 0x Adresa počátku obrazu je brána jako adresa funkce s třemi parametry. První parametr je vždy 0, druhý parametr je identifikačníčíslo zařízení, u kamery EYE-02 jde o číslo Poslední parametr je ukazatel na strukturu s parametry, které informují jádro například o velikosti paměti RAM. 1 thekernel (0, machine type, parm at) ; Listing 3.11: Kód pro spuštění linuxového jádra z bootloaderu Podle identifikačního čísla zařízení sejádro rozhodne, jestli je schopno obsluhovat daný hardware. Není dobré používat vlastní identifikační číslo bez předchozí registrace [28]. V případě potřeby aktualizace verze jádra může nastat kolize identifikačních čísel Start linuxového jádra Při konfiguraci jádra byly zvoleny ovladače, které slouží pro obsluhu různých rozhraní a periferií. Některé ovladače jsou potřeba pro správný start systému, jako například ovladač pro obsluhu pamět ové karty, ovladač pro obsluhu souborového systému apod. Tyto ovladače jsou přímo součástí binárního obrazu jádra. Ovladače, které nejsou potřeba pro start a nejsou dokonce většinu času potřeba pro běh systému jsou vytvořeny jako externí moduly a lze je zavádět za běhu systému podle potřeby (např. ovladače pro USB-device rozhraní). Některé ovladače ale nepředpokládají, že pomocí nich bude načten systém a neinicializují se ve správném pořadí. Pořadí ovladačů je rozděleno do několika skupin core, postcore, arch, subsys, fs, rootfs, device, late. Do skupiny device patřívětšina běžných ovladačů. Problém nastává, pokud je potřeba zavést systémzpamět ové karty. Ovladač pamět ové kartyjevjádře zařazen do skupiny device. Ovladač pamět ové karty jsem musel upravit tak, aby byl jádrem načten ještě před pokusem o připojení kořenového adresáře. Proto jsem ovladač přesunul do skupiny subsys Souborový systém v paměti RAM Křešení problémů při startu systému slouží ramdisk. Ten je k dispozici od počátku startu systému a mohou na něm být nahrány konfigurační skripty pro 29

33 Obrázek 3.3: Porovnání initrd a initramfs vzhledem k velikosti obsazené paměti počáteční inicializaci systému, nebo i celý systém. Existují dva druhy ramdisku určené pro start systému initrd a initramfs. Initrd ramdisk zabírá fixní velikost zvolenou při kompilaci jádra. V nových systémech je nahrazován pomocí initramfs, který v paměti zabírá právě tolik místa, kolik zabírají data na něm. Po smazání všech dat z ramdisku je uvolněna i zabraná pamět. Initramfs ramdisk je obyčejný CPIO archiv. Bootloader tento archiv zkopíruje na předem určené místo v paměti RAM, nebo je archiv přímo součástí binárního obrazu jádra. Pokud je používán ramdisk pro běh celého systému, lze využít několika výhod. Celý souborový systém je přístupný pro čtení i pro zápis. Je možné modifikovat všechny soubory. Některé aplikace potřebují povolení zápisu do některých adresářůzaběhu. Pokud je systém násilně vypnut, nehrozí žádné poškození dat, protože po znovuspuštění je nahrán starý obraz ramdisku. Nevýhodou ramdisku je nutnost používání jiného zařízení pro ukládání dat, která majíbýt dostupná i po restartu systému. Ramdisk musí obsahovat všechny soubory nutné pro běh systému, které obsazují prostor okolo 4MB až 8MB, což může být vzhledem k velikost paměti RAM mnoho. Nejčastější použití ramdisku je tedy jen pro inicializaci systému. Utility potřebné ke startu mohou zabírat i méně než 500kB. Kořenový adresářjepoje- jich spuštění přepnut na požadované zařízení, např. pamět ovou kartu, a ramdisk je smazán. Nový ramdisk je vytvořen a připojen do adresářové struktury na místa jako /var/lock/, /tmp a podobně, která jsou většinou aplikací používána pro zápis stavových informaci o běhu programu. Ve výsledném zařízení je celý souborový systém připojen pouze pro čtení. V systému je vytvořen jeden ramdisk, do kterého jsou přesměrovány adresáře 30

34 pro dočasné soubory. Tím je zajištěna správná funkce aplikací, které potřebují zapisovat stavová dataazároveň jezajištěna bezpečnost souborového systému při náhlé ztrátě napájení Program init a spuštění služeb První proces, který jádro spustí je/sbin/init. Tento program slouží k nastavení dalších možností systému a ke spuštěníslužeb, které obsluhují systémovázařízení. Program init načte svoji konfiguraci ze souboru /etc/inittab a podle této konfigurace spustí inicializační skript. Program připojí všechny zbývající souborové systémy, které ještě nejsou připojeny, jako je například adresář /proc a /sys, které slouží pro komunikaci sjádrem. V adresářích jsou přístupné soubory pro ovládání některých modulů, jsou v nich informace o připojených zařízeních a spuštěných procesech. Dále init spustí program mdev, který zaregistruje jako správce adresáře /dev. Program mdev je součástí balíku programů Busybox a slouží k naplnění adresáře /dev soubory zařízení, která jsou v systému dostupná. Adresář /tmp je připojen jako ramdisk. Ve chvíli, kdy jsou připojeny všechny souborové systémy může proces init startovat další služby. Je zaveden modul pro obsluhu USB. Modul se chová jako USB sít ová karta. Po připojení do portu USB počítače je v něm dostupné ethernetové připojení. Sít ové rozhraní je nastaveno a je spuštěn DHCP server na straně kamery pro snadné připojení dopočítače. Pro vývojové účely jsou nastartovány například služby telnet a http server. 3.5 Přístup k zařízení pro digitalizaci obrazu V operačním systému Linux sloužíkpřístupu rozhraní V4L (Video4Linux) [39]. V tomto rozhraní jsou definovány základní funkce pro komunikaci se senzorem. Modul, který implementuje rozhraní V4L, vytváří soubor zařízení, který se nejčastěji jmenuje /dev/videox, kde X je nahrazeno pořadovým číslem. Přes soubor zařízení /dev/videox jsou modulu ovladače zasílány požadavky pomocí funkce ioctl. Pokud to ovladač dovoluje, může být zařízení otevřeno několika procesy najednou. Jeden například nastavuje jas, kontrast apod. a druhý vyčítá obrazovou informaci. 31

35 3.5.1 Inicializace kamery a získání informací Rozhraní V4L je navrženo univerzálně pro všechna zařízení digitalizující obraz a zvuk. Ovladače používající V4L existují pro televizní arádiové kartyadále existují pro velké množství kamer, které poskytují pouze obrazovou informaci. Každé zařízení má jiné schopnosti, které lze přes ioctl ovládat. Ke zjištění, jakými vlastnostmi daná kamera disponuje, je provedeno několik základních dotazů. Volání ioctl VIDIOC QUERYCAP slouží ke zjištění, zda je zařízení kompatibilní s rozhraním V4L a dále poskytuje informace o dalších podporovaných ioctl voláních. Každý V4L ovladač musí obsluhovat alespoň VIDIOC QUERYCAP akaždá aplikace pracující s V4L musí vždy na začátku zavolat toto ioctl. Volání VIDIOC QUERYCTRL a VIDIOC QUERYMENU sloužíkzískání konkrétních ovládacích prvků. Všechny prvky obsahují informace o mezních hodnotách. Uživatelská aplikace může ovládat pouze parametry, získané pomocí těchto volání. Parametry lze měnit v průběhu získávání snímků. Před vyčítáním snímků jepomocí volání VIDIOC ENUM FMT zjištěna množina podporovaných výstupních formátů. Každý formát má svůj čtyřpísmennýkód. Pro komunikaci s běžnými kamerami jsou nejpoužívanějšípřímé barevné prostory RGB a YUV. Některé kamery odesílají proud MJPEG. Kamera EYE-02 používá data ve formátu BA81 nebo BA82, jedná se o 8bit nebo 16bit reprezentaci filtru Bayer RGB. V4L ovladačpředává data získaná z CMOS snímače přímo a nechává dekódování jednotlivých obrázků na aplikaci v uživatelském prostoru. Ta musí obrázek interpolovat a doplnit chybějící místa. Obrázek 3.4: RGB mřížka CMOS snímače Novější definice API rozhraní V4L2 povoluje předávání obrazových dat v libovolném formátu. V V4L1 byly prováděny v ovladači veškeré konverze formátů na RGB nebo YUV. Nová koncepce se snažípředat všechny konverzní operace do uživatelského prostoru. Pro práci s kamerou proto vznikla knihovna libv4l, 32

36 která podporuje všechny doposud známé výstupní formáty V4L2 zařízení. Pro uživatelskou aplikaci je tedy velice jednoduché provést načítání obrazových dat Vyčítání obrázků ze senzoru Získání obrazové informace z ovladače může být řešeno několika způsoby. Záleží na konkrétní implementaci ovladače. První a nejjednodušší metoda je příméčtení ze souboru /dev/video0 pomocí funkce read(). Tato metoda je neoptimální, protože se provádí zbytečné kopírování paměti. Pro velká rozlišení snímačůje nevhodná. Vněkterých případech může být pro kopírování použito DMA, takže se neoptimálnost snižuje a metoda se výkonnostně přibližuje dvěma následujícím metodám. Nejrozšířenější metoda předávání obrazových dat probíhá přes sdílenou fyzickou pamět. Uživatelský proces si namapuje fyzickou pamět pomocí funkce mmap(). Pokud již fyzická pamět není potřeba je procesem uvolněna pomocí funkce munpam(). Ovladač kamery do paměti ukládá jednotlivé nasnímané obrázky a uživatelský proces pamět používá pro další práci se snímky. Nevýhoda této metody spočívá vpoužití konkrétní fyzické paměti, která nemůže být nijak swapována. Poslední možností předávání obrazových dat je přes alokovanou virtuální pamět v uživatelském prostoru. Díky tomu, že je pamět alokována běžným způsobem, může být i dočasně přesunuta do swapovacího oddílu. Zařízení bez swapovacího oddílu nejsou schopna využít rozdílu posledních dvou metod, většina ovladačů kamer proto používá pouze metodu mapování fyzické paměti. 3.6 Testování náročnosti detekce pohybu Detekci pohybu v obraze je nutné testovat na reálném zařízení. Zatím ještě neexistuje ovladač Image Sensor Interface (ISI) pro procesorovou řadu AT91SAM9. Testování detekce provádím pomocí jiného zdroje obrazových dat. Pro tento účel jsem vytvořil jednoduchou sít ovou aplikaci pro předávání obrázků. 33

Zpracování signálu z obrazového senzoru s využitím OS Linux pro embedded zařízení

Zpracování signálu z obrazového senzoru s využitím OS Linux pro embedded zařízení 1 / 11 Zpracování signálu z obrazového senzoru s využitím OS Linux pro embedded zařízení Bc. Jan Breuer Vedoucí práce: Ing. Jan Fischer, CSc. České vysoké učení technické v Praze Fakulta elektrotechnická

Více

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

Linux na prapodivných deskách. LinuxDays 2017, Lenka Kosková Třísková Technická univerzita v Liberci Linux na prapodivných deskách LinuxDays 2017, Lenka Kosková Třísková Technická univerzita v Liberci Prapodivné desky? Se systémem od výrobce (BeagleBoard black) S podporou pro vývoj vlastní distribuce

Více

Základy informatiky. Operační systémy

Základy informatiky. Operační systémy Základy informatiky Operační systémy Zpracoval: Upraveno: Ing. Pavel Děrgel Daniela Ďuráková Cíle dnešní přednášky Operační systém základní funkce souborové systémy Windows historie, vlastnosti Linux historie

Více

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

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 02 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 Kernighan v r. 1973 přepsán do jazyka C Psát programy,

Více

Linux (nejen) v Low End routerech

Linux (nejen) v Low End routerech Linux (nejen) v Low End routerech Ing. Lukáš Macura Slezská univerzita v Opavě Obchodně podnikatelská fakulta v Karviné Člen projektu CESNET 134/2005 Prostředí pro vývoj embedded systémů

Více

Stavba operačního systému

Stavba operačního systému Stavba operačního systému Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,

Více

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.

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. OPERAČNÍ SYSTÉMY 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. OPERAČNÍ SYSTÉMY PŮVODNĚ VYVINUTY K ŘÍZENÍ SLOŽITÝCH VSTUPNÍCH A VÝSTUPNÍCH

Více

Úvod do Linuxu SŠSI Tábor 1

Úvod do Linuxu SŠSI Tábor 1 Úvod do Linuxu 9.10.2012 SŠSI Tábor 1 Historie Linux je obdoba operačního systému UNIX, vytvořená Linusem Torvaldsem. Na dalším vývoji systému i aplikací dnes pracuje řada dobrovolníků na celém světě.

Více

pouˇzití USB nebo SPI

pouˇzití USB nebo SPI Připojení modulů IQRF k platformě Android za pouˇzití USB nebo SPI Bc. Josef Jebavý, http://xeres.cz 25. srpna 2015 Obsah 1 Operační systém Android 2 2 Moˇznosti řešení 2 2.1 USB........................................

Více

Linux na mobilních telefonech

Linux na mobilních telefonech Linux na mobilních telefonech Jozef Mlích Department of Computer Graphics and Multimedia Brno University of Technology, Faculty of Information Technology Božetěchova 2, 612 66 Brno, Czech Republic imlich@fit.vutbr.cz

Více

Vestavné systémy BI-VES Přednáška 10

Vestavné systémy BI-VES Přednáška 10 Vestavné systémy BI-VES Přednáška 10 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011 ZS2010/11 Evropský

Více

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU HOST PC - TARGET PC PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ Stanislav Flígl Katedra elektrických pohonů a trakce (K13114),

Více

Administrace počítačových sítí. WEB a LPT

Administrace počítačových sítí. WEB a LPT Administrace počítačových sítí WEB a LPT Ovládání výstupů z počítače, například několika LED připojených na paralelní port, pomocí webové stránky s metodou GET Jaroslav Bušek 2010 1/15 Výběr komponent

Více

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

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno Operační systémy IOS 2009/2010 Tomáš Vojnar Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno ÚÓ Ò Ö ØºÚÙØ ÖºÞ Úvod do UNIXu p.1/11 Unix úvod Úvod do UNIXu p.2/11

Více

Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26)

Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26) Technik PC a periferií (kód: 26-023-H) Autorizující orgán: Ministerstvo vnitra Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26) Týká se povolání: Technik PC a periférií Kvalifikační

Více

Operační systémy (OS)

Operační systémy (OS) Operační systémy (OS) Operační systém Základní softwarové vybavení Ovládá technické vybavení počítače Tvoří rozhraní mezi aplikačními (uživatelskými) programy a hardwarem organizace přístupu k datům spouštění

Více

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou Maturitní témata předmět Informační a komunikační technologie Dominik Janák 2015 třída 4I Dominik Janák Maturitní otázky Výpočetní

Více

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2 Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura

Více

Základní deska (mainboard, motherboard)

Základní deska (mainboard, motherboard) Základní deska (mainboard, motherboard) Hlavním účelem základní desky je propojit jednotlivé součástky počítače do fungujícího celku a integrovaným součástem na základní desce poskytnout elektrické napájení.

Více

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

Základy operačních systémů Základy operačních systémů Operační systém - je souhrn programů, které umožňují uživateli využívat technické a programové prostředky daného počítače. Operační systém můžeme rozdělit do dvou části: základ

Více

Tomáš Borland Valenta

Tomáš Borland Valenta Architektura GNU/Linuxu Tomáš Borland Valenta Přehled stavebních prvků operačního systému GNU/Linux aneb od základů až po okna... Základní rozdělení Hardware Software Hardware Základní deska CPU Paměť

Více

Operační systémy. Tomáš Hudec. Tomas.Hudec@upce.cz. http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/

Operační systémy. Tomáš Hudec. Tomas.Hudec@upce.cz. http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Operační systémy Tomáš Hudec Tomas.Hudec@upce.cz http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/ Osnova definice OS historie rozdělení dle určení koncepce systémová volání rozdělení dle struktury 2 Literatura

Více

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

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V LINUX ADRESÁŘOVÁ STRUKTURA Co to, hrome, je? V této lekci se budeme brouzdat adresáři. KOŘENOVÝ ADRESÁŘ kořen = root tak se mu říká Ve skutečnosti se jmenuje / (lomítko, slash). Vše ostatní je v ubuntu

Více

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

ZOS CV1 Základy operačních systémů ZOS CV1 Základy operačních systémů Kontaktní informace Ing. Ladislav Pešička UL401 (pozor, ne UK410) pesicka@kiv.zcu.cz Úřední hodiny Út t 9:30 aža 10:30 St 9:30 aža 10:30 Web Stránky předmp edmětu budou

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0185. Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Registrační číslo projektu: CZ.1.07/1.5.00/34.0185. Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce: STŘEDNÍ ODBORNÁ ŠKOLA A STŘEDNÍ ODBORNÉ UČILIŠTĚ NERATOVICE Školní 664, 277 11 Neratovice, tel.: 315 682 314, IČO: 683 834 95, IZO: 110 450 639 Ředitelství školy: Spojovací 632, 277 11 Neratovice tel.:

Více

a co je operační systém?

a co je operační systém? a co je operační systém? Funkce vylepšení HW sjednocení různosti zařízení ulehčení programování (např. časové závislosti) přiblížení k potřebám aplikací o soubory namísto diskových bloků o více procesorů

Více

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

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 Software Co je to software? 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 Podívejme se tedy na jednotlivé

Více

Rozhraní mikrořadiče, SPI, IIC bus,..

Rozhraní mikrořadiče, SPI, IIC bus,.. Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška A3B38MMP 2013 kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2013, J.Fischer, kat. měření, ČVUT - FEL, Praha 1 Rozhraní SPI Rozhraní SPI ( Serial Peripheral

Více

Miroslav Tichý, tic136

Miroslav Tichý, tic136 Miroslav Tichý, tic136 32bitová mikroprocesorová architektura typu RISC(Reduced Instruction Set Computer) mobilním odvětví - smartphony, PDA, přenosné herní konzole, kalkulačky apod. Důvod: nízké vyzařované

Více

Studentská tvůrčí a odborná činnost STOČ 2015

Studentská tvůrčí a odborná činnost STOČ 2015 Studentská tvůrčí a odborná činnost STOČ 2015 PROGRAMOVATELNÝ PRVEK SYSTÉMU INTELIGENTNÍ DOMÁCNOSTI Lukáš SMOLKA Vysoká škola báňská Technická univerzita Ostrava 17. listopadu 15/2172 708 33 Ostrava-Poruba

Více

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého) Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého) Historický základ Jednoduché a málo výkonné počítače Uživatel

Více

TECHNICKÁ UNIVERZITA V LIBERCI Studentská 1402/2 461 17 Liberec 1

TECHNICKÁ UNIVERZITA V LIBERCI Studentská 1402/2 461 17 Liberec 1 Technická univerzita v Liberci Studentská 1402/2, 461 17 Liberec IČ: 467 47 885 vyřizuje oddělení veřejných zakázek 1 VÝZVA K PODÁNÍ NABÍDEK A PROKÁZÁNÍ SPLNĚNÍ KVALIFIKACE A ZADÁVACÍ DOKUMENTACE Zadavatel

Více

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant CCTV LTC 85 Modulární maticové přepínače a řídicí systémy Allegiant LTC 85 Modulární maticové přepínače a řídicí systémy Allegiant Přepínání 64 kamer na 8 monitorech 8 nezávislých klávesnic Modulární konstrukce

Více

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

Souborový systém (File System FS) Souborové systémy. Souborová fragmentace. Disková fragmentace. Organizace dat na pevném disku Výpočetní technika I Souborové systémy Souborový systém (File System FS) Způsob organizace informací (souborů) ukládaných na bloková zařízení paměťová média (disky, pásky, CD, DVD, BD,...) počítače. Souborový

Více

Systém souborů (File System)

Systém souborů (File System) (File System) Základní pojmy Běžný uživatel vidí logický systém souborů jako jeden strom. Kořen stromu je kořenový adresář ( / = Root Directory ). Uzly stromu jsou adresáře (d = Directory). Listy stromu

Více

Operační systémy IOS. Studijní opora. Tomáš Kašpárek, Radek Kočí, Petr Peringer, Tomáš Vojnar 25. listopadu 2006

Operační systémy IOS. Studijní opora. Tomáš Kašpárek, Radek Kočí, Petr Peringer, Tomáš Vojnar 25. listopadu 2006 Operační systémy IOS Studijní opora Tomáš Kašpárek, Radek Kočí, Petr Peringer, Tomáš Vojnar 25. listopadu 2006 Tento učební text vznikl za podpory projektu Zvýšení konkurenceschopnosti IT odborníků absolventů

Více

XD Routing a vstupní I/O systém. Digitální broadcast technologie

XD Routing a vstupní I/O systém. Digitální broadcast technologie Řada 52 XD Routing a vstupní I/O systém Digitální broadcast technologie Design Core XD a Core XC systému Core - Jádro systému 52/XC Core je DHD centrální procesor pro menší a střední mixážní pulty se zpracováním

Více

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Real Time programování v LabView. Ing. Martin Bušek, Ph.D. Real Time programování v LabView Ing. Martin Bušek, Ph.D. Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití

Více

Úvod do OpenWRT. Ondřej Caletka. 1. března 2014. Uvedené dílo podléhá licenci Creative Commons Uveďte autora 3.0 Česko.

Úvod do OpenWRT. Ondřej Caletka. 1. března 2014. Uvedené dílo podléhá licenci Creative Commons Uveďte autora 3.0 Česko. Úvod do OpenWRT Ondřej Caletka 1 března 2014 Uvedené dílo podléhá licenci Creative Commons Uveďte autora 30 Česko Ondřej Caletka (CESNET, z s p o) Úvod do OpenWRT 1 března 2014 1 / 14 Co je OpenWRT Distribuce

Více

Maturitní témata - PRT 4M

Maturitní témata - PRT 4M Maturitní témata - PRT 4M ústní zkouška profilové části Maturita - školní rok 2015/2016 1. Architektura mikrořadičů a PC 2. Popis mikrořadičů řady 51 3. Zobrazovací jednotky 4. Řadiče Atmel 5. Hradlová

Více

USB 3G Dongle OBSAH:

USB 3G Dongle OBSAH: USB 3G Dongle OBSAH: Úvod První uvedení do provozu O produktu Specifikace produktu Upozornění Další informace Obsah balení Poznámky Instalace software a ovladačů Poradce při potížích Průvodce selhání připojení

Více

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY Jiří Šebesta Ústav radioelektroniky, Fakulta elektroniky a komunikačních technologií Vysoké učení technické v Brně

Více

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

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění MS WINDOWS I řada operačních systémů firmy Microsoft *1985 -? Historie Práce ve Windows XP Architektura Instalace Spouštění HISTORIE I MS-DOS 1981, první OS firmy Microsoft, pro IBM PC 16b, textový, jednouživatelský,

Více

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

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura IBM PC 5150 MS DOS 1981 (7 verzí) DR DOS, APPLE DOS, PC DOS 1. 3. Windows grafická nástavba na DOS Windows 95 1. operační systém jako takový, Windows XP 2001, podporovány do 2014, x86 a Windows 2000 Professional

Více

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

SOU Valašské Klobouky. VY_32_INOVACE_01_15 IKT Operační systémy, základní vlastnosti, přehled. Mgr. Radomír Soural SOU Valašské Klobouky VY_32_INOVACE_01_15 IKT Operační systémy, základní vlastnosti, přehled Mgr. Radomír Soural Zkvalitnění výuky prostřednictvím ICT Název a číslo projektu CZ.1.07/1.5.00/34.0459 Název

Více

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY Souborové systémy pracovních stanic BAKALÁŘSKÁ PRÁCE Ondřej Mareš Vedoucí práce: Dr. Ing. Jiří Toman Plzeň, 14.

Více

1. přednáška pro začátečníky

1. přednáška pro začátečníky 1. přednáška pro začátečníky http://sut.sh.cvut.cz bejzz a Charlie Úvod Snad na úvod: GNU/Linux je svobodný operační systém unixového typu. Jeho jádro - Linux - bylo vytvořeno Linusem Torvaldsem za pomoci

Více

Operační systémy 2. Přednáška číslo 2. Přidělování paměti

Operační systémy 2. Přednáška číslo 2. Přidělování paměti Operační systémy 2 Přednáška číslo 2 Přidělování paměti Základní pojmy Paměť = operační paměť paměť, kterou přímo využívají procesory při zpracování instrukcí a dat Funkce modulu přidělování paměti: Sledování

Více

Technické prostředky počítačové techniky

Technické prostředky počítačové techniky Informatika 2 06 Technické prostředky počítačové techniky Externí paměti 2 Nemagnetická média IS2-4 1 Aktuality ze světa ICT Informační systémy 2 Simulace kyberútoku Projekt Fénix 2 Master boot record

Více

Obecný popis základní jednotky

Obecný popis základní jednotky Obecný popis základní jednotky Základní součástí počítačové sestavy je skříň. Zatímco bez monitoru či klávesnice by principiálně počítač jako takový mohl fungovat, skříň je neodmyslitelná, tj. je nejdůležitějším

Více

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m Servisní návod 24. června 2014 w w w. p a p o u c h. c o m Workmonitor Katalogový list Vytvořen: 18.5.2009 Poslední aktualizace: 24.6 2014 09:20 Počet stran: 11 2014 Adresa: Strašnická 3164/1a 102 00 Praha

Více

Principy činnosti sběrnic

Principy činnosti sběrnic Cíl přednášky: Ukázat, jak se vyvíjely architektury počítačů v souvislosti s architekturami sběrnic. Zařadit konkrétní typy sběrnic do vývojových etap výpočetních systémů. Ukázat, jak jsou tyto principy

Více

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/19 30.5.2007

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/19 30.5.2007 Měřič krevního tlaku Ing. Martin Švrček martin.svrcek@phd.feec.vutbr.cz Ústav biomedicínckého inženýrství Fakulta elektrotechniky a komunikačních technologií VUT v Brně Kolejní 4, 61200 Brno Tento článek

Více

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

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

GPRS / MMS / SMS DIGITÁLNÍ INFRAČERVENÁ FOTOPAST WCM-3004 / HSM3004 UŽIVATELSKÁ PŘÍRUČKA

GPRS / MMS / SMS DIGITÁLNÍ INFRAČERVENÁ FOTOPAST WCM-3004 / HSM3004 UŽIVATELSKÁ PŘÍRUČKA GPRS / MMS / SMS DIGITÁLNÍ INFRAČERVENÁ FOTOPAST WCM-3004 / HSM3004 UŽIVATELSKÁ PŘÍRUČKA 1 OBSAH 1. Návod k použití... 2 1.1 Obecný popis... 2 1.2 Rozhraní... 2 1.3 Komponenty a funkce fotopasti... 3 1.4

Více

Návod na použití Konfigurační softvér DJ LCD config v1.3

Návod na použití Konfigurační softvér DJ LCD config v1.3 Konfigurační softvér DJ LCD config v1.3 Strana 1 Úvod DJ LCD config softvér je konfigurační a diagnostický nástroj pro 2-vodičový systém video vrátniků EASYDOOR. Dovoluje komfortně kontrolovat funkčnost

Více

E.C.S. řada 900 - nová generace obrat o 360 ( Systém vyvinut ve Florencii v r.2009 )

E.C.S. řada 900 - nová generace obrat o 360 ( Systém vyvinut ve Florencii v r.2009 ) E.C.S. řada 900 - nová generace obrat o 360 ( Systém vyvinut ve Florencii v r.2009 ) Filozofie vývoje nové řady E.C.S. CNC klade důraz především na vyspělou technologii a nadčasový vzhled. Vývoji nového

Více

ÚAMT FEKT VUT. mikroprocesor Rabbit. Diplomová prá ce. Tomá škreuzwieser. Brno 2004. Email: kreuzwieser@kn.vutbr.cz

ÚAMT FEKT VUT. mikroprocesor Rabbit. Diplomová prá ce. Tomá škreuzwieser. Brno 2004. Email: kreuzwieser@kn.vutbr.cz ÚAMT FEKT VUT Zá znamová karta pro mikroprocesor Rabbit Diplomová prá ce Tomá škreuzwieser Email: kreuzwieser@kn.vutbr.cz Brno 2004 Osnova prezentace Cíl mé prá ce (zadá ní) Proč jsou pamě ťové karty důležité

Více

Vývojové kity Mega48,

Vývojové kity Mega48, Vývojové kity Mega48, Mega48 Mega48X a Mega328 Ucelená řada ada vývojových kitů s obvody ATmega48 a ATmega328 je vhodná jak pro výukové účely ely a seznámení se s funkcemi mikrokontrolér mikrokontrolérů,

Více

Stylový společník, který nabízí pokročilou grafiku i zabezpečení. Oficiální webové stránky VAIO Europe http://www.vaiopro.eu/

Stylový společník, který nabízí pokročilou grafiku i zabezpečení. Oficiální webové stránky VAIO Europe http://www.vaiopro.eu/ VGN-SR49VN/H Váš mobilní partner Stylový společník, který nabízí pokročilou grafiku i zabezpečení Oficiální webové stránky VAIO Europe http://www.vaio.eu/ Oficiální webové stránky VAIO Europe http://www.vaiopro.eu/

Více

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

Mobilní malware na platformě Android Přednáška 2. Ing. Milan Oulehla Mobilní malware na platformě Android Přednáška 2 Ing. Milan Oulehla Úvod Informace o technikách, které používají tvůrci mobilního malware: Bezpečnostní chyby se mění v čase Vytvoření vlastních zdrojových

Více

Průmyslové pece Tepelné procesy Sušárny a klimatizační komory Zkušebny Technologické linky Stroje

Průmyslové pece Tepelné procesy Sušárny a klimatizační komory Zkušebny Technologické linky Stroje PMA a Company of WEST Control Solutions KS 108 easy Kompaktní řídicí a regulační přístroj pro průmyslové aplikace Kombinované funkce regulace, sekvenčního řízení a ovládání Rozsáhlá knihovna funkcí a ovládacích

Více

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

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11 Obsah Úvod 11 Informace o použitém hardwaru 12 Několik poznámek k Windows 13 Windows XP 13 Windows Vista 13 Kapitola 1 Skříně počítačů 15 Typy skříní 15 Desktop 15 Tower (věžová provedení) 15 Rozměry skříní

Více

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

Opakování k maturitní zkoušce z informatických předmětů Opakování k maturitní zkoušce z informatických předmětů 1. Hardware počítače. Základní pojmy používané ve výpočetní technice HW, SW. Rozdělení počítačů (podle velikosti, provedení). Základní sestava PC.

Více

Řídicí systémy řady 400 str.2 z 16 MICROPEL

Řídicí systémy řady 400 str.2 z 16 MICROPEL Řídicí systémy řady 400 2. verze dokumentu, MICROPEL s.r.o. 01.2014 - opravena chyba v číslování svorek I/O na str.7 - aktualizovány všechny ilustrace na změněné umístění portu Řídicí systémy řady 400

Více

VirtualBox desktopová virtualizace. Zdeněk Merta

VirtualBox desktopová virtualizace. Zdeněk Merta VirtualBox desktopová virtualizace Zdeněk Merta 15.3.2009 VirtualBox dektopová virtualizace Stránka 2 ze 14 VirtualBox Multiplatformní virtualizační nástroj. Částečně založen na virtualizačním nástroji

Více

UDAQ-1216A UDAQ-1416A. multifunkèní modul pro rozhraní USB

UDAQ-1216A UDAQ-1416A. multifunkèní modul pro rozhraní USB UDAQ-1216A UDAQ-1416A multifunkèní modul pro rozhraní USB Záruèní a pozáruèní servis, technická podpora: adresa: TEDIA spol. s r. o., Zábìlská 12, 31211 Plzeò telefon: +420 377 478 168 fax: +420 377 478

Více

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

HW počítače co se nalézá uvnitř počítačové skříně ZVT HW počítače co se nalézá uvnitř počítačové skříně HW vybavení PC Hardware Vnitřní (uvnitř počítačové skříně) Vnější ( ) Základní HW základní jednotka + zobrazovací zařízení + klávesnice + (myš) Vnější

Více

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1 Manuál správce VNI 5.1 verze 0.2 Manuál správce VNI 5.1 VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 655 (pracovní doba 7:30 15:00) www.variant.cz isb@variant.cz

Více

Úvod do zpracování obrazů. Petr Petyovský Miloslav Richter

Úvod do zpracování obrazů. Petr Petyovský Miloslav Richter Úvod do zpracování obrazů Petr Petyovský Miloslav Richter 1 OBSAH Motivace, prvky a základní problémy počítačového vidění, pojem scéna Terminologie, obraz, zpracování a analýza obrazu, počítačové vidění,

Více

Instalace Debianu pomocí debootstrap

Instalace Debianu pomocí debootstrap Instalace Debianu pomocí debootstrap Petr Krčmář 8. listopadu 2015 Uvedené dílo (s výjimkou obrázků) podléhá licenci Creative Commons Uveďte autora 3.0 Česko. Petr Krčmář (Root.cz, vpsfree.cz) Instalace

Více

Ltl Acorn Ltl-5310M Series

Ltl Acorn Ltl-5310M Series Ltl Acorn Ltl-5310M Series uživatelský manual OBSAH Obecné informace 1.1 Úvod 1.2 Použití 1.3 fotografie fotopasti Rychlý START 2.1 Vložení SIM karty 2.2 Vložení baterií 2.3 Vložení SD karty 2.4 Vstup

Více

UŽIVATELSKÝ MANUÁL FOTOPAST ACORN LTL-5210

UŽIVATELSKÝ MANUÁL FOTOPAST ACORN LTL-5210 UŽIVATELSKÝ MANUÁL FOTOPAST ACORN LTL-5210 1. OBECNÉ INFO 1.1 ÚVOD Gratulujeme k zakoupení fotopasti ACORN LTL-5210. Jedná se o druhou generaci fotopastí, jenž disponuje GSM modulem, který umožňuje zasílání

Více

BIOS. Autor: Bc. Miroslav Světlík

BIOS. Autor: Bc. Miroslav Světlík BIOS Autor: Bc. Miroslav Světlík Škola: Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, příspěvková organizace Kód: VY_32_INOVACE_ICT_837 1. 11. 2012 1 1. BIOS

Více

Firmware USBasp pro modul AVRUSB. Milan Horkel. Parametr Hodnota Poznámka. Rozhraní USB Low Speed. Procesor ATmega8 ATmega88 Varianty překladu

Firmware USBasp pro modul AVRUSB. Milan Horkel. Parametr Hodnota Poznámka. Rozhraní USB Low Speed. Procesor ATmega8 ATmega88 Varianty překladu Firmware USBasp pro modul AVRUSB Milan Horkel Firmware USBasp umožňuje použít modul AVRUSB jako ISP programátor procesorů řady AVR pod všemi běžnými operačními systémy. 1. Technické parametry Parametr

Více

Windows a real-time. Windows Embedded

Windows a real-time. Windows Embedded Windows a real-time Windows Embedded Windows pro Embedded zařízení Současnost (2008): Windows Embedded WINDOWS EMBEDDED Windows Embedded CE Windows XP Embedded Windows Embedded for Point of Service Minulé

Více

Univerzální jednočipový modul pro řízení krokových motorů

Univerzální jednočipový modul pro řízení krokových motorů Středoškolská odborná činnost 2005/2006 Obor 10 elektrotechnika, elektronika, telekomunikace a technická informatika Univerzální jednočipový modul pro řízení krokových motorů Autor: Jan Fíla SPŠ Trutnov,

Více

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor FASTPort Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům aneb Jak připojit koprocesor *) inteligentní karta = karta vybavená vlastním procesorem J. Němeček 12. 10. 2013 úvodní

Více

Internetová kamera ICA-300. Uživatelský návod

Internetová kamera ICA-300. Uživatelský návod Internetová kamera ICA-300 Uživatelský návod Obsah 1. Úvod...3 1.1 Obsah balení 3 1.2 Systémové požadavky 3 1.3 Vlastnosti zařízení 3 1.4 Specifikace 4 2. Fyzická instalace...5 2.1 Popis hardwaru 5 2.2

Více

MyIO - webový komunikátor

MyIO - webový komunikátor MyIO - webový komunikátor Technická příručka verze dokumentu 1.0 FW verze modulu 1.4-1 - Obsah 1 MyIO modul... 3 2 Lokální webové rozhraní... 3 2.1 Start, první přihlášení... 3 2.2 Home úvodní strana MyIO...

Více

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor Menu Operační systém Procesor a základní deska Paměťové zařízení Ovladače Zobrazení Síť Další zařízení Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor Intel(R) Core(TM)2

Více

Architektura počítače

Architektura počítače Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích

Více

Obsah. 1. Upozornění. 2. Všeobecný popis

Obsah. 1. Upozornění. 2. Všeobecný popis Obsah 1. Upozornění... 1 2. Všeobecný popis... 1 3. Obsah servisního CD... 2 4. Hlavní elektronické části LES-RACK:... 2 5. Nastavení Ethernetového modulu zařízení LES-RACK... 2 6. Použití servisního programu

Více

Ukazovací zařízení a klávesnice Uživatelská příručka

Ukazovací zařízení a klávesnice Uživatelská příručka Ukazovací zařízení a klávesnice Uživatelská příručka Copyright 2008 Hewlett-Packard Development Company, L.P. Microsoft a Windows jsou registrované ochranné známky společnosti Microsoft Corporation v USA.

Více

Implementace numerických metod v jazyce C a Python

Implementace numerických metod v jazyce C a Python Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:

Více

Instalace OS, nastavení systému

Instalace OS, nastavení systému ZVT Instalace OS, nastavení systému SW vybavení PC HW hardware zařízení počítače (+ firmware těchto zařízení, BIOS VGA, ) BIOS basic input output systém poskytuje služby OS, uložen v paměti na MB. (Nastavení

Více

Technické prostředky počítačové techniky

Technické prostředky počítačové techniky Počítač - stroj, který podle předem připravených instrukcí zpracovává data Základní části: centrální procesorová jednotka (schopná řídit se posloupností instrukcí a ovládat další části počítače) zařízení

Více

Úvod do programování a práce s počítačem

Úvod do programování a práce s počítačem Úvod do programování a práce s počítačem Základní pojmy hardware železo technické vybavení počítače souhrnný název pro veškerá fyzická zařízení, kterými je počítač vybaven software programové vybavení

Více

USB Webkamera. Obj. č. 97 19 39. Návod k použití

USB Webkamera. Obj. č. 97 19 39. Návod k použití Verze z 08/09 USB Webkamera Obj. č. 97 19 39 Návod k použití 1. Účel použití Výrobek je určen k připojení k počítači přes USB port a slouží jako webkamera. Jakékoliv neautorizované úpravy a modifikace

Více

InTouch 8.0 Subsystém distribuovaných alarmů

InTouch 8.0 Subsystém distribuovaných alarmů InTouch 8.0 Subsystém distribuovaných alarmů Pavel Průša Pantek (CS) s.r.o. Strana 2 Obsah Úvod Úvod Subsystém distribuovaných alarmů Ukládání alarmů do relační databáze Zobrazování, potvrzování a potlačování

Více

Instalace Packet Radia pod systémem Debian Linux s použitím zvukové karty jako modemu

Instalace Packet Radia pod systémem Debian Linux s použitím zvukové karty jako modemu Instalace Packet Radia pod systémem Debian Linux s použitím zvukové karty jako modemu Hned na začátek bych chtěl napsat, že paket se mi podařilo tímto postupem rozchodit pouze u jader kernel-image-2.4.x.

Více

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba. Odpovědi jsem hledala v prezentacích a na http://www.nuc.elf.stuba.sk/lit/ldp/index.htm Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je

Více

BIOS (BASIC INPUT-OUTPUT SYSTEM)

BIOS (BASIC INPUT-OUTPUT SYSTEM) Implemantace základních vstupně-výstupních funkcí, tzn firmware Využívá se pro inicializaci a konfiguraci připojených hardwarových zařízení a pro spuštění zavaděče operačního systému, Dříve používán i

Více

Rozdělení operačních systémů

Rozdělení operačních systémů Rozdělení operačních systémů OS1 Přednáška číslo 2 Podle počtu ovládaných procesorů Jednoprocesorové (monoprocesorové) Víceprocesorové (multiprocesorové) Asymetrický processing (ASMP) na jednom procesoru

Více

Jak nasadit Windows 10 ve škole

Jak nasadit Windows 10 ve škole Jak nasadit ve škole Karel Klatovský PUBLIKOVÁNO: ÚNOR 2016 PRO AKTUÁLNÍ INFORMACE NAVŠTIVTE WEBOVÉ STRÁNKY WWW.MICROSOFT.CZ/SKOLSTVI Obsah Obsah...2 1. Úvod...3 2. Systémové požadavky... 4 3. Příprava

Více

Obslužný software. vizualizaci zařízení

Obslužný software. vizualizaci zařízení 5 645 Obslužný software pro vizualizaci zařízení ACS715 Obslužný, alarmový a software pro zpracování úloh v systému s centrálami OCI600, OCI611, OZW10 a OZW111 Servisní software pro regulátory s komunikací

Více

1. Jak pracuje počítač 3. Už víme, jak pracuje počítač, ale jak se pracuje s počítačem? 9

1. Jak pracuje počítač 3. Už víme, jak pracuje počítač, ale jak se pracuje s počítačem? 9 Počítače pro úplné začátečníky Obsah 1. Jak pracuje počítač 3 Základní princip je velmi jednoduchý 3 Dokumenty a nástroje (datové soubory a programy) 3 Složky (adresáře) 4 Jak to tedy vlastně funguje 5

Více

Elektronická stavebnice: Deska s jednočipovým počítačem

Elektronická stavebnice: Deska s jednočipovým počítačem Elektronická stavebnice: Deska s jednočipovým počítačem Modul s jednočipovým počítačem Modul s řídícím jednočipovým počítačem je centrálním prvkem stavebnice. Jeho konstrukce umožňuje přímé připojení do

Více

OpenWrt. Cesta do hlubin otevřeného systému pro domácí routery. Martin Strbačka martin.strbacka@nic.cz 21.05.2013

OpenWrt. Cesta do hlubin otevřeného systému pro domácí routery. Martin Strbačka martin.strbacka@nic.cz 21.05.2013 OpenWrt Cesta do hlubin otevřeného systému pro domácí routery Martin Strbačka martin.strbacka@nic.cz 21.05.2013 Obsah: První část Představení OpenWrt Trocha historie Jak to bootuje? Filesystem Ipkg balíčky

Více

OBCHODNÍ NABÍDKA BIZHUB 20 PROČ VÁM NABÍZÍME ZAŘÍZENÍ BIZHUB 20 VÝHODY PRODUKTU Chceme ušetřit Vaše peníze: Oboustranný tisk šetří až 50 % nákladů na papír a poštovné. CO ZAUJME FINANČNÍHO ŘEDITELE Kontrola

Více