This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM TrustZone's Secure/Normal world vs x86's Ring0/3 or OS's kernel/user mode?

I read document like this TrustZone Security Whitepaper.

It describes that all resources like CPU, memory and others are divided by Secure World and Normal World. Programs in Normal World can not access resources in Secure World. You must call a special instruction SMC to switch from Normal to Secure world (go through Monitor Mode).

I know x86's Ring0/3 can protect resources from invalid access from lower privilege level processes.

I also know that modern OS like Linux provides Kernel Mode and User Mode. User processes can not access resources located in kernel space, but invoke system calls.

My question is what is the difference between ARM TrustZone's Secure/Normal World and x86's Ring. Or what is the difference between TrustZone and kernel/user mode?

Thanks

Parents
  • ARM provides privileged and non-privileged processor mode, say user and supervisor mode respectively. So more exactly speaking, Linux's kernel/user is the equal of ARM's privileged/non-privileged mode.

    TrustZone's secure/non-secure is also a hardware resource separation mechanism but it's different with Linux's kernel/application mode.

Reply
  • ARM provides privileged and non-privileged processor mode, say user and supervisor mode respectively. So more exactly speaking, Linux's kernel/user is the equal of ARM's privileged/non-privileged mode.

    TrustZone's secure/non-secure is also a hardware resource separation mechanism but it's different with Linux's kernel/application mode.

Children
No data