SnapGear announces shared library support for uClinux

Miles Gillham writes: "SnapGear Inc, a leading supplier of consumer VPN Router appliances and OEM custom design solutions has announced the addition of shared library support for the uClinux kernel. Shared library support yields significant memory advantages for embedded developers by allowing applications to share common code libraries rather than individually static linking them in."

Although specifically intended for Motorola ColdFire microprocessors the methods used can carry over to other 68k based processors easily with only minor considerations. This work will also generalise to other processor families with little effort.

SnapGear Inc. engineers have previously added other important improvements to uClinux such as advanced memory management and eXecute In Place (XIP) technology. Shared library support was developed as an extension to the existing XIP code model to allow libraries to be shared amongst multiple applications. This greatly reduces the size of those executables in the file system. This in turn reduces the final image size. The overheads required to support these shared libraries are minimal and the modifications are relatively clean.

In order to enable shared library support, a number of optimizations were made over previous tool chain releases which have had the effect of reduction in system memory size requirements coupled with performance improvements. The shared libraries themselves are flat files and indistinguishable from normal executables. No additional relocation and run time linking information needs to be supplied. Most importantly, no symbol table wastage appears on the embedded platform, this overhead is carried by the host system.

Senior Software Engineer, Paul Dale, said: "There are some limitations, none of which are severe. There is a limit of 8192 globals and distinct procedures names for each library and each application separately although in practice we've never needed even a quarter of these entries and that was before shared libraries. There is also a limit on the actual number of shared libraries but it's quite high. Lastly there is a code size limitation of 16Mb per library/application - but in the context of embedded MMUless microprocessors this is not at all a problem."

uClinux is a set of patches under the GPL (GNU Public License) to standard Linux which allows the Linux API to be used for microprocessors that lack an MMU (Memory Management Unit). Further information can be obtained from http://www.snapgear.com/uclinux.html

About SnapGear, Inc.

SnapGear Inc produce the popular SnapGear VPN Routers along with SecureEdge custom design solutions. SnapGear Inc has produced turnkey development, design, manufacturing and fulfillment services for multi-national telecommunications companies. SnapGear solutions are characterised by affordability, tight integration, and design ingenuity. Recent examples include a sport/racing control terminal, an advanced VPN gateway router, and a USB/PCMCIA platform for wireless and peripheral connection.

For more information on SecureEdge reference designs, development platforms and services please visit http://www.secureedge.net

SnapGear and SecureEdge are registered trademarks of SnapGear Inc. Linux is a registered trademark owned by Linus Torvalds. All other products, services, companies and publications are trademarks or registered trademarks of their respective owners.