Intermec ck1 Reference Guide

Page of 390
Appendix A — 
µClinux System 
CK1 SDK Programmer’s Reference Manual 
305 
the directory /mm. Some other subsystems are also modified to meet the 
demands of a MMU-less processor. Also program loaders with position 
independent code have been added and a new flat binary object code 
format has been created. Other program loaders like ELF are also modified 
to support absolute references. 
The main advantage that the 
µClinux kernel offers, compared to the Linux 
kernel, is the size. When compiling the kernel with only the compulsory 
options with support for the processor, file systems, and needed character 
devices the kernel size can be stripped down to a size of about 400Kb. Still 
when the compression is done at the boot time, it requires a space of 
almost 1MB. With this, the smallest realistic size of memory needed is 
about 2MB, which of course includes the needed applications. With 
µClinux, the size of the loadable image can be fitted in a footprint of 500 
to 900Kb. From here the actual 
µClinux kernel takes less than 512Kb, the 
kernel including the basic set of networking tools less than 900Kb, and the 
MCF5272 with default settings goes in 1.2MB. 
The 
µClinux kernel like the regular Linux kernel can be downloaded free 
without any royalty fees. The kernel also belongs to the GNU GPL, like all 
the applications coming with the full distribution package. The package 
includes some libraries, licensed under the LGPL. You can obtain the 
kernel and the tool set from www.uclinux.org. From here, the developer 
can get the whole distribution package including the 
µClinux kernel, some 
libraries and a set of useful ready ported applications. The page also offers 
a full tool chain that makes it possible the kernel and user applications 
compiling. This is also released under the GPL. As bug fixes and new 
features are added to the distribution, they are immediately after the basic 
testing released in 
µClinux pages. For example, the µClinux kernel is 
almost in sync with the basic Linux kernel and patches can be obtained 
against the Linux kernel. 
µClinux Libraries 
µClinux uses an stripped version of the standard C library, which was 
originally developed along with the 
µClinux kernel. It is based on the 
Linux-8086 C Library, but stripped down to a much more compact 
package. Although the idea of developing 
µClibc was to design a space 
optimized C library for MMU-less micro-controllers such as Dragonball, 
coldfire, and ARM, it still supports standard Linux architectures. 
µClinux 
also strictly provides the standard Linux libC APIs, so the developers can 
migrate applications from POSIX based operating systems to 
µClinux. It is 
freely available under the LPGL license.  
Under the 
µClinux distribution, the developer can choose between two 
libc libraries, 
µC-libc and µClibc depending upon the developer’s needs. 
The 
µClibc is a derivative of µC-libc designed to overcome problems that 
occurred with 
µC-libc by making all the APIs standard and by filling in 
many of the missing routines. In general 
µClibc tries to provide a glibc like 
library, which also means that most documentation written for functions 
in glibc also apply to 
µClibc functions. It also can be compiled as a shared