Fork us on GitHub Follow us on Google+ Follow us on Facebook Follow us on Twitter

Changes between Initial Version and Version 1 of Ticket #648


Ignore:
Timestamp:
2016-02-18T22:25:17Z (2 years ago)
Author:
Jakub Jermář
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #648 – Description

    initial v1  
    11HelenOS currently supports dynamic linking only for the ia32 architecture. Extend this support to one or more other architectures.
     2
     3 Details::
     4  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.
     5
     6  Dynamic linking, currently available for ia32 only, can reduce the size of the boot image considerably. This option should therefore be extended to other architectures supported by HelenOS as well.
     7
     8 What Gains and Benefits will this bring?::
     9  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.
     10
     11 Difficulty::
     12  medium
     13
     14 Required skills::
     15  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.
     16
     17 Documentation::
     18  * [http://www.helenos.org/doc/theses/js-thesis.pdf Dynamic linker and debugging/tracing interface for HelenOS]
     19  * [wiki:DeveloperDocs/CPUArch Links to various ABI specifications per CPU architecture]
     20
     21 Possible mentors::
     22  HelenOS Core Team, Jakub Jermar, Jiri Svoboda