dc.contributor.advisor | Děcký, Martin | |
dc.creator | Lipavský, Lukáš | |
dc.date.accessioned | 2017-04-12T09:54:07Z | |
dc.date.available | 2017-04-12T09:54:07Z | |
dc.date.issued | 2008 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/17231 | |
dc.description.abstract | Tato práce navrhuje způsob implementace Linuxových ovladačů jakožto aplikací v uživatelském prostoru. Definice pevného rozhraní umožňujícího přístup k funkcím a strukturám jádra operačního systému byla v úvodní analýze zamítnuta z důvodu malé flexibility. Pokud aplikace vyžadovala funkcionalitu, která nebyla rozhraním poskytována, aplikace byla nucena implementovat vlastní modul jádra operačního systému pro její zpřístupnění. Navrhované řešení umožňuje dynamickou tvorbu rozhraní dle požadavků aplikace. Definice rozhraní je uložena v binární podobě (kódu), která je dynamicky zavedena do jádra operačního sytému. V kódu je také uložena definice funkcí, které se při zavedení začlení do jádra. Tyto funkce pak mohou být volány z ostatních funkcí jádra a realizovat například obsluhu přerušení. Formát kódu je nezávislý na architektuře počítače i na konfiguraci jádra operačního systému a je snadno přenositelný. Navržené řešení umožňuje tvorbu ovladačů operačního systému Linux, které jsou implementovány jako uživatelské aplikace, aniž by ke své funkci vyžadovaly vlastní modul Linuxového jádra. | cs_CZ |
dc.description.abstract | This thesis proposes and implements a new method of implementing Linux kernel drivers in userspace applications - userspace drivers. Instead of proposing fixed interface for accessing kernel functionality from userspace application and using dedicated kernel module to implement functionality not accessible via the interface, proposed method allows applications to define custom interfaces to the kernel. The interface is defined in special bytecode that is loaded into the kernel. The bytecode also provides functions that can be called from the kernel and that work even in atomic context (interrupt handlers, etc.). The bytecode is architecture and kernel configuration independent. The proposed method makes it possible to develop kernel drivers implemented in userspace applications without the need of dedicated kernel module. | en_US |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.title | Linux kernel userspace modules | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2008 | |
dcterms.dateAccepted | 2008-09-24 | |
dc.description.department | Katedra softwarového inženýrství | cs_CZ |
dc.description.department | Department of Software Engineering | en_US |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.identifier.repId | 46276 | |
dc.title.translated | Linux kernel userspace modules | cs_CZ |
dc.contributor.referee | Tůma, Petr | |
dc.identifier.aleph | 001037730 | |
thesis.degree.name | Mgr. | |
thesis.degree.level | magisterské | cs_CZ |
thesis.degree.discipline | Softwarové systémy | cs_CZ |
thesis.degree.discipline | Software systems | en_US |
thesis.degree.program | Informatika | cs_CZ |
thesis.degree.program | Informatics | en_US |
uk.thesis.type | diplomová práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra softwarového inženýrství | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Software Engineering | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Software systems | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Informatics | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | Tato práce navrhuje způsob implementace Linuxových ovladačů jakožto aplikací v uživatelském prostoru. Definice pevného rozhraní umožňujícího přístup k funkcím a strukturám jádra operačního systému byla v úvodní analýze zamítnuta z důvodu malé flexibility. Pokud aplikace vyžadovala funkcionalitu, která nebyla rozhraním poskytována, aplikace byla nucena implementovat vlastní modul jádra operačního systému pro její zpřístupnění. Navrhované řešení umožňuje dynamickou tvorbu rozhraní dle požadavků aplikace. Definice rozhraní je uložena v binární podobě (kódu), která je dynamicky zavedena do jádra operačního sytému. V kódu je také uložena definice funkcí, které se při zavedení začlení do jádra. Tyto funkce pak mohou být volány z ostatních funkcí jádra a realizovat například obsluhu přerušení. Formát kódu je nezávislý na architektuře počítače i na konfiguraci jádra operačního systému a je snadno přenositelný. Navržené řešení umožňuje tvorbu ovladačů operačního systému Linux, které jsou implementovány jako uživatelské aplikace, aniž by ke své funkci vyžadovaly vlastní modul Linuxového jádra. | cs_CZ |
uk.abstract.en | This thesis proposes and implements a new method of implementing Linux kernel drivers in userspace applications - userspace drivers. Instead of proposing fixed interface for accessing kernel functionality from userspace application and using dedicated kernel module to implement functionality not accessible via the interface, proposed method allows applications to define custom interfaces to the kernel. The interface is defined in special bytecode that is loaded into the kernel. The bytecode also provides functions that can be called from the kernel and that work even in atomic context (interrupt handlers, etc.). The bytecode is architecture and kernel configuration independent. The proposed method makes it possible to develop kernel drivers implemented in userspace applications without the need of dedicated kernel module. | en_US |
uk.file-availability | V | |
uk.publication.place | Praha | cs_CZ |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra softwarového inženýrství | cs_CZ |
dc.identifier.lisID | 990010377300106986 | |