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. |