Owners manual

Linux Software Developers Kit (SDK) User Guide 75
B
B
.
.
D
D
i
i
f
f
f
f
e
e
r
r
e
e
n
n
c
c
e
e
s
s
B
B
e
e
t
t
w
w
e
e
e
e
n
n
µ
µ
C
C
l
l
i
i
n
n
u
u
x
x
a
a
n
n
d
d
S
S
t
t
a
a
n
n
d
d
a
a
r
r
d
d
L
L
i
i
n
n
u
u
x
x
The µClinux kernel is a collection of patches to make the standard Linux kernel run on CPUs that
do not have an MMU. As a consequence you will encounter some differences between the
µClinux and the standard Linux behavior. While porting existing Linux applications to
µClinux/ColdFire you should be aware of these limitations:
no fork() consider using vfork() instead but beware of the difference of their semantics
no daemon() it is usually implemented on top of fork and cannot be easily replaced without
changing the semantics.
fixed stack size -- the stack of an application is set at execution time and cannot grow during
runtime. The default stack size is 4k! It can be increased with the "-s" option of m68k-uClinux-
elf2flat.
limited libc compared to glibc -- either add more to libc, or remove some functionality.
no support for ELF binary file format
very limited support for shared libraries due to missing MMU -- all applications get linked
statically
mmap() is very inefficient
no paging -- applications have to be loaded completely into RAM, the heap is very
susceptible to fragmentation.
processes do not run in their isolated virtual memory -- they can corrupt other processes and
even the kernel.