Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "Pre Linking"

From eLinux.org
Jump to: navigation, search
(add recent infor from CELF public wiki)
Line 48: Line 48:
 
[put information about an actual use of this technique here.  A case study should include:]
 
[put information about an actual use of this technique here.  A case study should include:]
  
Hardware:: [hardware description here]
+
; Hardware : [hardware description here]
Kernel Version:: [kernel version here]
+
; Kernel Version : [kernel version here]
Configuration:: [information about the configuration used here]
+
; Configuration : [information about the configuration used here]
Time without change:: [put that here]
+
; Time without change : [put that here]
Time with change:: [put that here]
+
; Time with change : [put that here]
  
 
[Add any additional notes as you see fit.]
 
[Add any additional notes as you see fit.]
== Case 2 ==
+
=== Case 2 ===
== Case 3 ==
+
=== Case 3 ===
  
= Future Work =
+
== Future Work ==
 
This item is a work-in-progress, and we are just getting started.
 
This item is a work-in-progress, and we are just getting started.
  
= Material from CELF presentations =
+
== Material from CELF presentations ==
== ARM Prelink ==
+
=== ARM Prelink ===
 
* Japan Jamboree #3
 
* Japan Jamboree #3
 
** http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree3#head-1515fb2d64cd91370e9cb2f6ad4847483e729cf3 In the presentation of "Making Mobile Phone with CE Linux", the evaluation of Prelink on ARM architecture was mentioned.
 
** http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree3#head-1515fb2d64cd91370e9cb2f6ad4847483e729cf3 In the presentation of "Making Mobile Phone with CE Linux", the evaluation of Prelink on ARM architecture was mentioned.
 
*** by Mr. Mizuyama (Panasonic Mobile)
 
*** by Mr. Mizuyama (Panasonic Mobile)
  
== MIPS Prelink ==
+
=== MIPS Prelink ===
 
* Japan Jamboree #13
 
* Japan Jamboree #13
 
** http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree13#head-ab59e6354d343ec0a804b5f440d35b5dcc27304c
 
** http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree13#head-ab59e6354d343ec0a804b5f440d35b5dcc27304c
 
*** Evaluation report by Mr. Yagi (Mitsubishi)
 
*** Evaluation report by Mr. Yagi (Mitsubishi)

Revision as of 05:38, 31 August 2007

Description

Pre-Linking is a mechanism for linking programs to shared libraries ahead of time. In general, every time an application is run it must have it's external symbols resolved - looked up in the shared library symbol table, and fixed up in the program binary to refer to the correct offsets in the library. To use prelinking, a special utility is run which does this resolution and fixup once for the program. This saves the cost of linking at runtime.

There is an existing package from RedHat which provides this feature.

A drawback of this is that if the shared library is changed, the fixups are no longer correct, and the program must be fixed-up again. This is much less of an issue in an embedded situation, where the programs and libraries are less likely to change than in a desktop or server Linux system.

Overview of linking

There is an excellent paper with an overview of dynamic linking issues at: Linking Overview This paper describes not only pre-linking, but lazy linking and more exotic systems, like compile-on-load.

Expected Improvement

[This is not measured yet.]

We expect that with use of prelinking, there will be a slight reduction in boot time for Linux system, in the area of initial application loading.

We need to use this system and measure the effect of prelinking for a determined set of applications.

Resources

Projects

RedHat prelinking system

Instructions for using prelinking with Gentoo

The following page has information on how to use prelinking with a Debian system:

http://www.gentoo.org/doc/en/prelink-howto.xml

Related Projects

http://mail-index.netbsd.org/tech-userlevel/2002/12/01/0000.html

  • Resident - Resident Good (comparisons with prebind)

http://www.shiningsilence.com/dbsdlog/archives/000215.html


Specifications

None so far.

Patches

No kernel patches required.

Case Studies

Case 1

[put information about an actual use of this technique here. A case study should include:]

Hardware 
[hardware description here]
Kernel Version 
[kernel version here]
Configuration 
[information about the configuration used here]
Time without change 
[put that here]
Time with change 
[put that here]

[Add any additional notes as you see fit.]

Case 2

Case 3

Future Work

This item is a work-in-progress, and we are just getting started.

Material from CELF presentations

ARM Prelink

MIPS Prelink