svc -d 是停止
svc -t是重启
对象应该就是/service/softsh/下面的脚本吧。
svc(8) svc(8)
NAME
svc - controls services monitored by supervise(8).
SYNOPSIS
svc [ -udopchaitkx ] services
DESCRIPTION
services consists of any number of arguments, each argu-
ment naming a directory used by supervise(8).
svc applies all the options to each service in turn.
OPTIONS
-u Up. If the service is not running, start it. If the
service stops, restart it.
-d Down. If the service is running, send it a TERM
signal and then a CONT signal. After it stops, do
not restart it.
对ARM来说,当发生中断的时候,CPU进入的是中断mode, 只是Linux在SVC mode下处理中断了. 当然,理论上来说,不在SVC下,而在 中断mode下处理也可以。我猜想Linux这样做的原因是,Linux要兼容绝大多数的ARCH,每一个ARCH相关的代码都放在arch/目录下,比如ARM是放在arch/arm下。所以,如果arm要是不利用现有Linux的框架,把绝大多数的代码都放在arch/arm下(中断处理的代码也放在arch/arm下的irq mode中处理),那linux就非常臃肿。所以,arm Linux为了最大程度的利用Linux已有的架构,就放在SVC模式下处理了(Linux最早是在i386上开发的,i386只利用了2个ring, 即,ring0 和 ring 3, ring 0,对应于ARM的svc mode)。 事实上,到了现在的ARMV8,AARCH64已经取消了这么多的MODE,而采取了4个Level, 分别是 0,1,2,3. 对于OS来说,支持0和1 两个Level就可以了, Level 2 是用于虚拟化,Level 3 是用于monitor.当fiq中断发生的时候,也会进入FIQ mode, 只是 在ARM SOC中,很少有FIQ的外设。所以,Linux中,没有对FIQ进行处理,但接口还是有的。
您好,在Linux应用程序中直接内嵌汇编调用svc会有一些不同的结果。首先,svc会使用特定的指令来调用系统调用,这可能会对应用程序的性能产生影响,因为它会消耗更多的时间来执行指令。其次,svc还会改变应用程序的控制流,因为它会调用系统调用,而不是直接执行应用程序的指令。最后,svc还会改变应用程序的内存布局,因为它会在应用程序的内存中添加新的指令,这可能会影响应用程序的性能。因此,在Linux应用程序中直接内嵌汇编调用svc会有一些不同的结果,因此在使用svc之前应该考虑这些影响。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)