Follow us on Google+ Follow us on Facebook Follow us on Twitter

Opened 19 months ago

Last modified 19 months ago

#648 new enhancement

Extend dynamic linking support to (an)other architecture(s)

Reported by: Jakub Jermář Owned by: Jiri Svoboda
Priority: major Milestone:
Component: helenos/srv/loader Version: mainline
Keywords: gsoc16, gsoc17 Cc:
Blocker for: Depends on:
See also:

Description (last modified by Jakub Jermář)

HelenOS currently supports dynamic linking only for the ia32 architecture. Extend this support to one or more other architectures.

Details
At the moment, all user programs in HelenOS are statically linked by default. This results in very large boot images. Not only is this a waste of disk space, but some machines supported by HelenOS have some kind of a limit on the size of the boot image and so booting HelenOS on them is becoming increasingly challenging. The temporary solution used so far has been to compress some of the boot components and to exclude the so-called non-essential components from the boot image. However, with the ever growing HelenOS codebase, this stop-gap solution is quickly reaching its limits. Besides of that, init RAM disks with only the bare minimum of applications, drivers and servers are not very useful anyway.

Dynamic linking, currently available for ia32 only, can reduce the size of the boot image considerably. Currently, the dynamically linked boot image is 16M smaller than the statically linked image (36.2M). This option should therefore be extended to other architectures supported by HelenOS as well.

What Gains and Benefits will this bring?
Dynamically linked HelenOS results in a much smaller boot image, which in turn allows for more software to be placed in the boot image or to boot on machines where the statically linked image was already hitting the size limit.
Difficulty
medium
Required skills
A successful applicant will have good programming skills in the C language and the ability to survive in a non-standard non-POSIX application environment. He or she will be able to study the relevant ABI specifications. The project will require modifications to the HelenOS build system.
Documentation
Possible mentors
HelenOS Core Team, Jakub Jermar, Jiri Svoboda

Change History (2)

comment:1 Changed 19 months ago by Jakub Jermář

Description: modified (diff)

comment:2 Changed 19 months ago by Jakub Jermář

Component: helenos/unspecifiedhelenos/srv/loader
Description: modified (diff)
Owner: set to Jiri Svoboda
Note: See TracTickets for help on using tickets.