Extend dynamic linking support to (an)other architecture(s)
|Reported by:||jermar||Owned by:||svoboda|
|Blocker for:||Depends on:|
Description (last modified by jermar)
HelenOS currently supports dynamic linking only for the ia32 architecture. Extend this support to one or more other architectures.
- 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.
- 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.
- Possible mentors
- HelenOS Core Team, Jakub Jermar, Jiri Svoboda