• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 启动子系统<a name="ZH-CN_TOPIC_0000001129033057"></a>
2
3## 简介<a name="section469617221261"></a>
4
5init组件负责处理从内核加载第一个用户态进程开始,到第一个应用程序启动之间的系统服务进程启动过程。启动恢复子系统除负责加载各系统关键进程之外,还需在启动的同时设置其对应权限,并在子进程启动后对指定进程实行保活(若进程意外退出要重新启动),对于特殊进程意外退出时,启动恢复子系统还要执行系统复位操作。
6
7## 系统架构
8
9**图 1** OHOS启动框架图
10
11![](figures/init系统架构.png)
12
13## 目录<a name="section15884114210197"></a>
14仓目录结构如下:
15```
16base/startup/init/
17├── device_info         # 提供设备信息的SA服务
18├── initsync            # 同步命令(小型系统)
19├── interfaces          # 对外接口
20├── scripts             # 脚本(LiteOS系统使用)
21├── services
22│   ├── begetctl        # 命令集合。提供服务的dump,拉起等一系列命令
23│   ├── etc             # init配置文件目录(标准系统)
24│   ├── etc_lite        # init配置文件目录(小型系统)
25│   ├── include         # init头文件目录
26│   ├── init            # init核心功能源码
27│   │   ├── adapter     # 内核适配层
28│   │   ├── include     # 头文件目录
29│   │   ├── lite        # init核心功能源码(小型系统)
30│   │   └── standard    # init核心功能源码(标准系统)
31│   ├── log             # init日志部件。
32│   ├── loopevent       # 事件库
33│   │   ├── include     # 头文件目录
34│   │   ├── loop        # 基于epoll封装的I/O多路复用接口
35│   │   ├── signal      # 信号处理接口封装。提供信号的添加,handler注册等功能
36│   │   ├── socket      # socket通信接口
37│   │   ├── task        # 事件的抽象任务,如signal, timer等事件都要创建对应task
38│   │   ├── timer       # 定时器接口
39│   │   └── utils       # loopevent通用接口
40│   ├── modules         # 插件化模块
41│   │   ├── bootchart   # bootchart插件化源码
42│   │   ├── bootevent   # bootevent插件化源码
43│   │   ├── init_hook   # init提供的回调函数
44│   │   ├── reboot      # reboot插件化源码
45│   │   ├── seccomp     # seccomp插件化源码
46│   │   └── selinux     # selinux插件化源码
47│   ├── param           # 系统参数部件
48│   └── utils           # init通用接口
49├── test                # init组件测试用例源文件目录
50├── ueventd             # ueventd服务源码
51│   ├── etc             # ueventd配置文件目录
52│   ├── include         # ueventd头文件目录
53│   ├── lite            # ueventd核心功能源码(小型系统)
54│   └── standard        # ueventd核心功能源码(标准系统)
55└── watchdog            # 看门狗服务源码
56```
57
58
59## 约束<a name="section12212842173518"></a>
60
61目前支持小型系统设备(参考内存≥1MB),标准系统Hi3516DV300、Hi3518EV300以及RK3568等
62
63## 说明<a name="section837771600"></a>
64
65详细使用说明参考开发指南:
66
67[启动恢复子系统概述](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-overview.md)
68
69[引导启动配置文件](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-cfg.md)
70
71[jobs管理](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-jobs.md)
72
73[插件](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-plugin.md)
74
75[沙盒管理](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sandbox.md)
76
77[服务管理](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-service.md)
78
79[系统参数](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md)
80
81[日志管理](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-log.md)
82
83[组件化启动](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sub-unit.md)
84
85## 相关仓<a name="section641143415335"></a>
86
87**[startup\_init\_lite](https://gitee.com/openharmony/startup_init_lite)**
88
89[startup\_appspawn](https://gitee.com/openharmony/startup_appspawn)
90
91[startup\_bootstrap\_lite](https://gitee.com/openharmony/startup_bootstrap_lite)
92