CN101110019B - 基于VxWorks操作系统实现远程Shell的方法 - Google Patents
基于VxWorks操作系统实现远程Shell的方法 Download PDFInfo
- Publication number
- CN101110019B CN101110019B CN2006101034087A CN200610103408A CN101110019B CN 101110019 B CN101110019 B CN 101110019B CN 2006101034087 A CN2006101034087 A CN 2006101034087A CN 200610103408 A CN200610103408 A CN 200610103408A CN 101110019 B CN101110019 B CN 101110019B
- Authority
- CN
- China
- Prior art keywords
- foreground
- remote shell
- veneer
- debug function
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于VxWorks操作系统实现远程Shell的方法,为解决现有技术中必须远程登录到单板才能使用Shell工具运行调试函数的问题而发明。本发明后台PC向前台BSC单板发送运行调试函数请求;前台BSC单板中驻留的远程Shell中转进程将该函数调试请求转发给前台BTS侧单板的远程Shell代理进程,该进程接收、分析并执行接收到的调试函数请求,并将调试函数的执行结果经由命名管道传输,最后由命名管道守护任务输出至后台;后台接收前台单板返回的结果并输出至界面。本发明的方法实现了不需要远程登录到单板就可以运行任何调试函数,方便定位和解决实际应用环境出现的故障。
Description
技术领域
本发明涉及VxWorks操作系统实现远程Shell的方法。
背景技术
VxWorks操作系统是一款广泛应用于通讯行业的著名嵌入式操作系统,它提供了一种Shell工具,利用该工具可以运行系统内任何调试函数,方便定位和解决问题。
VxWorks提供的Shell工具的主要缺点是:调试人员只有使用telnet工具远程登录到具有VxWorks的前台单板上,才能使用Shell工具。而在实际应用环境,调试人员往往无法远程登录到前台。譬如,在CDMA2000无线接入网,操作维护后台与BTS侧单板之间不支持直接的telnet协议通信,所以调试人员无法从操作维护后台远程登录到BTS侧的具有VxWorks的前台单板上。因此VxWorks自带的Shell工具有很大的局限性,无法普遍使用于实际应用环境。
发明内容
为了克服上述缺陷,本发明的目的在于提供一种不需要远程登录到前台单板也可以运行任何调试函数的基于VxWorks操作系统实现远程Shell的方法。
为达到上述目的,本发明提供一种基于VxWorks操作系统实现远程Shell的方法,包括:
(1)后台向前台单板发送运行调试函数请求;所述步骤(1)具体为:(11)后台向前台的BSC侧单板的远程Shell中转进程发送调试函数请求;(12)远程Shell中转进程使用内部的通信协议把后台的调试函数请求转发至前台的BTS侧目标单板上的远程Shell代理进程;
(2)前台单板中驻留的进程接收、分析并执行来自后台的调试函数请求,并将调试函数的执行结果经由命名管道传输,最后由命名管道守护任务输出至后台;所述的步骤(2)具体为:(21)前台BTS侧目标单板上的远程Shell代理进程接收、分析并执行调试函数请求,并把调试函数的执行结果写入命名管道;(22)前台BTS侧目标单板上的命名管道守护任务从步骤(21)中所述的命名管道中读取执行结果并把该结果输出至后台;
(3)后台接收前台单板返回的结果并输出至界面;
所述的前台运行在具有VxWorks操作系统的单板上。
其中,所述的步骤(12)具体为:
(121)前台BSC侧单板的远程Shell中转进程接收到后台发送的调试函数请求后,先从中提取BTS侧目标单板的地址信息,判断该地址信息是否合法,若合法,则使用内部通信协议把该调试函数请求转发至目标单板的远程Shell代理进程;否则,进入睡眠。
其中,所述的步骤(21)具体为:
(211)前台BTS侧目标单板上的远程Shell代理进程接收到调试函数后,利用VxWorks提供的symFindByName在系统符号表中查找调试函数的入口地址,若找不到,进入睡眠,若找到,则开始运行调试函数,并把调试函数的执行结果写入命名管道。
其中,所述的后台运行在PC机上,并在PC机上维护一个函数数据库,该函数数据库限定前台单板可执行的函数类型、参数类型。
本发明克服了必须登录到单板才能使用Shell工具运行调试函数的不足,在VxWorks提供的symFindByName系统调用系统符号表,以及BSC与BTS之间的内部通信协议基础上实现,弥补了VxWorks自带的Shell工具的不足,方便定位和解决实际应用环境出现的故障,有助于提高故障解决速度和降低解决成本。
附图说明
图1是远程Shell系统架构示意图;
图2是远程Shell中转进程流程图;
图3是远程Shell代理进程流程图;
图4是管道守护任务流程图。
具体实施方式
本发明的主要思想:
前台单板驻留一个进程专门接收、分析并执行来自后台的调试函数请求,调试函数的执行结果经由命名管道传输,并由命名管道守护任务负责输出至后台;
后台负责向具体单板发送运行调试函数请求和显示调试函数的执行结果。
本发明是这样实现的:
本系统主要分为前台模块和后台模块。(如图1所示)
前台模块运行在VxWorks上,并由远程Shell中转进程、远程Shell代理进程以及命名管道守护任务三个小模块组成。其中远程Shell中转进程驻留在BSC侧单板上,负责使用内部通信协议把后台的调试函数请求转发至BTS侧目标单板上的远程Shell代理进程;远程Shell代理进程负责接收、分析并执行调试函数请求,并把调试函数执行的结果写入命名管道;与远程Shell代理进程同处一块单板上的命名管道守护任务负责从命名管道读取执行结果并把它们传回后台。
后台模块运行在PC机上,并在PC机上维护一个函数数据库,用于限定前台单板可执行的函数类型,参数类型等,以防用户执行非法函数,输入非法参数,造成前台单板系统崩溃的错误。后台将需调用的函数名,函数参数以及用于判断中转路径的参数发向远程Shell中转进程,然后等待前台单板返回结果,结果为格式化好的字符串,直接输出到界面。
下面结合附图对该装置和实现方法进行详细描述。
如图1所示:系统分为前台模块和后台模块,前台模块运行在具有VxWorks操作系统的单板上,后台模块运行在PC机上。PC与BSC侧通过网线连接。BSC与BTS通过非网线连接。前台模块负责接收、分析、执行来自后台的调试函数请求,并把执行结果发送给后台;后台模块负责发送调试函数请求和结果显示。
如图2所示:远程Shell中转进程的功能简单,在接收到调试函数请求后,先从中抽取BTS侧目标单板的地址信息,进而判断地址信息是否合法。如果地址信息合法,则使用内部通信协议把该调试函数请求转发至目标单板上的远程Shell代理进程,否则不予处理,进入睡眠状态。
如图3所示:远程Shell代理进程在接收到调试函数请求后,利用VxWorks提供的symFindByName系统调用在系统符号表中查找调试函数的入口地址,如果找不到该函数的入口地址,说明该函数不存在于本系统,那么进程进入睡眠。如果获得了该调试函数的入口地址,还得判断它所带的参数个数是否大于等于0并且小于等于10。若参数个数不合法,那么进程也进入睡眠。在把标准输出重定向至命名管道后,就可以从获得的函数入口地址开始运行该调试函数。调试函数里所有使用printf输出的数据都会被重定向至命名管道。函数运行完毕,先使用printf输出三个字符”^_^”作为终止符,然后再撤消标准输出的重定向。之后,进程进入睡眠状态,等待下一个调试函数请求的到来。
如图4所示:管道守护任务先检测管道内是否有数据。如果管道内没有数据,那么管道守护任务将被阻塞睡眠。如果管道内存在数据,那么任务将把数据读取出来。再判断读取到的数据长度总和是否已大于4000字节,如果答案肯定,那么就把数据复制到缓冲区,并使缓冲区内的数据长度等于4000字节;否则,除把数据复制到缓冲区外,统计已读取到数据的长度总和。接着,判断缓冲区内的数据长度是否已到发送限制长度,如果答案肯定,就直接把数据发送出去。如果缓冲区内的数据长度还小于发送限制长度,再判断数据的最后3个字符是否与终止符一致,若一致,说明已读取到了函数的全部执行结果,因此可以把数据发送回后台,否则,就需要继续从管道内读取数据。
本发明克服了必须登录到单板才能使用Shell工具运行调试函数的不足,在VxWorks提供的symFindByName系统调用系统符号表,以及BSC与BTS之间的内部通信协议基础上实现,弥补了VxWorks自带的Shell工具的不足,方便定位和解决实际应用环境出现的故障,有助于提高故障解决速度和降低解决成本。
Claims (4)
1.一种基于VxWorks操作系统实现远程Shell的方法,包括:
(1)后台向前台的BSC侧单板的远程Shell中转进程发送调试函数请求;
(2)远程Shell中转进程使用内部的通信协议把后台的调试函数请求转发至前台的BTS侧目标单板上的远程Shell代理进程;
(3)前台BTS侧目标单板上的远程Shell代理进程接收、分析并执行调试函数请求,并把调试函数的执行结果写入命名管道;
(4)前台BTS侧目标单板上的命名管道守护任务从所述的命名管道中读取执行结果并把该结果输出至后台;
(5)后台接收前台单板返回的结果并输出至界面;
其中,所述的前台运行在具有VxWorks操作系统的单板上。
2.如权利要求1所述的基于VxWorks操作系统实现远程Shell的方法,其特征在于,所述的步骤(2)具体为:
前台BSC侧单板的远程Shell中转进程接收到后台发送的调试函数请求后,先从中提取BTS侧目标单板的地址信息,判断该地址信息是否合法,若合法,则使用内部通信协议把该调试函数请求转发至目标单板的远程Shell代理进程;否则,进入睡眠。
3.如权利要求1所述的基于VxWorks操作系统实现远程Shell的方法,其特征在于,所述的步骤(3)具体为:
前台BTS侧目标单板上的远程Shell代理进程接收到调试函数后,在系统符号表中查找调试函数的入口地址,若找不到,进入睡眠,若找到,则开始运行调试函数,并把调试函数的执行结果写入命名管道。
4.如权利要求1所述的基于VxWorks操作系统实现远程Shell的方法,其特征在于,所述的后台运行在PC机上,并在PC机上维护一个函数数据库,该函数数据库限定前台单板可执行的函数类型、参数类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101034087A CN101110019B (zh) | 2006-07-18 | 2006-07-18 | 基于VxWorks操作系统实现远程Shell的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101034087A CN101110019B (zh) | 2006-07-18 | 2006-07-18 | 基于VxWorks操作系统实现远程Shell的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101110019A CN101110019A (zh) | 2008-01-23 |
CN101110019B true CN101110019B (zh) | 2010-04-14 |
Family
ID=39042107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101034087A Expired - Fee Related CN101110019B (zh) | 2006-07-18 | 2006-07-18 | 基于VxWorks操作系统实现远程Shell的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101110019B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937369B (zh) * | 2009-06-30 | 2014-02-12 | 中兴通讯股份有限公司 | 一种多壳共享控制台的方法和系统 |
CN102801777B (zh) * | 2012-06-06 | 2014-10-22 | 烽火通信科技股份有限公司 | 一种vxWorks系统实现远程登录shell的方法 |
CN104601619A (zh) * | 2013-10-30 | 2015-05-06 | 上海斐讯数据通信技术有限公司 | vxWorks系统实现安全远程登录shell的方法 |
CN104615532A (zh) * | 2015-01-04 | 2015-05-13 | 南京航空航天大学 | 基于VxWorks操作系统的航天软件在轨调试方法 |
CN105760306A (zh) * | 2016-03-10 | 2016-07-13 | 上海斐讯数据通信技术有限公司 | 一种命令下发方法、调试方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0892345A3 (en) * | 1997-07-15 | 1999-05-06 | International Business Machines Corporation | Method of propagating a command status code from a remote unit to a host unit |
-
2006
- 2006-07-18 CN CN2006101034087A patent/CN101110019B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0892345A3 (en) * | 1997-07-15 | 1999-05-06 | International Business Machines Corporation | Method of propagating a command status code from a remote unit to a host unit |
Non-Patent Citations (2)
Title |
---|
Wind River.VxWorks网络程序员指南 1.清华大学出版社,2003,全文. * |
喻德.嵌入式调试方法分析及基于vxworks的调试工具实现.2002,第31页第23-27行、第39页倒数第7行-第40页第3行、第32页第18-23行. * |
Also Published As
Publication number | Publication date |
---|---|
CN101110019A (zh) | 2008-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106612141B (zh) | 一种光纤通道协议通用仿真测试卡及其数据交互方法 | |
CN101110019B (zh) | 基于VxWorks操作系统实现远程Shell的方法 | |
CN105491017B (zh) | Rs485总线多设备多协议解析方法及系统 | |
CN101399710B (zh) | 一种协议格式异常检测方法及系统 | |
CN105959288A (zh) | 一种电力电网系统中的网络协议转换及其相互通讯方法 | |
US7710969B2 (en) | Rapid I/O traffic system | |
CN102752150A (zh) | 提供远程板卡调试的分布式通信设备及方法 | |
CN108449228A (zh) | 报文处理方法及网络设备 | |
CN105071988A (zh) | 一种多用户测试系统及方法 | |
CN104318162A (zh) | 源代码泄露检测方法及装置 | |
CN107800663A (zh) | 流量离线文件的检测方法及装置 | |
CN110111523B (zh) | 一种消防物联网信号模拟传输系统 | |
CN101726341A (zh) | 无线水位远程监测系统 | |
CN102253875B (zh) | 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法 | |
Chi | Intrusion detection system based on snort | |
CN101369191B (zh) | 一种多计算机切换装置以及实现方法 | |
CN104135403B (zh) | 一种分布式环境监测数据传输校验方法 | |
CN106257257B (zh) | 一种检测光模块星座图的方法、装置及虚拟矢量分析仪 | |
CN204188189U (zh) | 一种柔性嵌入式被测设备模拟器 | |
Chao et al. | Design of instrument control system based on LabVIEW | |
US20070294441A1 (en) | Usb keystroke monitoring apparatus and method | |
CN103995475B (zh) | 一种柔性嵌入式被测设备模拟器 | |
CN106354100B (zh) | 一种应用于数控机床的运维审计方法和装置 | |
CN106126452B (zh) | 基于IIC协议的Linux操作系统与裸机通信的方法 | |
CN104702622A (zh) | 多对一型内外网大数据单向传输通信系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100414 Termination date: 20150718 |
|
EXPY | Termination of patent right or utility model |