Dynamic linking, debugging and tracing in HelenOS
Dynamický linker a rozhraní pro ladění a trasování v HelenO
diplomová práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/18930/thumbnail.png?sequence=7&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/18930Identifikátory
SIS: 57093
Kolekce
- Kvalifikační práce [11266]
Autor
Vedoucí práce
Oponent práce
Bulej, Lubomír
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
2. 2. 2009
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
HelenOS je operační systém, který vznikl vrá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í.
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 nd 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.