Intermec ck1 Reference Guide
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.
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
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
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.
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
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
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.
against the Linux kernel.
µClinux Libraries
µClinux uses an stripped version of the standard C library, which was
originally developed along with the
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
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.
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
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
in glibc also apply to
µClibc functions. It also can be compiled as a shared