Hacker News new | ask | show | jobs
by n00bface 1471 days ago
Smallest thing I've found is a FreeScale SOC running a Cortex-A7.
2 comments

Cortex M* lack MMU, which is necessary for any normal linux distro. Cortex M0 and M4 are just beefy microcontrollers.
You're correct. I'll revise.
Can you run Linux on a Cortex-M, which is basically a microcontroller, instead of a Cortex-A that has a MMU? I don't think it's possible.
Yes, you can actually. I haven't done this myself, but there are defconfigs for mmu less devices (stm32f4 series for instance). You need some more RAM though, but most evaluation kits don't provide this. Have a look here: https://elinux.org/STM32 I'm planning to give this a spin on an EVK that I got from work if I find the time.
Linux? yes. Popular distro? not really. Lack of MMU means that all the processes (and shared objects) use the same memory space, so unless you have some way of randomizing where things go (like SELinux), two processes will step on each other's data (MPU will not trigger segfault, as both are allowed to r/w same addr - IIUC). But even when using randomizing, you're playing russian rulette.
Do you think there is any practical use to it instead of running just an embedded OS? Driver support maybe?
drivers, as you said, for filesystems for instance, syscalls available that we know and love :), somewhat easier deployment (elf instead of raw bin), other abstractions that linux provides, multiprocessing (if done carefully), real multithreading,