KR20090118941A - 복수의 부트-가능 장치들 간의 부트 교섭 - Google Patents

복수의 부트-가능 장치들 간의 부트 교섭 Download PDF

Info

Publication number
KR20090118941A
KR20090118941A KR1020097017824A KR20097017824A KR20090118941A KR 20090118941 A KR20090118941 A KR 20090118941A KR 1020097017824 A KR1020097017824 A KR 1020097017824A KR 20097017824 A KR20097017824 A KR 20097017824A KR 20090118941 A KR20090118941 A KR 20090118941A
Authority
KR
South Korea
Prior art keywords
boot image
dock
boot
computing device
mobile device
Prior art date
Application number
KR1020097017824A
Other languages
English (en)
Other versions
KR101251710B1 (ko
Inventor
블라디미르 사도브스키
휴 에이. 티간
로버트 해스번
로빈 에이. 알렉산더
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20090118941A publication Critical patent/KR20090118941A/ko
Application granted granted Critical
Publication of KR101251710B1 publication Critical patent/KR101251710B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

제1 장치는 제2 장치의 성능(capabilities)을 발견한다. 제1 장치는 제1 장치와 제2 장치 중 어느 것이 제어용 부트 이미지(boot image)를 실행하는지, 제1 장치 및 제2 장치의 성능에 적어도 일부 기초하여 결정한다. 제1 장치가 제어용 부트 이미지를 실행하는 것으로 결정되면, 제1 장치에 의해, 제1 부트 이미지를 실행하고, 제2 장치는 제1 부트 이미지에 대한 자원이 된다. 제2 장치가 제어용 부트 이미지를 실행하는 것으로 결정되면, 제1 장치는 이 제1 장치에 저장된 제2 부트 이미지를 제2 장치에 송신하고, 제1 장치는 제2 부트 이미지에 대한 자원이 된다.
부트 이미지, 퍼스널 컴퓨터, 모바일폰

Description

복수의 부트-가능 장치들 간의 부트 교섭{BOOT NEGOTIATION AMONG MULTIPLE BOOT-CAPABLE DEVICES}
모바일 장치는 종종 다른 컴퓨팅 장치에 접속된다. 통상적으로, 장치들 간의 관계는 이 장치들이 접속되기 전에 상정된다. 예를 들면, 사용자가 모바일폰을 퍼스널 컴퓨터에 접속하였을 때, 종종 이 퍼스널 컴퓨터는 모바일폰에 대한 호스트(host)로서 동작할 것이라 상정한다. 현행 시스템은 장치들의 기능에 기초하여 장치들의 역할을 교섭(negotiate)하지 않는다.
이하에, 독자에게 기본적인 이해를 제공하기 위한 본 개시물의 간단한 요약을 제시한다. 이 요약은 본 개시물의 방대한 개관이 아니며 본 발명의 핵심/중대한 요소들을 식별하거나 본 발명의 범위를 서술하는 것이 아니다. 이 요약의 유일한 목적은 본원에 개시된 몇 가지 개념을 이하 제시될 보다 상세한 설명의 도입부로서 간단한 형태로 제시하고자 하는 것이다.
본 발명의 실시예는 복수의 부트(boot)-가능 장치가 부트 교섭(boot negotiations)에 기초하여 제어용 부트 이미지를 실행시킬 장치를 결정할 수 있게 한다. 나머지 장치는 이 제어용 부트 이미지에 대한 자원으로서 작용할 수 있다. 부트 결정은 각 장치의 자원, 미리 정의된 정책들, 및/또는 사용자 상호작용(user interaction)에 기초할 수 있다.
많은 부수적인 특징들이, 첨부된 도면과 관련하여 고려되는 이하 상세한 설명을 참조하여 더 잘 이해될 것이기 때문에 보다 쉽게 이해될 것이다.
도 1은 본 발명의 실시예에 따른 모바일 장치에 접속된 도크(dock)의 블록도.
도 2는 본 발명의 실시예에 따른 모바일 장치의 블록도.
도 3은 본 발명의 실시예에 따른 부트 교섭(boot negotiation)을 수행하는 도크와 모바일 장치의 동작 및 로직(logic)을 나타내는 흐름도.
도 4는 본 발명의 실시예에 따른 도 3에서 계속되는 흐름도.
도 5는 본 발명의 실시예에 따른 버추얼 머신(virtual machine) 부트 이미지를 제공하는 모바일폰의 블록도.
도 6은 본 발명의 실시예에 따른 부트 교섭을 수행하는 랩톱과 모바일폰의 블록도.
도 7은 본 발명의 실시예에 따른 성능 보고표(capabilities reporting table).
도 8은 본 발명의 실시예에 따른 부트 교섭을 수행하는 모바일폰과 퍼스널 컴퓨터의 블록도.
도 9는 본 발명의 실시예를 구현하기 위한 예시적인 컴퓨팅 장치의 블록도.
첨부된 도면들에서 유사 부분에 대해서는 유사한 참조 부호를 이용한다.
첨부된 도면과 관련하여 이하 제공되는 상세한 설명은 본원의 예를 설명하고자 하는 것으로, 본원의 예가 구현되거나 이용될 수 있는 유일한 형태를 나타내고자 하는 것이 아니다. 이 설명은 예들의 기능 및 이 예들을 구현하거나 동작시키기 위한 단계들의 시퀀스를 설명한다. 그러나, 동일하거나 동등한 기능들 및 시퀀스(sequence)가 다른 예들에 의해 수행되는 경우도 있다.
이하의 설명 및 특허 청구범위에서, "연결된(coupled)"이라는 용어 및 그 파생어가 이용될 수 있다. 이 "연결된"은 2개 이상의 요소가 (물리적으로, 전기적으로, 자성에 의해서(magnetically), 광학적으로, 등)접촉하고 있음을 의미할 수 있다. "연결된"은 또한 2개 이상의 요소가 서로 접촉하지는 않지만, 서로 협력하거나 상호작용(interact)하고 있음(예컨데, 통신가능하게 연결됨)을 의미할 수도 있다.
도 1 및 이하의 설명은 본 발명의 실시예를 구현하는 데에 적합한 컴퓨팅 환경의 간단하고, 일반적인 설명을 제공하고자 하는 것이다. 도 1의 운영 환경은 적절한 운영 환경의 일례일 뿐이며 운영 환경의 이용이나 기능성의 범주에 대하여 제한을 하고자 하는 것이 아니다. 요구되는 사항은 아니지만, 본 발명의 실시예는 하나 이상의 컴퓨팅 장치에 의해 실행되는 "컴퓨터 판독가능 명령어"에 일반적으로 관련하여 기술될 것이다. 컴퓨터 판독가능 명령어는 컴퓨터 판독가능 매체를 통해 분산될 수 있다. 컴퓨터 판독가능 명령어는 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 함수, 객체, 애플리케이션 프로그래밍 인터페이스(APIs), 데이터 구조, 등과 같은 프로그램 모듈로서 구현될 수 있다. 통상적으로, 컴퓨터 판독가능 명령어의 기능성(functionality)은 다양한 환경에서 원할 경우 결합되거나 분산될 수 있다.
도 1은 접속(116)을 통해 모바일 장치(120)에 접속된 도크(dock; 102)를 도시한다. 본원에 이용되는, 도크란 모바일 장치(120)와 같은 모바일 장치에 접속될 수 있는 컴퓨팅 장치를 말한다. 본 발명의 실시예는 모바일 장치(120)에 저장된 부트 이미지로부터 부팅(boot)을 하는 도크의 능력(ability) 및 도크의 성능(capability)을 평가한다. 예를 들면, 도크(102)는 다른 컴퓨팅 장치로의 접속을 용이하게 하기 위해 모바일 장치 포트를 단지 모사한(replicate), 모바일 장치 크레들(cradle)과 같은, "덤(dumb)" 도크를 포함할 수 있다. 다른 예에서, 도크(102)는 자신의 전용 처리 유닛, 메모리, 저장소 등을 가지는 랩톱과 같은 "스마트(smart)" 도크를 포함할 수 있다.
도크(102)는 처리 유닛(104) 및 메모리(106)를 포함할 수 있다. 도크(102)는 또한 모바일 장치(120)로부터 데이터를 입/출력하기 위한 통신 접속(114)을 포함한다. 도크(102)는 또한 하드 디스크 드라이브(HDD) 또는 플래시(flash) 메모리 등의 저장소(108)를 포함할 수 있다.
도크(102)는 ROM, 플래시 메모리 등과 같은 비-휘발성 저장소(NVS; 110)를 포함할 수 있다. NVS(110)는 처리 유닛(104)에서의 실행을 위한 펌웨어(F/W; 112)를 저장할 수 있다. 일 실시예에서, 펌웨어(112)는 도크(102) 상에서의 운영 체제(OS) 로딩 및 실행 이전에 프리부트(preboot) 루틴을 위한 명령어를 포함한다. 펌웨어(112)는 또한 OS 런타임 중에 도크(102)의 장치들와 통신하기 위한 하위-레벨 입/출력 명령어를 포함할 수 있다. 펌웨어(112)는 또한 BIOS(Basic Input/Output System)을 말하는 것일 수 있다.
통상적인 구조에서, 컴퓨팅 장치의 초기화 및 구성을 일반적으로 프리부트 단계라고 칭한다. 프리부트 단계는 일반적으로 프로세서 리셋과 운영 체제(OS) 로더(loader)의 첫 번째 명령어 간에서 실행되는 펌웨어로서 정의된다. 프리부트 중에 실행되는 명령어는 종종 BIOS라 칭한다. 프리부트를 시작할 때, 시스템을 하드 디스크와 같은 매체로부터 로드오프되는 OS가 맡을 수 있는 지점까지 초기화하는 것은 펌웨어의 명령어에 달려있다. OS 로드가 개시되면 OS 런타임이라 일반적으로 칭하는 기간이 시작한다. OS 및/또는 애플리케이션을 구현하기 위한 명령어는 부트 이미지(boot image)라 칭할 수 있다.
OS 런타임 중에, BIOS는 컴퓨터 시스템의 소프트웨어와 하드웨어 컴포넌트 간의 인터페이스로서 기능할 수 있다. OS 레벨과 하드웨어 레벨 간의 운영 환경을 일반적으로 (종종 펌웨어 환경이라고 칭하는)BIOS라 칭한다. 또한, OS 활동은 OS가 ACPI(Advanced Configuration and Power Interface) 사양서에 정의된 슬립 상태(sleep state)와 같은 슬립 상태로 들어가는 경우 중지될 수 있다. BIOS는 OS를 슬립 상태로부터 웨이킹(waking)시키는 것에 관여한다.
모바일 장치(120)를 참조하면, 일 실시예에서, 모바일 장치(120)는 모바일폰, 미디어 플레이어, 등과 같은 프리 스탠딩(free standing) 컴퓨팅 장치를 포함할 수 있다. 다른 실시예에서, 모바일 장치(120)는 USB 플래시 드라이브, 메모리 카드, 스마트 카드 등과 같은 호스트-의존적인(host-dependent) 모바일 장치를 포함할 수 있다. 본원에서 사용된, "호스트-의존적인"이란 모바일 장치가 호스트에 연결되어 있지 않은 한 이용될 수 없는 모바일 장치를 말한다.
모바일 장치(120)는 저장소(126)에 연결된 컨트롤러(124)를 포함할 수 있따. 컨트롤러(124)는 저장소(126)에 대한 데이터 판독/기입을 관리할 뿐 아니라 다른 기능도 수행할 수 있다. 저장소(126)는 자기 디스크 드라이브, 광 드라이브, 플래시 메모리와 같은 비휘발성 저장소 등을 포함할 수 있다. 모바일 장치(120)는 또한 모바일 장치(120)를 다른 컴퓨팅 장치에 접속하기 위한 하나 이상의 통신 접속(122)들을 포함할 수 있다.
접속(116)은 도크(102)의 통신 접속(114)과 모바일 장치(120)의 통신 접속(122) 간의 유선 또는 무선 접속을 포함할 수 있다. 일 실시예에서, 도크(102)와 모바일 장치(120)는 사용자의 PAN(Personal Area Network)의 일부로서 서로 아주 근접하게 배치되어 있다. 접속(116)의 예로는 USB(유선 또는 무선), 파이어와이어(firewire)(IEEE 1394), 무선 주파수(예를 들면, 블루투스, Wi-Fi, 등), 적외선, 등이 있다.
도 2를 참조해 보면, 모바일 장치(120)의 실시예가 도시된다. 컨트롤러(124)는 처리 유닛(202) 및 비휘발성 저장소(NVS; 204)를 포함할 수 있다. 처리 유닛(202)은 32-비트 RISC(Reduced Instruction Set Computing) 프로세서와 같은 범용 프로세서를 포함할 수 있다. 단일의 처리 유닛(202)이 도시되었지만, 모바일 장치(120)의 실시예는 복수의 프로세서, 복수의 코어(Core) 등과 같은 복수의 처리 유닛을 포함할 수 있다. 일 실시예에서, 컨트롤러(124)는 암호화(cryptography), 디지털 권한 관리, 디지털 신호 처리 등과 같은 특수한 동작을 수행하기 위한 (도시되지 않은) 전용 회로를 포함할 수 있다.
일 실시예에서, NVS(204)는 처리 유닛(202)에 의해 실행될 수 있는 펌웨어(206)를 저장한다. 펌웨어(206)는 장치 부트 이미지를 포함할 수 있다. 장치 부트 이미지는 모바일 장치(120)에서 실행되기 위한 (실시간 운영 체제(RTOS)와 같은) 운영 체제, 하나 이상의 애플리케이션 등을 포함할 수 있다. 펌웨어(206)는 또한 본 발명의 실시예들을 실행하기 위한 명령어를 포함할 수 있다.
도 2의 실시예는 파티션(230)과 파티션(240)으로 나뉘어진 저장소(126)를 나타낸다. 이 설명으로부터 이득을 얻는 당업자는 저장소(126)가 3개 이상의 파티션을 가질 수 있음을 이해할 것이다. 파티션(230)은 장치 데이터(231)와 같은 모바일 장치(120)용 데이터 및/또는 명령어를 포함한다. 모바일 장치(120)는 소프트웨어를 원시적으로(natively) 또는 버추얼 머신에서 실행시킬 수 있다. 도크(102)와 같은 접속된 컴퓨팅 장치들에 의하여 파티션(230)으로의 액세스를 보호하는 데에 보안 조치들이 이용될 수 있다.
파티션(240)은 도크(102)와 같은 또 다른 컴퓨팅 장치에 의해 이용되기 위한 명령어 및/또는 데이터를 포함할 수 있다. 도 2는 부트 이미지(241, 242, 및 243)를 가지는 파티션(240)을 나타낸다. 부트 이미지는 컴퓨팅 장치 상에서 OS 및/또는 애플리케이션을 실행시키기 위한 명령어를 포함할 수 있다. 부트 이미지의 예 로는 마이크로소프트 윈도우즈® OS 및/또는 오피스 애플리케이션(Office applications), .NET 프레임워크 환경, 자바® 환경 등이 있다. 후술하는 바와 같이, 모바일 장치(120)는 부트 이미지를 도크(102) 상에서 실행하기 위하여 도크(102)로 송신할 수 있다. 일 실시예에서, 파티션(240)으로의 액세스는 신뢰되는 도크의 순환(circle)으로 제한될 수 있다.
도 3을 참조해 보면, 흐름도(300)는 본 발명의 실시예에 따른 부트 교섭을 수행하는 도크와 모바일 장치의 동작 및 로직을 나타낸다. 일 실시예에서, 흐름도(300)의 로직 중 적어도 일부는 모바일 장치(120)의 장치 OS에 의해 수행될 수 있다. 모바일 장치와 도크는 이들의 관계 또는 서로의 성능에 대한 가정 없이 서로에게 도달한다. 제어용 부트 이미지를 실행시키는 장치의 결정은 교섭이 완료될 때까지 행해지지 않는다.
본원에 사용된, "제어용 부트 이미지"란 다른 컴퓨팅 장치의 자원 중 적어도 일부를 관리할 수 있는 컴퓨팅 장치 상에서 실행되는 부트 이미지를 말한다. 예를 들면, 도크가 모바일 장치에 의해 제공되는 부트 이미지로부터 부팅되면, 도크는 (저장소와 같은) 이 모바일 장치의 자원을 사용할 수 있다. 모바일 장치가 제어용 부트 이미지(예를 들면, 모바일 장치 OS)를 실행시키는 경우, 모바일 장치는 인간의 모바일 장치로의 입/출력을 위한 키보드, 비디오 모니터, 및 마우스(KVM)와 같은 도크의 자원을 이용할 수 있다.
부트 교섭은 교섭 프로토콜을 이용하여 수행될 수 있다. 일 실시예에서, 교 섭 프로토콜은 잘 알려진 물리적 레벨 프로토콜 상에서 실행되는 로직 레벨을 포함한다. 교섭 프로토콜은 자원 및 이들의 성능 보고, 교섭 세션 보안, 장치로부터 도크로의 부트 이미지 송신 등과 같은 교섭 통신에 이용될 수 있다. 일 실시예에서, 모바일 장치와 도크 간의 부트 교섭은 (도 8과 관련하여 이하 더 기술될) 모바일 장치의 OS 와 도크의 BIOS 간에 일어난다.
흐름도(300)의 블록(302)에서 시작하여, 장치와 도크는 초기 접속을 한다. 예를 들면, 장치와 도크는 배선에 의해 물리적으로 접속될 수 있거나, 무선 접속을 위해 이들을 서로 물리적으로 가까이 가져올 수 있거나, 무선 접속이 인에이블링된다. 블록(302)에서, 장치와 도크는 초기 접속을 확립하는 데에 특정한 핸드셰이킹(handshaking)을 행할 수 있다. 일 실시예에서, 초기 접속을 하는 것은 모바일 장치와 도크 간의 보안된 접속을 확립하는 것을 포함한다.
장치는 판정 블록(304)으로 진행하여, 도크에게 본원에서 기술된 부트 교섭을 지원하는지를 판정하기 위한 질의를 한다. 일 실시예에서, 이 질의는 장치 및 도크 모두가 이해하고 있는 교섭 프로토콜을 이용하여 수행된다. 일 실시예에서, 도크 BIOS는 모바일 장치 OS와의 부트 교섭을 수행한다. 이런식으로, 부트 교섭은 도크 상에서 실행되는 OS를 필요로 하지 않고 도크의 프리부트 중에 수행될 수 있다. 도크 BIOS 부트 교섭 태스크는 접속된 모바일 장치의 발견, 통신(몇몇의 경우 보안 통신)의 확립, 및 도크의 성능 보고를 포함한다.
장치와 도크는 접속 시에 이들의 규칙들을 가정하지 않음을 유의한다. 일부 통신 시스템(예를 들면, USB)에서, 접속된 장치는 항상 다른 컴퓨팅 장치에 대한 장치(즉, 슬레이브(slave))가 된다고 가정될 수 있다. 마찬가지로, 랩톱 컴퓨터와 같은, 컴퓨팅 장치는 USB 장치에 접속될 때 호스트(즉, 마스터(master))가 되는 것이라 가정될 수 있다. 부트 교섭을 지원하기 위하여, 컴퓨팅 장치의 하드웨어 컴포넌트와 BIOS는 접속된 장치가 제어권을 가지게 한다. 본원의 실시예에서, 컴퓨팅 장치의 BIOS 및 하드웨어 통신(예를 들면, 칩셋(chipset))은 다른 컴퓨팅 장치에 접속할 때 이들의 역할(예를 들면, 마스터인지 슬레이브인지)에 대한 가정을 하지 않는다. 후술하는 바와 같이, 본 발명의 실시예는 악의있는 장치가 다른 컴퓨팅 장치의 보안을 위태롭게 하는 것을 막기 위한 보안 조치들을 포함할 수 있다.
판정 블록(304)에 대한 대답이 아니오라면, 로직은 블록(306)으로 진행한다. 블록(306)에서, 도크와 장치는 디폴트 가정을 이용하여 서로 상호작용할 것이다. 예를 들면, 장치가 슬레이브 장치로서 디폴트로 설정되면(defaulted), 장치는 교섭 없이 디폴트인 슬레이브 장치 역할을 맡을 것이다. 도크는 저장하고 있었던 디폴트 부트 이미지를 실행할 수 있다.
판정 블록(306)에 대한 대답이 예라면, 로직은 블록(308)으로 계속된다. 블록(308)에서, 장치와 도크는 서로 인증이 될 수 있다. 대안적인 실시예에서, 인증은 단방향일 수 있다. 예를 들면, 장치만이 도크를 인증하거나 도크만이 장치를 인증한다. 인증은 서명, 인증서, 또는 잘 알려진 인증 스킴을 이용하여 구현될 수 있다.
장치 및 도크는 블록(310)으로 계속하여, 성능 발견(discovery)을 수행한다. 일 실시예에서, 장치는 도크에게 상술한 교섭 프로토콜을 이용하여 그 자원 및 자 원 성능을 보고하기 위한 질의를 할 수 있다. 성능의 예로는 처리 성능(예를 들면, 프로세서 유형, 프로세서 속도, 등) 및 메모리 성능(예를 들면, 메모리 사이즈, 메모리 속도, 등)을 포함한다. 성능은 또한 임의의 저장 장치, 이들의 유형, 성능, 이용가능한 저장 공간, 파일 시스템 등을 포함할 수 있다. 성능은 또한 도크의 비디오 및/또는 오디오 성능을 포함할 수 있다. 성능은 또한 통신 접속 및 임의의 이러한 접속의 대역폭을 포함할 수 있다.
도 7을 참조해 보면, 본 발명의 실시예에 따른 기능 보고표(700)가 도시된다. 일 실시예에서, 도크 BIOS가 표(700)를 생성하고 교섭 프로토콜을 이용하여 표(700)를 모바일 장치에 송신한다. 모바일 장치는 도크로부터 수신된 표와 비교될 자신의 성능 보고표를 생성한다.
표(700)는 컴포넌트(702), 이 컴포넌트의 속성(704), 및 이들 속성의 값(706)에 대한 열을 포함한다. 예를 들면, 프로세서 하에서, 클록 스피드(clock speed), L2 캐시, 및 버스 스피드인 속성이 보고된다. 일 실시예에서, 표(700)의 정보는 도크와 모바일 장치 간의 자원 정보 전달을 위한 하나 이상의 스킴으로 조직화될 수 있다. 스킴(들)은 도크와 모바일 장치에 의해 이용되는 교섭 프로토콜의 일부일 수 있다.
블록(310) 이후에, 로직은 도크의 보고된 성능을 이용하여 도크가 장치에 저장된 부트 이미지와 호환되는지를 판정하기 위한 블록(312)으로 진행한다. 예를 들면, 도 1 및 도 2에서, 로직은 도크(102)가 모바일 장치(120)에 저장된 부트 이미지(241-243) 중 임의의 것을 실행시킬 수 있는지를 판정한다. 판정 블록(312)에 대한 대답이 아니오라면, 로직은 블록(314)으로 진행한다. 일 실시예에서, 부트 이미지 성능은 도크의 프로세서 스피드, 메모리 사이즈, 비디오 성능 등에 기초할 수 있다.
블록(314)에서, 장치는 제어용 부트 이미지를 실행할 수 있다. 일 실시예에서, 이미 실행되고 있는 모바일 장치 OS는 도크의 하드웨어 자원을 채택한다. 예를 들면, 도크가 HDD와 같은 저장 장치를 가진다면, 도크의 HDD는 모바일 장치 OS에 의해 액세스될 수 있다. 다른 예에서, 랩톱(즉, 도크)의 KVM이 모바일 장치와 상호작용하는 데에 이용될 수 있다.
판정 블록(312)에 대한 대답이 예라면, 로직은 블록(316)으로 진행한다. 블록(316)에서, 로직은 블록(318)에서의 부트 정책의 적용 이전에 모바일 장치 상에 저장된 부트 정책을 업데이트한다. 일 실시예에서, 모바일 장치는 마이크로소프트 윈도우즈® 업데이트와 같은 중앙 업데이트 사이트에 접촉한다. 모바일 장치는 자기 자신의 통신 접속 또는 도크 상의 통신 접속을 이용하여 업데이트에 대해 체크할 수 있다.
로직은 블록(318)으로 계속하여, 부트 정책을 적용한다. 정책은 모바일 장치로부터의 하나 이상의 호환성있는 부트 이미지를 가지는 도크를 부팅하는 것이 정책에 맞는 것인지를 판정한다. 정책은 사용자 및/또는 시스템 관리자에 의해 수정될 수 있다. 일 실시예에서, 정책은 장치에 저장된다. 다른 실시예에서, 도크에 저장된 정책이 부트 교섭 시에 장치로 전달된다. 장치 및 도크로부터의 정책은 결합하여 적용될 수 있다.
일 실시예에서, 제어용 부트 이미지를 도크가 실행시킬 것인지 또는 모바일 장치가 실행시킬 것인지 결정하기 위해 장치와 도크의 성능이 비교된다. 예를 들면, 정책은 더 빠른 프로세서를 가지는 컴퓨팅 장치가 항상 제어권을 가질 것을 지시한다. 다른 정책은 제어용 머신을 결정하는 데에 (프로세서 스피드, 메모리 사이즈, 대역폭 성능과 같은) 성능 범위를 분석할 수 있다. 예를 들면, 장치 및 도크에 대한 표(700)로부터의 정보는 각종 컴포넌트 및 이들의 속성 값에 점수(point)를 할당하는 식에 넣을 수 있다. 이 식에서, 몇몇의 컴포넌트 속성이 가중될 수 있다. 가장 높은 스코어를 가지는 컴퓨팅 장치(모바일 장치 또는 도크)가 제어용 부트 이미지를 실행시키는 컴퓨팅 장치로 결정된다.
다른 실시예에서, 정책은 제어용 부트 이미지를 도크가 실행시킬 것인지 또는 모바일 장치가 실행시킬 것인지 결정하기 위해 과거의 사용자 활동을 참조하는 것을 포함할 수 있다. 예를 들면, 도크가 장치 상의 부트 이미지로부터 이전에 부팅되었다면, 도크는 그 부트 이미지로부터 다시 부팅된다.
정책은 또한 복수의 호환되는 부트 이미지가 장치에 저장될 때로부터 도크가 부팅해야 할 부트 이미지를 결정하는 것을 포함할 수 있다. 일 실시예에서, 로직은 어떤 부트 이미지가 최상의 성능을 제공할지를 결정한다. 예를 들면, 도크의 프로세서 스피드 및 메모리 용량에 기초하여 최상의 성능을 제공할 부트 이미지가 선택될 수 있다.
대안적인 실시예에서, 모든 호환되는 부트 이미지가 사용자에게 디스플레이 된다. 사용자는 도크에 대하여 원하는 부트 이미지를 선택할 수 있다. 일 실시예에서, 사용자의 부트 이미지 선택은 후술될 판정 블록(320)에서 일어날 수 있다.
판정 블록(320)에서, 로직은 사용자가 제어용 부트 이미지를 도크가 실행시킬 것인지 또는 장치가 실행시킬 것인지 대한 결정을 확인했는지를 판정한다. 일 실시예에서, 사용자가 블록(318)에서 이루어진 결정을 확인할 수 있게 하기 위해 사용자 인터페이스가 제시된다. 사용자 인터페이스는 장치에, 도크에, 또는 둘 다에 디스플레이될 수 있다. 일 실시예에서, 정책이 도크가 모바일 장치로부터의 부트 이미지를 실행할 것이라 판정한다면, 장치는 도크가 부팅되는데 이용할 부트 이미지의 이름을 디스플레이할 수 있다. 또 다른 실시예에서, 복수의 부트 이미지가 도크와 호환된다면, 복수의 호환되는 부트 이미지가 디스플레이될 것이며 사용자는 도크에 대한 원하는 부트 이미지를 선택할 수 있다.
블록(320)에서, 사용자가 도크 부팅을 확인하지 않았다면, 로직은 블록(314)으로 진행된다. 판정 블록(320)에서, 사용자가 도크 부팅을 확인했다면, 로직은 블록(322)으로 계속된다.
대안적인 실시예에서는, 판정 블록(320)에서 설명한 사용자 확인이 이용되지 않는다. 이 특정 실시예에서, 교섭 프로세스는 사용자로부터 숨겨질 것이다. 예를 들면, 사용자는 모바일폰을 퍼스널 컴퓨터에 접속하고 교섭을 개시하기 위하여 모바일폰의 "교섭" 버튼을 누를 수 있다. 교섭 프로세스가 수행된다. 그 다음 사용자는 퍼스널 컴퓨터의 KVM을 사용하여 자신의 업무를 수행할 수 있다. 사용자는 어떤 컴퓨팅 장치가 제어용 부트 이미지를 실행시키는지를 알 필요가 없다. 부트 교섭은 사용자에게 투명(transparent)하게 일어날 수 있다.
도 4를 참조해 보면, 블록(322)에서, 장치는 실행을 위해 부트 이미지를 도크에 송신하기 전에 부트 이미지를 업데이트한다. 일 실시예에서, 장치는 임의의 업데이트에 대한 체크를 위해 자기 자신의 통신 접속을 이용하여 인터넷과 같은 네트워크에 접속한다. 다른 실시예에서, 장치는 도크의 통신 접속을 이용하여 부트 이미지의 임의의 업데이트에 대한 체크를 할 수 있다.
블록(322) 다음에, 로직은 모바일 장치가 부트 이미지를 도크에 송신하는 블록(324)으로 계속된다. 그 다음, 블록(326)에서, 도크는 이 부트 이미지로부터 부팅된다. 일단 도크가 부트 이미지를 이용하여 부팅되면, 장치는 도크에 대하여 이용가능하다. 예를 들면, 랩톱(도크)이 접속된 모바일폰(장치)에 저장된 부트 이미지로부터 부팅된 후에, 랩톱은 모바일폰의 자원을 관리할 수 있다. 예를 들면, 모바일폰의 저장 장치가 도크에 의해 이용될 수 있다. 도크에 의한, 장치 상에서, 파티션(230) 등에 저장된 일부 데이터로의 액세스를 제한하는 데에 보안 조치가 이용될 수 있다.
그 다음, 블록(328)에서, 모바일 장치의 OS가 슬립 상태가 된다. 도크로의 접속이 해제되고/거나 특정 임계치 이후 재확립될 수 없을 때 모바일 장치 OS는 웨이크업(wakeup)되고 이 장치의 제어권을 다시 취한다. 임계치는 소정의 시간 기간 또는 재접속 시도 횟수를 포함할 수 있다.
도 5를 참조해 보면, 버추얼 머신(Virtual Machine; VM) 환경의 실시예가 도시된다. 도 5에서, 모바일폰(502)으로 도시된 모바일 장치가 부트 이미지(503)를 도크(504)로 송신할 수 있다. 도크(504)는 VM 환경을 실행하고 있다. 도크(504)에서, 도크 하드웨어(512)는 버추얼 머신 관리자(Virtual Machine Manager; VMM; 510)에 의해 관리될 수 있다. VMM(510)은 VM(506) 및 VM(508)과 같이 하나 이상의 VM을 지원한다. VM(506)은 게스트(guest) OS(505)를 실행시킨다. 일반적으로, VM들은 VM 환경에서 원하는 만큼 생성되고 해체될 수 있다. 또한, 각 VM은 한 VM에서의 시스템 오류(예컨데, 운영 체제 충돌)가 다른 VM들에 영향을 미치지 않도록 독립적으로 동작한다.
본원의 실시예에 따르면, 도크(504)가 VM 환경을 실행시키는 동안 모바일폰(502)과 도크(504) 간의 교섭이 일어날 수 있다. 모바일폰(502)은 VM(508)에서의 실행을 위해 부트 이미지(503)를 도크(504)에 송신할 수 있다. 부트 이미지(503)의 실행은 게스트 OS(507)로서 나타난다.
일 예에서, VM 환경을 이용하면 모든 도크(504)를 부팅할 필요 없이 모바일폰(502)으로부터의 부트 이미지를 이용할 수 있다. 부트 이미지(503)를 실행하기 위해 도크(504)에서 VM(508)이 생성될 수 있다. 또한, 사용자가 게스트 OS(507)를 이용하는 것을 끝냈을 때, VM(508)은 해산(take down)될 수 있으나, VM(506)은 남아있을(remain up) 수 있다.
도 6을 참조해 보면, 부트 교섭을 수행하는 모바일폰(602)(장치)과 랩톱(604)(도크)의 실시예가 도시된다. 일 실시예에서, 부트 교섭은 교섭 프로토콜을 이용하여 수행된다. 610에서, 모바일폰(602)은 랩톱(604)에게 교섭이 가능한지를 묻는다. 랩톱(604)이 모바일폰(602)에게 긍정 응답을 제공한다(611). 612에 서, 모바일폰(602)과 랩톱(604)은 서로 인증한다.
613에서, 모바일폰(602)은 랩톱(604)에 그 성능에 대하여 질의한다. 단계(614)에서, 랩톱(604)은 자신의 성능을 보고함으로써 응답한다. 랩톱(604)은 표(700)의 실시예를 이용하여 자신의 성능을 보고할 수 있다.
615에서, 모바일폰(602)은 모바일폰(602)에서 실행되는 부트 이미지가 제어권을 가질지 랩톱(604)에서 실행되는 부트 이미지가 제어권을 가질지를 결정한다. 교환(616) 중에, 모바일 장치(602)는 랩톱(604)으로 부트 이미지(617로 표시)를 송신한다. 일 실시예에서, 모바일 장치(602)는 부트 이미지를 랩톱(604)에 송신하기 전에 부트 이미지의 업데이트에 대한 체크를 한다. 618에서, 랩톱(604)은 모바일폰(602)으로부터의 부트 이미지를 실행한다. 일 실시예에서, 부트 이미지는 랩톱(604) 상의 VM 환경에서 실행된다.
619에서, 모바일폰(602)의 OS는 부트 이미지를 랩톱(604)에 송신한 이후에 슬립 상태가 된다. 따라서, 모바일폰(602)과 랩톱(604) 간의 접속이 단절(severed)되는 경우, 모바일폰(602)은 모바일폰 OS를 재부팅해야할 필요 없이 자신의 OS를 이용하여 동작을 계속할 수 있다.
대안으로, 교환(620) 중에, 모바일폰(602)의 OS는 랩톱(604)의 자원을 관리한다(621로 도시). 모바일폰(602)은 자신의 소프트웨어 상태를 전환하여 모바일폰 OS를 재부팅하지 않고 랩톱(604) 상의 주변 장치들(peripherals)에 액세스할 수 있다. 예를 들면, 모바일폰(602)은 랩톱(604)의 KVM을 이용할 수 있다(622로 도시). 모바일폰(602)과 랩톱(604) 간의 접속이 종료되면, 모바일폰(602)은 자신의 입/출 력 장치를 이용하여 다시 전환(switch back)될 수 있다. 모바일폰(602)의 재부팅은 불필요하다.
도 8을 참조해 보면, 본 발명의 실시예에 따른 사용 시나리오가 기술될 것이다. 본 발명의 실시예는 후술될 시나리오에만 제한되지 않는다는 것이 이해될 것이다. 도 8은 퍼스널 컴퓨터(PC; 810)(즉, 도크)에 접속된 모바일폰(802)(즉, 모바일 장치)을 도시한다. 도 8은 모바일폰 OS(804)와 PC BIOS(812) 간에 일어나는 부트 교섭 프로세스를 도시한다.
한 시나리오에서, 본 발명의 실시예는 공용 컴퓨팅 환경에서 이용될 수 있다. 몇몇의 경우, 공용 컴퓨팅 환경은 모바일폰(802)과 PC(810) 모두에 서비스를 제공하는 전화회사("Telco")에 의해 관리될 수 있다. PC(810)는 몰 키오스크(mall kiosk), 인터넷 카페, 등에서의 공용 컴퓨터일 수 있다.
예를 들면, OS 런타임 중에 모바일폰(802)을 가지는 사용자는 PC(810)에 접근한다. PC(810)는 현재 꺼져있다. 사용자는 무선 접속을 확립하기 위하여 모바일폰(802)을 PC(810) 가까이 놓거나 유선 접속용 케이블을 가지고 PC(810)와 모바일폰(802)을 접속한다. 그 다음 사용자는 PC(810)를 켠다. 부트 교섭 프로세스는 모바일 장치 OS(804)가 PC BIOS(812)와 통신하면서부터 시작한다. 부트 교섭 이후에, 사용자는 PC(810)의 KVM을 이용하여 모바일 장치 OS(804)와 상호작용하거나 사용자는 PC(810)의 KVM을 이용하여 PC(810) 상에서 부팅된 모바일폰(802)으로부터 송신된 부트 이미지와 상호작용할 수 있다. 어떤 경우라도, 모바일폰(802)은 사용자에 의해 저장소로 이용될 수 있다. 이런 식으로, 사용자는 공용 컴퓨터(즉, PC(810))를 벗어났을 때, 이들과의 자신의 작업을 쉽게 취할 수 있다.
대안적인 실시예에서, 사용자가 교섭 프로세스를 시작했을 때 PC(810)가 슬립 상태 또는 OS 런타임에 있다면, PC(810)는 모바일폰(802)으로부터 부트 이미지를 실행시키기 위해 재부팅되어야 할 수 있다. 또 다른 실시예에서, PC(810)는 OS 런타임에 머물러 있어 버추얼 머신 환경에서 모바일폰(802)으로부터 수신된 부트 이미지를 실행할 수 있다.
Telco 이용 시나리오에서, 사용자는 모바일폰(802)과 PC(810)에서 이용될 수 있는 소정의 미닛 어카운트(one account of minutes)를 가질 수 있다. 또한, 모바일폰(802) 및 PC(810)는 동일한 Telco 네트워크의 일부이기 때문에, 부트 정책에 대한 업데이트가 모바일폰(802) 및/또는 PC(810)에 행해질 수 있다. 모바일폰(802) 상의 부트 이미지에 대한 업데이트는 또한 Telco 네트워크를 통해 모바일폰(802)에 행해질 수 있다.
다른 시나리오에서, 본 발명의 실시예는 기업 네트워크와 같은 조직의 관리 네트워크에서 사용될 수 있다. 모바일폰(802) 및 PC(810)는 기업 네트워크의 일부이다. 다시, 사용자는 모바일폰(802)을 PC(810)에 접속하고 부트 교섭 프로세스를 시작한다. 그 다음 사용자는 PC(810)의 KVM을 이용하여 모바일폰(802) 또는 PC(810) 상의 제어용 부트 이미지와 상호작용할 수 있다.
기업 네트워크 시나리오는 다양한 방식으로 이용될 수 있다. 직원에게 모바일폰(802)과 같은 모바일 장치가 지급될 수 있다. 그러면 직원은 그 조직의 다양한 PC에서 이용될 수 있는 각종 부트 이미지들을 휴대할 수 있다. 또한, 사용자는 사용자의 데이터가 여러 개의 머신들(예를 들면, 법인 모바일 장치 및 각종 법인 데스크탑) 간에 분산되는 대신에 사용자의 모바일 장치 상에 집중되기 때문에 항상 이 사용자들의 데이터로의 액세스를 가진다. 이외에, 부트 정책 업데이트 및 부트 이미지 업데이트가 모바일폰(802)에 쉽게 행해질 수 있다.
도 9는 본 발명의 하나 이상의 실시예를 구현하기 위한 컴퓨팅 장치(900)의 일례를 도시하고 있다. 컴퓨팅 장치(900)의 실시예들은 도크(102) 및/또는 모바일 장치(120)로서 이용될 수 있다. 한 구성에서, 컴퓨팅 장치(900)는 적어도 하나의 처리 유닛(902) 및 메모리(904)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 메모리(904)는 (RAM과 같은) 휘발성, (ROM, 플래시 메모리 등과 같은) 비휘발성, 또는 이 둘의 몇 가지 조합일 수 있다. 이 구성은 도 9에서 점선(906)으로 나타내었다.
다른 실시예에서, 장치(900)는 추가적인 특징 및/또는 기능성을 포함할 수 있다. 예를 들면, 장치(900)는 또한 자기 저장소, 광학 저장소 등을 포함하지만 이에 한정되지 않는 추가적인 저장소(예를 들면, 이동식 및/또는 비이동식)를 포함할 수 있다. 이러한 추가적인 저장소는 저장소(908)에 의해 도 9에 도시된다. 일 실시예에서, 본 발명의 실시예를 구현하기 위한 컴퓨터 판독가능 명령어는 저장소(908)에 저장될 수 있다. 저장소(908)는 또한 운영 체제, 애플리케이션 프로그램 등을 구현하기 위한 기타 컴퓨터 판독가능 명령어를 저장할 수 있다.
본원에서 사용된 용어 "컴퓨터 판독가능 매체"는 컴퓨터 저장 매체를 포함한다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(904) 및 저장소(908)는 컴퓨터 저장 매체의 예시들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 장치(900)에 의해 액세스되고 원하는 정보를 저장하는 데에 이용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다.
장치(900)는 또한 장치(900)가 다른 장치와 통신하게 하는 통신 접속(들)(912)을 포함할 수 있다. 통신 접속(들)(912)은 컴퓨팅 장치(900)를 다른 컴퓨팅 장치에 접속하기 위한 모뎀, 네트워크 인터페이스 카드(NIC), USB 접속, 적외선 포트, 기타 인터페이스를 포함할 수 있지만 이에 한정되지 않는다. 통신 접속(912)(들)은 유선 접속 또는 무선 접속을 포함할 수 있다. 통신 접속(912)(들)은 통신 매체를 전송 및/또는 수신할 수 있다.
용어 "컴퓨터 판독가능 매체"는 통신 매체를 포함할 수 있다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어 또는 기타 데이터를 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적 외선, NFC(Near Field Communication), 및 기타 무선 매체와 같은 무선 매체를 포함한다.
장치(900)는 키보드, 마우스, 펜, 음성 입력 장치, 접촉 입력 장치, 적외선 카메라, 비디오 입력 장치 및/또는 임의의 기타 입력 장치와 같은 입력 장치(들)(914)를 포함할 수 있다. 하나 이상의 디스플레이, 스피커, 프린터, 및/또는 임의의 다른 출력 장치와 같은 출력 장치(들)(916) 또한 장치(900)에 포함될 수 있다. 입력 장치(들)(914) 및 출력 장치(들)(916)는 유선 접속, 무선 접속, 또는 이들의 임의의 조합을 통해 장치(900)에 접속될 수 있다. 일 실시예에서, 기타 컴퓨팅 장치로부터의 입력 장치 또는 출력 장치는 컴퓨팅 장치(900)를 위한 입력 장치(들)(914) 또는 출력 장치(들)(916)로서 이용될 수 있다.
컴퓨팅 장치(900)의 컴포넌트들은 버스와 같은 다양한 상호접속에 의해 접속될 수 있다. 이러한 상호접속으로는 주변 컴포넌트 상호접속(PCI)(예를 들면, PCI 익스프레스), USB, 파이어와이어(IEEE 1394), 광학 버스 구조 등을 포함할 수 있다. 다른 실시예에서, 컴퓨팅 장치(900)의 컴포넌트들은 네트워크에 의해 상호접속될 수 있다. 예를 들면, 메모리(904)는 네트워크에 의해 상호접속된 다른 물리적 위치에 위치된 복수의 물리적 메모리 유닛으로 구성될 수 있다.
당업자들은 컴퓨터 판독가능 명령어를 저장하는 데 이용되는 저장 장치가 네트워크를 통해 분산될 수 있다고 인식할 것이다. 예를 들면, 네트워크(920)를 통해 액세스될 수 있는 컴퓨팅 장치(930)가 본 발명의 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독가능 명령어를 저장할 수 있다. 컴퓨팅 장치(900)는 컴퓨팅 장치(930)를 액세스하고 실행을 위해 컴퓨터 판독가능 명령어의 일부 또는 전부를 다운로드할 수 있다. 대안으로, 컴퓨팅 장치(900)는 필요하다면 컴퓨터 판독가능 명령어의 단편들(pieces)을 다운로드하거나, 일부 명령어들은 컴퓨팅 장치(900)에서 실행되고 일부는 컴퓨팅 장치(930)에서 실행될 수 있다. 당업자들은 컴퓨터 판독가능 명령어의 일부 또는 전부가 디지털 신호 프로세서(Digital Signal Processor; DSP), 프로그램가능한 로직 어레이(programmable logic array) 등과 같은 전용 회로에 의해 수행될 수 있음을 인식할 것이다.
본 발명의 실시예들의 다양한 동작들이 본 명세서에서 기술되었다. 일 실시예에서, 기술된 동작들 중 하나 이상은, 컴퓨팅 장치에 의해 실행되면 컴퓨팅 장치로 하여금 기술된 동작을 수행하게 할 하나 이상의 컴퓨터 판독가능 매체에 저장된 컴퓨터 판독가능 명령어를 구성할 수 있다. 일부 또는 모든 동작이 기술된 순서는 이들 동작이 반드시 순서에 의존해야한다는 것을 의미하는 것으로 해석되어서는 안된다. 이들 설명으로부터 이익을 얻는 당업자에 의해 대안적인 순서가 인식될 것이다. 또한, 본 발명의 각 실시예에서 모든 동작들이 반드시 존재해야하는 것은 아니라고 이해될 것이다.
요약서에 기술된 것을 포함하는, 상술한 본 발명의 실시예에 대한 설명은 실시예들을 개시된 정확한 형태로 제한하거나 배타적인 것으로 의도되지 않는다. 본 발명의 특정 실시예 및 예들이 본원에서는 예시적인 목적으로 기술되었지만, 당업자들이 상술한 설명에 비추어 인식할, 여러 가지 동등한 수정이 가능하다. 이하의 청구 범위에 이용된 용어는 본 발명을 본 명세서에 개시된 특정 실시예들로 제한하 는 것으로 해석되어서는 안된다. 오히려, 다음의 청구 범위는 정해진 청구범위 해석 원칙에 따라 해석되어야 한다.

Claims (20)

  1. 제1 장치에 의해 제2 장치의 성능(capabilities)을 발견하는 단계(310);
    상기 제1 장치에 의해, 상기 제1 장치와 상기 제2 장치 중 어느 것이 제어용 부트 이미지(boot image)를 실행할지, 상기 제1 장치 및 상기 제2 장치의 성능에 적어도 일부 기초하여 결정하는 단계(312, 316, 318);
    상기 제1 장치가 상기 제어용 부트 이미지를 실행하는 것으로 결정되는 경우, 상기 제1 장치에 의해 제1 부트 이미지를 실행하는 단계(314) - 상기 제2 장치는 상기 제1 부트 이미지에 대한 자원이 됨 - ; 및
    상기 제2 장치가 상기 제어용 부트 이미지를 실행하는 것으로 결정되는 경우, 상기 제1 장치에 의해, 상기 제1 장치에 저장된 제2 부트 이미지를 상기 제2 장치에 송신하는 단계(324) - 상기 제1 장치는 상기 제2 부트 이미지에 대한 자원이 됨 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 장치에 의해, 상기 제2 부트 이미지가 상기 제2 장치와 호환되는지를 판정하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제1 장치에 의해, 상기 제2 장치 상에서 상기 제2 부트 이미지를 실행하는 것은 상기 제1 장치에 저장된 부트 정책(boot policy)과 호환되는지를 판정하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 제2 장치 상에서 상기 제2 부트 이미지를 실행하는 것이 상기 제1 장치에 저장된 부트 정책과 호환되는지 판정하기 전에, 상기 제1 장치에 의해, 중앙 사이트(central site)에 연락(contact)함으로써 상기 부트 정책을 업데이트하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 제1 장치에 의해, 상기 제2 부트 이미지를 상기 제2 장치에 송신하기 전에, 상기 제2 부트 이미지를 업데이트하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 제2 부트 이미지를 상기 제2 장치에 송신한 후에 상기 제1 장치 상에서 실행되는 운영 체제에 의해 슬립 상태(sleep state)로 들어가는 단계; 및
    상기 제1 장치와 상기 제2 장치 간의 접속이 단절되는 경우 상기 슬립 상태로부터 웨이크업(waking up)되는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 제1 장치와 상기 제2 장치 간의 접속을 확립하는 단계 - 상기 제1 장치는 운영 체제 런타임 중이며(in operating system runtime), 상기 제2 장치는 프리부트 중임(in preboot) - 를 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 제2 장치의 성능을 발견하는 단계는, 상기 제1 장치에서, 상기 제1 장치로부터의 성능 질의에 응답하여 상기 제2 장치로부터 성능 보고 데이터를 수신하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    상기 제1 장치에 의해 상기 제2 장치를 인증하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서,
    상기 제1 장치와 상기 제2 장치 중 어느 것이 제어용 부트 이미지를 실행할지 결정하는 단계는, 상기 제1 장치에서, 사용자로부터 이 결정의 확인을 수신하는 단계를 포함하는 방법.
  11. 모바일 장치와 도크(dock) 간의 접속을 구축하는 단계(302) - 상기 모바일 장치는 제1 부트 이미지를 실행하며 상기 도크는 프리부트 중임 - ;
    상기 모바일 장치와 상기 도크 중 어느 것이 제어용 부트 이미지를 실행할지, 상기 모바일 장치 및 상기 도크의 성능에 적어도 일부 기초하여 결정하는 단계(310, 312, 316, 318);
    상기 도크가 상기 제어용 부트 이미지를 실행하는 경우, 상기 모바일 장치로부터 상기 도크에게 제2 부트 이미지를 송신하고 상기 도크에서 상기 제2 부트 이미지를 실행하는 단계(324) - 상기 제2 부트 이미지가 상기 제어용 부트 이미지를 포함함 - ; 및
    상기 모바일 장치가 상기 제어용 부트 이미지를 실행하는 경우, 상기 모바일 장치에서 상기 제1 부트 이미지를 실행하는 단계(314) - 상기 제1 부트 이미지가 상기 제어용 부트 이미지를 포함함 -
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 모바일 장치와 상기 도크 중 어느 것이 제어용 부트 이미지를 실행할지 결정하는 단계는 상기 도크가 상기 모바일 장치에 저장된 하나 이상의 부트 이미지와 호환되는지를 판정하는 단계를 포함하는 방법.
  13. 제11항에 있어서,
    상기 제2 부트 이미지는 상기 도크의 버추얼 머신 환경(virtual machine environment)에서 실행되는 방법.
  14. 제11항에 있어서,
    상기 도크에서 실행하기 위해 상기 제2 부트 이미지를 상기 도크에 송신하기 전에 상기 모바일 장치에 의해 상기 제2 부트 이미지를 업데이트하는 단계를 더 포함하는 방법.
  15. 제11항에 있어서,
    상기 도크가 상기 제어용 부트 이미지를 실행하는 경우,
    상기 모바일 장치 상에서 실행되는 상기 제1 부트 이미지에 의해 슬립 상태로 들어가는 단계를 더 포함하는 방법.
  16. 제11항에 있어서,
    상기 모바일 장치에서, 상기 모바일 장치로부터의 성능 질의에 응답하여 상기 도크로부터 성능 보고 데이터를 수신하는 단계를 더 포함하는 방법.
  17. 제2 컴퓨팅 장치에 접속된 제1 컴퓨팅 장치를 포함하는 시스템으로서,
    상기 제1 컴퓨팅 장치에는 상기 제1 컴퓨팅 장치에 의해 실행될 때 동작들을 수행하는 컴퓨터 판독가능 명령어가 저장되어 있으며,
    상기 동작들은
    상기 제2 컴퓨팅 장치의 성능을 발견하는 단계(310);
    상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치 중 어느 것이 제어용 부트 이미지를 실행할지, 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치의 성능에 적어도 일부 기초하여 결정하는 단계(312, 316, 318);
    상기 제1 컴퓨팅 장치가 상기 제어용 부트 이미지를 실행하는 것으로 결정된 경우, 상기 제1 컴퓨팅 장치에 의해 제1 부트 이미지를 실행하는 단계(314) - 상기 제2 컴퓨팅 장치는 상기 제1 부트 이미지에 대한 자원이 됨 - ; 및
    상기 제2 컴퓨팅 장치가 상기 제어용 부트 이미지를 실행하는 것으로 결정된 경우, 상기 제1 컴퓨팅 장치에 저장된 제2 부트 이미지를 상기 제2 컴퓨팅 장치에 송신하는 단계(324) - 상기 제1 컴퓨팅 장치는 상기 제2 부트 이미지에 대한 자원이 됨 -
    를 포함하는 시스템.
  18. 제17항에 있어서,
    상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치 중 어느 것이 제어용 부트 이미지를 실행할지 결정하는 단계는 상기 제2 컴퓨팅 장치가 상기 제1 컴퓨팅 장치에 저장된 하나 이상의 부트 이미지와 호환되는지를 판정하는 단계를 포함하는 시스템.
  19. 제17항에 있어서,
    상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치 중 어느 것이 제어용 부트 이 미지를 실행할지 결정하는 단계는 상기 제1 컴퓨팅 장치에 저장된 정책을 적용하는 단계를 포함하는 시스템.
  20. 제17항에 있어서,
    상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치 중 어느 것이 제어용 부트 이미지를 실행할지 결정하는 단계는 사용자로부터 이 결정의 확인을 수신하는 단계를 포함하는 시스템.
KR1020097017824A 2007-02-28 2008-01-23 복수의 부트-가능 장치들 간의 부트 교섭 KR101251710B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/680,040 2007-02-28
US11/680,040 US7818559B2 (en) 2007-02-28 2007-02-28 Boot negotiation among multiple boot-capable devices
PCT/US2008/051756 WO2008106253A1 (en) 2007-02-28 2008-01-23 Boot negotiation among multiple boot-capable devices

Publications (2)

Publication Number Publication Date
KR20090118941A true KR20090118941A (ko) 2009-11-18
KR101251710B1 KR101251710B1 (ko) 2013-04-05

Family

ID=39717274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097017824A KR101251710B1 (ko) 2007-02-28 2008-01-23 복수의 부트-가능 장치들 간의 부트 교섭

Country Status (9)

Country Link
US (1) US7818559B2 (ko)
EP (1) EP2132626B1 (ko)
JP (1) JP4738534B2 (ko)
KR (1) KR101251710B1 (ko)
CN (1) CN101622600B (ko)
BR (1) BRPI0806879A8 (ko)
RU (1) RU2456662C2 (ko)
TW (1) TWI368169B (ko)
WO (1) WO2008106253A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270339B2 (en) 2012-08-29 2016-02-23 Intel Corporation Method, apparatus and system of recovering an operating system on a portable communication device
KR20230110760A (ko) * 2022-01-13 2023-07-25 엘지전자 주식회사 차량용 디스플레이 장치

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195928B2 (en) * 2008-02-06 2012-06-05 Broadcom Corporation Handheld computing unit with merged mode
US8364943B2 (en) * 2008-02-29 2013-01-29 Lenovo (Singapore) Pte. Ltd. S3 BIOS operating system switch
US8195848B2 (en) * 2008-04-04 2012-06-05 Economedics, Inc. Medical device created through resource leverage of a host processing system and method
US9208118B2 (en) * 2008-06-10 2015-12-08 Lg Electronics Inc. Communication device, a method of processing signal in the communication device and a system having the communication device
US9128669B2 (en) 2009-03-27 2015-09-08 Qualcomm Incorporated System and method of managing security between a portable computing device and a portable computing device docking station
US9201593B2 (en) 2009-03-27 2015-12-01 Qualcomm Incorporated System and method of managing displays at a portable computing device and a portable computing device docking station
US20100250818A1 (en) * 2009-03-27 2010-09-30 Qualcomm Incorporated System and method of providing wireless connectivity between a portable computing device and a portable computing device docking station
US8653785B2 (en) 2009-03-27 2014-02-18 Qualcomm Incorporated System and method of managing power at a portable computing device and a portable computing device docking station
US9804857B2 (en) * 2010-12-17 2017-10-31 Intel Corporation Method and apparatus for multi-mode mobile computing devices and peripherals
US9430263B2 (en) 2011-03-18 2016-08-30 Hewlett-Packard Development Company, L.P. Sharing internet capability of a mobile computing device with a client computing device using a virtual machine
US10135494B2 (en) * 2011-12-16 2018-11-20 Intel Corporation Connection and synchronization with a device in a non-active state based on near field communication
US9235427B2 (en) 2012-02-29 2016-01-12 Red Hat Israel, Ltd. Operating system load device resource selection
US8949587B2 (en) * 2012-05-11 2015-02-03 Red Hat Israel, Ltd. Method for dynamic loading of operating systems on bootable devices
US20140019997A1 (en) * 2012-07-10 2014-01-16 Ming-Chang Huang Virtualization system and method thereof
WO2014162229A2 (en) 2013-04-03 2014-10-09 Koninklijke Philips N.V. Device apparatus cooperation via apparatus profile
US9471330B2 (en) * 2014-05-30 2016-10-18 Motorola Solutions, Inc. System and method and for selecting boot configuration using near field communication
US10867047B2 (en) 2015-03-11 2020-12-15 Hewlett-Packard Development Company, L.P. Booting user devices to custom operating system (OS) images
WO2016149895A1 (en) * 2015-03-23 2016-09-29 Intel Corporation Execution context migration method and apparatus
TWI545431B (zh) 2015-04-30 2016-08-11 群暉科技股份有限公司 用來於一電子系統進行電源管理之方法與裝置
US10848972B2 (en) * 2017-10-18 2020-11-24 Microsoft Technology Licensing, Llc Mobile device wireless restricted peripheral sessions

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477415A (en) 1993-11-12 1995-12-19 Texas Instruments Incorporated Automatic computer docking station having a motorized tray, cammed side connectors, motorized side connectors, and locking and unlocking guide pins
JPH07219885A (ja) * 1994-02-04 1995-08-18 Canon Inc 情報処理システム及び電子機器及び制御方法
JP3382337B2 (ja) * 1994-02-04 2003-03-04 キヤノン株式会社 情報処理システム及び電子機器及び制御方法
US5826043A (en) 1995-06-07 1998-10-20 Ast Research, Inc. Docking station with serially accessed memory that is powered by a portable computer for identifying the docking station
JPH08339295A (ja) * 1995-06-14 1996-12-24 Canon Inc オペレーティング・システム起動方法及びオペレーティング・システム起動装置
US6023587A (en) * 1996-05-02 2000-02-08 Texas Instruments Incorporated System for resources under control of docking station when standalone and resources under control of central processing unit of portable computer when docked
US5887164A (en) * 1997-06-06 1999-03-23 National Instruments Corporation System and method for enabling a target computer to use storage resources of a host computer
US5999989A (en) * 1997-06-17 1999-12-07 Compaq Computer Corporation Plug-and-play
US6128661A (en) 1997-10-24 2000-10-03 Microsoft Corporation Integrated communications architecture on a mobile device
US6055631A (en) * 1997-12-18 2000-04-25 Intel Corporation Method and apparatus for booting a portable computing device
SG83684A1 (en) * 1998-07-07 2001-10-16 Compaq Computer Corp Computer system performing machine specific tasks before going to a low power state
KR100477637B1 (ko) 1999-11-10 2005-03-23 삼성전자주식회사 컴퓨터의 도킹 시스템
US7010634B2 (en) * 1999-12-23 2006-03-07 Intel Corporation Notebook computer with independently functional, dockable core computer
US6549968B1 (en) * 2000-03-31 2003-04-15 Intel Corporation Context transferring between portable computer processor and docking station processor upon docking and undocking
US6691160B1 (en) * 2000-04-19 2004-02-10 Adaptec, Inc. Input/output communication networks and booting protocols
US6725310B2 (en) 2001-01-26 2004-04-20 Dell Products L.P. Scalable docking architecture to support various bandwidth
US7093124B2 (en) * 2001-10-30 2006-08-15 Intel Corporation Mechanism to improve authentication for remote management of a computer system
US20040019724A1 (en) 2002-07-24 2004-01-29 Singleton, Charles W. Computer system with docking port for a handheld computing device
KR20040013641A (ko) 2002-08-07 2004-02-14 삼성전자주식회사 운영체제 이미지파일 업데이트를 위한 휴대용 기기
SG138439A1 (en) * 2003-04-02 2008-01-28 Trek 2000 Int Ltd Portable operating system and method to load the same
US7337317B2 (en) 2003-07-03 2008-02-26 Hand Held Products, Inc. Memory data copying system for devices
US7555568B2 (en) * 2004-02-28 2009-06-30 Huang Evan S Method and apparatus for operating a host computer from a portable apparatus
US7346370B2 (en) * 2004-04-29 2008-03-18 Cellport Systems, Inc. Enabling interoperability between distributed devices using different communication link technologies
JP2008517666A (ja) 2004-10-25 2008-05-29 ドレーガー メディカル システムズ インコーポレイテッド ポータブルデバイス構成システム
US7712086B2 (en) 2004-12-15 2010-05-04 Microsoft Corporation Portable applications
JP4510746B2 (ja) * 2005-11-01 2010-07-28 株式会社ユニバーサルエンターテインメント パーソナルコンピュータ機能付携帯電話機
RU57030U1 (ru) * 2006-01-26 2006-09-27 Войсковая часть 45807 Устройство защиты от несанкционированной загрузки программного обеспечения
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270339B2 (en) 2012-08-29 2016-02-23 Intel Corporation Method, apparatus and system of recovering an operating system on a portable communication device
KR20230110760A (ko) * 2022-01-13 2023-07-25 엘지전자 주식회사 차량용 디스플레이 장치

Also Published As

Publication number Publication date
US20080209199A1 (en) 2008-08-28
CN101622600B (zh) 2012-11-14
KR101251710B1 (ko) 2013-04-05
TWI368169B (en) 2012-07-11
BRPI0806879A2 (pt) 2014-04-29
RU2456662C2 (ru) 2012-07-20
WO2008106253A1 (en) 2008-09-04
JP2010520528A (ja) 2010-06-10
EP2132626A4 (en) 2010-04-14
RU2009132388A (ru) 2011-03-10
TW200839615A (en) 2008-10-01
EP2132626B1 (en) 2015-08-26
US7818559B2 (en) 2010-10-19
EP2132626A1 (en) 2009-12-16
CN101622600A (zh) 2010-01-06
BRPI0806879A8 (pt) 2016-11-16
JP4738534B2 (ja) 2011-08-03

Similar Documents

Publication Publication Date Title
KR101251710B1 (ko) 복수의 부트-가능 장치들 간의 부트 교섭
US9244700B2 (en) Methods and systems for delivering applications from a desktop operating system
CN106471791B (zh) 用于基于移动设备的集群计算架构的方法和装置
US11194588B2 (en) Information handling systems and method to provide secure shared memory access at OS runtime
US8566899B2 (en) Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
EP3158448A2 (en) Integrated apis and uis for consuming services across different distributed networks
EP2630566B1 (en) Methods and apparatus for building system images and split booting
WO2012173751A1 (en) Method and apparatus for remote delivery of managed usb services via a mobile computing device
TWI734379B (zh) 用於使用初始程式載入機制啟動安全客體之電腦實施方法、電腦系統及電腦程式產品
AU2015358292A1 (en) Computing systems and methods
US11671379B1 (en) System and method for subscription management using dynamically composed management entities
US20230221784A1 (en) System and method for power state enforced subscription management
EP3783481A1 (en) Method and apparatus for upgrading virtualized emulator
CN110688235A (zh) Uefi固件与os间共享无线连接信息的系统及方法
KR100735875B1 (ko) 라이브 부팅매체를 이용한 서버 원격접속과 다중 오에스사용 시스템 및 그 방법
US10567239B2 (en) Techniques of providing data to screen saver of thin client
US10564918B2 (en) Techniques of remotely providing user input to thin client
US20230350694A1 (en) Management controller as bios
US12008264B2 (en) Smart network interface controller host storage access
US20230208942A1 (en) Trusted network protocol agent via smart network interface controller
US11899602B2 (en) Smart network interface controller operating system binding
US20230229470A1 (en) Virtual media offload in smart network interface controller
US20230325203A1 (en) Provisioning dpu management operating systems using host and dpu boot coordination
US20240184611A1 (en) Virtual baseboard management controller capability via guest firmware layer
US10652339B2 (en) Wireless thin clients

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 5