922
you are viewing a single comment's thread
view the rest of the comments
[-] stingpie@lemmy.world 17 points 11 months ago

Anything that's turning complete, has enough ram, and has a c compiler can run Linux. Theoretically, you could program a CPLD to run brainfuck and you could still run Linux.

[-] Tja@programming.dev 39 points 11 months ago
[-] stingpie@lemmy.world 22 points 11 months ago

Yes. Any turing complete processor can perfectly emulate any other turing complete processor, whether it is x86, arm, or riscv. Mainline Linux can then run on this emulated processor without modification.

[-] Rodeo@lemmy.ca 14 points 11 months ago

Damn that's gonna be slow.

But I guess speed was not a criterion.

[-] xmunk@sh.itjust.works 7 points 11 months ago

It's technically correct, the best kind of correct.

[-] Tja@programming.dev 4 points 11 months ago

I guess it's the difference of can today vs could if this emulator existed...

[-] monk@lemmy.unboiled.info 3 points 11 months ago

"boot" is the next important part. Have you tried reading it in full?

[-] stingpie@lemmy.world -1 points 11 months ago

Emulated processors can do the same things as physical processors, including booting from disk.

[-] Ross_audio@lemmy.world 3 points 11 months ago

Boot = Bootstrap

If you've loaded up a virtual CPU first that's not a boot of mainline Linux on the CPU.

[-] stingpie@lemmy.world 2 points 11 months ago

I respectfully disagree. The turning machine is not doing any set-up before the emulated CPU begins execution, and all of the actual BIOS is done by the emulated CPU.

[-] cashews_best_nut@lemmy.world 0 points 11 months ago

Nerd argument.

[-] monk@lemmy.unboiled.info 1 points 11 months ago* (last edited 11 months ago)

Yes, but it doesn't count, because the SoC from the picture didn't boot Linux, an emulated machine did.

That's why the records on doing this silly stuff on progressively smaller microcontroller use the word "run". It has more transitivity.

[-] stingpie@lemmy.world 1 points 11 months ago

I'm not sure I understand your argument. Are you saying that the emulated processor executes instructions while the SoC doesn't? Every instruction that goes to the x86 is broken down into several SoC instructions, which the SoC executes in order to emulate what an x86 would do. Saying that the emulated x86 is booting/running Linux, but the SoC is not is like saying that computers can't run java code, they can only run jvm.

[-] monk@lemmy.unboiled.info 1 points 11 months ago

I'm saying it runs it because "running" is transitive, but doesn't boot it because "booting" is not. Similarly to how you can carry your grandkid by carrying your kid who carries their kid (carrying is transitive), but you can't give birth to your grandkid by giving birth to your kid who'd give birth to their kid (giving birth is not transitive).

[-] xia@lemmy.sdf.org 2 points 11 months ago

...and lack of "theory".

this post was submitted on 25 Jan 2024
922 points (98.3% liked)

Programmer Humor

32739 readers
758 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS