Is it a physical structure of the chip or is it programming? Because how can linux ARM run on a device that used to run windows x86?
Is it a physical structure of the chip or is it programming? Because how can linux ARM run on a device that used to run windows x86?
Computer architecture is the mapping between binary instructions and the effect they have on the data that is in the CPU registers.
Different chip families have different codes, conventions, and implementation details than other families, but within a family the mapping should be the same to make sure there is compatibility.
Your last question relates to compilation.
High level programming languages like C or Python are compiled to machine code in order to run. That machine code is the set of instructions for that specific architecture.
So if you want Firefox to run on an ARM device and you have sufficiently agnostic source code (which is more and more common with time) then you simply change the compiler target to arm and recompile… which doesn’t even have to be on that particular processor! You can compile a program for an ARM processor using an AMD64 system (if your tool chain supports it).