一种多壳共享控制台的方法和系统的制作方法

文档序号:6578936阅读:225来源:国知局
专利名称:一种多壳共享控制台的方法和系统的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种多shell (壳)共享控制台的方法和系统。
背景技术
在很多操作系统中,控制台往往受限的,很多小操作系统甚至只有一个控制台。当 系统中有多个shell需要同时进行输入输出时,有限的控制台资源往往成为系统的瓶颈。如图1所示为仅有一个控制台的操作系统,在系统启动时,系统shell与控制台建 立链接,而用户shell存在于用户进程中,用户进程是在系统shell中启动起来的,同时,同 一用户进程中可以拥有多个用户shell。用户shell运行后,会去取代系统shell与控制台 建立链接。在该系统架构下,虽然可以实现控制台的共享,但存在如下缺陷第一,系统中只能有一个用户进程中的用户shell与系统shell共享控制台,如果 操作系统上运行多用户进程中都有用户shell,就无法做到各用户shell对控制台的共享;第二,对于一个用户进程中存在多用户shell的情况,需要用户自己用复杂的编 程才能完成对控制台的共享,没有任何通用性和可移植性。第三,当shell数目非常多时,需要进行shell间切换操作,传统的切换操作异常 复杂。

发明内容
本发明所要解决的技术问题是提供一种多shell共享控制台的方法和系统,以解 决现有的系统架构中存在的通用性差、可移植性差和操作复杂的问题。为了解决上述问题,本发明提供了一种多shell共享控制台的方法和系统,具体 的技术方案如下一种多shell共享控制台的系统,包括控制台、统一 shell管理模块和shell,所 述统一 shell管理模块位于所述控制台和所述shell之间;所述统一 shell管理模块,用于与控制台建立链接,对所述shell进行注册,为所 述shell分配唯一的伪终端设备;利用所述控制台、所述伪终端设备、所述shell进行信息 的输入和输出,以实现控制台的共享。多shell共享控制台的系统实现控制台共享的方法,所述方法包括统一 shell管理模块与控制台建立链接,对shell进行注册,为shell分配唯一的 伪终端设备;利用所述控制台、所述伪终端设备、所述shell进行信息的输入和输出,以实现控 制台的共享。在本实施例中,在控制台和shell之间引入了统一 shell管理模块,该模块是整个 操作系统输入输出的唯一通道,负责统一管理系统中所有shell,所有经控制台的输入输出 必须经过该模块。该模块通过统一的注册接口函数,能够对shell进行统一注册,并分配唯 一的伪终端设备,这使得各shell的输入输出对于其他的shell都独立和透明,各个shell
4只能看到自己的伪终端设备,不用关心自己的数据是如何在控制台输入输出,提高了系统 架构的独立性。此外,利用通用的统一 shell管理模块能够使各种硬件平台的应用程序完 成各shell自由共享控制台,从而实现了对现有系统架构的兼容,提高了系统架构的通用 性和可移植性。此外,在这种系统架构下,由于所有的shell进行了注册,此时进行shell 间切换,操作简单。


