Results 1 to 2 of 2
I was reading up on IPod Linux and the site mentioned it uses a fork of the Linux kernel called uCLinux. After looking into this a bit, I discovered that ...
- 12-24-2006 #1
uCLinux
I was reading up on IPod Linux and the site mentioned it uses a fork of the Linux kernel called uCLinux. After looking into this a bit, I discovered that uCLinux is made for architectures without an MMU. How can the kernel manage memory effectively without one? I seems like it would just have to "rough it."
Flies of a particular kind, i.e. time-flies, are fond of an arrow.
Registered Linux User #408794
- 12-28-2006 #2I really don't know the answer but just found this on µClinux FAQ, about the limitations of not having a PMMU. I suppose point 2 is the relevant partQ. Does uClinux support multitasking? What limitations are imposed by not
having a MMU?
A. uClinux absolutely DOES support multi-tasking, although there are a
few things that you must keep in mind when designing programs...
1. uClinux does not implement fork(); instead it implements vfork().
This does not mean no multitasking, it simply means that the
parent blocks until the child does exec() or exit(). You can still
get full multitasking.
2. 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.
3. There is no memory protection. Any program can crash another
program or the kernel. This is not a problem as long as you are
aware of it, and design your code carefully.
4. Some architectures have various code size models, depending on how
position independance is achieved.Put your hand in an oven for a minute and it will be like an hour, sit beside a beautiful woman for an hour and it will be like a minute, that is relativity. --Albert Einstein
Linux User #425940
Don't PM me with questions, instead post in the forums


Reply With Quote
