无头系统内存访问的重定向的制作方法

文档序号:6473316阅读:169来源:国知局
专利名称:无头系统内存访问的重定向的制作方法
背景本申请涉及内存寻址,更具体地说涉及进行控制台重定向,其中进行内存访问的重定向。
连接到计算机网络的基于处理器的系统可以与所述网络上的其它实体进行通信。因网络的迅速扩大的原因,对于所述基于处理器的系统来说,沿过道的办公室中的计算机、另一个城市的服务器或另一个国家的电子邮件接收装置都是可访问的。
对计算机网络的管理通常涉及精密复杂的软件和接受高水平训练的工作人员。再者,因为网络上的某些实体相对于中央站点在物理上可以处于远程位置,所以,网络实体的远程管理在网络管理软件方面日益起重要作用。
解决远程管理的一个方案是控制台重定向。控制台重定向允许用户、例如网络管理员控制并检索有关物理上处在远离所述用户的位置的某个系统(例如受管理系统)的状态信息。例如,在控制台重定向过程中,所述受管理系统可以接收到用户计算机系统输入的击键操作。因此,所述远程击键输入操作看上去像所述击键操作是在受管理系统的键盘上输入的。运行于用户系统、受管理系统或二者上的软件可以以相同的方式使打算供受管理系统用的数据被重定向到用户计算机系统,例如被重定向到显示器。因此,用户系统可以交互操作并观察受管理系统的操作。控制台重定向可以通过许多物理媒体来执行,包括标准电话线、局域网(LAN)线路、广域网(WAN)线路、无线媒体等。
通常,基于处理器的系统可以被配置成“无头”方式。在无头系统中,没有键盘或视频监视器连接到所述系统。因此,所述系统只能从远程终端进行访问。无头系统、例如服务器可能是因特网服务供应商(ISP)的首选,例如因为可以把多个服务器装进给定的空间。
在控制台重定向的一种实现方案中,软件周期性地扫描受管理系统的视频缓冲器、以便查知其操作活动。如果识别出受管理系统的视频缓冲器发生更改,则将更新内容发送到或重定向到用户计算机系统的视频缓冲器。对于无头系统来说,这种控制台重定向方法是可行的,因为无头系统中虽然不存在视频显示器但仍然存在视频缓冲器。
因为无头系统中不使用视频显示器,所以也非常需要去除相关的视频硬件。例如,视频子系统通常包括视频图形适配器(VGA)控制器、输入/输出(I/O)寄存器以及用作视频缓冲器的一部分内存。除节省成本外,去除VGA硬件还使得能够把其它插件板加到所述无头系统代替所述视频控制器。但是,没有视频缓冲器,则无法实现上述控制器重定向方案。
因此,仍需要在无视频缓冲器情况下对内存访问重定向并为这样的系统提供控制台重定向。
详细说明根据本文中描述的若干实施例,公开一种以远程方式控制无头系统的系统和方法,其中所述无头系统不包括任何视频缓冲器。在某些实施例中,无头系统的固件包括一些修改,所述修改对打算供所述无视频缓冲器用的访问进行截取或重定向。根据一个实施例,在无头系统中分配虚拟视频缓冲器,然后可以利用已知的控制重定向方案将其发送到相对于所述无头系统为远程的控制台。因此,可以在无头系统中执行控制台重定向,而无需任何视频缓冲器。因此,可以去除无头系统上的任何VGA控制器,仍可以执行控制台重定向。


