# 介绍 - [简介](#section11660541593) - [目录](#section1464106163817) - [约束](#section1718733212019) - [开发服务](#section159991817144514) - [开发服务的子功能](#section11510542164514) - [开发进程内对外接口](#section1685211117463) - [调用进程内服务](#section3690162916462) - [开发跨进程间对外接口](#section9220246194615) - [调用跨进程间服务](#section114372711475) - [开发跨进程间服务调用客户端代理](#section09341923114710) - [涉及仓](#section10365113863719) ## 简介 由于平台资源有限,且硬件平台多样,因此需要屏蔽不同硬件架构和平台资源的不同、以及运行形态的不同,提供统一化的系统服务开发框架。根据RISC-V、Cortex-M、Cortex-A不同硬件平台,分为两种硬件平台,以下简称M核、A核。 - M核:处理器架构为Cortex-M或同等处理能力的硬件平台,系统内存一般低于512KB,无文件系统或者仅提供一个可有限使用的轻量级文件系统,遵循CMSIS接口规范。 - A核:处理器架构为Cortex-A或同等处理能力的硬件平台,内存资源大于512KB,文件系统完善,可存储大量数据,遵循POSIX接口规范。 系统服务框架基于面向服务的架构,提供了服务开发、服务的子功能开发、对外接口的开发、以及多服务共进程、进程间服务调用等开发能力。其中: - M核:包含服务开发、服务的子功能开发、对外接口的开发以及多服务共进程的开发框架。 - A核:在M核能力基础之上,包含了进程间服务调用、进程间服务调用权限控制、进程间服务接口的开发等能力。 面向服务的架构: ![](figures/zh-cn_image_0000001128146921.png) - Provider:服务的提供者,为系统提供能力(对外接口)。 - Consumer:服务的消费者,调用服务提供的功能(对外接口)。 - Samgr:作为中介者,管理Provider提供的能力,同时帮助Consumer发现Provider的能力。 系统服务开发框架主体对象: ![](figures/zh-cn_image_0000001081285004.png) - SamgrLite:主要提供服务的注册与发现能力。 - Service:开发服务时,需要实现的服务的生命周期接口。 - Feature:开发功能时,需要实现的功能的生命周期接口。 - IUnknown:基于IUnknown开发服务或功能的对外接口。 - IClientProxy:IPC调用时,消费者的消息发送代理。 - IServerProxy:IPC调用时,开发者需要实现提供者的消息处理接口。 ## 目录 **表 1** 系统服务框架源代码目录结构