5 ms·
So Linux isn't 'running' on your x86_64 cpu because cpu is microcoded... or transmeta? Or... Linux is written in C.. so it's not running on your computer beca
by nullc 10y ago
So Linux isn't 'running' on your x86_64 cpu because cpu is microcoded... or transmeta? Or... Linux is written in C.. so it's not running on your computer because it doesn't execute C directly?
Come on. There is a 8-bit microcontroller running a linux system, the rest is implementation details and semantics.
- derefr 10y agoI think the argument is that one would expect "Linux running on architecture Foo" to imply support in Linux for Foo, rather than support in Foo for Linux that allows Linux to run unmodified. I certainly expected, when I clicked, to read about someone's effort to rewrite a minimal subset of the Linux kernel to use exclusively 8-bit registers and no MMU.
- poizan42 10y agoLinux can already run on MMU-less systems (CONFIG_NOMMU). GCC already supports AVRs, though you may have to tweak the backend a bit so ints are 32-bit wide etc. These are not the big issues in porting the Linux kernel to an AVR. The major problem is that AVR is Harvard architecture and there's probably tons of assumptions in the kernel that code and data resides in the same memory space.
- deleted 10y ago[deleted]
- poizan42 10y ago- also ATmega1284P and ATmega644A mentioned in the article doesn't support external code memory nor changing the code memory after boot. However they do support a boot loader that can load code initially. So you would have to implement some sort of paging by resetting the cpu to give control to the bootloader to load the new code. Sound like fun. Also the kernel itself is far too large to fit in code memory, so it would constantly have to page parts in and out through this mechanism.
- nullc 10y agoFair enough, I didn't read the comment in terms of adding arch specific support in linux.