Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Dynamic linking, debugging and tracing in HelenOS
Thesis title in Czech: Dynamický linker a rozhraní pro ladění a trasování v HelenO
Thesis title in English: Dynamic linking, debugging and tracing in HelenOS
Academic year of topic announcement: 2007/2008
Thesis type: diploma thesis
Thesis language: angličtina
Department: Department of Software Engineering (32-KSI)
Supervisor: Mgr. Martin Děcký, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 03.06.2008
Date of assignment: 03.06.2008
Date and time of defence: 02.02.2009 00:00
Date of electronic submission:02.02.2009
Date of proceeded defence: 02.02.2009
Opponents: doc. Ing. Lubomír Bulej, Ph.D.
 
 
 
Guidelines
HelenOS je operační systém, který vznikl v rámci softwarového projektu na MFF UK. V systému zatím chybí podpora dynamických knihoven a ladění a trasování procesů.

Dynamické knihovny umožňují vyvíjet části velkých softwarových systémů odděleně a později je spojit bez nutnosti opakovaného překladu. Toto spojování provádí dynamický linker a to během zavádění programu, nebo až za běhu. Linker musí nalézt všechny knihovny vyžadované programem, zavést je do paměti a relokovat je. Potom musí vyřešit externí (symbolické) odkazy mezi programem a jednotlivými knihovnami.

Debugger a trasovač systémových volání patří mezi základní ladicí nástroje. Ke své činnosti využívají speciální systémové rozhraní, které jim umožňuje pozastavit aplikaci, když v ní dojde k určitým událostem (např. breakpoint, trap nebo volání systému). Mohou číst nebo měnit obsah paměti aplikace a opět obnovit její běh.

Hlavním cílem této práce je přidat do systému podporu pro dynamické knihovny, tedy zejména dynamický linker, a dále systémové rozhraní pro ladění a trasování procesů s ukázkovou aplikací. Práce obsahuje přehled metod dynamického linkování, ladění a trasování v bežných rozšířených operačních systémech.
References
Bic L., Shaw A. C.: The Logical Design of Operating Systems
Nutt, G. J.: Operating Systems: A Modern Perspective
Andrew S. Tanenbaum, Albert S. Woodhull: Operating Systems Design and Implementation
HelenOS 0.2.0 Design Documentation (http://www.helenos.eu/documentation)
Preliminary scope of work
HelenOS je operační systém, který vznikl v rámci softwarového projektu na MFF UK. V systému zatím chybí podpora dynamických knihoven a ladění a trasování procesů.

Dynamické knihovny umožňují vyvíjet části velkých softwarových systémů odděleně a později je spojit bez nutnosti opakovaného překladu. Toto spojování provádí dynamický linker a to během zavádění programu, nebo až za běhu. Linker musí nalézt všechny knihovny vyžadované programem, zavést je do paměti a relokovat je. Potom musí vyřešit externí (symbolické) odkazy mezi programem a jednotlivými knihovnami.

Debugger a trasovač systémových volání patří mezi základní ladicí nástroje. Ke své činnosti využívají speciální systémové rozhraní, které jim umožňuje pozastavit aplikaci, když v ní dojde k určitým událostem (např. breakpoint, trap nebo volání systému). Mohou číst nebo měnit obsah paměti aplikace a opět obnovit její běh.

Hlavním cílem této práce je přidat do systému podporu pro dynamické knihovny, tedy zejména dynamický linker, a dále systémové rozhraní pro ladění a trasování procesů s ukázkovou aplikací. Práce obsahuje přehled metod dynamického linkování, ladění a trasování v bežných rozšířených operačních systémech.
Preliminary scope of work in English
HelenOS is an operating system that originated as a software project at the Faculty of Mathematics and Physics. So far it lacks support for dynamically linked libraries as well as support for process tracing and debugging.

Dynamically linked libraries enable developing individual parts of large software systems independently and linking them later together without recompilation. The linking is carried out at load-time or run-time by the dynamic linker. The linker must find all libraries used by the program, map them into memory and relocate them. Then it must resolve external (symbolic) references between the program and libraries.

A debugger and a system-call tracer are essential development tools. They use a special system interface for their operation enabling them to suspend an application when certain events occur (such as a breakpoint or a trap). Then they may examine or change the application's memory contents and resume its execution.

The main goal of this thesis is to implement support for dynamically linked libraries in HelenOS, namely the dynamic linker, and also a system API for debugging and tracing processes, including a demo application. The text also outlines the methods of dynamic linking, debugging and tracing employed in common widespread operating systems.
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html