|
Distribuovaný systém správy objednávek pro restaurační zařízení
Zíka, Jakub ; Kofroň, Jan (vedoucí práce) ; Horký, Vojtěch (oponent)
Pro restaurace a podobné podniky je velice výhodné používat software pro správu objednávek kvůli udržení přehledu o financích podniku a požadav- cích zákazníků. Na českém trhu již existuje celá řada produktů vytvořených pro tento účel. Existující softwarová řešení je ovšem často složité rozšiřovat nebo propojovat s dalšími systémy. V rámci této práce je navržen a vyvinut systém pro správu objednávek EasyPub fungující na operačních systémech GNU/Linux a Microsoft Windows. EasyPub umožňuje externím programům přistupovat k informacím uloženým v systému prostřednictvím otevřeného protokolu. Vznik systému je přínosný a přispívá k inovaci v oblasti restau- račního software. 1
|
|
Debugging the SLUB allocator in the Linux kernel
Glitta, Oliver ; Babka, Vlastimil (vedoucí práce) ; Horký, Vojtěch (oponent)
Táto práca je zameraná na SLUB alokátor a nástroje na jeho ladenie. V SLUB alo- kátore existovali testy, ale nikto ich nepoužíval. Bolo to pretože neexistovala štruktúra na ich automatické testovanie v kerneli. Tento projekt pridal jeden zo spôsobov na tes- tovanie SLUBu v kerneli, KUnit testovanie. Do tohto rozhrania boli s malými zmenami pridané predchádzajúce testy. Takisto, na základe systematického prehľadania commitov spojených so SLUBom boli pridané nové regresné testy. V ďalšej časti práce sú rozšírené ladiace možnosti SLUBu pre sledovanie alokovania, vrátane efektívneho ukladania stack trace. Posledná časť zlepšuje virtuálny súborový systém debugfs, ktorý poskytuje infor- mácie o kernelových komponentoch do user space, pridaním stack trace do virtuálych súborov SLUBu. Navyše tento projekt pomáha sledovať efektivitu používania SLUB ca- che z hľadiska veľkosti objektu. Všetky tieto zmeny by mali pomôcť pri ladení SLUBu. Niektoré zmeny boli podané a dokonca prijaté komunitov, takže boli pridané do Linuxu verzie 5.14. 1
|
|
Aplikace pro focení 360° fotografií pro kameru Mi Sphere
Cífka, Martin ; Mirbauer, Martin (vedoucí práce) ; Horký, Vojtěch (oponent)
Xiaomi Mi Sphere je kamera pro pořizování 360ř fotografií. Takové sférické fotografie jsou za současného využití vysokého dynamického rozsahu (HDR) používány pro účely re- alistického renderingu jako pozadí a pro vytváření realistického osvětlení a odrazů světla. Výhoda uvedené kamery spočívá v její nízké hmotnosti a snadné přenositelnosti, ale oficiální aplikace potřebná k jejímu ovládání je dostupná pouze pro operační systémy Android a iOS, a neumožňuje současné použití časosběru a bracketingu pro pořizování HDR snímků. Ani jiné neoficiální aplikace tuto funkcionalitu nepodporují. V této práci analyzujeme komunikační protokol mezi kamerou a oficiální aplikací, následně vytváříme vlastní multiplatformní aplikaci s webovým grafickým prostředím. Ta kromě standard- ního fotografování podporuje i zmíněné současné použití časosběru a bracketingu. Vzniklá aplikace se spouští nikoliv na zařízení uživatele, ale přímo na kameře, což nám umožňuje pokračovat ve fotografování i po odpojení zařízení klienta. 1
|
|
Syscall emulation support in HelenOS
Kabele, Vít ; Horký, Vojtěch (vedoucí práce) ; Tůma, Petr (oponent)
Existují dva hlavní způsoby jak na jednom operačním systému spustit program určený pro jiný operační systém. Jedním z nich je modifikace samot- ného softwaru či jeho části pro cílové API. Druhý staví na poskytnutí vrstvy kompatibility transparentní z pohledu aplikace, tak aby aplikace nemusela být modifikována. První zmíněné již HelenOS umí, druhé realizujeme v této práci. Práce obsahuje popis binárního rozhraní kernelu a analýzu existujících řešení na Linuxu, Windowsu a dalších systémech. Zároveň popisuje imple- mentaci, která transparentně emuluje syscally. Emulace je implementovaná v userspace, s vyjímkou malé "trampolíny" v kernelu, a běží v kontextu emulo- vané aplikace. Výsledek umožňuje spouštění řady Linuxových utilit včetně GCC na platformě x86_64 v systému HelenOS. 1
|
|
User alerts with real-time data monitoring for IVIS framework
Janda, Jan ; Bureš, Tomáš (vedoucí práce) ; Horký, Vojtěch (oponent)
S rostoucím počtem zařízení v internetu věcí a s rostoucím rozsahem kyberneticko- fyzických systémů se zvyšuje množství kritických dat, která musí být neustále mon- itorována. IVIS je framework s webovým rozhraním sloužící ke zpracování a vizual- izaci takových dat. Bylo by výhodné, kdyby tento framework dokázal monitorovat data v reálném čase, vydávat výstrahy a rozesílat notifikace. V této práci přidáme IVISu právě takovou schopnost, která pro něj doposud nebyla vyvinuta. Toto rozšíření může být použito k nastavení automatického monitorování příchozích dat s vhodnou úrovní detailu. Důraz je kladen na univerzálnost možných konfigurací. Je možné přesně defi- novat podmínky monitorování a pravidla notifikací napříč širokou škálou požadavků. Je také důležité, že systém disponuje nastavitelnou časovou stabilitou, a není tedy ovlivněn odlehlými hodnotami a nahodilým šumem.
|
|
Podpora tokenizace pro Diff a Patch
Antoniewicz, Arkadiusz Martin ; Kratochvíl, Miroslav (vedoucí práce) ; Horký, Vojtěch (oponent)
Algoritmy na porovnávanie súborov a pomocné programy "diff", "patch" a "diff3" sa často používajú v programovaní za účelom porovnávania kódu a v mnohých systémoch správy verzií. Napriek užitočnosti sú výsledky týchto nástrojov striktne orientované na riadky, čo môže komplikovať spracovanie rôznych formátov textov, ako je napríklad obyčajný text, značkovací jazyk a rôzne ďalšie formáty, v ktorých nie sú zlomy riadkov významné. Táto práca popisuje a implementuje prispôsobiteľnú verziu týchto nástrojov, ktoré umožňujú používateľovi určiť ľubovoľnú tokenizáciu vstupu, čoho dôsledkom ľahké diferencovanie, opravovanie a zlučovanie zmien obsahu, ktorý nie je podporovaný tradičným programom "diff". Práca sa zaoberá novovzniknutým problémom vysporadúvania sa s bielymi znakmi. 1
|
|
ALTREP Data Representation in FastR
Marek, Pavel ; Šindelář, Štěpán (vedoucí práce) ; Horký, Vojtěch (oponent)
R je dynamický programovací jazyk, používaný zejména v oborech statistika a datová analýza, rozšiřitelný pomocí balíčků. GNU-R, což je standardní interpreter jazyka R, přidal ve verzi 3.5.0 nové nativní API (ALTREP) pro vývojáře balíčků. Cílem této práce je implementovat ALTREP API pro FastR, což je interpreter jazyka R postavený na GraalVM a Truffle, a prozkoumat možnosti optimalizací FastR v kontextu tohoto API. Motivací je zejména zvýšení počtu balíčků, které bude FastR schopné nainstalovat a spustit. 1
|
|
Podpora tokenizace pro Diff a Patch
Antoniewicz, Arkadiusz Martin ; Kratochvíl, Miroslav (vedoucí práce) ; Horký, Vojtěch (oponent)
Algoritmy na porovnávanie súborov a pomocné programy "diff", "patch" a "diff3" sa často používajú v programovaní za účelom porovnávania kódu a v mnohých systémoch správy verzií. Napriek užitočnosti sú výsledky týchto nástrojov striktne orientované na riadky, čo môže komplikovať spracovanie rôznych formátov textov, ako je napríklad obyčajný text, značkovací jazyk a rôzne ďalšie formáty, v ktorých nie sú zlomy riadkov významné. Táto práca popisuje a implementuje prispôsobiteľnú verziu týchto nástrojov, ktoré umožňujú používateľovi určiť ľubovoľnú tokenizáciu vstupu, čoho dôsledkom ľahké diferencovanie, opravovanie a zlučovanie zmien obsahu, ktorý nie je podporovaný tradičným programom "diff". Práca sa zaoberá novovzniknutým problémom vysporadúvania sa s bielymi znakmi. 1
|
|
Transparent Restarts of Stateless Linux Services
Šraier, Václav ; Koutný, Michal (vedoucí práce) ; Horký, Vojtěch (oponent)
Servery musí být čas od času aktualizovány kvůli bezpečnostním záplatám a novým funkcím. Úplné restartování provozované služby je jednoduchý způsob, jak aktualizaci provést, obvykle však vede k nákladným výpadkům. Zachováním vnitřního stavu služby a navázaných síťových spojení je možné výpadkům při restartu předejít. V současné době však neexistuje způsob, jak toho snadno a obecně dosáhnout. V práci představujeme uživatelsky přívětivou knihovnu pro Linux, která zpracovává transparentní restartování bezstavových služeb s minimálními požadavky na změnu existujícího kódu. Dále ukazu- jeme, že podpora správce služeb může výrazně zlepšit funkčnost řešení, a ke knihovně poskytujeme integraci do systemd, populárního správce služeb a init systému. 1
|
|
Integrated Server for Dynamic Program Analysis
Kabele, Vít ; Bulej, Lubomír (vedoucí práce) ; Horký, Vojtěch (oponent)
Dynamická analýza pomáhá při vývoji softwaru v mnoha situacích, ať už jde o debugo- vání, porozumění programu či optimalizaci výkonu. Vyvinout novou dynamickou analýzu je však netriviální úkol. Pro usnadnění vývoje dynamických analýz výzkumníci z Univerzity Karlovy ve spolu- práci s Università della Svizzera italiana v Luganu společnými silami vyvinuli frameworky DiSL a ShadowVM. Tyto frameworky zvyšují úroveň abstrakce pro vývojáře a poskytují vhodný programovací model jak pro instrumentaci bytekódu, tak pro provádění analýz. Ačkoliv tyto frameworky byly úspěšně použity při vývoji mnoha různých dynamických analýz v praxi, ukázalo se, že interní design originálních implementací obou frameworků způsobil, že jakékoliv budoucí rozšíření, jako například podpora pro "instrumentation- time reflection", bylo extrémně obtížné. Oba frameworky pracují v klient-server režimu a přestože jsou navrženy pro společné užití, design zabraňuje sdílení dat mezi oběma klientskými a oběma serverovými částmi. To nejenže zvyšuje množství dat které je potřeba přenést po síti, ale zároveň to činí konfiguraci obou částí složitější. V této práci navrhneme a implementujeme novou architekturu obou frameworků tak, že funkcionalita DiSLu i ShadowVM bude poskytována jedním serverem pro vícero kli- entů. 1
|