linux supports running 32-bit application, as long as
- kernel enables CONFIG_COMPAT
- the hardware supports the AArch32
i assume that 32-bit application must run in arm AArch32 execution state and if the environment has 32-bit application and 64-bit application.
32-bit application process -> arm state is AArch32
64-bit application process and kernel -> arm state is AArch64
is it correct?
if so, how does the linux handle the AArch32 and AArch64 switch? does kernel know the running process is 32bit or 64bit?