提交 f1b385c6 编写于 作者: L liuwenxin

FIX:文档修改

Signed-off-by: Nliuwenxin <liuwenxin11@huawei.com>
上级 21301aaa
......@@ -16,19 +16,17 @@ OpenHarmony系统通过对ARMv6架构中的LDREX和STREX进行封装,向用户
- LDREX Rx, [Ry]
读取内存中的值,并标记对该段内存的独占访问:
- 读取寄存器Ry指向的4字节内存数据,保存到Rx寄存器中。
- 对Ry指向的内存区域添加独占访问标记。
- STREX Rf, Rx, [Ry]
检查内存是否有独占访问标记,如果有则更新内存值并清空标记,否则不更新内存:
- 有独占访问标记
- 将寄存器Rx中的值更新到寄存器Ry指向的内存。
- 标志寄存器Rf置为0。
- 将寄存器Rx中的值更新到寄存器Ry指向的内存。
- 标志寄存器Rf置为0。
- 没有独占访问标记
- 不更新内存。
- 标志寄存器Rf置为1。
- 不更新内存。
- 标志寄存器Rf置为1。
- 判断标志寄存器
- 标志寄存器为0时,退出循环,原子操作结束。
......@@ -40,36 +38,36 @@ OpenHarmony系统通过对ARMv6架构中的LDREX和STREX进行封装,向用户
### 接口说明
OpenHarmony LiteOS-A内核的原子操作模块提供下面几种功能,接口详细信息可以查看API参考
OpenHarmony LiteOS-A内核的原子操作模块提供以下几种功能
**表1** 原子操作接口说明
| 功能分类 | 接口**名称** | 描述 |
| -------- | -------- | -------- |
| 读 | LOS_AtomicRead | 读取32bit原子数据 |
| 读 | LOS_Atomic64Read | 读取64bit原子数据 |
| 写 | LOS_AtomicSet | 设置32bit原子数据 |
| 写 | LOS_Atomic64Set | 设置64bit原子数据 |
| 加 | LOS_AtomicAdd | 对32bit原子数据做加法 |
| 加 | LOS_Atomic64Add | 对64bit原子数据做加法 |
| 加 | LOS_AtomicInc | 对32bit原子数据做加1 |
| 加 | LOS_Atomic64Inc | 对64bit原子数据做加1 |
| 加 | LOS_AtomicIncRet | 对32bit原子数据做加1并返回 |
| 加 | LOS_Atomic64IncRet | 对64bit原子数据做加1并返回 |
| 减 | LOS_AtomicSub | 对32bit原子数据做减法 |
| 减 | LOS_Atomic64Sub | 对64bit原子数据做减法 |
| 减 | LOS_AtomicDec | 对32bit原子数据做减1 |
| 减 | LOS_Atomic64Dec | 对64bit原子数据做减1 |
| 减 | LOS_AtomicDecRet | 对32bit原子数据做减1并返回 |
| 减 | LOS_Atomic64DecRet | 对64bit原子数据做减1并返回 |
| 交换 | LOS_AtomicXchgByte | 交换8bit内存数据 |
| 交换 | LOS_AtomicXchg16bits | 交换16bit内存数据 |
| 交换 | LOS_AtomicXchg32bits | 交换32bit内存数据 |
| 交换 | LOS_AtomicXchg64bits | 交换64bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchgByte | 比较相同后交换8bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchg16bits | 比较相同后交换16bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchg32bits | 比较相同后交换32bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchg64bits | 比较相同后交换64bit内存数据 |
| 功能分类 | 接口**名称** | 描述 |
| ------------ | ----------------------- | --------------------------- |
| 读 | LOS_AtomicRead | 读取32bit原子数据 |
| 读 | LOS_Atomic64Read | 读取64bit原子数据 |
| 写 | LOS_AtomicSet | 设置32bit原子数据 |
| 写 | LOS_Atomic64Set | 设置64bit原子数据 |
| 加 | LOS_AtomicAdd | 对32bit原子数据做加法 |
| 加 | LOS_Atomic64Add | 对64bit原子数据做加法 |
| 加 | LOS_AtomicInc | 对32bit原子数据做加1 |
| 加 | LOS_Atomic64Inc | 对64bit原子数据做加1 |
| 加 | LOS_AtomicIncRet | 对32bit原子数据做加1并返回 |
| 加 | LOS_Atomic64IncRet | 对64bit原子数据做加1并返回 |
| 减 | LOS_AtomicSub | 对32bit原子数据做减法 |
| 减 | LOS_Atomic64Sub | 对64bit原子数据做减法 |
| 减 | LOS_AtomicDec | 对32bit原子数据做减1 |
| 减 | LOS_Atomic64Dec | 对64bit原子数据做减1 |
| 减 | LOS_AtomicDecRet | 对32bit原子数据做减1并返回 |
| 减 | LOS_Atomic64DecRet | 对64bit原子数据做减1并返回 |
| 交换 | LOS_AtomicXchgByte | 交换8bit内存数据 |
| 交换 | LOS_AtomicXchg16bits | 交换16bit内存数据 |
| 交换 | LOS_AtomicXchg32bits | 交换32bit内存数据 |
| 交换 | LOS_AtomicXchg64bits | 交换64bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchgByte | 比较相同后交换8bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchg16bits | 比较相同后交换16bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchg32bits | 比较相同后交换32bit内存数据 |
| 先比较后交换 | LOS_AtomicCmpXchg64bits | 比较相同后交换64bit内存数据 |
### 开发流程
......@@ -77,7 +75,7 @@ OpenHarmony LiteOS-A内核的原子操作模块提供下面几种功能,接口
有多个任务对同一个内存数据进行加减或交换等操作时,使用原子操作保证结果的可预知性。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 原子操作接口仅支持整型数据。
> 原子操作接口仅支持整型数据。
### 编程实例
......@@ -96,7 +94,7 @@ OpenHarmony LiteOS-A内核的原子操作模块提供下面几种功能,接口
示例代码如下:
```
#include "los_hwi.h"
#include "los_atomic.h"
......@@ -159,7 +157,7 @@ UINT32 Example_AtomicTaskEntry(VOID)
**结果验证**
```
g_sum = 0
```
```
\ No newline at end of file
......@@ -3,9 +3,13 @@
## 基本概念
软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。硬件定时器受硬件的限制,数量上不足以满足用户的实际需求,因此为了满足用户需求,提供更多的定时器,OpenHarmony LiteOS-A内核提供软件定时器功能。软件定时器扩展了定时器的数量,允许创建更多的定时业务。
软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。
软件定时器功能上支持:
硬件定时器受硬件的限制,数量上不足以满足用户的实际需求,因此为了满足用户需求,提供更多的定时器,OpenHarmony LiteOS-A内核提供软件定时器功能。
软件定时器扩展了定时器的数量,允许创建更多的定时业务。
**软件定时器支持以下功能:**
- 静态裁剪:能通过宏关闭软件定时器功能。
......@@ -22,13 +26,17 @@
## 运行机制
软件定时器是系统资源,在模块初始化的时候已经分配了一块连续的内存,系统支持的最大定时器个数由los_config.h中的LOSCFG_BASE_CORE_SWTMR_LIMIT宏配置。软件定时器使用了系统的一个队列和一个任务资源,软件定时器的触发遵循队列规则,先进先出。同一时刻设置的定时时间短的定时器总是比定时时间长的靠近队列头,满足优先被触发的准则。软件定时器以Tick为基本计时单位,当用户创建并启动一个软件定时器时,OpenHarmony系统会根据当前系统Tick时间及用户设置的定时间隔确定该定时器的到期Tick时间,并将该定时器控制结构挂入计时全局链表。
软件定时器是系统资源,在模块初始化的时候已经分配了一块连续的内存,系统支持的最大定时器个数由los_config.h中的LOSCFG_BASE_CORE_SWTMR_LIMIT宏配置。
软件定时器使用了系统的一个队列和一个任务资源,软件定时器的触发遵循队列规则,先进先出。同一时刻设置的定时时间短的定时器总是比定时时间长的靠近队列头,满足优先被触发的准则。
软件定时器以Tick为基本计时单位,当用户创建并启动一个软件定时器时,OpenHarmony系统会根据当前系统Tick时间及用户设置的定时间隔确定该定时器的到期Tick时间,并将该定时器控制结构挂入计时全局链表。
当Tick中断到来时,在Tick中断处理函数中扫描软件定时器的计时全局链表,看是否有定时器超时,若有则将超时的定时器记录下来。
Tick中断处理函数结束后,软件定时器任务(优先级为最高)被唤醒,在该任务中调用之前记录下来的定时器的超时回调函数。
定时器状态
**定时器状态:**
- OS_SWTMR_STATUS_UNUSED(未使用)
系统在定时器模块初始化的时候将系统中所有定时器资源初始化成该状态。
......@@ -39,9 +47,7 @@ Tick中断处理函数结束后,软件定时器任务(优先级为最高)
- OS_SWTMR_STATUS_TICKING(计数)
在定时器创建后调用LOS_SwtmrStart接口,定时器将变成该状态,表示定时器运行时的状态。
定时器模式
OpenHarmony系统的软件定时器提供三类定时器机制:
**定时器模式:**
- 第一类是单次触发定时器,这类定时器在启动后只会触发一次定时器事件,然后定时器自动删除。
......@@ -55,20 +61,20 @@ OpenHarmony系统的软件定时器提供三类定时器机制:
### 接口说明
OpenHarmony LiteOS-A内核的软件定时器模块提供下面几种功能,接口详细信息可以查看API参考
OpenHarmony LiteOS-A内核的软件定时器模块提供以下几种功能
**表1** 软件定时器接口说明
| 功能分类 | 接口描述 |
| -------- | -------- |
| 创建、删除定时器 | LOS_SwtmrCreate:创建软件定时器<br/>LOS_SwtmrDelete:删除软件定时器 |
| 启动、停止定时器 | LOS_SwtmrStart:启动软件定时器<br/>LOS_SwtmrStop:停止软件定时器 |
| 获得软件定时剩余Tick数 | LOS_SwtmrTimeGet:获得软件定时器剩余Tick数 |
| 功能分类 | 接口描述 |
| ---------------------- | ------------------------------------------------------------ |
| 创建、删除定时器 | LOS_SwtmrCreate:创建软件定时器<br/>LOS_SwtmrDelete:删除软件定时器 |
| 启动、停止定时器 | LOS_SwtmrStart:启动软件定时器<br/>LOS_SwtmrStop:停止软件定时器 |
| 获得软件定时剩余Tick数 | LOS_SwtmrTimeGet:获得软件定时器剩余Tick数 |
### 开发流程
软件定时器的典型开发流程:
**软件定时器的典型开发流程:**
1. 配置软件定时器。
- 确认配置项LOSCFG_BASE_CORE_SWTMR和LOSCFG_BASE_IPC_QUEUE为打开状态;
......@@ -88,14 +94,15 @@ OpenHarmony LiteOS-A内核的软件定时器模块提供下面几种功能,接
6. 删除定时器LOS_SwtmrDelete。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
> - 软件定时器的回调函数中不要做过多操作,不要使用可能引起任务挂起或者阻塞的接口或操作。
>
>
> - 软件定时器使用了系统的一个队列和一个任务资源,软件定时器任务的优先级设定为0,且不允许修改 。
>
>
> - 系统可配置的软件定时器资源个数是指:整个系统可使用的软件定时器资源总个数,而并非是用户可使用的软件定时器资源个数。例如:系统软件定时器多占用一个软件定时器资源数,那么用户能使用的软件定时器资源就会减少一个。
>
>
> - 创建单次软件定时器,该定时器超时执行完回调函数后,系统会自动删除该软件定时器,并回收资源。
>
>
> - 创建单次不自删除属性的定时器,用户需要调用定时器删除接口删除定时器,回收定时器资源,避免资源泄露。
......@@ -110,7 +117,7 @@ OpenHarmony LiteOS-A内核的软件定时器模块提供下面几种功能,接
- 配置好OS_SWTMR_HANDLE_QUEUE_SIZE软件定时器队列最大长度。
**编程示例**
```
#include "los_swtmr.h"
......@@ -176,7 +183,7 @@ void Timer_example(void)
**运行结果**
```
create Timer1 success
start Timer1 success
......@@ -206,4 +213,4 @@ g_timercount2 =9
tick_last1=2101
g_timercount2 =10
tick_last1=2201
```
```
\ No newline at end of file
......@@ -3,9 +3,11 @@
## 基本概念
时间管理以系统时钟为基础。时间管理提供给应用程序所有和时间有关的服务。系统时钟是由定时/计数器产生的输出脉冲触发中断而产生的,一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为时标或者Tick。一个Tick的时长可以静态配置。用户是以秒、毫秒为单位计时,而操作系统时钟计时是以Tick为单位的,当用户需要对系统操作时,例如任务挂起、延时等,输入秒为单位的数值,此时需要时间管理模块对二者进行转换。
时间管理以系统时钟为基础。时间管理提供给应用程序所有和时间有关的服务。系统时钟是由定时/计数器产生的输出脉冲触发中断而产生的,一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。
Tick与秒之间的对应关系可以配置。
系统时钟也称为时标或者Tick。一个Tick的时长可以静态配置。用户是以秒、毫秒为单位计时,而操作系统时钟计时是以Tick为单位的,当用户需要对系统操作时,例如任务挂起、延时等,输入秒为单位的数值,此时需要时间管理模块对二者进行转换。
**Tick与秒之间的对应关系可以配置。**
- **Cycle**
系统最小的计时单位。Cycle的时长由系统主频决定,系统主频就是每秒钟的Cycle数。
......@@ -13,24 +15,24 @@ Tick与秒之间的对应关系可以配置。
- **Tick**
Tick是操作系统的基本时间单位,对应的时长由系统主频及每秒Tick数决定,由用户配置。
OpenHarmony系统的时间管理模块提供时间转换、统计、延迟功能以满足用户对时间相关需求的实现。
**OpenHarmony系统的时间管理模块提供时间转换、统计、延迟功能以满足用户对时间相关需求的实现。**
## 开发指导
用户需要了解当前系统运行的时间以及Tick与秒、毫秒之间的转换关系时,需要使用到时间管理模块的接口。
用户需要了解当前系统运行的时间以及Tick与秒、毫秒之间的转换关系,以及需要使用到时间管理模块的接口。
### 接口说明
OpenHarmony LiteOS-A内核的时间管理提供下面几种功能,接口详细信息可以查看API参考。
OpenHarmony LiteOS-A内核的时间管理提供以下几种功能,接口详细信息可查看API参考。
**表1** 时间管理相关接口说明
**表1** 时间管理相关接口说明
| 功能分类 | 接口描述 |
| -------- | -------- |
| 时间转换 | LOS_MS2Tick:毫秒转换成Tick<br/>LOS_Tick2MS:Tick转换成毫秒 |
| 时间统计 | LOS_TickCountGet:获取当前Tick数<br/>LOS_CyclePerTickGet:每个Tick的cycle数 |
| 功能分类 | 接口描述 |
| -------- | ------------------------------------------------------------ |
| 时间转换 | LOS_MS2Tick:毫秒转换成Tick<br/>LOS_Tick2MS:Tick转换成毫秒 |
| 时间统计 | LOS_TickCountGet:获取当前Tick数<br/>LOS_CyclePerTickGet:每个Tick的cycle数 |
### 开发流程
......@@ -40,25 +42,26 @@ OpenHarmony LiteOS-A内核的时间管理提供下面几种功能,接口详细
2. 获取系统Tick数完成时间统计等。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 获取系统Tick数需要在系统时钟使能之后。
>
> - 时间管理不是单独的功能模块,依赖于los_config.h中的OS_SYS_CLOCK和LOSCFG_BASE_CORE_TICK_PER_SECOND两个配置选项。
>
> - 系统的Tick数在关中断的情况下不进行计数,故系统Tick数不能作为准确时间计算。
>
> - 获取系统Tick数需要在系统时钟使能之后。
>
> - 时间管理不是单独的功能模块,依赖于los_config.h中的OS_SYS_CLOCK和LOSCFG_BASE_CORE_TICK_PER_SECOND两个配置选项。
>
> - 系统的Tick数在关中断的情况下不进行计数,故系统Tick数不能作为准确时间计算。
### 编程实例
前置条件:
- 配置好LOSCFG_BASE_CORE_TICK_PER_SECOND,即系统每秒的Tick数,范围(0, 1000]
- 配置好LOSCFG_BASE_CORE_TICK_PER_SECOND,即系统每秒的Tick数,范围(0, 1000
- 配置好OS_SYS_CLOCK 系统时钟频率,单位:Hz。
**示例代码**
时间转换:
```
VOID Example_TransformTime(VOID)
{
......@@ -73,7 +76,7 @@ VOID Example_TransformTime(VOID)
时间统计和时间延迟:
```
VOID Example_GetTime(VOID)
{
......@@ -106,7 +109,7 @@ VOID Example_GetTime(VOID)
时间转换:
```
uwTick = 10000
uwMs = 100
......@@ -114,9 +117,9 @@ uwMs = 100
时间统计和时间延迟:
```
LOS_CyclePerTickGet = 49500
LOS_TickCountGet = 5042
LOS_TickCountGet after delay = 5242
```
LOS_TickCountGet = 347931
LOS_TickCountGet after delay = 348134
```
\ No newline at end of file
......@@ -10,26 +10,29 @@ Futex(Fast userspace mutex,用户态快速互斥锁)是内核提供的一种
当用户态线程释放锁时,先在用户态进行锁状态的判断维护,若此时没有其他线程被该锁阻塞,则直接在用户态进行解锁返回;反之,则需要进行阻塞线程的唤醒操作,通过Futex系统调用请求内核介入来唤醒阻塞队列中的线程。
## 运行机制
当用户态产生锁的竞争或释放需要进行相关线程的调度操作时,会触发Futex系统调用进入内核,此时会将用户态锁的地址传入内核,并在内核的Futex中以锁地址来区分用户态的每一把锁,因为用户态可用虚拟地址空间为1GiB,为了便于查找、管理,内核Futex采用哈希桶来存放用户态传入的锁。
当前哈希桶共有80个,0~63号桶用于存放私有锁(以虚拟地址进行哈希),64~79号桶用于存放共享锁(以物理地址进行哈希),私有/共享属性通过用户态锁的初始化以及Futex系统调用入参确定。
当前哈希桶共有80个,~~0-63号桶用于存放私有锁(以虚拟地址进行哈希),64-79~~号桶用于存放共享锁(以物理地址进行哈希),私有/共享属性通过用户态锁的初始化以及Futex系统调用入参确定。
## Futex设计图
**图1** Futex设计图
**图1**
![zh-cn_image_0000001127535690](figures/zh-cn_image_0000001127535690.jpg)
如图1,每个futex哈希桶中存放被futex_list串联起来的哈希值相同的futex node,每个futex node对应一个被挂起的task,node中key值唯一标识一把用户态锁,具有相同key值的node被queue_list串联起来表示被同一把锁阻塞的task队列。
Futex有以下三种操作:
## Futex有以下三种操作:
**表1** Futex模块接口
**Futex模块接口**
| 功能分类 | 接口**名称** | 描述 |
| -------- | -------- | -------- |
| 设置线程等待 | OsFutexWait | 向Futex表中插入代表被阻塞的线程的node |
| 唤醒被阻塞线程 | OsFutexWake | 唤醒一个被指定锁阻塞的线程 |
| 调整锁的地址 | OsFutexRequeue | 调整指定锁在Futex表中的位置 |
| 功能分类 | 接口**名称** | 描述 |
| -------------- | -------------- | ------------------------------------- |
| 设置线程等待 | OsFutexWait | 向Futex表中插入代表被阻塞的线程的node |
| 唤醒被阻塞线程 | OsFutexWake | 唤醒一个被指定锁阻塞的线程 |
| 调整锁的地址 | OsFutexRequeue | 调整指定锁在Futex表中的位置 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> Futex系统调用通常与用户态逻辑共同组成用户态锁,故推荐使用用户态POSIX接口的锁。
> Futex系统调用通常与用户态逻辑共同组成用户态锁,故推荐使用用户态POSIX接口的锁。
\ No newline at end of file
......@@ -12,46 +12,53 @@
**表1** 信号的运作流程及相关接口(用户态接口)
| 功能分类 | 接口**名称** | 描述 |
| -------- | -------- | -------- |
| 注册信号回调函数 | signal: | 注册信号总入口及注册和去注册某信号的回调函数。 |
| 注册信号回调函数 | sigaction | 功能同signal,但增加了信号发送相关的配置选项,目前仅支持SIGINFO结构体中的部分参数。 |
| 发送信号 | kill<br/>pthread_kill<br/>raise<br/>alarm<br/>abort | 发送信号给某个进程或进程内发送消息给某线程,为某进程下的线程设置信号标志位。 |
| 触发回调 | 无 | 由系统调用与中断触发,内核态与用户态切换前会先进入用户态指定函数并处理完相应回调函数,再回到原用户态程序继续运行。 |
| 功能分类 | 接口**名称** | 描述 |
| ---------------- | --------------------------------------------------- | ------------------------------------------------------------ |
| 注册信号回调函数 | signal | 注册信号总入口及注册和去注册某信号的回调函数。 |
| 注册信号回调函数 | sigaction | 功能同signal,但增加了信号发送相关的配置选项,目前仅支持SIGINFO结构体中的部分参数。 |
| 发送信号 | kill<br/>pthread_kill<br/>raise<br/>alarm<br/>abort | 发送信号给某个进程或进程内发送消息给某线程,为某进程下的线程设置信号标志位。 |
| 触发回调 | 无 | 由系统调用与中断触发,内核态与用户态切换前会先进入用户态指定函数并处理完相应回调函数,再回到原用户态程序继续运行。 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 信号机制为提供给用户态程序进程间通信的能力,故推荐使用上表1列出的用户态POSIX相关接口。
>
> 注册回调函数:
>
>
> ```
> void *signal(int sig, void (*func)(int))(int);
> ```
>
> a. 31 号信号,该信号用来注册该进程的回调函数处理入口,不可重复注册。
>
> b. 0-30 号信号,该信号段用来注册与去注册回调函数。
>
> 注册回调函数:
>
>
> ```
> int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict);
> ```
>
> 支持信号注册的配置修改和配置获取,目前仅支持SIGINFO的选项,SIGINFO内容见sigtimedwait接口内描述。
>
> 发送信号:
>
> a. 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及CONTINUE、COREDUMP功能。
>
> b. 进程无法屏蔽SIGSTOP、SIGKILL、SIGCONT信号。
>
> c. 某进程后被杀死后,若其父进程不回收该进程,其转为僵尸进程。
>
> d. 进程接收到某信号后,直到该进程被调度后才会执行信号回调。
>
> e. 进程结束后会发送SIGCHLD信号给父进程,该发送动作无法取消。
>
> f. 无法通过信号唤醒处于DELAY状态的进程。
> 信号机制为提供给用户态程序进程间通信的能力,故推荐使用上表1列出的用户态POSIX相关接口。
>
> **注册回调函数:**
>
>
> ```
> void *signal(int sig, void (*func)(int))(int);
> ```
>
> - 31 号信号,该信号用来注册该进程的回调函数处理入口,不可重复注册。
>
>
> - 0-30 号信号,该信号段用来注册与去注册回调函数。
>
>
> **注册回调函数:**
>
>
> ```
> int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict);
> ```
>
> 支持信号注册的配置修改和配置获取,目前仅支持SIGINFO的选项,SIGINFO内容见sigtimedwait接口内描述。
>
> **发送信号:**
>
> - 进程接收信号存在默认行为,单不支持POSIX标准所给出的STOP及CONTINUE、COREDUMP功能。
>
>
> - 进程无法屏蔽SIGSTOP、SIGKILL、SIGCONT信号。
>
>
> - 某进程后被杀死后,若其父进程不回收该进程,其转为僵尸进程。
>
>
> - 进程接收到某信号后,直到该进程被调度后才会执行信号回调。
>
>
> - 进程结束后会发送SIGCHLD信号给父进程,该发送动作无法取消。
>
>
> - 无法通过信号唤醒处于DELAY状态的进程。
\ No newline at end of file
......@@ -5,12 +5,20 @@
LiteIPC是OpenHarmony LiteOS-A内核提供的一种新型IPC(Inter-Process Communication,即进程间通信)机制,不同于传统的System V IPC机制,LiteIPC主要是为RPC(Remote Procedure Call,即远程过程调用)而设计的,而且是通过设备文件的方式对上层提供接口的,而非传统的API函数方式。
LiteIPC中有两个主要概念,一个是ServiceManager,另一个是Service。整个系统只能有一个ServiceManager,而Service可以有多个。ServiceManager有两个主要功能:一是负责Service的注册和注销,二是负责管理Service的访问权限(只有有权限的任务(Task)可以向对应的Service发送IPC消息)。
LiteIPC中有两个主要概念,一个是ServiceManager,另一个是Service。整个系统只能有一个ServiceManager,而Service可以有多个。
**ServiceManager有两个主要功能:**
- 一是负责Service的注册和注销,
- 二是负责管理Service的访问权限(只有有权限的任务(Task)可以向对应的Service发送IPC消息)。
## 运行机制
首先将需要接收IPC消息的任务通过ServiceManager注册成为一个Service,然后通过ServiceManager为该Service任务配置访问权限,即指定哪些任务可以向该Service任务发送IPC消息。LiteIPC的核心思想就是在内核态为每个Service任务维护一个IPC消息队列,该消息队列通过LiteIPC设备文件向上层用户态程序分别提供代表收取IPC消息的读操作和代表发送IPC消息的写操作。
首先将需要接收IPC消息的任务通过ServiceManager注册成为一个Service,然后通过ServiceManager为该Service任务配置访问权限,即指定哪些任务可以向该Service任务发送IPC消息。
LiteIPC的核心思想就是在内核态为每个Service任务维护一个IPC消息队列,该消息队列通过LiteIPC设备文件向上层用户态程序分别提供代表收取IPC消息的读操作和代表发送IPC消息的写操作。
## 开发指导
......@@ -20,11 +28,11 @@ LiteIPC中有两个主要概念,一个是ServiceManager,另一个是Service
**表1** LiteIPC模块接口(仅LiteOS-A内部使用)
| 功能分类 | 接口描述 |
| -------- | -------- |
| 模块初始化 | OsLiteIpcInit:初始化LiteIPC模块 |
| IPC消息内存池 | -&nbsp;LiteIpcPoolInit:初始化进程的IPC消息内存池<br/>-&nbsp;LiteIpcPoolReInit:重新初始化进程的IPC消息内存池<br/>-&nbsp;LiteIpcPoolDelete:释放进程的IPC消息内存池 |
| Service管理 | LiteIpcRemoveServiceHandle:删除指定的Service |
| 功能分类 | 接口描述 |
| ------------- | ------------------------------------------------------------ |
| 模块初始化 | OsLiteIpcInit:初始化LiteIPC模块 |
| IPC消息内存池 | -&nbsp;LiteIpcPoolInit:初始化进程的IPC消息内存池<br/>-&nbsp;LiteIpcPoolReInit:重新初始化进程的IPC消息内存池<br/>-&nbsp;LiteIpcPoolDelete:释放进程的IPC消息内存池 |
| Service管理 | LiteIpcRemoveServiceHandle:删除指定的Service |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> LiteIPC模块接口都只在LiteOS-A内部使用。
> LiteIPC模块接口都只在LiteOS-A内部使用。
\ No newline at end of file
......@@ -16,7 +16,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及
## 运行机制
**图1** 动态加载流程
**图1** **动态加载流程**
![zh-cn_image_0000001133104502](figures/zh-cn_image_0000001133104502.png)
1. 内核将应用程序ELF文件的PT_LOAD段信息映射至进程空间。对于ET_EXEC类型的文件,根据PT_LOAD段中p_vaddr进行固定地址映射;对于ET_DYN类型(位置无关的可执行程序,通过编译选项“-fPIE”得到)的文件,内核通过mmap接口选择base基址进行映射(load_addr = base + p_vaddr)。
......@@ -25,18 +25,18 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及
3. 动态链接器自举并查找应用程序依赖的所有共享库并对导入符号进行重定位,最后跳转至应用程序的e_entry(或base + e_entry),开始运行应用程序。
**图2** 程序执行流程
**图2** **程序执行流程**
![zh-cn_image_0000001133264664](figures/zh-cn_image_0000001133264664.png)
1. 加载器与链接器调用mmap映射PT_LOAD段
1. 加载器与链接器调用mmap映射PT_LOAD段
2. 内核调用map_pages接口查找并映射pagecache已有的缓存
2. 内核调用map_pages接口查找并映射pagecache已有的缓存
3. 程序执行时,虚拟内存区间若无具体的物理内存做映射,系统将触发缺页中断,将elf文件内容读入物理内存,并将该内存块加入pagecache
3. 程序执行时,虚拟内存区间若无具体的物理内存做映射,系统将触发缺页中断,将elf文件内容读入物理内存,并将该内存块加入pagecache
4. 将已读入文件内容的物理内存与虚拟地址区间做映射
4. 将已读入文件内容的物理内存与虚拟地址区间做映射
5. 程序继续执行
5. 程序继续执行
## 开发指导
......@@ -46,11 +46,11 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及
**表1** 内核加载器模块接口
| 功能分类 | 接口**名称** | 描述 |
| -------- | -------- | -------- |
| 模块初始化 | LOS_DoExecveFile | 根据输入的参数执行指定的用户程序 |
| 功能分类 | 接口**名称** | 描述 |
| ---------- | ---------------- | -------------------------------- |
| 模块初始化 | LOS_DoExecveFile | 根据输入的参数执行指定的用户程序 |
### 开发流程
LOS_DoExecveFile接口一般由用户通过exec家族函数利用系统调用机制创建新的进程,内核不能直接调用该接口启动新进程。
LOS_DoExecveFile接口一般由用户通过exec家族函数利用系统调用机制创建新的进程,内核不能直接调用该接口启动新进程。
\ No newline at end of file
......@@ -12,7 +12,7 @@ OpenHarmony系统通过VDSO机制实现上层用户态程序可以快速读取
VDSO其核心思想就是内核看护一段内存,并将这段内存映射(只读)进用户态应用程序的地址空间,应用程序通过链接vdso.so后,将某些系统调用替换为直接读取这段已映射的内存从而避免系统调用达到加速的效果。
VDSO总体可分为数据页与代码页两部分:
**VDSO总体可分为数据页与代码页两部分:**
- 数据页提供内核映射给用户进程的内核时数据;
......@@ -21,7 +21,7 @@ VDSO总体可分为数据页与代码页两部分:
**图1** VDSO系统设计
![zh-cn_image_0000001173586763](figures/zh-cn_image_0000001173586763.jpg)
如图1所示,当前VDSO机制有以下几个主要步骤:
**如图1所示,当前VDSO机制有以下几个主要步骤:**
① 内核初始化时进行VDSO数据页的创建;
......@@ -42,6 +42,9 @@ VDSO总体可分为数据页与代码页两部分:
⑨ 将从VDSO数据页获取到的数据作为结果返回给用户程序;
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 当前VDSO机制支持LibC库clock_gettime接口的CLOCK_REALTIME_COARSE与CLOCK_MONOTONIC_COARSE功能,clock_gettime接口的使用方法详见POSIX标准。用户调用C库接口clock_gettime(CLOCK_REALTIME_COARSE, &amp;ts)或者clock_gettime(CLOCK_MONOTONIC_COARSE, &amp;ts)即可使用VDSO机制。
>
> - 使用VDSO机制得到的时间精度会与系统tick中断的精度保持一致,适用于对时间没有高精度要求且短时间内会高频触发clock_gettime或gettimeofday系统调用的场景,若有高精度要求,不建议采用VDSO机制。
>
> - 当前VDSO机制支持LibC库clock_gettime接口的CLOCK_REALTIME_COARSE与CLOCK_MONOTONIC_COARSE功能,clock_gettime接口的使用方法详见POSIX标准。
>
> - 用户调用C库接口clock_gettime(CLOCK_REALTIME_COARSE, &amp;ts)或者clock_gettime(CLOCK_MONOTONIC_COARSE, &amp;ts)即可使用VDSO机制。
>
> - 使用VDSO机制得到的时间精度会与系统tick中断的精度保持一致,适用于对时间没有高精度要求且短时间内会高频触发clock_gettime或gettimeofday系统调用的场景,若有高精度要求,不建议采用VDSO机制。
\ No newline at end of file
......@@ -13,12 +13,12 @@ cpup [_mode_] [_taskID_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| mode | -&nbsp;缺省:显示系统最近10s内的CPU占用率。<br/>-&nbsp;0:显示系统最近10s内的CPU占用率。<br/>-&nbsp;1:显示系统最近1s内的CPU占用率。<br/>-&nbsp;其他数字:显示系统启动至今总的CPU&nbsp;占用率。 | [0,0xFFFFFFFF] |
| taskID | 任务ID号 | [0,0xFFFFFFFF] |
| mode | -&nbsp;缺省:显示系统最近10s内的CPU占用率。<br/>-&nbsp;0:显示系统最近10s内的CPU占用率。<br/>-&nbsp;1:显示系统最近1s内的CPU占用率。<br/>-&nbsp;其他数字:显示系统启动至今总的CPU&nbsp;占用率。 | [0, 0xFFFFFFFF] |
| taskID | 任务ID号 | [0, 0xFFFFFFFF] |
## 使用指南
......@@ -37,8 +37,8 @@ cpup [_mode_] [_taskID_]
## 输出说明
**示例**:指令输出结果
**示例** 指令输出结果
```
OHOS # cpup 1 5pid 5
......
......@@ -19,13 +19,13 @@ date命令用于查询系统日期和时间。
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 使用帮助。 | N/A |
| +Format | 根据Format格式打印日期和时间。 | --help中列出的占位符。 |
| -u | 显示UTC,而不是当前时区 | N/A |
| 参数 | 参数说明 | 取值范围 |
| ------- | ------------------------------ | ---------------------- |
| --help | 使用帮助。 | N/A |
| +Format | 根据Format格式打印日期和时间。 | --help中列出的占位符。 |
| -u | 显示UTC,而不是当前时区 | N/A |
## 使用指南
......@@ -36,6 +36,9 @@ date命令用于查询系统日期和时间。
- 目前命令不支持设置时间和日期。
## 特殊说明
date -u参数 shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -46,8 +49,8 @@ date命令用于查询系统日期和时间。
示例:按指定格式打印系统日期
```
OHOS:/$ date +%Y--%m--%d
1970--01--01
```
```
\ No newline at end of file
......@@ -3,7 +3,7 @@
## 命令功能
dmesg命令用于显示系统启动过程和运行过程中的信息。
dmesg命令用于显示开机信息,以及系统启动过程和运行过程中的信息。
## 命令格式
......@@ -21,22 +21,22 @@ dmesg &gt; [_fileA_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -c | 打印缓存区内容并清空缓存区。 | N/A |
| -C | 清空缓存区。 | N/A |
| -D/-E | 关闭/开启控制台打印。 | N/A |
| -L/-U | 关闭/开启串口打印。 | N/A |
| -s&nbsp;size | 设置缓存区大小&nbsp;size是要设置的大小。 | N/A |
| -l&nbsp;level | 设置缓存等级。 | 0&nbsp;-&nbsp;5 |
| &gt;&nbsp;fileA | 将缓存区内容重定向写入文件。 | N/A |
| 参数 | 参数说明 | 取值范围 |
| --------------- | ---------------------------------------- | --------------- |
| -c | 打印缓存区内容并清空缓存区。 | N/A |
| -C | 清空缓存区。 | N/A |
| -D/-E | 关闭/开启控制台打印。 | N/A |
| -L/-U | 关闭/开启串口打印。 | N/A |
| -s&nbsp;size | 设置缓存区大小&nbsp;size是要设置的大小。 | N/A |
| -l&nbsp;level | 设置缓存等级。 | [0, 5] |
| &gt;&nbsp;fileA | 将缓存区内容重定向写入文件。 | N/A |
## 使用指南
- 该命令依赖于LOSCFG_SHELL_DMESG,使用时通过menuconfig在配置项中开启"Enable Shell dmesg":
- 该命令依赖于LOSCFG_SHELL_DMESG,在kernel/liteos_a中输入make menuconfig命令。此时会弹出配置项,找到Debug选项并进入,然后在配置项中开启"Enable Shell dmesg":
Debug ---&gt; Enable a Debug Version ---&gt; Enable Shell ---&gt; Enable Shell dmesg
- dmesg参数缺省时,默认打印缓存区内容。
......@@ -53,9 +53,9 @@ dmesg &gt; [_fileA_]
## 输出说明
**示例**dmesg重定向到文件
**示例** dmesg重定向到文件
```
OHOS # dmesg > dmesg.log
Dmesg write log to dmesg.log success
```
```
\ No newline at end of file
......@@ -3,7 +3,7 @@
## 命令功能
exec命令属于shell内置命令,目前实现最基础的执行用户态程序的功能。
exec命令属于shell内置命令,在exec执行命令时,不启用新的shell进程。目前实现最基础的执行用户态程序的功能
## 命令格式
......@@ -13,11 +13,11 @@ exec &lt;_executable-file_&gt;
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| executable-file | 有效的可执行文件。 | N/A |
| 参数 | 参数说明 |
| --------------- | ------------------ |
| executable-file | 有效的可执行文件。 |
## 使用指南
......@@ -34,11 +34,11 @@ exec &lt;_executable-file_&gt;
## 输出说明
```
OHOS # exec helloworld
OHOS # hello world!
```
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 可执行文件执行后,先打印“OHOS \#”提示符原因:目前Shell “exec”命令执行均为后台执行,结果可能导致提示符提前打印。
> 可执行文件执行后,先打印“OHOS \#”提示符原因:目前Shell “exec”命令执行均为后台执行,结果可能导致提示符提前打印。
\ No newline at end of file
......@@ -13,17 +13,17 @@ free [_-b | -k | -m | -g | -t_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| 无参数 | 以Byte为单位显示。 | N/A |
| --help/-h | 查看free命令支持的参数列表。 | N/A |
| -b | 以Byte为单位显示。 | N/A |
| -k | 以KiB为单位显示。 | N/A |
| -m | 以MiB为单位显示。 | N/A |
| -g | 以GiB为单位显示。 | N/A |
| -t | 以TiB为单位显示。 | N/A |
| 参数 | 参数说明 |
| -------- | -------- |
| 无参数 | 以Byte为单位显示。 |
| --help/-h | 查看free命令支持的参数列表。 |
| -b | 以Byte为单位显示。 |
| -k | 以KiB为单位显示。 |
| -m | 以MiB为单位显示。 |
| -g | 以GiB为单位显示。 |
| -t | 以TiB为单位显示。 |
## 使用指南
......@@ -57,7 +57,7 @@ Mem: 2 2 0 0 0
Swap: 0 0 0
```
**表2** 输出说明
**表2** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -13,7 +13,7 @@ help
## 参数说明
## 使用指南
......
......@@ -13,7 +13,7 @@ hwi
## 参数说明
## 使用指南
......@@ -106,7 +106,7 @@ hwi
102: 0 0 0.0 0.0 0.0 normal SPI_HI35XX
```
**表1** 输出说明
**表1** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -3,7 +3,7 @@
## 命令功能
命令用于发送特定信号给指定进程
kill命令用于发送特定信号给指定进程,让它去终结不正常的应用
## 命令格式
......@@ -13,31 +13,34 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看kill命令支持的参数列表 | N/A |
| -l | 列出信号名称和编号。 | N/A |
| -s | 发送信号 | N/A |
| signo | 信号ID。 | [1,30] |
| pid | 进程ID。 | [1,MAX_INT] |
| 参数 | 参数说明 | 取值范围 |
| ------ | -------------------------- | ----------- |
| --help | 查看kill命令支持的参数列表 | N/A |
| -l | 列出信号名称和编号。 | N/A |
| -s | 发送信号 | N/A |
| signo | 信号ID。 | [1, 30] |
| pid | 进程ID。 | [1, MAX_INT] |
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> signo有效范围为[0,64],建议取值范围为[1,30],其余为保留内容。
> signo有效范围为[0, 64],建议取值范围为[1, 30],其余为保留内容。
## 使用指南
- 必须指定发送的信号编号及进程号。
- 进程编号取值范围根据系统配置变化,例如系统最大支持pid为256,则取值范围缩小为[1-256]。
- 进程编号取值范围根据系统配置变化,例如系统最大支持pid为256,则取值范围缩小为[1, 256]。
## 特殊说明
kill命令以及参数 shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
- 查看当前进程列表,查看需要杀死的进程PID(42)。
```
OHOS:/$ ps
allCpu(%): 4.67 sys, 195.33 idle
......@@ -60,7 +63,7 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._
```
- 发送信号9(SIGKILL默认行为为立即终止进程)给42号进程test_demo(用户态进程):kill -s 9 42(kill -9 42效果相同),并查看当前进程列表,42号进程已终止。
```
OHOS:/$ kill -s 9 42
OHOS:/$
......@@ -91,9 +94,9 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._
发送成功或失败输出结果如下。
**示例 1** 发送信号给指定进程
**示例1** 发送信号给指定进程
```
OHOS:/$ kill -s 9 42
OHOS:/$
......@@ -102,12 +105,12 @@ OHOS:/$
信号发送成功会显示的提示进程已被杀死。
**示例 2** 信号发送失败
**示例2** 信号发送失败
```
OHOS:/$ kill -100 31
kill: Unknown signal '(null)'
```
信号发送失败,示例2所示原因为信号发送命令参数无效,请排查信号编号及进程编号是否有效。
信号发送失败,示例2所示原因为信号发送命令参数无效,请排查信号编号及进程编号是否有效。
\ No newline at end of file
......@@ -13,11 +13,11 @@ log level [_levelNum_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| levelNum | 配置日志打印等级。 | [0,5] |
| levelNum | 配置日志打印等级。 | [0, 5] |
## 使用指南
......@@ -52,9 +52,9 @@ log level [_levelNum_]
## 输出说明
**示例**:设置当前日志打印级别为3
**示例** 设置当前日志打印级别为3
```
OHOS # log level 3
Set current log level WARN
......
......@@ -13,7 +13,7 @@ memcheck
## 参数说明
## 使用指南
......@@ -34,15 +34,15 @@ memcheck
## 输出说明
**示例1**当前没有内存越界
**示例1** 当前没有内存越界
```
OHOS # memcheck
system memcheck over, all passed!
```
**示例2**出现内存越界
**示例2** 出现内存越界
```
[L0S DLnkCheckMenl 349, memory check
stFreeNodeInfo.pstPrev:0x7e0d31f3 is out of legal mem range[0x80ba5f40, 0х83d00000]
......
......@@ -21,19 +21,20 @@ oom -h | --help
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -i&nbsp;[interval] | 设置oom线程任务检查的时间间隔。 | 100ms&nbsp;~&nbsp;10000ms |
| -m&nbsp;[mem&nbsp;byte] | 设置低内存阈值。 | 0MB&nbsp;~&nbsp;1MB,0MB表示不做低内存阈值检查。 |
| -r&nbsp;[mem&nbsp;byte] | 设置pagecache内存回收阈值。 | 低内存阈值&nbsp;~&nbsp;系统可用最大内存。 |
| -h&nbsp;\|&nbsp;--help | 使用帮助。 | N/A |
| 参数 | 参数说明 | 取值范围 |
| ----------------------- | ------------------------------- | ------------------------------------------------------------ |
| -i&nbsp;[interval] | 设置oom线程任务检查的时间间隔。 | [100, 10000] 单位: ms |
| -m&nbsp;[mem&nbsp;byte] | 设置低内存阈值。 | 0MB&nbsp;~&nbsp;1MB,0MB表示不做低内存阈值检查。 |
| -r&nbsp;[mem&nbsp;byte] | 设置pagecache内存回收阈值。 | 低内存阈值 ~ 系统可用最大内存,一个pagecache页一般为4KB,也有16 ~ 64KB的情况。 |
| -h&nbsp;\|&nbsp;--help | 使用帮助。 | N/A |
## 使用指南
参数缺省时,显示oom功能当前配置信息。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 当系统内存不足时,会打印出内存不足的提示信息。
......@@ -49,9 +50,9 @@ oom -h | --help
## 输出说明
**示例1:**oom缺省打印配置信息
**示例1** oom缺省打印配置信息
```
OHOS:/$ oom
[oom] oom loop task status: enabled
......@@ -62,7 +63,7 @@ OHOS:/$ oom
系统内存不足时打印提示信息
```
T:20 Enter:IT MEM 00M 001
[oom] OS is in low memory state
......@@ -109,22 +110,22 @@ traceback 5 -- 1r = 0x20c4df50 fp = 0хb0b0b0b 1r in /1ib/libc.so - -> 0x62f50
```
**示例2**:设置 oom 线程任务检查的时间间隔
**示例2** 设置 oom 线程任务检查的时间间隔
```
OHOS:/$ oom -i 100
[oom] set oom check interval (100)ms successful
```
**表2** 输出说明
**表2** 输出说明
| 输出 | 说明 |
| -------- | -------- |
| [oom]&nbsp;OS&nbsp;is&nbsp;in&nbsp;low&nbsp;memory&nbsp;state<br/>total&nbsp;physical&nbsp;memory:&nbsp;0x1bcf000(byte),&nbsp;used:&nbsp;0x1b50000(byte),&nbsp;free:&nbsp;0x7f000(byte),&nbsp;low&nbsp;memory&nbsp;threshold:&nbsp;0x80000(byte) | 操作系统处于低内存状态。<br/>整个系统可用物理内存为0x1bcf000&nbsp;byte,已经使用了&nbsp;0x1b50000&nbsp;byte,&nbsp;还剩0x7f000&nbsp;byte,当前设置的低内存阈值为0x80000&nbsp;byte。 |
| [oom]&nbsp;candidate&nbsp;victim&nbsp;process&nbsp;init&nbsp;pid:&nbsp;1,&nbsp;actual&nbsp;phy&nbsp;mem&nbsp;byte:&nbsp;82602 | 打印当前各个进程的内存使用情况,init进程实际占用物理内存82602byte。 |
| [oom]&nbsp;candidate&nbsp;victim&nbsp;process&nbsp;UserProcess12&nbsp;pid:&nbsp;12,&nbsp;actual&nbsp;phy&nbsp;mem&nbsp;byte:&nbsp;25951558 | UserProcess12进程实际使用25951558byte内存。 |
| [oom]&nbsp;max&nbsp;phy&nbsp;mem&nbsp;used&nbsp;process&nbsp;UserProcess12&nbsp;pid:&nbsp;12,&nbsp;actual&nbsp;phy&nbsp;mem:&nbsp;25951558 | 当前使用内存最多的进程是UserProcess12。 |
| excFrom:&nbsp;User! | 当系统处于低内存的情况下,UserProcess12进程再去申请内存时失败退出。 |
| 输出 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [oom]&nbsp;OS&nbsp;is&nbsp;in&nbsp;low&nbsp;memory&nbsp;state<br/>total&nbsp;physical&nbsp;memory:&nbsp;0x1bcf000(byte),&nbsp;used:&nbsp;0x1b50000(byte),&nbsp;free:&nbsp;0x7f000(byte),&nbsp;low&nbsp;memory&nbsp;threshold:&nbsp;0x80000(byte) | 操作系统处于低内存状态。<br/>整个系统可用物理内存为0x1bcf000&nbsp;byte,已经使用了&nbsp;0x1b50000&nbsp;byte,&nbsp;还剩0x7f000&nbsp;byte,当前设置的低内存阈值为0x80000&nbsp;byte。 |
| [oom]&nbsp;candidate&nbsp;victim&nbsp;process&nbsp;init&nbsp;pid:&nbsp;1,&nbsp;actual&nbsp;phy&nbsp;mem&nbsp;byte:&nbsp;82602 | 打印当前各个进程的内存使用情况,init进程实际占用物理内存82602byte。 |
| [oom]&nbsp;candidate&nbsp;victim&nbsp;process&nbsp;UserProcess12&nbsp;pid:&nbsp;12,&nbsp;actual&nbsp;phy&nbsp;mem&nbsp;byte:&nbsp;25951558 | UserProcess12进程实际使用25951558byte内存。 |
| [oom]&nbsp;max&nbsp;phy&nbsp;mem&nbsp;used&nbsp;process&nbsp;UserProcess12&nbsp;pid:&nbsp;12,&nbsp;actual&nbsp;phy&nbsp;mem:&nbsp;25951558 | 当前使用内存最多的进程是UserProcess12。 |
| excFrom:&nbsp;User! | 当系统处于低内存的情况下,UserProcess12进程再去申请内存时失败退出。 |
\ No newline at end of file
......@@ -28,8 +28,8 @@ Debug版本才具备的命令。
## 输出说明
**示例:**查看物理页使用情况
**示例** 查看物理页使用情况
```
OHOS # pmm
phys_seg base size free_pages
......@@ -55,7 +55,7 @@ Vnode number = 67
Vnode memory size = 10720(B)
```
**表1** 输出说明
**表1** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -13,7 +13,7 @@ reboot
## 参数说明
## 使用指南
......@@ -28,4 +28,4 @@ reboot
## 输出说明
......@@ -13,7 +13,7 @@ reset
## 参数说明
## 使用指南
......@@ -28,4 +28,4 @@ reset
## 输出说明
......@@ -13,7 +13,7 @@ sem [_ID__ / fulldata_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -40,8 +40,8 @@ sem [_ID__ / fulldata_]
## 输出说明
**示例1**查询所有在用的信号量信息
**示例1** 查询所有在用的信号量信息
```
OHOS # sem
SemID Count
......@@ -67,7 +67,7 @@ OHOS # sem
0x00000006 0
```
**表2** 输出说明
**表2** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......@@ -79,8 +79,8 @@ OHOS # sem
>
> ● sem命令的ID参数在[0, 1023]范围内时,返回对应ID的信号量的状态(如果对应ID的信号量未被使用则进行提示);其他取值时返回参数错误的提示。
**示例2:**查询所有在用的信号量信息
**示例2** 查询所有在用的信号量信息
```
OHOS # sem fulldata
Used Semaphore List:
......@@ -113,7 +113,7 @@ Used Semaphore List:
0x38 0x1 0x1 0x404978fc 0x395
```
**表3** 输出说明
**表3** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -13,12 +13,12 @@ stack
## 参数说明
## 使用指南
## 使用实例
......@@ -28,8 +28,8 @@ stack
## 输出说明
**示例:**系统堆栈使用情况
**示例** 系统堆栈使用情况
```
OHOS # stack
stack name cpu id stack addr total size used size
......@@ -40,7 +40,7 @@ OHOS # stack
exc_stack 0 0x405c9000 0x1000 0x0
```
**表1** 输出说明
**表1** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -13,12 +13,12 @@ su [_uid_] [_gid_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| uid | 目标用户的用户id值。 | -&nbsp;为空。<br/>-&nbsp;[0,60000] |
| gid | 目标用户的群组id值。 | -&nbsp;为空。<br/>-&nbsp;[0,60000] |
| uid | 目标用户的用户id值。 | -&nbsp;为空。<br/>-&nbsp;[0, 60000] |
| gid | 目标用户的群组id值。 | -&nbsp;为空。<br/>-&nbsp;[0, 60000] |
## 使用指南
......@@ -37,8 +37,8 @@ su [_uid_] [_gid_]
## 输出说明
**示例:**切换到为uid为1000,gid为1000的用户
**示例** 切换到为uid为1000,gid为1000的用户
```
OHOS # ls
Directory /data/system/param:
......
......@@ -13,11 +13,11 @@ swtmr [_ID_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| ID | 软件定时器ID号。 | [0,0xFFFFFFFF] |
| ID | 软件定时器ID号。 | [0, 0xFFFFFFFF] |
## 使用指南
......@@ -38,8 +38,8 @@ swtmr [_ID_]
## 输出说明
**示例1:**查询所有软件定时器相关信息
**示例1** 查询所有软件定时器相关信息
```
OHOS # swtmr
SwTmrID State Mode Interval Count Arg handlerAddr
......@@ -59,8 +59,8 @@ SwTmrID State Mode Interval Count Arg handlerAddr
0x00000079 Ticking NSD 30000 1749 0x406189d8 0x40160e1c
```
**示例2:**查询对应 ID 的软件定时器信息
**示例2** 查询对应 ID 的软件定时器信息
```
OHOS # swtmr 1
SwTmrID State Mode Interval Count Arg handlerAddr
......
......@@ -13,12 +13,12 @@ systeminfo
## 参数说明
## 使用指南
## 使用实例
......@@ -28,8 +28,8 @@ systeminfo
## 输出说明
**示例:**查看系统资源使用情况
**示例** 查看系统资源使用情况
```
OHOS:/$ systeminfo
Module Used Total Enabled
......@@ -40,16 +40,15 @@ OHOS:/$ systeminfo
SwTmr 20 1024 YES
```
**表1** 输出说明
| 输出 | 说明 |
| -------- | -------- |
| Module | 模块名称。 |
| Used | 当前使用量。 |
| Total | 最大可用量。 |
| Enabled | 模块是否开启。 |
| Task | 任务。 |
| Sem | 信号量。 |
| Mutex | 互斥量。 |
| Queue | 队列。 |
| SwTmr | 定时器。 |
**表1** 输出说明
| 输出 | 说明 |
| ------- | -------------- |
| Module | 模块名称。 |
| Used | 当前使用量。 |
| Total | 最大可用量。 |
| Enabled | 模块是否开启。 |
| Task | 任务。 |
| Sem | 信号量。 |
| Queue | 队列。 |
| SwTmr | 定时器。 |
\ No newline at end of file
......@@ -13,7 +13,7 @@ task/task -a
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -32,9 +32,8 @@ task/task -a
## 输出说明
**示例:**查询任务部分信息
**示例** 查询任务部分信息
```
OHOS # task
allCpu(%): 3.54 sys, 196.46 idle
......@@ -61,7 +60,7 @@ OHOS # task
7 2 0x3 -1 Pending 0x4e20 0xa5c 0.0 0 PlatformWorkerThread
```
**表2** 输出说明
**表2** 输出说明
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -13,18 +13,21 @@ top [_-a_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 缺省值 | 取值范围 |
| -------- | -------- | -------- | -------- |
| --help | 查看top命令支持的参数列表。 | N/A | |
| -a | 显示更详细的信息。 | N/A | |
| 参数 | 参数说明 |
| ------ | --------------------------- |
| --help | 查看top命令支持的参数列表。 |
| -a | 显示更详细的信息。 |
## 使用指南
参数缺省时默认打印部分任务信息。
## 特殊说明
shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -33,8 +36,8 @@ top [_-a_]
## 输出说明
**示例1** top 命令显示详情
**示例1** top 命令显示详情
```
OHOS:/$ top
allCpu(%): 4.68 sys, 195.32 idle
......@@ -78,19 +81,19 @@ OHOS:/$ top
64 2 0x3 -1 Pending 0x4000 0x244 0.0 0 USB_NGIAN_BULK_TasK
```
**表2** 输出元素说明
| 输出 | 说明 |
| -------- | -------- |
| PID | 进程ID。 |
| PPID | 父进程ID。 |
| PGID | 进程组ID。 |
| UID | 用户ID。 |
| Status | 任务当前的状态。 |
| CPUUSE10s | 10秒内CPU使用率。 |
| PName | 进程名。 |
| TID | 任务ID。 |
| StackSize | 任务堆栈的大小。 |
| WaterLine | 栈使用的峰值。 |
| MEMUSE | 内存使用量。 |
| TaskName | 任务名。 |
**表2** 输出元素说明
| 输出 | 说明 |
| --------- | ----------------- |
| PID | 进程ID。 |
| PPID | 父进程ID。 |
| PGID | 进程组ID。 |
| UID | 用户ID。 |
| Status | 任务当前的状态。 |
| CPUUSE10s | 10秒内CPU使用率。 |
| PName | 进程名。 |
| TID | 任务ID。 |
| StackSize | 任务堆栈的大小。 |
| WaterLine | 栈使用的峰值。 |
| MEMUSE | 内存使用量。 |
| TaskName | 任务名。 |
\ No newline at end of file
......@@ -11,18 +11,18 @@ uname命令用于显示当前操作系统的名称,版本创建时间,系统
uname [_-a | -s | -r | -m | -n | -v | --help_]
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 |
| -------- | -------- |
| --help | 显示uname指令格式提示。 |
| 无参数 | 默认显示操作系统名称。 |
| -a | 显示全部信息。 |
| -s | 显示操作系统名称。 |
| -r | 显示内核发行版本。 |
| -m | 显示系统架构名称。 |
| -n | 显示主机的网络域名称。 |
| -v | 显示版本信息。 |
| 参数 | 参数说明 |
| ------ | ----------------------- |
| --help | 显示uname指令格式提示。 |
| 无参数 | 默认显示操作系统名称。 |
| -a | 显示全部信息。 |
| -s | 显示操作系统名称。 |
| -r | 显示内核发行版本。 |
| -m | 显示系统架构名称。 |
| -n | 显示主机的网络域名称。 |
| -v | 显示版本信息。 |
## 使用指南
......@@ -31,6 +31,9 @@ uname [_-a | -s | -r | -m | -n | -v | --help_]
- 除参数--help和-a以外,其他参数可以相互搭配使用;uname -a 等价于 uname -srmnv。
## 特殊说明
-r -m -n参数暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -43,20 +46,18 @@ uname [_-a | -s | -r | -m | -n | -v | --help_]
## 输出说明
**示例1:** 查看系统信息
**示例1** 查看系统信息
```
OHOS:/$ uname -a
LiteOS hisilicon 2.0.0.37 LiteOS 2.0.0.37 Oct 21 2021 17:39:32 Cortex-A7
OHOS:/$
```
**示例2:** 只查看操作系统名称和系统架构名称
**示例2** 只查看操作系统名称和系统架构名称
```
OHOS:/$ uname -ms
LiteOS Cortex-A7
OHOS:/$
```
```
\ No newline at end of file
......@@ -15,13 +15,13 @@
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -a | 输出所有进程的虚拟内存使用情况。 | N/A |
| -h&nbsp;\|&nbsp;--help | 命令格式说明。 | N/A |
| pid | 进程ID,说明指定进程的虚拟内存使用情况。 | [0,63] |
| pid | 进程ID,说明指定进程的虚拟内存使用情况。 | [0, 63] |
## 使用指南
......@@ -36,8 +36,8 @@
## 输出说明
**示例:**PID为3的进程虚拟内存使用信息
**示例** PID为3的进程虚拟内存使用信息
```
OHOS # vmm 3
PID aspace name base size pages
......@@ -62,7 +62,7 @@ OHOS # vmm 3
0x408c3ce0 /lib/libc++.so 0x23cb0000 0x00001000 CH US RD WR 1 1
```
**表2** 进程基本信息
**表2** 进程基本信息
| 输出 | 说明 |
| -------- | -------- |
......@@ -73,7 +73,7 @@ OHOS # vmm 3
| size | 虚拟内存大小 |
| pages | 已使用的物理页数量 |
**表3** 虚拟内存区间信息
**表3** 虚拟内存区间信息
| 输出 | 说明 |
| -------- | -------- |
......
......@@ -38,8 +38,8 @@ watch -n 2 -c 6 task
## 输出说明
**示例**每隔2秒运行一次task命令,一共运行6次
**示例** 每隔2秒运行一次task命令,一共运行6次
```
OHOS # watch -n 2 -c 6 task
Thu Jan 1 23:57:13 1970
......
......@@ -13,7 +13,7 @@ cat [_pathname_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -32,8 +32,8 @@ cat用于显示文本文件的内容。
## 输出说明
**示例**查看 hello-openharmony.txt 文件的信息
**示例** 查看 hello-openharmony.txt 文件的信息
```
OHOS # cat hello-openharmony.txt
OHOS # Hello openharmony ;)
......
......@@ -13,7 +13,7 @@ cd [_path_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -42,9 +42,8 @@ cd [_path_]
## 输出说明
**示例**显示结果如下
**示例**显示结果如下
```
OHOS:/nfs$ cd ../
OHOS:/$ ls
......
......@@ -13,20 +13,22 @@ chgrp [_group_] [_pathname_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| group | 文件群组。 | [0,0xFFFFFFFF] |
| pathname | 文件路径。 | 已存在的文件。 |
| 参数 | 参数说明 | 取值范围 |
| -------- | ---------- | -------------- |
| group | 文件群组。 | [0, 0xFFFFFFFF] |
| pathname | 文件路径。 | 已存在的文件。 |
## 使用指南
- 在需要修改的文件名前加上文件群组值就可以修改该文件的所属组。
- fatfs文件系统不支持修改用户组id。
## 特殊说明
shell端暂不支持。
## 使用实例
......@@ -35,8 +37,8 @@ chgrp [_group_] [_pathname_]
## 输出说明
**示例:**修改 dev/目录下testfile 文件的群组为100
**示例** 修改 dev/目录下testfile 文件的群组为100
```
OHOS:/dev$ ll testfile
-rw-r--r-- 0 0 0 0 1970-01-01 00:00 testfile
......@@ -44,4 +46,4 @@ OHOS:/dev$ chgrp 100 testfile
OHOS:/dev$ ll testfile
-rw-r--r-- 0 0 100 0 1970-01-01 00:00 testfile
OHOS:/dev$
```
```
\ No newline at end of file
......@@ -13,12 +13,12 @@ chmod [_mode_] [_filename_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| mode | 文件或文件夹权限,用8进制表示对应User、Group、及Others(拥有者、群组、其他组)的权限。 | [0,777] |
| filename | 文件路径。 | 已存在的文件。 |
| 参数 | 参数说明 | 取值范围 |
| -------- | ------------------------------------------------------------ | -------------- |
| mode | 文件或文件夹权限,用8进制表示对应User、Group、及Others(拥有者、群组、其他组)的权限。 | [0, 777] |
| filename | 文件路径。 | 已存在的文件。 |
## 使用指南
......@@ -27,6 +27,9 @@ chmod [_mode_] [_filename_]
- fatfs文件系统所有创建的文件和挂载节点的权限属性保持一致,目前节点的权限只有用户读写权限,group和others权限不生效;且只允许修改用户读写权限,读写权限只有rw和ro两种。其他文件系统无限制。
## 特殊说明
shell端暂不支持。
## 使用实例
......@@ -35,9 +38,8 @@ chmod [_mode_] [_filename_]
## 输出说明
**示例:**修改/dev目录下 hello-openharmony.txt 文件的权限
**示例** 修改/dev目录下 hello-openharmony.txt 文件的权限
```
OHOS:/dev$ chmod 644 hello-openharmony.txt
OHOS:/dev$ ll hello-openharmony.txt
......@@ -45,4 +47,4 @@ OHOS:/dev$ ll hello-openharmony.txt
OHOS:/dev$ chmod 777 hello-openharmony.txt
OHOS:/dev$ ll hello-openharmony.txt
-rwxrwxrwx 0 0 0 0 1970-01-01 00:00 hello-openharmony.txt
```
```
\ No newline at end of file
......@@ -13,18 +13,21 @@ chown [_owner_] [_pathname_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| owner | 文件拥有者。 | [0,0xFFFFFFFF] |
| pathname | 文件路径。 | 已存在的文件。 |
| 参数 | 参数说明 | 取值范围 |
| -------- | ------------ | -------------- |
| owner | 文件拥有者。 | [0, 0xFFFFFFFF] |
| pathname | 文件路径。 | 已存在的文件。 |
## 使用指南
修改文件的所有者,目前fatfs不支持修改。
## 特殊说明
shell端暂不支持。
## 使用实例
......@@ -33,9 +36,8 @@ chown [_owner_] [_pathname_]
## 输出说明
示例 1 修改 /dev下的testfile 文件的uid为100
**示例1** 修改 /dev下的testfile 文件的uid为100
```
OHOS:/dev$ touch testfile
OHOS:/dev$ ll testfile
......@@ -43,4 +45,4 @@ OHOS:/dev$ ll testfile
OHOS:/dev$ chown 100 testfile
OHOS:/dev$ ll testfile
-rw-r--r-- 0 100 100 0 1970-01-01 00:00 testfile
```
```
\ No newline at end of file
......@@ -47,9 +47,8 @@ cp [_SOURCEFILE_] [_DESTFILE_]
## 输出说明
**示例:**同时拷贝两个文件至指定目录
**示例** 同时拷贝两个文件至指定目录
```
OHOS:/$ ls
bin hello-OHOS.txt proc system vendor
......
......@@ -13,16 +13,16 @@ du [_-kKmh_] [_file..._]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看du命令支持的参数列表。 | N/A |
| -k | 显示占用的块,每块1024bytes(默认)。 | N/A |
| -K | 显示占用的块,每块512bytes(posix标准)。 | N/A |
| -m | 兆字节为单位。 | N/A |
| -h | 以K,M,G为单位,提高信息的可读性(例如,1K&nbsp;243M&nbsp;2G)。 | N/A |
| file | 指定的需要统计的文件。 | N/A |
| 参数 | 参数说明 |
| ------ | ------------------------------------------------------------ |
| --help | 查看du命令支持的参数列表。 |
| -k | 显示占用的块,每块1024bytes(默认)。 |
| -K | 显示占用的块,每块512bytes(posix标准)。 |
| -m | 兆字节为单位。 |
| -h | 以K,M,G为单位,提高信息的可读性(例如,1K&nbsp;243M&nbsp;2G)。 |
| file | 指定的需要统计的文件。 |
## 使用指南
......@@ -31,6 +31,9 @@ du [_-kKmh_] [_file..._]
- file的内容既为文件名,不能包含其所在的目录。
## 特殊说明
shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -39,10 +42,9 @@ du [_-kKmh_] [_file..._]
## 输出说明
**示例:**显示结果如下
**示例** 显示结果如下
```
OHOS:/$ du -h testfile
1.8K testfile
```
```
\ No newline at end of file
......@@ -13,7 +13,7 @@ format &lt;_dev_inodename_&gt; &lt;_sectors_&gt; &lt;_option_&gt; [_label_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 |
| -------- | -------- |
......@@ -39,9 +39,8 @@ format &lt;_dev_inodename_&gt; &lt;_sectors_&gt; &lt;_option_&gt; [_label_]
## 输出说明
**示例**:格式化mmc卡
**示例** 格式化mmc卡
```
OHOS # format /dev/mmcblk1 128 2
Format to FAT32, 128 sectors per cluster.
......
......@@ -11,63 +11,71 @@ ls命令用来显示当前目录的内容。
ls [_-ACHLSZacdfhiklmnopqrstux1_] [_--color_[_=auto_]] [_directory..._]
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 系统启动过程中已经通过 alias 为 ls=toybox ls --color=auto 、ll = ls -alF 、 la=ls -A 和 l=ls -CF 赋能,使这几个命令的初始行为就和linux相同(详细效果见输出说明)。所以若要查看help列表,请输入'toybox ls --help'。
> 系统启动过程中已经通过 alias 为 ls=toybox ls --color=auto 、ll = ls -alF 、 la=ls -A 和 l=ls -CF 赋能,使这几个命令的初始行为就和linux相同(详细效果见输出说明)。所以若要查看help列表,请输入'toybox ls --help'。
## 参数说明
**表1** 展示功能参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看ls命令支持的参数列表,使用方式。 | N/A |
| -a | 显示所有文件包括.hidden隐藏类型的文件。 | N/A |
| -b | 转义非图形字符。 | N/A |
| -c | 使用ctime作为文件的时间戳,必须和-l参数一块使用。 | N/A |
| -d | 只显示path名称不显示path所包含的内容。 | N/A |
| -i | 显示文件的节点号。 | N/A |
| -p | 在path名称后放一个"/"。 | N/A |
| -q | 显示不可打印字符比如'?'。 | N/A |
| -s | 统计目录和其成员所占用的内存大小,单位为1024字节。 | N/A |
| -u | 以文件的最后访问时间为时间戳,配合&nbsp;-l&nbsp;一起使用。 | N/A |
| -A | 列出所有文件除了.和.. | N/A |
| -H | 跟随命令行符号链接。 | N/A |
| -L | 跟随符号链接。 | N/A |
| -Z | 安全上下文。 | N/A |
| path | path为空时,显示当前目录的内容。<br/>path为无效文件名时,显示失败,提示:<br/>ls&nbsp;error:&nbsp;No&nbsp;such&nbsp;directory。<br/>path为有效目录路径时,会显示对应目录下的内容。 | 1.为空。<br/>2.有效的目录路径 |
**表2** 输出格式参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -1 | 每行列出一个文件。 | N/A |
| -c | 列,垂直排序。 | N/A |
| -g | 类似于&nbsp;-l&nbsp;但没有所有者。 | N/A |
| -h | 统计path目录下文件的总大小,单位为KiB。 | N/A |
| -l | 详细的显示path目录下文件的信息。 | N/A |
| -m | 文件之间添加逗号。 | N/A |
| -n | 类似&nbsp;-l&nbsp;数字格式显示uid/gid。 | N/A |
| -o | 类似&nbsp;-l&nbsp;但显示列表不包括组。 | N/A |
| -x | 列,水平排序。 | N/A |
| -ll | 文件的时间属性显示纳秒。 | N/A |
| --color | 彩色打印。 | 默认配置为:device=yellow&nbsp;symlink=turquoise/red&nbsp;dir=blue&nbsp;socket=purple&nbsp;files:&nbsp;exe=green&nbsp;suid=red&nbsp;suidfile=redback&nbsp;stickydir=greenback=auto&nbsp;means&nbsp;detect&nbsp;if&nbsp;output&nbsp;is&nbsp;a&nbsp;tty. |
**表3** 排序参数说明(默认为按首字母排序)
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -f | 不排序。 | N/A |
| -r | 按首字母反向排序。 | N/A |
| -t | 按文件的最后修改时间排序,最近时间为排头。 | N/A |
| -S | 按文件大小来排序,大文件为排头。 | N/A |
**表1** 展示功能参数说明
| 参数 | 参数说明 | 取值范围 |
| ------ | ------------------------------------------------------------ | ----------------------------- |
| --help | 查看ls命令支持的参数列表,使用方式。 | N/A |
| -a | 显示所有文件包括.hidden隐藏类型的文件。 | N/A |
| -b | 转义非图形字符。 | N/A |
| -c | 使用ctime作为文件的时间戳,必须和-l参数一块使用。 | N/A |
| -d | 只显示path名称不显示path所包含的内容。 | N/A |
| -i | 显示文件的节点号。 | N/A |
| -p | 在path名称后放一个"/"。 | N/A |
| -q | 显示不可打印字符比如'?'。 | N/A |
| -s | 统计目录和其成员所占用的内存大小,单位为1024字节。 | N/A |
| -u | 以文件的最后访问时间为时间戳,配合&nbsp;-l&nbsp;一起使用。 | N/A |
| -A | 列出所有文件除了.和.. | N/A |
| -H | 跟随命令行符号链接。 | N/A |
| -L | 跟随符号链接。 | N/A |
| -Z | 安全上下文。 | N/A |
| path | path为空时,显示当前目录的内容。<br/>path为无效文件名时,显示失败,提示:<br/>ls&nbsp;error:&nbsp;No&nbsp;such&nbsp;directory。<br/>path为有效目录路径时,会显示对应目录下的内容。 | 1.为空。<br/>2.有效的目录路径 |
**表2** 输出格式参数说明
| 参数 | 参数说明 |
| ------- | --------------------------------------- |
| -1 | 每行列出一个文件。 |
| -c | 列,垂直排序。 |
| -g | 类似于&nbsp;-l&nbsp;但没有所有者。 |
| -h | 统计path目录下文件的总大小,单位为KiB。 |
| -l | 详细的显示path目录下文件的信息。 |
| -m | 文件之间添加逗号。 |
| -n | 类似&nbsp;-l&nbsp;数字格式显示uid/gid。 |
| -o | 类似&nbsp;-l&nbsp;但显示列表不包括组。 |
| -x | 列,水平排序。 |
| -ll | 文件的时间属性显示纳秒。 |
**表3** 排序参数说明(默认为按首字母排序)
| 参数 | 参数说明 |
| ---- | ------------------------------------------ |
| -f | 不排序。 |
| -r | 按首字母反向排序。 |
| -t | 按文件的最后修改时间排序,最近时间为排头。 |
| -S | 按文件大小来排序,大文件为排头。 |
**表4** 彩色打印
| 参数 | 默认配置 |
| ---- | ------------------------------------------ |
| --color | device=yellow symlink=turquoise/red dir=blue socket=purple files: exe=green suid=red suidfile=redback stickydir=greenback=auto means detect if output is a tty. |
## 使用指南
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> **须知:**
> fatfs的文件节点信息继承其父节点,父节点号为0。故在hi3516dv300开发板上ls -i显示的文件节点号全为0。
## 特殊说明
ls中参数shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -80,18 +88,16 @@ ls [_-ACHLSZacdfhiklmnopqrstux1_] [_--color_[_=auto_]] [_directory..._]
## 输出说明
**示例1:**ls命令查看当前路径下的内容
**示例1** ls命令查看当前路径下的内容
```
OHOS:/$ ls
bin etc nfs sdcard system usr
dev lib proc storage userdata vendor
```
**示例2:**ll命令查看当前路径下的内容
**示例2** ll命令查看当前路径下的内容
```
OHOS:/$ ll
total 20
......@@ -107,4 +113,4 @@ drwxrwxrwx 1 0 0 2048 2021-11-21 17:52 system/
drwxrwxrwx 1 0 0 2048 2021-11-21 17:52 userdata/
drwxrwxrwx 1 0 0 2048 2021-11-21 17:52 usr/
drwxrwxrwx 1 0 0 2048 2021-11-21 17:52 vendor/
```
```
\ No newline at end of file
......@@ -23,9 +23,8 @@ lsfd命令显示当前已经打开文件的fd号以及文件的名字。
## 输出说明
**示例:**lsfd输出说明
**示例** lsfd输出说明
```
OHOS # lsfd
fd filename
......
......@@ -13,24 +13,27 @@ mkdir [_-vp_] [_-m mode_] [_dirname..._]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看mkdir命令支持的参数列表 | N/A |
| -m | 设置即将创建目录的权限。 | N/A |
| -p | 递归逐级创建父子目录。 | N/A |
| -v | 打印创建目录过程中的详细信息。 | N/A |
| directory | 需要创建的目录。 | N/A |
| 参数 | 参数说明 |
| --------- | ------------------------------ |
| --help | 查看mkdir命令支持的参数列表 |
| -m | 设置即将创建目录的权限。 |
| -p | 递归逐级创建父子目录。 |
| -v | 打印创建目录过程中的详细信息。 |
| directory | 需要创建的目录。 |
## 使用指南
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> **须知:**
> fatfs文件系统所有创建的文件和其挂载节点的权限属性保持一致,目前节点的权限只有用户读写权限,group和others权限不生效,
>
>
> 且只有读写位可设置,有rw和ro两种,因此mkdir在附加-m参数时,创建的目录权限仅有777和555两种,可执行权限也不生效。
## 特殊说明
shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -45,7 +48,7 @@ mkdir [_-vp_] [_-m mode_] [_dirname..._]
## 输出说明
```
OHOS:/tmp$ mkdir testpath
OHOS:/tmp$ ll
......@@ -53,9 +56,9 @@ total 2
drwxrwxrwx 1 0 0 2048 1979-12-31 00:00 testpath/
```
示例 2 创建指定mode的目录
**示例2** 创建指定mode的目录
```
OHOS:/tmp$ mkdir -m 777 testpath
OHOS:/tmp$ ll
......@@ -63,9 +66,9 @@ total 2
drwxrwxrwx 1 0 0 2048 1979-12-31 00:00 testpath/
```
示例 3 逐级创建目录
**示例3** 逐级创建目录
```
OHOS:/tmp$ mkdir -pv testpath01/testpath02/testpath03
mkdir: created directory 'testpath01'
......@@ -80,4 +83,4 @@ drwxrwxrwx 1 0 0 2048 1979-12-31 00:00 testpath02/
OHOS:/tmp$ ll testpath01/testpath02/
total 2
drwxrwxrwx 1 0 0 2048 1979-12-31 00:00 testpath03/
```
```
\ No newline at end of file
......@@ -13,22 +13,25 @@ mount [_-f_] [_-t TYPE_] [_-o OPTION,_] [[_DEVICE_] _DIR_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看mount命令支持的参数列表。 | N/A |
| -f | 佯装挂载动作(实际不做挂载)。 | N/A |
| -t | 文件系统的种类。 | TYPE:vfat,&nbsp;yaffs,&nbsp;jffs,&nbsp;ramfs,&nbsp;nfs,procfs,&nbsp;romfs. |
| -o | 挂载选项。 | N/A |
| DEVICE | 要挂载的设备(格式为设备所在路径)。 | 系统拥有的设备。 |
| DIR | 指定目录。<br/>用户必须具有指定目录中的执行(搜索)许可权。 | N/A |
| 参数 | 参数说明 | 取值范围 |
| ------ | ----------------------------------------------------------- | ------------------------------------------------------------ |
| --help | 查看mount命令支持的参数列表。 | N/A |
| -f | 佯装挂载动作(实际不做挂载)。 | N/A |
| -t | 文件系统的种类。 | TYPE:vfat,&nbsp;yaffs,&nbsp;jffs,&nbsp;ramfs,&nbsp;nfs,procfs,&nbsp;romfs. |
| -o | 挂载选项。 | N/A |
| DEVICE | 要挂载的设备(格式为设备所在路径)。 | 系统拥有的设备。 |
| DIR | 指定目录。<br/>用户必须具有指定目录中的执行(搜索)许可权。 | N/A |
## 使用指南
mount后加需要挂载的设备信息、指定目录以及设备文件格式,就能成功挂载文件系统到指定目录。
## 特殊说明
shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -37,9 +40,9 @@ mount后加需要挂载的设备信息、指定目录以及设备文件格式,
## 输出说明
**示例:**将服务器端nfs目录192.168.1.3:/nfs挂载到当前系统下新建的/nfs目录:
**示例** 将服务器端nfs目录192.168.1.3:/nfs挂载到当前系统下新建的/nfs目录:
```
OHOS:/$ mkdir nfs
OHOS:/$ mount -t nfs 192.168.1.3:/nfs nfs
......@@ -49,4 +52,4 @@ OHOS:/$ ls nfs/
16d.xml gpio_test ohos_test.txt userfs_vfat.img
OHOS_Image.bin hello rootfs_vfat.img
dev_tools mksh_rootfs_vfat.img test_demo
```
```
\ No newline at end of file
......@@ -13,22 +13,22 @@ mv [_-fivn_] _SOURCE... DEST_
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -help | 使用帮助。 | N/A |
| -f | 通过删除目标文件强制复制。 | N/A |
| -i | 若指定移动的源目录或文件与目标中目录或文件同名,则会先询问是否覆盖旧文件,输入&nbsp;y&nbsp;直接覆盖,输入&nbsp;n&nbsp;取消该操作。 | N/A |
| -n | 不要覆盖任何已存在的文件或目录。 | N/A |
| -v | 目前本参数toybox官方最新代码虽然支持,但同样也不生效。 | N/A |
| SOURCE | 源文件路径。 | 目前只支持文件,不支持目录;支持多文件同时移动。 |
| DEST | 目的文件路径。 | 支持目录以及文件。 |
| 参数 | 参数说明 | 取值范围 |
| ------ | ------------------------------------------------------------ | ----------------------------------------------- |
| -help | 使用帮助。 | N/A |
| -f | 通过删除目标文件强制复制。 | N/A |
| -i | 若指定移动的源目录或文件与目标中目录或文件同名,则会先询问是否覆盖旧文件,输入&nbsp;y&nbsp;直接覆盖,输入&nbsp;n&nbsp;取消该操作。 | N/A |
| -n | 不要覆盖任何已存在的文件或目录。 | N/A |
| -v | 目前本参数toybox官方最新代码虽然支持,但同样也不生效。 | N/A |
| SOURCE | 源文件路径。 | 目前只支持文件,不支持目录;支持多文件同时移动。 |
| DEST | 目的文件路径。 | 支持目录以及文件。 |
## 使用指南
- 源文件路径支持“\*”和“?”通配符,“\*”代表任意多个字符,“?”代表任意单个字符。目的路径不支持通配符。当源路径可匹配多个文件时,目的路径必须为目录。
- 源文件路径支持“\*”和“?”通配符,“\*”代表任意多个字符,“?”代表任意单个字符。目的路径不支持通配符。当源路径可匹配多个文件时,目的路径必须为目录。
- 目的路径为目录时,该目录必须存在。此时目的文件以源文件命名。
......@@ -36,6 +36,9 @@ mv [_-fivn_] _SOURCE... DEST_
- 目的文件已存在则会覆盖。
## 特殊说明
shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -48,9 +51,9 @@ mv [_-fivn_] _SOURCE... DEST_
## 输出说明
**示例 1** 显示结果如下
**示例1** 显示结果如下
```
OHOS:/$ touch test.txt
OHOS:/$ mkdir testpath
......@@ -71,9 +74,9 @@ bin etc proc storage test.txt userdata vendor
dev lib sdcard system testpath usr
```
**示例 2** 通配符使用
**示例2** 通配符使用
```
OHOS:/$ ls
bin etc proc storage test.txt testA.txt testpath usr
......@@ -84,4 +87,4 @@ bin etc proc storage test.txt userdata vendor
dev lib sdcard system testpath usr
OHOS:/$ ls testpath/
test.txt test3.txt testA.txt test_.txt
```
```
\ No newline at end of file
......@@ -32,9 +32,9 @@ partinfo &lt;_dev_inodename_&gt;
## 输出说明
**示例**:查看系统分区信息
**示例** 查看系统分区信息
```
OHOS # partinfo /dev/mmcblk0p0
part info :
......
......@@ -13,7 +13,7 @@ pwd
## 参数说明
## 使用指南
......@@ -28,9 +28,9 @@ pwd 命令将当前目录的全路径名称(从根目录)写入标准输出
## 输出说明
**示例**:查看当前路径
**示例** 查看当前路径
```
OHOS:/sdcard/nfs$ pwd
/sdcard/nfs
......
......@@ -13,14 +13,14 @@ rm [_-fv_] _FILE or rm_ [_-rv_] [_PATH_ | _filename_]...
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -r | 删除空目录或非空目录。 | N/A |
| -f | 强制删除:不需要确认,删除不存的文件在也不报错。 | N/A |
| -v | 显示删除的过程。 | N/A |
| PATH/filename | 要删除文件或文件夹的名称,支持输入路径。 | N/A |
| 参数 | 参数说明 |
| ------------- | ------------------------------------------------ |
| -r | 删除空目录或非空目录。 |
| -f | 强制删除:不需要确认,删除不存的文件在也不报错。 |
| -v | 显示删除的过程。 |
| PATH/filename | 要删除文件或文件夹的名称,支持输入路径。 |
## 使用指南
......@@ -31,6 +31,9 @@ rm [_-fv_] _FILE or rm_ [_-rv_] [_PATH_ | _filename_]...
- 删除不存在的文件会报错。
## 特殊说明
-f -v 参数shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -43,9 +46,9 @@ rm [_-fv_] _FILE or rm_ [_-rv_] [_PATH_ | _filename_]...
## 输出说明
**示例 1** 用 rm 命令删除文件 testfile
**示例1** 用 rm 命令删除文件 testfile
```
OHOS:/$ ls
bin etc proc storage testfile usr
......@@ -56,9 +59,9 @@ bin etc proc storage userdata vendor
dev lib sdcard system usr
```
**示例 2** 用 rm -r 删除非空目录 testpath
**示例2** 用 rm -r 删除非空目录 testpath
```
OHOS:/$ ls
bin etc proc storage testpath usr
......@@ -67,4 +70,4 @@ OHOS:/$ rm -r testpath/
OHOS:/$ ls
bin etc proc storage userdata vendor
dev lib sdcard system usr
```
```
\ No newline at end of file
......@@ -13,7 +13,7 @@ rmdir [_-p_] [_dirname..._]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -39,9 +39,9 @@ rmdir [_-p_] [_dirname..._]
## 输出说明
**示例:**删除一个名为 dir 的目录
**示例** 删除一个名为 dir 的目录
```
OHOS:/test$ mkdir dir
OHOS:/test$ ls
......
......@@ -13,7 +13,7 @@ statfs [_directory_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -31,8 +31,8 @@ statfs [_directory_]
statfs /nfs
**示例**statfs输出说明
**示例** statfs输出说明
```
OHOS # statfs ./nfs
statfs got:
......
......@@ -13,7 +13,7 @@ sync
## 参数说明
## 使用指南
......@@ -30,4 +30,4 @@ sync
## 输出说明
......@@ -17,10 +17,10 @@ touch [_filename_]
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看touch命令支持的参数列表 | N/A |
| filename | 需要创建文件的名称。 | N/A |
| 参数 | 参数说明 | 取值范围 |
| -------- | --------------------------- | -------- |
| --help | 查看touch命令支持的参数列表 | N/A |
| filename | 需要创建文件的名称。 | N/A |
## 使用指南
......@@ -28,9 +28,13 @@ touch [_filename_]
- touch命令用来创建一个空文件,该文件可读写。
- 使用touch命令允许一次创建多个文件。
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> 在系统重要资源路径下使用touch命令创建文件,会对系统造成死机等未知影响,如在/dev路径下执行touch uartdev-0,会产生系统卡死现象。
## 特殊说明
--help参数以及同时创建多个文件,shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -45,7 +49,7 @@ touch [_filename_]
**示例 1** 创建一个名为 file.c 的文件
```
OHOS:/tmp$ ls
OHOS:/tmp$ touch file.c
......@@ -58,7 +62,7 @@ total 0
**示例 2** 同时创建三个文件
```
*OHOS:/tmp$
OHOS:/tmp$ touch testfile1 testfile2 testfile3
......@@ -68,4 +72,4 @@ total 0
-rwxrwxrwx 1 0 0 0 1979-12-31 00:00 testfile2*
-rwxrwxrwx 1 0 0 0 1979-12-31 00:00 testfile3*
OHOS:/tmp$
```
```
\ No newline at end of file
......@@ -13,20 +13,23 @@ umount [_-a [-t TYPE]_] [_dir_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| --help | 查看umount命令支持的参数列表。 | N/A |
| -a | 卸载所有已挂载的目录。 | N/A |
| -t | 同-a选项一起使用,限制-a的卸载范围,只卸载-t所指定的文件系统类型的挂载目录。 | N/A |
| dir | 需要卸载的文件系统对应的目录。 | 系统已挂载的文件系统的目录 |
| 参数 | 参数说明 | 取值范围 |
| ------ | ------------------------------------------------------------ | -------------------------- |
| --help | 查看umount命令支持的参数列表。 | N/A |
| -a | 卸载所有已挂载的目录。 | N/A |
| -t | 同-a选项一起使用,限制-a的卸载范围,只卸载-t所指定的文件系统类型的挂载目录。 | N/A |
| dir | 需要卸载的文件系统对应的目录。 | 系统已挂载的文件系统的目录 |
## 使用指南
umount后加上需要卸载的指定文件系统的目录,即将指定文件系统卸载。
## 特殊说明
参数shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
## 使用实例
......@@ -41,18 +44,18 @@ umount后加上需要卸载的指定文件系统的目录,即将指定文件
将已在./nfs挂载的文件系统卸载掉
**示例 1** umount输出示例
**示例1** umount输出示例
```
OHOS:/$ umount ./nfs/
umount ok
```
**示例 2** 卸载所有已挂载的nfs类型的目录
**示例2** 卸载所有已挂载的nfs类型的目录
```
OHOS:/$ umount -a -t nfs
umount ok
```
```
\ No newline at end of file
......@@ -13,12 +13,12 @@ writeproc &lt;_data_&gt; &gt;&gt; /proc/&lt;_filename_&gt;
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| data | 要输入的字符串,以空格为结束符,如需输入空格,请用""包裹。 | N/A |
| filename | data要传入的proc文件。 | N/A |
| 参数 | 参数说明 |
| -------- | ---------------------------------------------------------- |
| data | 要输入的字符串,以空格为结束符,如需输入空格,请用""包裹。 |
| filename | data要传入的proc文件。 |
## 使用指南
......@@ -28,6 +28,9 @@ proc文件实现自身的write函数,调用writeproc命令后会将入参传
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> procfs不支持多线程访问。
## 特殊说明
shell端暂不支持。
## 使用实例
......@@ -36,11 +39,13 @@ proc文件实现自身的write函数,调用writeproc命令后会将入参传
## 输出说明
```
OHOS \# writeproc test &gt;&gt; /proc/uptime
[INFO]write buf is: test
test &gt;&gt; /proc/uptime
```
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> uptime proc文件临时实现write函数,INFO日志为实现的测试函数打印的日志。
> uptime proc文件临时实现write函数,INFO日志为实现的测试函数打印的日志。
\ No newline at end of file
......@@ -8,17 +8,18 @@
在中断有响应的情况下,可以通过魔法键查看task信息中 cpup(CPU占用率)看是哪个任务长时间占用CPU导致系统其他任务无响应(一般为比较高优先级任务一直抢占CPU,导致低优先级任务无响应)。
## 使用方法
## 使用配置
魔法键依赖于宏LOSCFG_ENABLE_MAGICKEY,在kernel/liteos_a中输入make menuconfig命令。此时会弹出配置项,找到Debug选项并进入,在配置项中开启“Enable MAGIC KEY”:
1. 配置宏LOSCFG_ENABLE_MAGICKEY
Debug ---&gt; Enable MAGIC KEY;若关闭该选项,则魔法键失效(默认为选中的)
魔法键依赖于宏LOSCFG_ENABLE_MAGICKEY,使用时通过menuconfig在配置项中开启“Enable MAGIC KEY”:
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 可以在menuconfig中,将光标移动到LOSCFG_ENABLE_MAGICKEY上,输入“?”,可以查看帮助信息。
Debug ---&gt; Enable MAGIC KEY;若关闭该选项,则魔法键失效。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 可以在menuconfig中,将光标移动到LOSCFG_ENABLE_MAGICKEY上,输入“?”,查看帮助信息。
## 使用方法
2. 输入“ctrl + r”键,打开魔法键检测功能。
1. 输入“ctrl + r”键,打开魔法键检测功能。
在连接UART或者USB转虚拟串口的情况下,输入“ctrl + r” 键,打开魔法键检测功能,输出 “Magic key on”;再输入一次后,则关闭魔法键检测功能,输出“Magic key off”。魔法键功能如下:
......@@ -30,5 +31,5 @@
- ctrl + e:系统进行简单完整性内存池检查,检查出错会输出相关错误信息,检查正常会输出“system memcheck over, all passed!”。
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> 魔法键检测功能打开情况下,如果需要通过UART或者USB转虚拟串口输入特殊字符需避免与魔法键值重复,否则魔法键会被误触发,而原有设计功能可能出现错误。
> **须知:**
> 魔法键检测功能打开情况下,如果需要通过UART或者USB转虚拟串口输入特殊字符需避免与魔法键值重复,否则魔法键会被误触发,而原有设计功能可能出现错误。
\ No newline at end of file
......@@ -17,7 +17,7 @@ arp [_-i IF_] -d _IPADDR_
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -40,15 +40,15 @@ arp [_-i IF_] -d _IPADDR_
输入arp
**示例:**打印整个 ARP 缓存表
**示例** 打印整个 ARP 缓存表
```
OHOS # arp
Address HWaddress Iface Type
192.168.1.10 E6:2B:99:2C:4B:20 eth0 static
```
**表2** 参数说明
**表2** 参数说明
| 参数 | 说明 |
| -------- | -------- |
......
......@@ -15,13 +15,13 @@
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -h&nbsp;\|&nbsp;--help | 查看dhclient命令支持的参数列表,及使用方式。 | N/A |
| &lt;netif&nbsp;name&gt; | 启动对应网卡的dhcp请求。 | 网卡名字,eth0。 |
| -x&nbsp;&lt;netif&nbsp;name&gt; | 关闭对应网卡的dhcp功能。 | 网卡名字,eth0。 |
| 参数 | 参数说明 | 取值范围 |
| ------------------------------- | -------------------------------------------- | ---------------- |
| -h&nbsp;\|&nbsp;--help | 查看dhclient命令支持的参数列表,及使用方式。 | N/A |
| &lt;netif&nbsp;name&gt; | 启动对应网卡的dhcp请求。 | 网卡名字,eth0。 |
| -x&nbsp;&lt;netif&nbsp;name&gt; | 关闭对应网卡的dhcp功能。 | 网卡名字,eth0。 |
## 使用指南
......@@ -32,12 +32,15 @@
- dhclient -x eth0
## 特殊说明
shell端暂不支持。
## 使用实例
**示例1:**启动网卡eth0的dhcp请求
**示例1** 启动网卡eth0的dhcp请求
```
OHOS:/$ dhclient eth0
OHOS:/$ ifconfig
......@@ -50,10 +53,9 @@ OHOS:/$
```
**示例2:**关闭网卡eth0的dhcp请求
**示例2** 关闭网卡eth0的dhcp请求
```
OHOS:/$ dhclient -x eth0
NetifStatusCallback(eth0): nsc event: 0xf0
......@@ -63,4 +65,4 @@ lo ip:127.0.0.1 netmask:255.0.0.0 gateway:127.0.0.1
HWaddr 00 MTU:0 Running Link UP
eth0 ip:0.0.0.0 netmask:0.0.0.0 gateway:0.0.0.0
HWaddr 42:da:81:bc:58:94 MTU:1500 Running Default Link UP
```
```
\ No newline at end of file
......@@ -27,7 +27,7 @@ option:
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -65,8 +65,8 @@ option:
## 输出说明
- **示例1:**设置网络参数
- **示例1** 设置网络参数
```
OHOS:/$ ifconfig eth0 192.168.100.31 netmask 255.255.255.0 gateway 192.168.100.1 hw ether 00:49:cb:6c:a1:31
OHOS:/$ ifconfig
......@@ -79,7 +79,7 @@ option:
输出的各参数说明如下表所示:
**表2** 参数说明
**表2** 参数说明
| 参数 | 说明 |
| -------- | -------- |
......@@ -92,8 +92,8 @@ option:
| Default | 有这项说明此网卡连接到默认网关。 |
| Link&nbsp;UP/Down | 网卡连接状态。 |
- **示例2:**获取协议栈统计信息
- **示例2** 获取协议栈统计信息
```
OHOS # ifconfig -a
RX packets:6922 errors:0 ip dropped:4312 link dropped:67 overrun:0 bytes:0 (0.0 B)
......@@ -104,7 +104,7 @@ option:
输出的各参数说明如下表所示:
**表3** ifconfig -a 参数说明
**表3** ifconfig -a 参数说明
| 参数 | 说明 |
| -------- | -------- |
......@@ -119,8 +119,8 @@ option:
| TX&nbsp;overrun | 暂未使用。 |
| TX&nbsp;bytes | IP层已正常发送或者转发的数据包的总长度。 |
- **示例3**设置IPv6的地址信息
- **示例3** 设置IPv6的地址信息
```
OHOS:/$ ifconfig eth0 inet6 add 2001:a:b:c:d:e:f:d
NetifStatusCallback(eth0): nsc event: 0x8
......@@ -139,8 +139,8 @@ option:
HWaddr 66:2f:e5:bd:24:e6 MTU:1500 Running Default Link UP
```
- **示例4**删除IPv6的地址信息
- **示例4** 删除IPv6的地址信息
```
OHOS:/$ ifconfig eth0 inet6 del 2001:a:b:c:d:e:f:d
NetifStatusCallback(eth0): nsc event: 0x200
......
......@@ -18,8 +18,8 @@ ipdebug
## 输出说明
**示例:**ipdebug打印信息如下:
**示例** ipdebug打印信息如下:
```
OHOS # ipdebug
=================
......
......@@ -20,6 +20,9 @@ netstat
netstat
## 特殊说明
shell端暂不支持。
## 使用实例
......@@ -28,8 +31,8 @@ netstat
## 输出说明
**示例:**netstat 打印信息
**示例** netstat 打印信息
```
OHOS # netstat
========== total sockets 128 ====== unused sockets 119 ==========
......@@ -46,16 +49,16 @@ udp 0 0 127.0.0.1:62180 127.0.0.1:62179
udp 0 0 127.0.0.1:62178 127.0.0.1:62177
```
**表1** 输出说明
**表1** 输出说明
| 输出 | 说明 |
| -------- | -------- |
| Proto | 协议类型。 |
| Recv-Q | 未被用户读取的数据量。<br/>对于Listen&nbsp;TCP,此值为已完成三次握手,但是未被用户accept的TCP连接的数量。 |
| Send-Q | 对TCP连接,已发送但未确认的数据量。<br/>对UDP连接,由于IP地址解析未完成而缓存的数据量。 |
| Local&nbsp;Address | 本地地址和端口。 |
| Foreign&nbsp;Address | 远程地址和端口。 |
| State | TCP连接状态,UDP此项无意义。 |
| 输出 | 说明 |
| -------------------- | ------------------------------------------------------------ |
| Proto | 协议类型。 |
| Recv-Q | 未被用户读取的数据量。<br/>对于Listen&nbsp;TCP,此值为已完成三次握手,但是未被用户accept的TCP连接的数量。 |
| Send-Q | 对TCP连接,已发送但未确认的数据量。<br/>对UDP连接,由于IP地址解析未完成而缓存的数据量。 |
| Local&nbsp;Address | 本地地址和端口。 |
| Foreign&nbsp;Address | 远程地址和端口。 |
| State | TCP连接状态,UDP此项无意义。 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 形如“========== total sockets 32 ====== unused sockets 22 BootTime 27 s ========== ”,表示一共32个套接字,未使用套接字22个,距系统启动已经过27秒。
> 形如“========== total sockets 32 ====== unused sockets 22 BootTime 27 s ========== ”,表示一共32个套接字,未使用套接字22个,距系统启动已经过27秒。
\ No newline at end of file
......@@ -13,7 +13,7 @@ ntpdate [_SERVER_IP1_] [_SERVER_IP2_]...
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......
......@@ -13,7 +13,7 @@ ping _[-4] [-c cnt] [-f] [-i interval] [-q] [-s size] &lt;IP&gt;_
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -45,8 +45,8 @@ ping _[-4] [-c cnt] [-f] [-i interval] [-q] [-s size] &lt;IP&gt;_
## 输出说明
**示例:**ping tftp 服务器地址
**示例** ping tftp 服务器地址
```
OHOS:/$ ping 192.168.1.3
Ping 192.168.1.3 (192.168.1.3): 56(84) bytes.
......
......@@ -13,14 +13,14 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
| -c&nbsp;count | 执行的次数,不带本参数则默认为4次。 | 1~65535 |
| -I&nbsp;interface | 指定网卡执行IPv6&nbsp;ping操作。 | N/A |
| -I&nbsp;sourceAddress | 指定源IPv6地址执行ping操作。 | N/A |
| destination | 目标主机地址。 | N/A |
| 参数 | 参数说明 | 取值范围 |
| --------------------- | ----------------------------------- | -------- |
| -c&nbsp;count | 执行的次数,不带本参数则默认为4次。 | [1, 65535] |
| -I&nbsp;interface | 指定网卡执行IPv6&nbsp;ping操作。 | N/A |
| -I&nbsp;sourceAddress | 指定源IPv6地址执行ping操作。 | N/A |
| destination | 目标主机地址。 | N/A |
## 使用指南
......@@ -31,6 +31,9 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
- 命令需要启动TCP/IP协议栈后才能使用。
## 特殊说明
shell端暂不支持。
## 使用实例
......@@ -45,8 +48,8 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
## 输出说明
1. 输入ping6 2001:a:b:c:d:e:f:b
1. 输入`ping6 2001:a:b:c:d:e:f:b`
```
OHOS # ping6 2001:a:b:c:d:e:f:b PING 2001:A:B:C:D:E:F:B with 56 bytes of data.
56 bytes from 2001:A:B:C:D:E:F:B : icmp_seq=1 time<1 ms
......@@ -58,8 +61,8 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
rtt min/avg/max = 0/0.00/0 ms
```
2. 输入 ping6 -c 3 2001:a:b:c:d:e:f:b 指定3次进行网络测试
2. 输入 `ping6 -c 3 2001:a:b:c:d:e:f:b` 指定3次进行网络测试
```
OHOS # ping6 -c 3 2001:a:b:c:d:e:f:b PING 2001:A:B:C:D:E:F:B with 56 bytes of data.
56 bytes from 2001:A:B:C:D:E:F:B : icmp_seq=1 time<1 ms
......@@ -70,8 +73,8 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
rtt min/avg/max = 0/0.00/0 ms
```
3. 输入 ping6 -I eth0 2001:a:b:c:d:e:f:b 使用指定网卡接口eth0测试IPv6。
3. 输入 `ping6 -I eth0 2001:a:b:c:d:e:f:b` 使用指定网卡接口eth0测试IPv6。
```
OHOS # ping6 -I eth0 2001:a:b:c:d:e:f:b PING 2001:A:B:C:D:E:F:B with 56 bytes of data.
56 bytes from 2001:A:B:C:D:E:F:B : icmp_seq=1 time=10 ms
......@@ -82,8 +85,8 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
4 packets transmitted, 4 received, 0.00% packet loss, time 30msrtt min/avg/max = 0/2.50/10 ms
```
4. 输入 ping6 -I 2001:a:b:c:d:e:f:d 2001:a:b:c:d:e:f:b 使用指定的源IPv6地址2001:a:b:c:d:e:f:d进行测试。
4. 输入 `ping6 -I 2001:a:b:c:d:e:f:d 2001:a:b:c:d:e:f:b` 使用指定的源IPv6地址2001:a:b:c:d:e:f:d进行测试。
```
OHOS # ping6 -I 2001:a:b:c:d:e:f:d 2001:a:b:c:d:e:f:b PING 2001:A:B:C:D:E:F:B with 56 bytes of data.
56 bytes from 2001:A:B:C:D:E:F:B : icmp_seq=1 time<1 ms
......@@ -92,4 +95,4 @@ ping6 _[-c count] [-I interface / sourceAddress] destination_
56 bytes from 2001:A:B:C:D:E:F:B : icmp_seq=4 time<1 ms
--- 2001:a:b:c:d:e:f:b/64 ping statistics ---
4 packets transmitted, 4 received, 0.00% packet loss, time 20msrtt min/avg/max = 0/0.00/0 ms
```
```
\ No newline at end of file
......@@ -13,7 +13,7 @@ telnet [_on | off_]
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......@@ -37,9 +37,9 @@ telnet [_on | off_]
## 输出说明
**示例:**输入 telnet on
**示例** 输入 telnet on
```
OHOS # telnet on
OHOS # start telnet server successfully, waiting for connection.
......
......@@ -15,7 +15,7 @@ tftp命令可以从TFTP服务器上下载文件。
## 参数说明
**表1** 参数说明
**表1** 参数说明
| 参数 | 参数说明 | 取值范围 |
| -------- | -------- | -------- |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册