• stingpie@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    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.

      • stingpie@lemmy.world
        link
        fedilink
        arrow-up
        24
        ·
        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
          link
          fedilink
          arrow-up
          14
          ·
          11 months ago

          Damn that’s gonna be slow.

          But I guess speed was not a criterion.

          • stingpie@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            11 months ago

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

            • Ross_audio@lemmy.world
              link
              fedilink
              arrow-up
              3
              ·
              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.

            • monk@lemmy.unboiled.info
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              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
                link
                fedilink
                arrow-up
                1
                ·
                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
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  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).