Por que a inicialização de um aplicativo no linux é mais lenta ao usar bibliotecas compartilhadas?

No dispositivo incorporado em que estou trabalhando, o tempo de inicialização é uma questão importante. Todo o aplicativo consiste em vários executáveis ​​que usam um conjunto de bibliotecas. Como o espaço na memória FLASH é limitado, gostaríamos de usar bibliotecas compartilhadas.

O aplicativo funciona normalmente quando compilado e vinculado a bibliotecas compartilhadas e a quantidade de memória FLASH é reduzida conforme o esperado. A diferença para a versão que está vinculada a bibliotecas estáticas é que o tempo de inicialização do aplicativo é cerca de 20 vezes maior e não tenho idéia do motivo.

O aplicativo é executado em uma CPU ARM9 de 180 MHz com sistema operacional Linux 2.6.17, 16 MB FLASH (sistema de arquivos JFFS) e 32 MB de RAM.

questionAnswers(6)

yourAnswerToTheQuestion