图1是现有技术中传统的操作系统的结构示意图;图2是本发明实施例提供的多shell共享控制台的方法的流程图;图3是本发明实施例提供的操作系统的结构示意图;图4是本发明实施例提供的统一 shell管理模块的结构示意图。
具体实施例方式本发明的核心思想在于在控制台和shell之间引入了统一 shell管理模块,该 模块是整个操作系统输入输出的唯一通道,负责统一管理系统中所有shell,所有经控制台 输入输出必须经过该模块。该模块通过统一的注册接口函数,能够对shell进行统一注册, 并分配唯一的伪终端设备,这使得各shell的输入输出对于其他的shell都独立和透明,各 个shell只能看到自己的伪终端设备,不用关心自己的数据是如何在控制台输入输出,提 高了系统架构的独立性。此外,利用通用的统一 shell管理模块能够使各种硬件平台的应 用程序完成各shell自由共享控制台,从而实现了对现有系统架构的兼容,提高了系统架 构的通用性和可移植性。此外,在这种系统架构下,由于所有的shell进行了注册,此时进 行shell间切换,操作简单。下面结合附图及优选实施方式对本发明技术方案进行详细说明。本发明的第一个实施例提供了一种多shell共享控制台的方法,该方法应用的系 统架构如图3所示,图3中,在控制台和shell之间,引入了统一 shell管理模块,该模块与 控制台建立链接,取代了传统的由系统shell与控制台建立链接的模式。该模块是整个操 作系统控制台输入输出的唯一通道,负责统一管理系统中shell,所有经控制台的输入输出 必须经过该模块。其中,统一 shell管理模块的结构可以如图4所示,包括控制台守护单 元和进程间通信守护单元。其中,进程间通信守护单元用于侦听操作系统中各shell的注 册、注销以及其他命令请求,其相当于一条控制链路(如图中虚线所示),为各shell分配 和回收伪终端设备等资源,并响应其命令请求,监控其运行状态等;控制台守护单元是为各 shell共享控制台而启动,其负责转发控制台的输入输出以及操作系统中各shell切换。控 制台守护单元还用于监听某个特定的端口,用户可以根据该端口利用远程登录的方式进行 系统中shell间的切换操作。如图2所示,该方法包括201,在操作系统启动中,统一 shel 1管理模块与控制台建立链接,对系统shel 1进 行注册,为系统shell分配唯一的伪终端设备。具体地,操作系统内核启动,在完成内核初始化后,启动统一 shell管理模块,该 模块与控制台建立链接。统一 shell管理模块接收系统shell的注册请求,为系统shell 分配唯一的伪终端设备作为其输入输出控制台。可选地,为了以后shell切换简单,还可以同时为系统shell分配唯一的index值作为标识,以方便用户进行shell间切换。参照图3和图4,统一 shell管理模块中的进程间通信守护单元根据系统shell 的注册请求,为系统shell分配伪终端设备1作为其输入输出控制台,为系统shell分配的 index 值为 1。在进行系统shell的注册工作时,设定统一注册接口函数,利用系统shell的名 称、端口号、是否需要加密保护等系统shell信息对统一注册接口函数进行修改,调用修改 后的统一注册接口函数向统一 shell管理模块进行系统shell的注册,操作简单。202,系统shell启动完成后,用户进程在系统shell中后台运行,统一 shell管理 模块对用户shell进行注册,为用户shell分配唯一的伪终端设备。系统shell启动完成后,用户进程在系统shell中后台运行,并向统一 shell管理 模块申请注册。统一 shell管理模块接收用户进程的注册请求,为用户进程中的用户shell 分配唯一的伪终端设备作为其输入输出控制台。可选地,还可以同时为每一个用户shell 分配唯一的index值作为标识。如果用户进程中有多个用户shell,则该用户进程可以向统 一 shell管理模块申请注册多次,或是该用户进程一次将所有用户shell的信息在申请注 册时通知统一 shell管理模块。在进行用户shell的注册工作时,通过设定统一注册接口函数,利用用户shell 的名称、端口号、是否需要加密保护等用户shell信息对统一注册接口函数进行修改,用户 shell在启动过程中,通过调用修改后的统一注册接口函数向统一 shell管理模块提出注 册请求。例如,参照图3和图4,统一 shell管理模块中的进程间通信守护单元根据用户进 程3的注册请求分别为用户进程3中的用户shell3和用户shell4分配伪终端设备2和伪 终端设备3作为其输入输出控制台,为用户shell3和用户shell4分配的index值分别为 2和3 ;根据用户进程4的注册请求,为用户进程4中的用户shell5分配伪终端设备4作为 其输入输出控制台,为用户shell5分配的index值为4。203,统一 shell管理模块利用控制台、伪终端设备和所述shell进行信息的输入 和输出。正常情况下,shell获取输入信息流程如下控制台获取输入信息后发送给统一 shell管理模块;统一 shell管理模块将该输入信息发送给当前运行在前台的shell唯一 关联的伪终端设备;当前运行在前台的shell从所述伪终端设备获取输入信息;shell发送 输出信息流程如下当前运行在前台的shell将输出信息发送给与其唯一关联的伪终端设 备;统一 shell管理模块从所述伪终端设备获取输出信息,将输出信息通过控制台发送出 去,以实现共享控制台。例如,参见图3和图4,当前运行在前台的为系统shell。统一 shell管理模块的 控制台守护单元获取输入信息后发送给统一 shell管理模块;统一 shell管理模块的控制 台守护单元将该输入信息发送给与系统shell唯一关联的伪终端设备1 ;系统shell从所 述伪终端设备1获取输入信息;系统shell发送输出信息流程如下当系统shell将输出信 息发送给与其唯一关联的伪终端设备1 ;统一 shell管理模块的控制台守护单元从伪终端 设备1获取输出信息,将输出信息通过控制台发送出去,以实现共享控制台在有些情况下,操作系统会根据实际需要进行shell间切换,具体流程如下
当统一 shell管理模块接收到用户通过控制台发送的需要进行shell间切换的 指令时,显示当前操作系统所有shell列表信息;当接收到用户通过控制台发送的要从源 shell切换到目的shell的指令时,将该指令发送给与源shell关联的伪终端设备和与目的 shell关联的伪终端设备。源shell从与其所关联的伪终端设备获取该指令,根据该指令从 前台切换到后台;目的shell从与其所关联的伪终端设备获取该指令,根据该指令从后台 切换到前台。此时,用户的输入信息通过控制台经统一 shell管理模块发送到与目的shell 关联的伪终端设备,目的shell通过伪终端设备获取输入信息。目的shell将输出信息发 送到伪终端设备,统一 shell管理模块从伪终端设备获取输出信息,通过控制台发送出去, 从而实现控制台共享。而运行在后台的源shell此时不能接收输入,其输出信息可以根据 用户的配置保存在缓存区中或是直接丢弃。例如,参见图3和图4,统一 shell管理模块的控制台守护单元通过接收的用户输 入的一个特殊字符,例如“ctrl+n”,获知用户需要进行shell切换,此时,统一 shell管理模 块显示所有的shell列表信息,包括系统shell、用户shell3、用户shell4和用户shell5, 其中,系统shell的伪终端设备为伪终端设备1,用户shell3的伪终端设备为伪终端设备 2,用户shell4的伪终端设备为伪终端设备3,用户shell5的伪终端设备为伪终端设备4。 此时,运行在前台的shell为用户shell3,其index值为2。用户shell3通过其伪终端设 备2、统一 shell管理模块和控制台获取输入信息,并发送输出信息。当统一 shell管理模 块接收到一个index值时,例如该index值为3,获知用户需要将用户shell4切换到前台, 此时,统一 shell管理模块根据该index值将用户shell4切换到前台,将用户shell3切换 到后台。然后,用户shell4通过其伪终端设备3、统一 shell管理模块和控制台获取输入信 息,并发送输出信息。此时,用户shell3运行在后台,其不能获取输入信息,其输出信息可 以根据用户的配置保存在缓存区中或是直接丢弃。此外,统一 shell管理模块中的Telnetd守护单元可以侦听某个特定端口,例如端 口 10000,用户可以利用该端口通过远程登录的方式进行操作系统中shell间的切换操作, 具体地切换操作可以详见上述描述,在此不再赘述。以上是描述的是统一 shell管理模块根据用户的手动指令实现的shell间的切 换操作,实际应用中,操作系统可以自动实现shell的切换操作。参见图3,当前运行在前 台为用户shell3,如果运行在后台的shell4想要切换到前台,此时,用户shell4会向统一 shell管理模块发送切换请求;统一 shell管理模块断开控制台与用户shell3之间的链 接,建立控制台与用户shell4之间的链接,从而使用户shell3切换到后台,用户shell4切 换到前台。需要说明的是,shell间的自动切换不但适用于系统shell和用户shell间的 切换,还适用于用户shell间的切换。进一步地,统一 shell管理模块,系统中会一直运行,不会退出,而用户shell有 可能会正常或异常退出,此时,统一 shell管理模块会在用户shell退出后对伪终端设备、 shell标识等资源进行回收。进一步地,如果用户shell不在统一 shell管理模块进行注册,可以直接在系统 shell的前台运行,占用系统shell的控制台,唯一的区别是信息的输入和输出多了一层从 系统shell的伪终端设备通过统一 shell管理模块向控制台转发的过程,不过转发的过程 对于用户而言是完全透明的,用户无须关心。
7
需要说明的是,在本实施例中,统一 shell管理模块、控制台守护单元、进程间通 信守护单元只是为了描述简单之用,但本发明的保护范围并不限于该名称。在本实施例中,在控制台和shell之间引入了统一 shell管理模块,该模块是整个 操作系统输入输出的唯一通道,负责统一管理系统中所有shell,所有经控制台的输入输出 必须经过该模块。该模块通过统一的注册接口函数,能够对所有shell进行统一注册,并分 配唯一的伪终端设备,这使得各shell的输入输出对于其他的shell都独立和透明,各个 shell只能看到自己的伪终端设备,不用关心自己的数据是如何在真实终端输入输出,提高 了系统架构的独立性。此外,利用通用的统一 shell管理模块能够使各种硬件平台的应用 程序完成各shell自由共享控制台,从而实现了对现有系统架构的兼容,提高了系统架构 的通用性和可移植性。此外,在这种系统架构下,由于所有的shell进行了注册,此时进行 shell间切换,操作简单。本发明的第二个实施例提供了一种多shell共享控制台的系统,参见图3,包括 控制台、统一 shell管理模块和shell,统一 shell管理模块位于控制台和shell之间;统一 shell管理模块,用于与控制台建立链接,对shell进行注册,为shell分配 唯一的伪终端设备;利用控制台、伪终端设备、shell进行信息的输入和输出,以实现控制 台的共享。进一步地,shell包括系统shell和用户shell ;统一 shell管理模块,具体用于在 操作系统启动中,与控制台建立链接,对系统shell进行注册,为系统shell分配唯一的伪 终端设备;在操作系统启动完成后,对用户shell进行注册,为用户shell分配唯一的伪终 端设备;利用控制台、伪终端设备、系统shell和用户shell进行信息的输入和输出,以实现 控制台的共享。进一步地,统一 shell管理模块用于对所述系统shell进行注册,包括统一 shell管理模块,具体用于通过设定统一注册接口函数,根据系统shell信息 对统一注册接口函数进行修改,利用修改后的统一注册接口函数对系统shell进行注册; 或统一 shell管理模块用于对所述用户shell进行注册,包括统一 shell管理模块,具体用于通过设定统一注册接口函数,根据用户shell信息 对统一注册接口函数进行修改,利用修改后的统一注册接口函数对用户shell进行注册。进一步地,统一 shell管理模块用于利用所述控制台、伪终端设备、shell进行信 息的输入和输出,包括统一 shell管理模块,具体用于从控制台获取输入信息,将输入信息经与运行在 前台的shell关联的伪终端设备输出给所述运行在前台的shell ;统一 shell管理模块经与运行在前台的shell关联的伪终端设备获取运行在前台 的shell的输出信息,将输出信息通过控制台输出。进一步地,当从源shell切换到目的shell时,统一 shell管理模块用于利用控制 台、伪终端设备、shell进行信息的输入,包括统一 shell管理模块,具体用于从控制台获取到需要从源shell切换到目的shell 的切换指令时,显示shell列表;根据用户的选择,利用shell列表将源shell切换到后台,将目的shell切换到前台。进一步地,shell包括系统shell和用户shell ;统一 shell管理模块,具体用于在 操作系统启动中,与控制台建立链接,对系统shell进行注册,为系统shell分配唯一的伪 终端设备;在操作系统启动完成,用户shell与系统shell的伪终端设备建立链接后,利用 控制台、所述系统shell的伪终端设备、用户shell进行信息的输入和输出,以实现控制台 的共享。进一步地,统一 shell管理模块,具体用于从控制台获取输入信息,将输入信息 经所述系统shell的伪终端设备输出给用户shell ;经系统shell的伪终端设备获取用户 shell的输出信息,将输出信息通过控制台输出。在本实施例中,在控制台和shell之间引入了统一 shell管理模块,该模块是整个 操作系统控制台的唯一通道,负责统一管理系统中所有shell,所有经控制台的输入输出必 须经过该模块。该模块通过统一的注册接口函数,能够对shell进行统一注册,并分配唯一 的伪终端设备,这使得各shell的输入输出对于其他的shell都独立和透明,各个shell只 能看到自己的伪终端设备,不用关心自己的数据是如何在真实终端输入输出,提高了系统 架构的独立性。此外,利用通用的统一 shell管理模块能够使各种硬件平台的应用程序完 成各shell自由共享控制台,从而实现了对现有系统架构的兼容,提高了系统架构的通用 性和可移植性。此外,在这种系统架构下,由于所有的shell进行了注册,此时进行shell 间切换,操作简单。上述实施例所述技术方案可以适用于但不限于嵌入式操作系统或桌面操作系统 等操作系统。本发明所述方案,并不仅仅限于说明书和实施方式中所列运用。对本发明技术所 属领域的普通技术人员来说,可根据本发明做出各种相应的改变和变形,而所有这些相应 的改变和变形都属于本发明权利要求的保护范围。
权利要求
一种多shell共享控制台的系统,其特征在于,包括控制台、统一shell管理模块和shell,所述统一shell管理模块位于所述控制台和所述shell之间;所述统一shell管理模块,用于与控制台建立链接,对所述shell进行注册,为所述shell分配唯一的伪终端设备;利用所述控制台、所述伪终端设备、所述shell进行信息的输入和输出,以实现控制台的共享。
2.如权利要求1所述的多shell共享控制台的系统,其特征在于,所述shell包括系统 shell和用户shell ;所述统一 shell管理模块,具体用于在操作系统启动中,与所述控制台 建立链接,对所述系统shell进行注册,为所述系统shell分配唯一的伪终端设备;在所述 操作系统启动完成后,对所述用户shell进行注册,为所述用户shell分配唯一的伪终端设 备;利用所述控制台、所述伪终端设备、所述系统shell和所述用户shell进行信息的输入 和输出,以实现控制台的共享。
3.如权利要求2所述的多shell共享控制台的系统,其特征在于,所述统一 shell管理模块用于对所述系统shell进行注册,包括所述统一 shell管理模块,具体用于通过设定统一注册接口函数,根据系统shell信息 对所述统一注册接口函数进行修改,利用修改后的统一注册接口函数对所述系统shell进 行注册;或所述统一 shell管理模块用于对所述用户shell进行注册,包括所述统一 shell管理模块,具体用于通过设定统一注册接口函数,根据用户shell信息 对所述统一注册接口函数进行修改,利用修改后的统一注册接口函数对所述用户shell进 行注册。
4.如权利要求1所述的多shell共享控制台的系统,其特征在于,所述统一shell管理 模块用于利用所述控制台、所述伪终端设备、所述shell进行信息的输入和输出,包括所述统一 shell管理模块,具体用于从所述控制台获取输入信息,将所述输入信息经 与运行在前台的shell关联的伪终端设备输出给所述运行在前台的shell ;所述统一 shell管理模块经与运行在前台的shell关联的伪终端设备获取运行在前台 的shell的输出信息,将所述输出信息通过控制台输出。
5.如权利要求1所述的多shell共享控制台的系统,其特征在于,当从源shell切换到 目的shell时,所述统一 shell管理模块用于利用所述控制台、所述伪终端设备、所述shell 进行信息的输入,包括所述统一 shell管理模块,具体用于从所述控制台获取到需要从源shell切换到目的 shell的切换指令时,显示shell列表;根据用户的选择,利用所述shell列表将所述源shell切换到后台,将所述目的shell 切换到前台。
6.如权利要求1所述的多shell共享控制台的系统,其特征在于,所述shell包括系统shell和用户shell ;所述统一 shell管理模块,具体用于在操作 系统启动中,与所述控制台建立链接,对所述系统shell进行注册,为所述系统shell分配 唯一的伪终端设备;在所述操作系统启动完成后,所述用户shell与所述系统shell的伪终 端设备建立链接,所述统一 shell管理模块,还用于利用所述控制台、所述系统shell的伪 终端设备、所述用户shell进行信息的输入和输出,以实现控制台的共享。
7.如权利要求6所述的多shell共享控制台的系统,其特征在于,所述统一 shell管理模块,具体用于从所述控制台获取输入信息,将所述输入信息经 所述系统shell的伪终端设备输出给所述用户shell ;经所述系统shell的伪终端设备获 取所述用户shell的输出信息,将所述输出信息通过控制台输出。
8.根据权利要求1所述的多shell共享控制台的系统实现控制台共享的方法,其特征 在于,所述方法包括所述统一 shell管理模块与控制台建立链接,对所述shell进行注册,为所述shell分 配唯一的伪终端设备;利用所述控制台、所述伪终端设备、所述shell进行信息的输入和输出,以实现控制台 的共享。
9.如权利要求8所述的多shell共享控制台的系统实现控制台共享的方法,其特征在 于,所述shell包括系统shell和用户shell ;所述方法具体包括所述shell包括系统shell和用户shell ;所述统一 shell管理模块与所述控制台建立 链接,对所述系统shell进行注册,为所述系统shell分配唯一的伪终端设备;在所述操作 系统启动完成后,对所述用户shell进行注册,为所述用户shell分配唯一的伪终端设备; 利用所述控制台、所述伪终端设备、所述系统shell和所述用户shell进行信息的输入和输 出,以实现控制台的共享。
10.如权利要求8所述的多shell共享控制台的系统实现控制台共享的方法,其特征 在于,所述shell包括系统shell和用户shell ;所述方法具体包括在操作系统启动中,所 述统一 shell管理模块与控制台建立链接,对所述系统shell进行注册,为所述系统shell 分配唯一的伪终端设备;在所述操作系统启动完成,所述用户shell与所述系统shell的伪 终端设备建立链接后,利用所述控制台、所述系统shell的伪终端设备、所述用户shell进 行信息的输入和输出,以实现控制台的共享。
全文摘要
本发明提供了一种多壳共享控制台的方法和系统,属于计算机领域。所述系统包括控制台、统一shell管理模块和shell,统一shell管理模块位于所述控制台和所述shell之间;统一shell管理模块,用于与控制台建立链接,对shell进行注册,为shell分配唯一的伪终端设备;利用所述控制台、所述伪终端设备、所述shell进行信息的输入和输出,以实现控制台的共享。本发明提供的技术方案,提高了系统架构的独立性、以及系统架构的通用性和可移植性。
文档编号G06F9/50GK101937369SQ20091015079
公开日2011年1月5日 申请日期2009年6月30日 优先权日2009年6月30日
发明者张华强, 王亮, 蒋学鑫 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1