前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Component之Kernel Shell的启用

Component之Kernel Shell的启用

作者头像
Taishan3721
发布2019-07-10 15:21:33
8020
发布2019-07-10 15:21:33
举报
文章被收录于专栏:这里只有VxWorks

Kernel Shell是VxWorks系统的一个Component(组件),是在Target端驻留的命令行。可以通过系统默认的全局IO来访问,即多数架构的串口0或者X86架构的PC Console;也可以通过Telnet或rlogin进行远程访问。

在VxWorks 5.x年代,还没有RTP,这个组件就叫做Target Shell。到了VxWorks 6,为了表示它是在Kernel里运行,而不是RTP里,就改了名字。

Kernel Shell很强大,有很多作用,可以用来加载、执行、监控、调试Kernel和RTP代码。而且随着VxWorks版本的提高,Kernel Shell在功能也在加强。我们今天先来看看怎么启用它,至于其它功能,以后慢慢再说。

首先,需要在VIP中包含组件 INCLUDE_SHELL

有了这个组件,Kernel就会启动一个Shell任务。任务的属性由这几个宏来定义

  • SHELL_TASK_PRIORITY,优先级,默认值1
  • SHELL_STACK_SIZE,栈,默认值0x10000
  • SHELL_TASK_NAME_BASE,任务名前缀,默认值"tShell",后跟从0开始递增的序号
  • SHELL_TASK_OPTIONS,选项,默认值(VX_UNBREAKABLE| VX_PRIVATE_ENV)

而进入Kernel Shell后,通过sp()、repeat()或period()再创建的任务会使用以下属性

  • SHELL_SPAWNED_TASK_STACK_SIZE,栈,默认值20000;也可通过spTaskStackSize动态修改
  • SHELL_SPAWNED_TASK_PRIORITY,优先级,默认值100;也可通过spTaskPriority动态修改
  • SHELL_SPAWNED_TASK_OPTIONS,选项,默认值(VX_COPROCS_ALL_TASK| VX_STDIO),其中不管CPU是什么结构,VX_COPROCS_ALL_TASK都会包含VX_FP_TASK;也可通过 spTaskOptions动态修改
  • namelessPrefix,任务名前缀,默认值"t",后跟从1开始递增的序号

如果要远程访问Kernel Shell,可使用以下两个组件

  • rlogin - INCLUDE_RLOGIN
  • Telnet - INCLUDE_IPTELNETS

另外,Kernel Shell还可以选择是否使用登录密码,密码长度是8-40

  • SHELL_SECURE -> TRUE
  • INCLUDE_SECURITY

并且这个密码会通过Salt值加密。在VxWorks DevelopmentShell中使用工具vxencrypt来转换密码

例如输入"password"作为密码,得到随机的Salt值和哈希加密后的密码,将其填入对应的组件属性中

编译后再启动VxWorks时,就需要输入user name和password了

使用Telnet也是如此

今天到此告一段落,下一次咱们看看Kernel Shell下可以使用哪些命令。

这正是:

Kernel Shell命令行,开发维护可帮忙。

加密访问更健壮,属性灵活功能强。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档