好久没有翻看这本书了,今天来看看。
《手机安全和可信应用开发指南》
1、什么是IPC
进程间通信(Inter-Process Communication, IPC)机制是指系统中进程或线程之间的通信机制,用于实现线程与线程之间进行通信、数据交互等功能。Linux具有多种方式能够实现进程或线程之间的通信和数据共享,例如:消息队列、信号量、共享内存等。而在OP-TEE中并未提供如此丰富的IPC方法,本章将介绍OP-TEE中的IPC机制。
2、IPC的作用
动态TA是以线程的方式运行于OP-TEE的用户空间,OP-TEE的IPC机制用于实现各线程之间的相互调用、线程调用安全驱动、线程调用OP-TEE内核空间的服务。
OP-TEE中并未有类似消息队列、信号量等专门用于线程间通信的机制,但OP-TEE提供动态TA调用其他TA或安全驱动的方法和接口,从而实现OP-TEE中各线程间的通信。
是什么方法和接口呢?
3、IPC机制的原理
OP-TEE中的IPC机制主要是为满足OP-TEE用户空间运行的线程调用其他线程、静态TA、安全驱动的需求。其原理的核心是利用系统调用来访问其他线程或者安全驱动。
当线程需要调用其他线程或者安全驱动时,首先会通过系统调用陷入到OP-TEE的内核态,然后执行类似CA调用TA的操作,建立会话并通过调用命令的方式让其他TA来完成相应的操作。
线程调用安全驱动时,同样是通过调用系统调用陷入到OP-TEE的内核态,然后调用服务或安全驱动提供给OP-TEE内核空间的接口来完成TA对安全驱动和服务的调用。关