KR100679524B1 - 헤드리스 시스템을 위한 메모리 액세스 리디렉팅 - Google Patents
헤드리스 시스템을 위한 메모리 액세스 리디렉팅 Download PDFInfo
- Publication number
- KR100679524B1 KR100679524B1 KR1020037001715A KR20037001715A KR100679524B1 KR 100679524 B1 KR100679524 B1 KR 100679524B1 KR 1020037001715 A KR1020037001715 A KR 1020037001715A KR 20037001715 A KR20037001715 A KR 20037001715A KR 100679524 B1 KR100679524 B1 KR 100679524B1
- Authority
- KR
- South Korea
- Prior art keywords
- headless
- processor
- system based
- display
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
존재하지 않는 메모리로의 액세스의 리디렉션은 대신에 가상 버퍼에 전송된다. 이 가상 버퍼는 아무런 비디오 버퍼를 포함하지 않은 헤드리스 시스템내에 구현될 수 있다. 콘솔 리디렉션은 헤드리스 시스템에 관한 정보를 디스플레이하기 위해 가상 버퍼를 사용할 수 있다. 존재하지 않는 비디오 하드웨어로의 직접 또는 BIOS API를 사용하는 액세스는 리모트 콘솔에 의해 검색되기 전에 가상 버퍼로 리디렉팅된다. 헤드리스 시스템은 아무런 비디오 컨트롤러를 포함하지 않기 때문에 보다 저렴하고 추가 애드 인 카드를 지원할 수 있다.
리디렉션, 가상 버퍼, 헤드리스 시스템, 비디오 버퍼, 콘솔 리디렉션, 리모트 콘솔, 애드 인 카드
Description
본 발명은 메모리 어드레싱에 관한 것이고, 보다 상세하게는 메모리 액세스가 리디렉팅되는 콘솔 리디렉션의 실행에 관한 것이다.
컴퓨터망에 연결된 프로세서에 기초한 시스템은 네트워크상의 다른 엔티티와 통신할 수 있다. 네트워크의 급증으로 복도를 따라 위치된 사무실내의 컴퓨터, 다른 도시내의 서버, 또는 다른 나라에서의 이메일 수신자는 프로세서에 기초한 시스템에 액세스가능하다.
컴퓨터망을 관리하기 위해서는 정교한 소프트웨어 및 고도의 숙련자가 필요하다. 또한, 네트워크상의 일부 엔티티는 물리적으로 센트럴 사이트에 대해 리모트 상태에 있을 수 있기 때문에, 네트워크 엔티티의 원격 관리는 점점 네트워크 관리 소프트웨어를 특징짓게 되었다.
콘솔 리디렉션은 원격 관리를 어드레싱하는 하나의 방식이다. 콘솔 리디렉션은 네트워크 관리자와 같은 사용자가, 이 사용자의 물리적으로 원격 위치에 상주하는 시스템, 예를 들어, 관리되는 시스템에 관한 상태 정보를 제어 및 검색할 수 있도록 한다. 예를 들어, 콘솔 리디렉션 동안, 사용자 컴퓨터 시스템상에 입력된 키스트로크는 관리되는 시스템에 의해 수신될 수 있다. 이러한 방식으로, 원격 키 입력은 관리되는 시스템의 키보드상에 키가 입력된 것처럼 동작한다. 마찬가지로, 사용자 시스템에서 동작하는 소프트웨어 또는 관리되는 시스템 또는 이 모두는 관리되는 시스템에 대해 의도된 데이터가 디스플레이와 같은 사용자 컴퓨터 시스템에 리디렉팅되도록 할 수 있다. 그래서, 사용자 시스템은 관리되는 시스템과 대화하고 이 관리되는 시스템의 동작을 관찰할 수 있다. 콘솔 리디렉션은 표준 전화선, 구내 통신망(LAN) 라인, 광역 통신망(WAN) 라인, 무선 매체등을 포함하는 다수의 물리적인 매체에서 실행될 수 있다.
많은 경우, 프로세서에 기초한 시스템은 "헤드리스"로 구성될 수 잇다. 헤드리스 시스템에서, 아무런 키보드 또는 비디오 모니터도 이 시스템에 연결되어 있지 않다. 따라서, 이 시스템은 원격 터미널에서만 액세스될 수 있다. 서버와 같은 헤드리스 시스템은 예를 들어, 보다 많은 서버가 주어진 공간내에 패킹될 수 있기 때문에 인터넷 서비스 프로바이더(ISPs)에 의해 선호될 수 있다.
콘솔 리디렉션의 일실시예에서, 소프트웨어는 활동을 위해 관리되는 시스템의 비디오 버퍼를 주기적으로 스캐닝한다. 관리되는 시스템의 비디오 버퍼에 대한 변화가 식별되는 경우에, 업데이트가 사용자 컴퓨터 시스템의 비디오 버퍼에 전송되거나 리디렉팅된다. 헤드리스 시스템에 있어서, 이러한 콘솔 리디렉션의 방법은 비디오 버퍼가 비디오 디스플레이는 아니지만 헤드리스 시스템내에 남아 있기 때문에 유용하다.
비디오 디스플레이가 헤드리스 시스템에서 사용되지 않기 때문에, 관련된 비 디오 하드웨어 역시 제거하는 것이 매우 바람직하다. 예를 들어, 비디오 서브시스템은 보통 비디오 그래픽스 어댑터(VGA) 컨트롤러, 입출력(I/O) 레지스터 및 비디오 버퍼로서 사용되는 메모리의 일부를 포함할 수 있다. VGA 하드웨어를 제거하게 되면, 비용 절감과 더불어, 다른 카드가 비디오 컨트롤러 대신에 헤드리스 시스템에 더해질 수 있다. 그러나, 비디오 버퍼 없이, 상술된 콘솔 리디렉션 방식은 구현되지 않는다.
따라서, 비디오 버퍼가 유용하지 않은 경우에 메모리 액세스를 리디렉팅시키고 이러한 시스템을 위한 콘솔 리디렉션을 제공할 필요가 있다.
도 1은 본 발명의 일실시예에 따른 시스템의 블록도,
도 2는 본 발명의 일실시예에 따른 메모리 맵핑을 설명하는 블록도,
도 3은 본 발명의 일실시예에 따른 도 1의 BIOS의 동작을 설명하는 순서도,
도 4는 본 발명의 일실시예에 따라 가상 비디오 버퍼가 어떻게 어드레싱될 수 있는지를 설명하는 블록도, 및
도 5는 본 발명의 일실시예에 따른 시스템의 블록도.
여기에 설명된 복수의 실시예에 따라, 아무런 비디오 버퍼를 포함하지 않는 헤드리스 시스템을 원격 제어하기 위한 시스템 및 방법이 개시되어 있다. 일부 실시예에서, 헤드리스 시스템의 펌웨어는 존재하지 않는 비디오 버퍼에 대해 의도되었던 액세스를 인터셉팅하거나 리디렉팅시키는 수정부를 포함한다. 가상 비디오 버퍼는 헤드리스 시스템에 할당되어, 일실시예에 따라, 공지된 콘솔 리디렉션 방식을 사용하여, 헤드리스 시스템으로부터 멀리 떨어진 콘솔에 가상 비디오 버퍼의 데이터가 전송될 수 있다. 그래서 콘솔 리디렉션은 임의의 존재하는 버퍼 없이 헤드리스 시스템에서 실행될 수 있다. 따라서, 헤드리스 시스템상의 임의의 VGA 컨트롤러는 제거될 수 있지만, 콘솔 리디렉션은 여전히 실행될 수 있다.
도 1에서, 시스템(100)은 네트워크(20)에 연결된 헤드리스 시스템(10) 및 리모트 콘솔(30)을 포함하고 있다. 여기에서 사용되는 바와 같이, 콘솔(30)을 설명하기 위해 사용되는 용어 "리모트(원격)"는 헤드리스 시스템(10)에 대하여 정의된다. "리모트"는 콘솔(30)이 헤드리스 시스템(10)에 직접 연결되어 있지 않다는 것을 나타낸다. 이와 마찬가지로, 헤드리스 시스템(10)은 콘솔(30)에 대해 리모트 상태에 있다.
일실시예에서, 헤드리스 시스템(10)은 메모리와 같은 기억 로케이션(12) 및 기본 입출력 시스템(BIOS; 16)을 포함하는 프로세서에 기초한 시스템이다. 메모리(12)는 D램(DRAM), 동기 D램(SDRAM) 및 스태틱 램(SRAM)과 같은 램을 포함할 수 있다.
BIOS(16)는 펌웨어 프로그램이다. BIOS(16)는 보통 롬(ROM) 또는 플래시 디바이스내에 있다. 도 1의 실시예에서, BIOS(16)는 플래시 메모리(17)내에 기억된다. 대안으로, BIOS(16)는 이피롬(EPROMS) 또는 이이피롬(EEPROMS)과 같은 다른 비휘발성 메모리 디바이스내에 기억될 수 있다.
보통, BIOS(16)는 프로세서에 기초한 시스템의 구성요소의 초기화를 실행한 다. 또한, BIOS(16)는 보통 프로세서에 기초한 시스템상에 로드된 다른 소프트웨어가 시스템의 하드웨어 디바이스에 액세스할 수 있도록 하는 응용 프로그래밍 인터페이스(API) 또는 기능을 포함한다.
개인 컴퓨터/어드밴스트 테크놀로지(PC/AT) 구조에서, BIOS는 PC/AT 하드웨어와 통신하기 위해 소프트웨어 인터럽트(API)의 그룹을 포함한다. 예를 들어, 플로피 또는 하드 디스크 드라이브와 통신하기 위해, 소프트웨어 프로그램은 "Int 13h" 펑션을 낼 수 있다. 다수의 Int 13h 펑션이 드라이브와 상호작용하기 위해 호출될 수 있다. 예를 들어, 디스크로부터 판독하고, 디스크로 기록하고, 디스크를 리세팅하고 그리고 포맷팅하기 위한 펑션이 존재한다. 이와 마찬가지로, PC/AT 시스템에 대한 BIOS는 보통 비디오 서브시스템과 통신하기 위해 Int 10h API를 포함한다. 시스템(10)에 중요한 것은 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)은 물리적인 비디오 버퍼를 포함하지 않는다. 따라서, 일실시예에서, 가상 비디오 버퍼(14)가 메모리(12)내에 할당된다. 도 1의 실시예에서, 예를 들어, BIOS(16)는 메모리(12)의 일부를 가상 비디오 버퍼(14)로서 식별한다. 리모트 콘솔(30)내에서 실행하는 콘솔 리디렉션 소프트웨어(36)는 헤드리스 시스템(10)으로부터 가상 비디오 버퍼(14)내에 기억된 데이터를 검색할 수 있고 이 데이터를 리모트 콘솔(30) 자체의 비디오 버퍼(32)내에 기억할 수 있고, 그래서 궁극적으로 디스플레이(34)에 의해 검색될 수 있다. 따라서, 리모트 콘솔(30)에서 사용자 또는 관리자는 헤드리스 시스템(10)과 관련된 구성, 진단, 또는 다른 정보를 볼 수 있다.
BIOS(16)가 헤드리스 시스템(10)에서 실행되는 유일한 프로그램인 경우에, 모든 판독, 기록 또는 다른 비디오 버퍼 액세스는 BIOS(16)에 의해 가상 비디오 버퍼(14)에 재루팅될 수 있다. 그다음, 가상 비디오 버퍼(14)의 콘텐츠는 네트워크(20)를 통해 리모트 콘솔(30)의 비디오 버퍼(32)에 전송될 수 있다.
그러나, BIOS(16)는 헤드리스 시스템(10)에서 실행되는 유일한 프로그램이 아닐 수 있다. 예를 들어, 헤드리스 시스템(10)은 또한 옵션 롬이 존재하는 애드-인 카드를 포함할 수 있다. 이러한 애드 인 카드의 예에는 소형 컴퓨터 시스템 인터페이스(SCSI) 컨트롤러, 인핸스트 비디오 그래픽스 컨트롤러, 게임 어댑터 카드 등이 포함되어 있다. 헤드리스 시스템(10)의 파워 온 동안에, BIOS(16)에 의해 식별되는 임의의 옵션 롬이 실행된다.
따라서, 이러한 옵션 롬에 포함된 소프트웨어는 헤드리스 시스템(10)의 존재하지 않는 스크린 메모리에 대한 기록 또는 판독을 시도할 수 있다. 옵션 롬에 더하여, 헤드리스 시스템(10)은 파워 온 동안에 실행될 수 있는 구성 유틸리티를 포함할 수 있다. 또는 운영 체제가 로드되어 헤드리스 시스템(10)에서 실행될 수 있다. 일단 운영 체제가 로드되면, 다른 소프트웨어 프로그램이 헤드리스 시스템(10)에 로드되어 실행될 수 있다.
운영 체제가 실행되고 있을 때, 스크린 출력은 보통 운영체제에 의해 정의된 API를 통해 처리된다. 헤드리스 시스템(10)에서 실행되고 있는 운영 체제가 아무런 비디오 버퍼가 존재하지 않는다고 판정하면, 예를 들어, 운영 체제는 헤드리스 시스템(10)으로 원래 의도된 스크린 출력을 리모트 콘솔(30)의 비디오 버퍼(32)로 리디렉팅시키는 "더미" VGA 드라이버를 로드할 수 있다.
그러나, 운영체제가 로드되어 실행되기 전에, 헤드리스 시스템(10)에서 실행되고 있는 프로그램은 비디오 하드웨어에 직접 액세스하거나 Int 10h와 같은 BIOS API를 사용할 수 있다. 따라서, 일실시예에 따라, 시스템(100)은 BIOS API를 사용하는 소프트웨어는 물론 비디오 하드웨어로의 다이렉트 액세스를 호출하는 소프트웨어 모두를 어드레싱한다.
도 2에서, 메모리(12)의 어드레스 맵이 PC/AT 구조에 따라 도시되어 있다. 메모리(12)의 제1 640K는 베이스 메모리(50)로 불린다. 베이스 메모리(50)에 대한 어드레싱은 10개의 64K 유닛으로 도시되어 있다. PC/AT 구조에서, 예를 들어, 바닥 64K(유닛 52)는 구성 정보를 기억하는 것은 물론 BIOS 인터럽트에 대한 어드레스를 기억하기 위해 예약되어 있다.
바로 베이스 메모리 부분(50)을 이어, 비디오 메모리 부분(60)이 A0000h 로부터 BFFFFh 까지 어드레싱되어 있다. 비디오 메모리(60)의 일부는 비디오 버퍼 또는 스크린 메모리를 위해 할당되어 있다. 구성에 따라, 프로세서에 기초한 시스템은 보통 32K, 64K, 또는 128K인 비디오 메모리(60)를 포함한다. 보통 스크린 메모리는 어드레스 B8000h 로부터 BFFFFh 까지 어드레싱되어 있다.
비디오 메모리(60)에 인접하여, 메모리(12)의 128K 부분이 옵션 롬 메모리(54)로서 어드레싱되어 있다. 이와 마찬가지로, 메모리(12)의 일부는 시스템 롬 메모리(56)로서 어드레싱되어 있다. 보통, BIOS(16)는 시스템 롬 메모리(56)의 일부이다. 상부 1 메가바이트로 어드레싱된 메모리는 확장 메모리(58)로 알려져 있다. 확장 메모리(58)에는 시스템내의 모든 잔여 메모리가 포함되어 있다.
일실시예에서, BIOS(16)는 메모리(12)의 일부를 가상 비디오 버퍼(14)로서 할당한다. 가상 비디오 버퍼(14)는 확장 메모리(58) 또는 베이스 메모리(50)의 일부로서 어드레싱될 수 있다. 대안으로, 임의의 사용되지 않는 시스템 롬 어드레스 스페이스(56) 또는 옵션 롬 어드레스 스페이스(54)가 BIOS(16)에 의해 가상 비디오 버퍼(14)로서 할당될 수 있다.
헤드리스 시스템(10)에서 실행되고 있는 프로그램이 Int 10h 펑션 또는 다른 API를 호출함으로써 존재하지 않는 비디오 버퍼에 액세스하는 경우에, 일실시예에 따라, BIOS(16)는 그러한 액세스를 가상 비디오 버퍼(14)에 루팅한다. 일실시예에 따른 BIOS(16)의 동작이 도 3의 순서도에 설명되어 있다.
PC/AT 구조에 따라, 비디오 서브시스템은 복수의 상이한 비디오 모드중 하나에서 동작할 수 있다. 비디오 모드의 선택은 비디오 버퍼, 이 경우에는, 가상 비디오 버퍼(14)의 콘텐츠가 어떻게 디스플레이되는 지에 영향을 주게 된다. 따라서, 일실시예에서, BIOS(16)는 가상 비디오 버퍼(14)로의 모든 액세스를 위해 비디오 모드 쓰리를 선택한다. 비디오 모드 쓰리는 초기화 동안 BIOS(16) 내의 Int 10h 펑션 호출을 호출함으로써 설정될 수 있다.
일실시예에서, BIOS(16)는 도 1에 도시한 바와 같이, 메모리(12)의 일부를 가상 비디오 버퍼(14)로서 할당한다(블록 202). 일실시예에서, 가상 비디오 버퍼(14)의 크기는 디스플레이 정보를 기억하기 위해 필요한 바이트의 수를 계산함으로써 결정된다. 예를 들어, 비디오 모드 쓰리에서, 스크린은 80 열 및 24 행을 가지고 있고, 페이지 당 2개의 바이트가 사용된다. 따라서, 적어도 4000 바이트의 가상 비디오 버퍼(14)는 디스플레이를 위해 의도된 데이터를 충분히 기억할 수 있는데, 예를 들어, 헤드리스 시스템(10)의 스크린 메모리로서 동작할 수 있다.
그다음, 가상 비디오 버퍼(14)는 초기화된다(블록 204). 일실시예에서, 가상 비디오 버퍼(14)의 모든 엔트리는 BIOS(16)에 의해 "블랭크"로서 초기화된다. BIOS(16)는 또한 비디오 구성 파라미터를 검색한다(블록 206). 도 2에서, 헤드리스 시스템(10)에 대한 구성 정보는 시스템 메모리(12)의 제1 64K 블록(52)에 기억 된다. (PC/AT 시스템에서, 예를 들어 구성 정보는 40:XX에 어드레싱된다. )
비디오 서브시스템에 관련된 구성 파라미터는 마찬가지로 구성 데이터 블록(52)에 기억된다. 이러한 파라미터는 커서 크기, 커서 위치, 페이지 번호등을 포함할 수 있다. 일단, BIOS(16)가 비디오 구성 파라미터를 검색하면, BIOS(16)는 이러한 구성 파라미터로 가상 비디오 버퍼(14)를 갱신한다(블록 208).
초기화 동안에, BIOS(16)는 운영 체제에 컨트롤을 넘기기 전에 옵션 롬 프로그램, 구성 유틸리티, 또는 다른 소프트웨어를 실행할 수 있다. BIOS(16)는 소프트웨어 프로그램에 의해 Int 10h 펑션의 호출과 같은 비디오 API로의 액세스를 모니터링할 수 있다(판정 블록 210). BIOS API가 호출되면, BIOS(16)는 상기 호출을 인터셉팅하여, 존재하지 않는 비디오 버퍼가 아닌 가상 비디오 버퍼(14)가 액세스되는 치환 API 호출을 실행할 수 있다(블록 212). 커서 위치, 페이지 번호등과 같은 관련된 비디오 구성 파라미터가 또한 갱신될 수 있다(블록 214).
일실시예에서, BIOS(16)는 서비스 불가능한 API 요구를 무시한다. 예를 들면, 비디오 모드의 변경, 스크린상의 화소의 드로잉, 및 폰트 테이블의 갱신에 대한 호출이 포함된다.
다시 도 1에서, 리모트 콘솔(30)의 콘솔 리디렉션 소프트웨어(36)는 헤드리스 시스템(10)의 가상 비디오 버퍼(14)의 콘텐츠를 검색할 수 있다. 그다음, 이 콘텐츠는 디스플레이(34)에 나타내기 위해 리모트 콘솔(30)의 비디오 버퍼(32)내에 기억될 수 있다. 이러한 방식으로, 헤드리스 시스템(10)에서 실행되는 소프트웨어에 의해 디스플레이되기로 의도된 임의의 정보는 대신 리모트 콘솔(30)의 디스플레 이(34)로부터 볼 수 있다. 또한, 리모트 콘솔(30)의 키보드(38)로의 입력은 헤드리스 시스템(10)에 의해 서버(10)에 연결된 키보드에 의해 입력되는 것처럼 수신될 수 있다.
따라서, 디스플레이(34)상에 헤드리스 시스템(10)과 관련된 정보의 스크린을 수신하는 즉시, 리모트 콘솔(30)에서의 사용자는 키보드(38)를 사용하여 스크린 정보에 응답할 수 있다. 그다음, 이러한 키스트로크는 이전에 알려진 콘솔 리디렉션의 구현에 따라 헤드리스 시스템(10)에 의해 수신될 수 있다. 따라서, 시스템(100)은 헤드리스 시스템(10)과 원격 통신하는 완전한 대화식 메카니즘을 제공한다.
도 3에서, BIOS(16)는 BIOS API(Int 10h 펑션)가 메모리(12)내의 가상 비디오 버퍼(14)로 재루팅될 수 있도록 한다. 그러나, 일부 소프트웨어 프로그램은 비디오 메모리에 직접 액세스한다. 이러한 프로그램을 위해 추가 안전 수단이 필요하다.
예를 들어, BIOS 비디오 API(Int 10h)는 "문자 기록"으로 불리는 펑션 0Eh 를 포함한다. 입력 파라미터로서, 펑션은 기록되는 문자의 아스키 코드 및 상기 문자의 포그라운드 컬러를 수용한다. 호출시에, 문자는 현 스크린 페이지내의 커서의 현 위치에 기록된다. (커서의 현 위치 및 현 스크린 페이지는 모두 메모리의 구성 데이터 부분(도 2의 유닛 52)내에 기억된다. )
펑션이 소프트웨어에 의해 호출되는 경우에, BIOS(16)는 상술된 바와 같이, 존재하지 않는 비디오 버퍼에 액세스를 적절하게 재루팅한다. 그러나, 스크린상의 특정 위치에 문자를 기록하기 위해 Int 10h, 펑션 0Eh를 호출하는 대신에, 소프트웨어는 비디오 메모리 블록(60)에 직접 기록할 수 있다(도 2 참조). 이러한 동작이 발생되는 동안에, 도 3에 도시된 수정된 BIOS(16)는 동작하지 않는다.
따라서, 일실시예에 따라, BIOS(16)는 표준 비디오 메모리를 임의의 다른 로케이션에 "맵핑"하기 위해 헤드리스 시스템(10)의 하드웨어를 구성할 수 있다. 다른 말로 하면, A0000h 부터 BFFFFh 까지의 어드레스는 존재하지 않는 비디오 하드웨어 대신에 메모리(12)에 맵핑될 수 있다.
도 1에서, BIOS(16)는 메모리(12)내에 기억된 어드레스 변환 테이블(18)에 연결되어 있다. 일실시예에서, 어드레스 변환 테이블(18)은 메모리(120)의 각각의 부분을 맵핑하기 위한 엔트리를 포함한다. 헤드리스 시스템(10)의 초기화 동안에, BIOS(16)는 어드레스 변환 테이블(18)을 검색한다. 어드레스 변환 테이블(18)을 사용하여, BIOS(16)는 헤드리스 시스템(10)의 모든 메모리(12)를 맵핑할 수 있다.
일실시예에서, 어드레스 변환 테이블(18)내의 엔트리는 비디오 버퍼 영역을 제외한 모든 메모리 맵핑에 대한 일치 맵핑(입력 어드레스 및 출력 어드레스가 동일하다)를 사용한다. API 및 논-API를 사용하는 비디오 버퍼 영역으로의 액세스 또는 비디오 버퍼 영역(A0000h-BFFFFh)으로의 직접적인 액세스 모두를 지원하기 위해, 어드레스 변환 테이블(18)은 2개의 어드레스 영역을 가상 비디오 버퍼(16)에 맵핑한다.
가상 비디오 버퍼(16)의 이중 어드레싱이 도 4에 도시되어 있다. 프로그램(80a)은 존재하지 않는 비디오 버퍼에 액세스하기 위해 API 호출을 실행할 수 있다(블록 82). INT 10h 펑션 또는 다른 인터럽트와 같은 API는 비디오 버퍼 영역, A0000h - BFFFFh 이외의 어드레스 X로 도시된 임의의 어드레스에서 가상 비디오 버퍼(16)를 어드레싱하는 것으로 알려져 있다.
제2 프로그램(80b)은 어드레스 AXXXXh에 기록하는 것과 같이, 존재하지 않는 비디오 버퍼를 직접 어드레싱한다(블록 84). 어드레스 변환 테이블(18)은 예를 들어, 비디오 버퍼 영역, A0000h - BFFFFh를 레귤러 메모리의 일부일 수 있는 가상 비디오 버퍼(16)에 맵핑한다. 그럼에도 불구하고, 2개의 상이한 어드레스를 사용하여 어드레싱된 가상 비디오 버퍼(16)는 프로그램(80a 및 80b)에 의해 적합하게 액세스된다.
구성 유틸리티 또는 옵션 롬내의 기억된 프로그램과 같은 소프트웨어가, 존재하지 않는 비디오 버퍼에 기록할 때, 하드웨어는 이러한 기록을 다른 어드레스에 리디렉팅시킨다. 일실시예에서, 데이터가 리디렉팅되는 어드레스는 가상 비디오 버퍼(14)가 위치된 어드레스이다. 다른 실시예에서, 별개의 가상 비디오 버퍼가 사용된다. 따라서, 하나의 가상 비디오 버퍼(14)가 API 호출을 호출하는 소프트웨어를 위해 사용되는 반면에, 제2 가상 비디오 버퍼는 비디오 메모리(60)에 직접 액세스하는 소프트웨어를 위해 사용된다.
도 5에서, 블록도는 일실시예에 따른 시스템(100)의 구성을 설명한다. 도 1에서와 같이, 헤드리스 서버(10) 및 리모트 콘솔(30)은 네트워크(20)에 의해 서로 연결되어 있다.
헤드리스 시스템(10)은 호스트 버스(106)에 연결된 프로세서(102) 및 메모리(12)를 포함한다. 프로세서(102)는 마이크로프로세서, 마이크로컨트롤러, 또는 임의의 적합한 컨트롤 디바이스일 수 있다. 메모리(12)는 시스템(10)의 동작 동안에 데이터 및 프로그램을 기억하는 스태틱 램(SRAM), D램(DRAM), 또는 다른 휘발성 매체일 수 있다.
또한, 호스트 버스(106)에, 제2 버스(110)에 연결하기 위한 브리지(108)가 연결되어 있다. 호스트 버스(106)는 또한 BIOS(16)가 로드되어 있는 플래시 메모리(17)에 연결되어 있다. 대안으로, 플래시 메모리(17)는 브리지(108)에 연결될 수 있다.
헤드리스 시스템(10)은 네트워크 인터페이스 카드(NIC; 120)를 사용하여 네트워크(20)에 연결되어 있다. 대안으로, 네트워크(20)는 모뎀(도시되지 않음)을 사용하여 액세스될 수 있거나 무선 접속으로 액세스될 수 있다.
리모트 콘솔(30)에서, 프로세서(130) 및 메모리(132)는 또한 호스트 버스(128)에 연결되어 있다. 메모리는 헤드리스 시스템(10)에 액세스하는 콘솔 리디렉션 소프트웨어(36)를 기억할 수 있다. 브리지(124)는 호스트 버스(128)를 제2 버스(122)에 연결한다. 리모트 콘솔(30)은 네트워크(20)에 연결하기 위해 NIC(120)를 포함한다.
일실시예에서, 브리지(124)는 비디오 버퍼(32)가 상주하는 VGA 컨트롤러와 같은 비디오 컨트롤러(126), 키보드(38)를 지원할 수 있는 다기능 디바이스이다. VGA 컨트롤러(126)는 상술된 실시예에 따라 헤드리스 시스템(10)에 관한 정보를 볼 수 있는 디스플레이(34)에 연결되어 있다.
따라서, 여기에 설명된 실시예에 따라, 아무런 비디오 버퍼를 포함하지 않는 리모트, 헤드리스 시스템에 액세스하기 위해 콘솔 리디렉션이 실행될 수 있다. 비디오 컨트롤러를 제거함으로써 헤드리스 시스템은 보다 싸고 추가 애드 인 카드를 지원할 수 있다. 직접 또는 BIOS API를 사용하는, 존재하지 않는 비디오 하드웨어로의 액세스는 리모트 콘솔에 검색되기 전에 가상 비디오 버퍼에 리디렉팅된다.
본 발명이 제한된 수의 실시예에 대하여 설명되었지만, 당업자는 이로부터 수많은 수정 및 변형을 이해할 것이다. 첨부된 청구항은 본 발명의 정신 및 범위내에 있는 이러한 모든 수정 및 변형을 포함하도록 의도되었다.
Claims (19)
- 디스플레이 없는 시스템에 있어서,가상 버퍼를 포함하는 기억 로케이션; 및프로그램으로서, 실행시에,어드레스에 액세스하기 위한 요구가 상기 기억 로케이션에 맵핑되었는지를 결정하고,상기 어드레스가 상기 기억 로케이션에 맵핑되지 않았다면, 상기 요구를 상기 가상 버퍼에 제2 시스템상에 디스플레이하기 위해 리디렉팅하는 상기 프로그램;을 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 프로세서를 더 포함하고, 상기 프로그램은 상기 시스템이 파워 온될 때 상기 프로세서에 의해 실행되는 것을 특징으로 하는 시스템.
- 제2항에 있어서, 상기 프로그램은 기본 입출력 시스템 프로그램인 것을 특징으로 하는 시스템.
- 제2항에 있어서, 상기 제2 시스템은디스플레이; 및프로그램으로서, 실행시에,상기 시스템을 식별하고,상기 시스템으로부터 상기 가상 버퍼내에 기억된 데이터를 검색하고, 그리고상기 데이터를 상기 디스플레이에 전송하는 상기 프로그램;을 포함하는 것을 특징으로 하는 시스템.
- 제4항에 있어서, 상기 제2 시스템은 네트워크에 의해 상기 시스템에 연결되어 있는 것을 특징으로 하는 시스템.
- 가상 버퍼를 포함하는 헤드리스 시스템으로의 접속부; 및프로그램으로서, 실행시에,상기 헤드리스 시스템을 식별하고,상기 가상 버퍼내에 기억된 데이터를 검색하고, 그리고상기 데이터를 디스플레이에 전송하는 상기 프로그램;을 포함하는 것을 특징으로 하는 시스템.
- 제6항에 있어서, 상기 헤드레스 시스템은 비디오 버퍼를 포함하지 않은 것을 특징으로 하는 시스템.
- 제7항에 있어서, 상기 헤드리스 시스템은 네트워크에 의해 상기 시스템에 연결되어 있는 것을 특징으로 하는 시스템.
- 헤드리스 프로세서에 기초한 시스템내의 제1 기억 로케이션에 액세스하기 위한 요구를 수신하는 단계;상기 제1 기억 로케이션 대신에 제2 가상 기억 로케이션에 액세스하는 단계; 및상기 제2 가상 기억 로케이션으로부터 제2 프로세서에 기초한 시스템으로 데이터를 디스플레이를 위해 전송하는 단계;를 포함하는 것을 특징으로 하는 방법.
- 제9항에 있어서, 상기 제2 프로세서에 기초한 시스템상의 디스플레이에 상기 데이터를 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 삭제
- 제1 프로세서에 기초한 시스템을 위한 방법에 있어서,제2 헤드리스 프로세서에 기초한 시스템상의 활동을 모니터링하는 단계; 및상기 제1 프로세서에 기초한 시스템상에 디스플레이하기 위해 상기 제2 헤드리스 프로세서에 기초한 시스템상의 가상 기억 로케이션으로부터 데이터를 검색하는 단계;를 포함하는 것을 특징으로 하는 방법.
- 제12항에 있어서, 상기 제2 헤드리스 프로세서에 기초한 시스템상의 활동을 모니터링하는 단계는 상기 기억 로케이션으로의 기록을 모니터링하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제12항에 있어서,상기 제1 프로세서에 기초한 시스템상의 디스플레이에 상기 데이터를 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 실행시에, 헤드리스 프로세서에 기초한 시스템이상기 헤드리스 프로세서에 기초한 시스템내의 제1 기억 로케이션에 액세스하기 위한 요구를 수신하도록 하고,제2 가상 기억 로케이션에 액세스하도록 하고, 그리고상기 제2 가상 기억 로케이션으로부터 제2 프로세서에 기초한 시스템으로 데이터를 디스플레이를 위해 전송하도록 하는 소프트웨어 프로그램을 기억하는 매체를 포함하는 것을 특징으로 하는 아티클.
- 제15항에 있어서, 실행시에, 헤드리스 프로세서에 기초한 시스템이상기 제2 프로세서에 기초한 시스템상의 디스플레이에 상기 데이터를 전송하도록 하는 소프트웨어 프로그램을 더 기억하는 매체를 포함하는 것을 특징으로 하는 아티클.
- 제15항에 있어서, 실행시에, 헤드리스 프로세서에 기초한 시스템이메모리의 어드레스를 수신하도록 하고, 그리고상기 어드레스에 맵핑되는 메모리의 일부를 식별하도록 하는 소프트웨어 프로그램을 더 기억하는 매체를 포함하는 것을 특징으로 하는 아티클.
- 실행시에, 제1 프로세서에 기초한 시스템이제2 헤드리스 프로세서에 기초한 시스템상의 활동을 모니터링하도록 하고, 그리고상기 제1 프로세서에 기초한 시스템상에 디스플레이하기 위해 상기 제2 헤드리스 프로세서에 기초한 시스템상의 가상 기억 로케이션으로부터 데이터를 검색하도록 하는 소프트웨어 프로그램을 기억하는 매체를 포함하는 것을 특징으로 하는 아티클.
- 제18항에 있어서, 실행시에, 제1 헤드리스 프로세서에 기초한 시스템이 상기 데이터를 디스플레이에 전송하도록 하는 소프트웨어 프로그램을 더 기억하는 매체를 포함하는 것을 특징으로 하는 아티클.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/634,156 US6721868B1 (en) | 2000-08-09 | 2000-08-09 | Redirecting memory accesses for headless systems |
US09/634,156 | 2000-08-09 | ||
PCT/US2001/023720 WO2002014999A1 (en) | 2000-08-09 | 2001-07-26 | Redirecting memory accesses for headless systems |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030031964A KR20030031964A (ko) | 2003-04-23 |
KR100679524B1 true KR100679524B1 (ko) | 2007-02-07 |
Family
ID=24542646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037001715A KR100679524B1 (ko) | 2000-08-09 | 2001-07-26 | 헤드리스 시스템을 위한 메모리 액세스 리디렉팅 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6721868B1 (ko) |
EP (1) | EP1307811A1 (ko) |
JP (1) | JP2004506976A (ko) |
KR (1) | KR100679524B1 (ko) |
CN (1) | CN1468395B (ko) |
AU (1) | AU2001283013A1 (ko) |
WO (1) | WO2002014999A1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124226B2 (en) * | 2001-01-30 | 2006-10-17 | Intel Corporation | Method or apparatus for establishing a plug and play (PnP) communication channel via an abstraction layer interface |
GB0104836D0 (en) * | 2001-02-27 | 2001-04-18 | Ccc Network Systems Group Ltd | Improvements relating to server systems |
US20040041832A1 (en) * | 2002-08-28 | 2004-03-04 | Nguyen Tuyet-Huong Thi | Method and system for displaying information at a remote display device |
US20040128493A1 (en) * | 2002-12-27 | 2004-07-01 | Zimmer Vincent J. | Methods and apparatus for providing a firmware defined radio |
US7578957B2 (en) | 2002-12-30 | 2009-08-25 | E. I. Du Pont De Nemours And Company | Process of making staple fibers |
US20060031596A1 (en) * | 2004-08-05 | 2006-02-09 | International Business Machines Corporation | Method and apparatus for providing an alternate route to system memory |
US7868896B1 (en) * | 2005-04-12 | 2011-01-11 | American Megatrends, Inc. | Method, apparatus, and computer-readable medium for utilizing an alternate video buffer for console redirection in a headless computer system |
US8004530B2 (en) * | 2005-10-28 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Video controller switching system and method |
US7779505B2 (en) * | 2007-03-09 | 2010-08-24 | Bissell Homecare, Inc. | Wet/dry vacuum cleaner |
US9413828B2 (en) * | 2008-07-01 | 2016-08-09 | Hewlett Packard Enterprise Development Lp | Virtualizing a video controller |
US7984250B2 (en) * | 2008-12-31 | 2011-07-19 | Intel Corporation | Dynamic updating of thresholds in accordance with operating conditons |
CN101551756B (zh) * | 2009-03-31 | 2012-02-15 | 成都市华为赛门铁克科技有限公司 | 基于操作系统层的虚拟方法及虚拟装置 |
US8595386B2 (en) * | 2009-08-03 | 2013-11-26 | Advanced Micro Devices, Inc. | Software controlled redirection of configuration address spaces |
TW201113805A (en) * | 2009-10-01 | 2011-04-16 | Inventec Corp | Method for displaying strings of basic input output system |
US9208112B1 (en) * | 2010-04-22 | 2015-12-08 | American Megatrends, Inc. | Permanent allocation of a large host memory |
WO2015069630A1 (en) * | 2013-11-05 | 2015-05-14 | Utc Fire And Security Americas Corporation, Inc. | Drawing operation replay in memory |
US9690612B2 (en) * | 2014-12-15 | 2017-06-27 | Vmware, Inc. | Dynamically managing a serial port interface of virtualization software on host device wherein execution is performed not during boot sequence |
US10013387B2 (en) | 2015-06-11 | 2018-07-03 | Cisco Technology, Inc. | Method or apparatus for flexible firmware image management in microserver |
US10255180B2 (en) * | 2015-12-11 | 2019-04-09 | Netapp, Inc. | Server-based persistence management in user space |
WO2017218154A1 (en) * | 2016-06-17 | 2017-12-21 | MobileIron, Inc. | Leveraging and extending mobile operating system mdm protocol |
US10346177B2 (en) | 2016-12-14 | 2019-07-09 | Intel Corporation | Boot process with parallel memory initialization |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940024696A (ko) * | 1993-04-20 | 1994-11-18 | 윌리암 티. 엘리스 | 재기록 가능한 광디스크상에 정보를 기록하는 방법 및 시스템과 광학 라이브러리 시스템 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526503A (en) * | 1993-10-06 | 1996-06-11 | Ast Research, Inc. | Virtual addressing buffer circuit |
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US5915265A (en) | 1995-12-22 | 1999-06-22 | Intel Corporation | Method and apparatus for dynamically allocating and resizing the dedicated memory in a shared memory buffer architecture system |
US5878248A (en) | 1996-06-11 | 1999-03-02 | Data General Corporation | Device access controller for virtual video/keyboard/mouse input/output for remote system management and maintenance |
US6192455B1 (en) * | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
-
2000
- 2000-08-09 US US09/634,156 patent/US6721868B1/en not_active Expired - Lifetime
-
2001
- 2001-07-26 CN CN018166970A patent/CN1468395B/zh not_active Expired - Fee Related
- 2001-07-26 KR KR1020037001715A patent/KR100679524B1/ko not_active IP Right Cessation
- 2001-07-26 EP EP01961772A patent/EP1307811A1/en not_active Withdrawn
- 2001-07-26 AU AU2001283013A patent/AU2001283013A1/en not_active Abandoned
- 2001-07-26 JP JP2002520063A patent/JP2004506976A/ja active Pending
- 2001-07-26 WO PCT/US2001/023720 patent/WO2002014999A1/en not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940024696A (ko) * | 1993-04-20 | 1994-11-18 | 윌리암 티. 엘리스 | 재기록 가능한 광디스크상에 정보를 기록하는 방법 및 시스템과 광학 라이브러리 시스템 |
Non-Patent Citations (1)
Title |
---|
1019940024696 |
Also Published As
Publication number | Publication date |
---|---|
KR20030031964A (ko) | 2003-04-23 |
CN1468395B (zh) | 2010-05-12 |
WO2002014999A1 (en) | 2002-02-21 |
EP1307811A1 (en) | 2003-05-07 |
JP2004506976A (ja) | 2004-03-04 |
AU2001283013A1 (en) | 2002-02-25 |
CN1468395A (zh) | 2004-01-14 |
US6721868B1 (en) | 2004-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100679524B1 (ko) | 헤드리스 시스템을 위한 메모리 액세스 리디렉팅 | |
US7746351B2 (en) | Systems and methods for updating a frame buffer based on arbitrary graphics calls | |
US7673112B2 (en) | Volume management system and method | |
JP4810548B2 (ja) | サーバ装置、更新画像検出方法およびプログラム | |
US6289432B1 (en) | Sharing segments of storage by enabling the sharing of page tables | |
JP4663878B2 (ja) | 記憶媒体内のファイルを管理する方法および装置 | |
US5193174A (en) | System for automatically redirecting information to alternate system console in response to the comparison of present and default system configuration in personal computer system | |
US5664139A (en) | Method and a computer system for allocating and mapping frame buffers into expanded memory | |
US9811465B2 (en) | Computer system and cache control method | |
US20140013051A1 (en) | Data Storage Method and Data Storage Apparatus | |
US6760784B1 (en) | Generic virtual device driver | |
US7839411B2 (en) | Virtualization of graphics resources | |
EP0690385A1 (en) | Method and apparatus for managing memory in a computer system | |
EP0338416A2 (en) | Virtual display adapter | |
US6145030A (en) | System for managing input/output address accesses at a bridge/memory controller | |
JP5113537B2 (ja) | 計算機システム、管理計算機及びデータ管理方法 | |
US20120185953A1 (en) | Method and system for designating and handling confidential memory allocations | |
TWI273431B (en) | Apparatus for the plurality of hosts to share a collection of memory sectors, and method and program storage device for managing memory sectors used by a host | |
US20060152518A1 (en) | Virtualization of graphics resources | |
EP1038229A1 (en) | A method of obtaining a buffer of contiguous memory and building a page table | |
US6961840B2 (en) | Method and apparatus for managing a dynamic alias page table | |
US6877098B1 (en) | System and method for directing access from a framebuffer to a virtual framebuffer when the framebuffer is powered off in a power management mode | |
US7979601B2 (en) | External direct memory access of embedded controller memory | |
JPH01210990A (ja) | 表示装置 | |
US6615286B1 (en) | Method and apparatus for updating device driver control data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130104 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140103 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20141230 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |