uClinux DOES multi-task
Jun 12, 2000 — by Rick Lehrbaum — from the LinuxDevices Archive — 14 viewsIn the initial publication of “My Linux is smaller than your Linux”, there was an incorrect statement to the effect that uClinux does not provide multi-tasking capabilities due to lack of an MMU in the chips it supports. (That inaccuracy has now been corrected.)
I'd like to point out that uClinux DOES support multi-tasking, although there are a few limitations imposed by the lack of MMU support . . .
- uClinux does not implement fork() insted it implements vfork(). This does not mean no multitasking, it simply means that the parent blocks until the child does exec() or exit(). You still get full multitasking (honest, not half way, but really with no limitations).
- uClinux does not have autogrow stack and no brk(). You need to use mmap() to allocate memory (which most modern code already does). There is a compile time option to set the stack size of a program.
- No memory protection. Any program can crash another or the kernel.
- Some architectures have various code size models, depending on how position independance is achieved.
Cheers,
Jeff [email protected]
Related stories:
My Linux is smaller than your Linux
uClinux — Linux on Microcontrollers
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.