this post was submitted on 29 May 2024
2 points (60.0% liked)

techsupport

2240 readers
1 users here now

The Lemmy community will help you with your tech problems and questions about anything here. Do not be shy, we will try to help you.

If something works or if you find a solution to your problem let us know it will be greatly apreciated.

Rules: instance rules + stay on topic

Partnered communities:

You Should Know

Reddit

Software gore

Recommendations

founded 1 year ago
MODERATORS
 

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?

top 5 comments
sorted by: hot top controversial new old
[–] SteveTech 3 points 5 months ago

Because how can linux ARM run on a device that used to run windows x86?

Have you misread AMD64 as ARM64?

AMD64 is the 64bit extension of x86, often also called x86_64.

As others has said, ARM is a completely different architecture which is not compatible with x86 without translation layers. ARM also has a 64bit version called ARM64 (or AArch64).

[–] [email protected] 2 points 5 months ago* (last edited 5 months ago)

What you mean is the processor instruction set, which does affect the physical structure of the processor. You cannot just change the programming/microcode of the processor to have it use a different instruction set.

Because how can linux ARM run on a device that used to run windows x86?

I don't think that's possible. It is possible to have a translation layer, so that individual programs that are compiled for one instruction set (e.g. x86) can be run on a different instruction set (e.g. ARM).

But I can't imagine such a translation layer working for the whole OS, as something still needs to tell the processor how to do the translation. Theoretically, the translation layer could be baked into the processor, but I have not heard of that being a thing, so far.

Is your question inspired by something specific?

[–] Tramort 1 points 5 months ago

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).

[–] [email protected] 1 points 5 months ago (1 children)

https://en.wikipedia.org/wiki/Computer_architecture

Your question is confusing. What do you really want to know?

[–] [email protected] 1 points 5 months ago

They don't mean computer architecture. They mean processor architecture instead. Or I guess, more precisely the processor instruction set architecture, so for example x86, ARM etc..