图1中,系统100包括连接到网络20的无头系统10和远程控制台30。就此处所用而言,用于描述控制台30的术语“远程”是相对于无头系统10而定义的。“远程”表示控制台30非直接连接到无头系统101。同样地,无头系统10相对于控制台30也属远程。
在一个实施例中,无头系统10是基于处理器的系统,它包括诸如内存的存储单元12以及基本输入/输出系统(BIOS)16。内存12可以包括随机存取存储器,如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)以及静态RAM(SRAM)。
BIOS 16是固件程序。BIOS 16通常驻留在只读存储器(ROM)或快速存储装置中。在图1的实施例中,BIOS 16被存储在快速存储器17中。或者,可以将BIOS 16存储在另一种非易失存储装置中,如可擦写和可编程只读存储器(EPROMS)中或可以以电气方式擦写和编程的只读存储器(EEPROMS)。
通常,BIOS 16执行基于处理器的系统的各部件的初始化。再者,BIOS 16通常包括一些功能或应用程序编程接口(API),它们使装入到所述基于处理器的系统中的其它软件可以访问系统的硬件装置。
借助于个人计算机/高级技术(PC/AT)体系结构,BIOS包括一组用于与PC/AT硬件进行通信的软件中断。例如,为了与软驱或硬盘装置进行通信,软件程序可以发出“Int 13h”功能。可以调用许多Int 13h功能来与驱动器交互操作。例如,还有许多功能用于对磁盘进行读取、写入、复位和格式化,同样地PC/AT系统的BIOS通常包括Int 10h API,用于与视频子系统进行通信。它是对于系统100来说需要关注的Int 10h API。
在图1中,无头系统10可以通过网络20与远程控制台30进行通信。网络可以是局域网(LAN)、广域网(WAN)、因特网等等。相应地,无头系统10和远程控制台30都包括可与网络20连接的功能。例如控制台30和无头系统10都可以具有网络接口卡或调制解调器(未显示)。
远程控制台30包括其一部分称为“屏幕内存”的视频缓冲器32;以及显示器34。视频缓冲器32保存要在显示器34上显示的数据。在控制台重定向方式中,视频缓冲器32和显示器34因此充当无头系统10的“头”。远程控制台30还包括用于从无头系统10中检索数据并将所述数据发送到显示器34的控制台重定向软件36。
在图1的系统100中,无头系统10可以不包括物理视频缓冲器。相应地,在一个实施例中,在内存12中分配一个虚拟视频缓冲器14。在图1的实施例中,例如,BIOS 16将内存12的一部分标识为虚拟视频缓冲器14。在远程控制台30中运行的控制台重定向软件36可以从无头系统10中检索存储在虚拟视频缓冲器14中的数据并将所述数据存储在它自己的视频缓冲器32中,最终被显示器34接收。因此,位于远程控制台30处的用户或管理员可以查看有关无头系统10的配置信息、诊断信息或其它信息。
在BIOS 16是正在无头系统10上执行的唯一程序的情况中,所有读取、写入或其它视频缓冲器存取可由所述BIOS 16重定向到虚拟视频缓冲器14。虚拟视频缓冲器14的内容则可以通过网络20传送到远程控制台30的视频缓冲器32中。
但是,BIOS 16可以不是运行于无头系统10上的唯一程序。例如,无头系统10还可以包括其上驻留有任选的ROM的内插式卡片。此类内插式卡片的示例包括小型计算机系统接口(SCSI)控制器、增强型视频图形控制器、游戏适配卡等。无头系统10开机过程中,执行由BIOS 16标识的任何任选的ROM。
相应地,包含在这些任选的ROM上的软件会尝试读取或写入无头系统10的不存在的屏幕内存。除任选的ROM之外,无头系统10还可以包括可在开机过程中执行的配置实用程序。或者,可以装入并在无头系统10上执行操作系统。一旦装入操作系统,就可以在无头系统10上装入和运行其它软件程序。
当操作系统在运行时,屏幕输出通常通过由所述操作系统所定义的API来处理。如果运行于无头系统10上的操作系统判断是否操作视频缓冲器,例如,所述操作系统可以装入“伪”VGA驱动程序,后者将原本打算供无头系统10用的屏幕输出重定向到远程控制台30的视频缓冲器32。
但是在装入和运行操作系统之前,运行于无头系统10上的程序可以直接存取视频硬件或使用BIOS API,例如Int 10h。因此,根据一个实施例,系统10对调用对视频硬件直接存取的软件以及利用BIOS API的软件进行寻址。
在图2中,说明根据PC/AT体系结构的内存12的地址映射。内存12的前640k称为基本内存50。根据一个实施例,对基本内存50的寻址方式为常见的十个64K单元。例如,在PC/AT体系结构中,底部64K(单元52)被保留用于存储BIOS中断的地址,以及存储配置信息。
紧随基本内存部分50,视频内存部分60从A0000h编址到BFFFFh。视频内存60的某个部分被分配用于视频缓冲器或屏幕内存。具体视配置而定,通常基于处理器的系统包括32K、64K或128K的视频内存60。通常屏幕内存从地址B8000h编址到BFFFFh。
毗邻视频内存60,内存12的128K部分作为任选的ROM存储器54来编址。同样地,内存12的一个部分作为系统ROM存储器56来编址。通常BIOS 16是系统ROM存储器56的一部分。编址到1兆字节以上的内存称为扩展内存58。扩展内存58包括系统中所有余下的内存。
在一个实施例中,BIOS 16将存储器12的一部分分配作为虚拟视频缓冲器14。虚拟视频缓冲器14可以作为基本内存50或扩展内存58的一部分来编址。或者,可以由BIOS 16将任何未使用的系统ROM地址空间56或任选的ROM地址空间54指定作为虚拟视频缓冲器14。
在无头系统10上运行的程序通过调用Int 10h功能或其它API来存取不存在的视频缓冲器的情况下,根据一个实施例的BIOS 16为此存取操作选择到达虚拟视频缓冲器14的路由。图3的流程图说明根据一个实施例的BIOS 16的操作。
根据PC/AT体系结构,视频子系统可以以多种不同的视频方式之一工作。视频方式的选择影响显示视频缓冲器的内容,本例中为虚拟视频缓冲器14的方式。相应地,在一个实施例中,BIOS 16选择视频方式3用于所有对虚拟视频缓冲器14的存取操作。视频方式3可以通过调用初始化过程中BIOS 16调用的Int 10h功能来设定。
在一个实施例中,BIOS 16将存储器12的一部分分配作为虚拟视频缓冲器14,如图1(方框202)所示。在一个实施例中,通过计算存储显示信息所需的字节数来确定虚拟视频缓冲器14的大小。例如,在视频方式3中,屏幕为80列和25行,采用每页两个字节。因此,具有至少4000个字节的虚拟视频缓冲器14足以存储打算供显示用的数据,即充当无头系统10的屏幕内存。
然后将虚拟视频缓冲器14初始化(方框204)。在一个实施例中,虚拟视频缓冲器14的所有参数项被BIOS 16初始化为“空”。BIOS 16还检索视频配置参数(方框206)。在图2中,有关无头系统10的配置信息被存储在系统内存12的前64K内存块52中。(例如在PC/AT系统中,配置信息的地址在40XX。)同样地有关视频子系统的配置参数也存储在配置数据块52中。此类参数可包括指针尺寸、指针位置、页编号等。一旦BIOS 16检索到视频配置参数,BIOS 16就会以保存的这些配置参数更新虚拟视频缓冲器14(方框208)。
初始化过程中,BIOS 16可以在处理对操作系统的控制之前执行任选的ROM程序、配置实用程序或者其它软件。BIOS 16可以监视对视频API的存取,如软件程序对Int 10h功能的调用。如果所述BIOSAPI被调用,则BIOS 16可以截取所述调用并执行用于存取虚拟视频缓冲器14而非不存在的视频缓冲器的替代API调用(方框212)。相关的视频配置参数,例如指针位置、页编号等也会被更新(方框214)。
在一个实施例中,BIOS 16忽略无法提供服务的API请求。实例包括诸如更改视频方式、在屏幕上移动(draw)象素以及更新字体表之类的调用。
再参见图1,远程控制台30的控制台重定向软件36可以检索无头系统10的虚拟视频缓冲器14的内容。然后可以将内容存储在远程控制台30的视频缓冲器32中,以便呈交给显示器34。因此,任何用来由运行于无头系统10上的软件显示的信息代之以可从远程控制台30的显示器34中查看到。此外,输入远程控制台30键盘38的内容可以被无头系统10接收,看上去像是由连接到所述服务器10的键盘输入的。
因此,当显示器34接收到有关无头系统10的信息的屏幕时,位于远程控制台30的用户可以使用键盘38来响应该屏幕信息。然后,根据先前已知的控制台重定向实现方式,这些击键操作可以被无头系统10接收。系统100因此实现以远程方式与无头系统10进行通信的完全交互机制。
在图3中,BIOS 16可对不存在的视频缓冲器的存取、即调用BIOSAPI(Int 10h功能)来将所述存取操作重定向到内存12中的虚拟视频缓冲器14。但是,某些软件程序直接存取视频内存。对于此类程序,需要附加的防护。
例如,BIOS视频API(Int 10h)包括称为“写入字符”的功能OEh。作为输入参数,所述功能接收要写入的字符的ASCII码和所述字符的前景颜色。当调用时,所述字符被写入到当前屏幕页面中指针所在的当前位置。指针的当前位置和当前屏幕页面都存储在内存的配置数据部分中(图2的单元52))。
在软件调用所述功能的情况下,如上所述,BIOS 16将适时地把对不操作的视频缓冲器的存取重定向。但是,所述软件不是调用Int10h,而是调用功能Oeh以将字符写入屏幕的特定位置,它可以直接写入视频内存块60(见图2)。此类情况中,图3中所述的经修改的BIOS16是无效的。
因此,根据一个实施例,BIOS 16K可以将无头系统10的硬件配置成将标准视频内存“映射”到某些其它位置。换言之,地址A0000h至BFFFFFh可以被映射到内存12,而不是不存在的视频硬件。
在图1中,BIOS 16与存储在内存12中的地址转换表18结合。在一个实施例中,地址转换表18包括用于映射内存12各个部分的项。无头系统10的初始化过程中,BIOS 16检索地址转换表18。利用地址转换表18,BIOS 16可以完全映射无头系统10的内存12。
在一个实施例中,除视频缓冲区外,对于所有内存映射,地址转换表18中的项都采用一致性映射(输入地址和输出地址是相同的)。为了同时支持对使用API和非API的视频缓冲区的存取,或者支持对视频缓冲区(A0000h-BFFFFh)的直接存取,地址转换表18将两个地址区映射到虚拟视频缓冲器16。
图4中举例说明虚拟视频缓冲器16的双重寻址。程序80a可以执行API调用(方框82)来存取不存在的视频缓冲器。诸如Int 10h功能或其它中断的API知道对视频缓冲区A0000h-BFFFFh之外的虚拟视频缓冲器16的某个地址寻址,图示为地址X。
第二个程序80b对不存在的视频缓冲器直接寻址、例如写入地址AXXXXh(方框84)。地址转换表18将视频缓冲区A0000h至BFFFFFh映射到虚拟视频缓冲器16,例如它可以是常规内存的一部分。利用两个不同的地址寻址的虚拟视频缓冲器16仍然由程序80a和程序80b正常地存取。
当如存储在任选的ROM中的软件或配置实用程序对不存在的视频缓冲器进行写操作时,硬件会将这些写操作重定向到另一个地址。在一个实施例中,重定向数据的目的地址为虚拟视频缓冲器14所在的地址。在另一个实施例中,采用不同的虚拟视频缓冲器。因此,将一个虚拟视频缓冲器14用于调用API调用功能,而第二个虚拟视频缓冲器用于直接存取视频缓冲器60的软件。
在图5中,方框图说明根据一个实施例的系统100的配置。如图1所示,无头服务器10和远程控制台30通过网络20彼此连接。
无头系统10包括通过总线106连接的处理器102和内存12。处理器102可以是微处理器、微控制器或任何适用的控制装置。内存12可以包括静态随机存取存储器(SRAM)、动态随机RAM存取存储器(DRAM)或其它用于在系统10操作期间存储数据和程序的易失媒体。
连接到主机总线106的还有桥接器108,用于与另一个总线110连接。主机总线106还连接到BIOS 16装入其中的快速存储器17。或者,快速存储器17可以连接到桥接器108。
无头系统10利用网络接口卡(NIC)112连接到网络20。另一种方案是,可以利用调制解调器(未显示)来存取网络20,或者可以建立无线连接。
在远程控制台30上,处理器130和内存132都连接到主机总线128。内存可以存储控制台重定向软件36,用于存取无头系统10。桥接器124将主机总线128连接到另一个主机总线122。远程控制台30包括NIC120,用于至网络20的连接。
在一个实施例中,桥接器124是一个多功能装置,它可以支持键盘38、视频缓冲器32驻留在其中的诸如VGA控制器的视频控制器126。VGA控制器126连接到可用于查看根据上述实施例的有关无头系统10的信息的显示器34。
因此,根据本文中所述的实施例,可以执行控制台重定向来存取不包括任何视频缓冲器的远程无头系统。由于不需要视频控制器,所以这种无头系统成本更为低廉,且可以支持附加内插式卡片。直接或利用BIOS API对不存在的视频硬件的存取在被远程控制台检索之前被重定向到虚拟视频缓冲器。
虽然本发明是针对有限的几个实施例来描述的,但是本专业的技术人员显然可对其进行各种修改和更改。所附权利要求书涵盖本发明精神和范围内的所有修改和更改。
权利要求
1.一种系统,它包括包括缓冲器的存储单元;以及执行时完成如下操作的程序接收访问未映射到所述存储单元的地址的请求;以及将所述请求发送到所述缓冲器。
2.如权利要求1所述的系统,其特征在于还包括处理器,当所述系统加电时所述处理器执行所述程序。
3.如权利要求2所述的系统,其特征在于所述程序是基本输入输出系统程序。
4.如权利要求2所述的系统,其特征在于包括第二系统,它包括显示器;以及执行时完成如下操作的程序标识所述系统;从所述系统检索存储在所述缓冲器中的数据;以及将所述数据发送到所述显示器。
5.如权利要求4所述的系统,其特征在于所述第二系统通过网络连接到所述系统。
6.一种系统,它包括显示器;与包括缓冲器的第二系统的连接;以及执行时完成如下操作的程序标识所述第二系统;从所述第二系统检索存储在所述缓冲器中的数据;以及将所述数据发送到所述显示器。
7.如权利要求6所述的系统,其特征在于所述第二系统不包括任何视频缓冲器。
8.如权利要求7所述的系统,其特征在于所述第二系统通过网络连接到所述系统。
9.一种方法,它包括如下步骤接收访问第一基于处理器的系统中的第一存储单元的请求;访问第二存储单元而不是所述第一存储单元;将数据从所述第二存储单元发送到第二基于处理器的系统。
10.如权利要求9所述的方法,其特征在于还包括如下步骤将所述数据发送到所述第二基于处理器的系统中的显示器。
11.如权利要求9所述的方法,其特征在于所述接收访问第一基于处理器的系统中的第一存储单元的请求的操作包括如下步骤接收内存的地址;以及不标识映射到所述地址的内存的任何部分。
12.一种方法,它包括如下步骤由第一基于处理器的系统监视第二基于处理器的系统上的活动;以及由所述第一基于处理器的系统从所述第二基于处理器的系统上的存储单元检索数据,其中,所述存储单元不是视频缓冲器。
13.如权利要求12所述的方法,其特征在于所述监视第二基于处理器的系统上的活动的操作还包括监视对所述存储单元的写入。
14.如权利要求12所述的方法,其特征在于还包括如下步骤将所述数据发送到所述第一基于处理器的系统中的显示器。
15.一种包括存储软件程序的媒体的制品,所述软件程序在执行时使基于处理器的系统能够执行如下操作接收访问所述基于处理器的系统中的第一存储单元的请求;访问第二存储单元;以及将数据从所述第二存储单元发送到第二基于处理器的系统。
16.如权利要求15所述的制品,其特征在于还存储一种软件程序,所述软件程序在执行时使基于处理器的系统能够执行如下操作将所述数据发送到所述第二基于处理器的系统中的显示器。
17.如权利要求15所述的制品,其特征在于还存储一种软件程序,所述软件程序在执行时使基于处理器的系统能够执行如下操作接收内存的地址;以及不标识映射到所述地址的内存的任何部分。
18.一种包括存储软件程序的媒体的制品,所述软件程序在执行时使基于处理器的系统能够执行如下操作由所述基于处理器的系统监视第二基于处理器的系统上的活动;以及从所述第二基于处理器的系统上的存储单元检索数据,其中,所述存储单元不是视频缓冲器。
19.如权利要求18所述的制品,其特征在于还存储一种软件程序,所述软件程序在执行时使基于处理器的系统能够把所述数据发送到显示器。
全文摘要
将对不存在内存的存取重定向到虚拟缓冲器。所述虚拟缓冲器可以在不包括视频缓冲器的无头系统上实现。控制台重定向可以利用所述虚拟缓冲器来显示有关所述无头系统的信息。直接或利用BIOS API对不存在的视频硬件的存取在被远程控制台检索之前被重定向到虚拟视频缓冲器。由于系统不包括任何视频控制器,所以这种无头系统成本更为低廉,且可以支持附加的内插式卡片。
文档编号G06F15/00GK1468395SQ01816697
公开日2004年1月14日 申请日期2001年7月26日 优先权日2000年8月9日
发明者M·纳图, R·克汉纳, K·范德坎姆, M 纳图, 耗, 驴材 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1