On 05/09/11 16:24, Miroslav Stimac wrote: [...] > 2) Each producer creates a SoC based on ARM that is optimized for specific > purposes. Furthermore, each producer can combine ARM CPUs with other > technology. For example, take a look at NVidia Tegra. They use ARM technology > and mix it with NVidia GPU technology. I've worked with mobile phones using ARM; mobile chipsets are awful, and feature-phone operating systems are *scary* awful... e.g. I've working with one where the semaphore implementation had a fixed size queue of blocked threads which was smaller than the maximum number of threads on the system. And one where if any thread exited, the system would crash. And one which ran system-critical functions in the idle thread, so that if your application did CPU for too long the system would crash... One interesting trick they commonly all do is that the embedded OS does not run on the bare metal. Instead, it frequently runs as a single task running on top of an L4 hypervisor. L4 is there to abstract over details of the MMU and the really nasty supervisor-mode platform-specific issues of ARM processors (which can vary a *lot* from processor to processor), so that the embedded OS runs entirely in user mode, which is much more portable. L4 also typically demand-pages the ROM out of compressed NAND flash, which is loads cheaper than NOR but isn't memory mapped. Could Haiku conceivably benefit from something similar? Only for ARM, of course. I know there are some BSD licensed L4 implementations... -- ┌─── dg@cowlark.com ───── http://www.cowlark.com ───── │ │ "Under communism, man exploits man. Under capitalism, it's just the │ opposite." --- John Kenneth Galbrith