KR20030011552A - 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템 - Google Patents

선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템 Download PDF

Info

Publication number
KR20030011552A
KR20030011552A KR1020020042514A KR20020042514A KR20030011552A KR 20030011552 A KR20030011552 A KR 20030011552A KR 1020020042514 A KR1020020042514 A KR 1020020042514A KR 20020042514 A KR20020042514 A KR 20020042514A KR 20030011552 A KR20030011552 A KR 20030011552A
Authority
KR
South Korea
Prior art keywords
computer
operating system
image
computerized method
script
Prior art date
Application number
KR1020020042514A
Other languages
English (en)
Other versions
KR100860447B1 (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 KR20030011552A publication Critical patent/KR20030011552A/ko
Application granted granted Critical
Publication of KR100860447B1 publication Critical patent/KR100860447B1/ko

Links

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/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

선택된 기능성을 갖는 오퍼레이팅 시스템(OS) 이미지를 생성 및 이용하는 시스템 및 방법이 제공된다. 정보기술자 또는 퍼스널 컴퓨터(PC)의 최초 장비 제조자(OEM)와 같은 사용자는 설치 OS 이미지에서 이용 가능한 복수의 OS 구성요소로부터 한 세트의 OS 구성요소를 선택한다. OS 구성요소의 선택된 세트는 CD-ROM과 같은 컴퓨터 판독가능 매체 상에 OS 이미지로서 설치된다. OS 이미지는 OS 이미지와 상호작용하여, 목적 컴퓨터를 부팅시키고 레퍼런스 OS 이미지를 설치하거나 레퍼런스 OS 이미지의 잘못된 설치로부터 목적 컴퓨터를 복구하는 기능과 같이, 사용자가 원하는 기능을 수행하기 위한 스크립트를 포함한다.

Description

선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을 위한 방법 및 시스템{METHOD AND SYSTEM FOR CREATING AND EMPLOYING AN OPERATING SYSTEM HAVING SELECTED FUNCTIONALITY}
본 발명은 컴퓨터 오퍼레이팅 시스템(computer operating system)에 관한 것이다. 특히, 본 발명은 사용자가 원하는 기능성(functionality)을 수행하기 위하여 사용자에 의해 선택된 구성요소를 갖는 스크립팅 지원(scripting support)을 구비하는 오퍼레이팅 시스템에 관한 것이다.
오퍼레이팅 시스템(OS) 이미지는 컴퓨터의 하드웨어와 상호작용하여 다양한 기능들을 수행한다. 전형적인 OS 이미지는 하드디스크 드라이브와 같은 대용량 저장장치(mass storage devices)에 상당한 양의 공간을 필요로 한다. 상당한 디스크 공간이 필요하므로, 전형적인 OS 이미지는 제한된 기능성만이 OS 이미지에 요구되는 상황에서 비효율적으로 된다. 또한, 상당한 디스크 공간이 필요하고 대용량 저장장치에 대한 판독-기록 액세스가 필요한 것 때문에 전형적인 OS 이미지는 단일 판독전용, 컴퓨터 판독가능 매체에 상주하지 못한다.
컴퓨터에 OS 이미지를 설치하기 위하여, 판독전용 매체로부터 컴퓨터를 부팅할 수 있는 MS-DOS와 같은 최소한의 기능성을 갖는 또다른 OS 이미지가 사용되어 왔다. 그러나, MS-DOS는 640 킬로바이트 휘발성 메모리 제한 및 64 비트 컴퓨터와의 비호환성을 포함하여 몇 가지 제한 사항들이 있다. 또한, MS-DOS를 이용하여 OS 이미지를 부팅 및 설치하는 동안, 컴퓨터의 복수의 재부팅이 종종 필요하다. 또한, 하드웨어를 동작시키기 위한 소프트웨어 루틴(하드웨어 제조자에 의하여 제공된 하드웨어 드라이버로 알려짐)은, MS-DOS를 이용하여 하드웨어를 유효화하기 위하여 MS-DOS의 제한 내에서 동작하도록 변형되어야 한다.
유사하게, WINDOWS NT 오퍼레이팅 시스템(NT)의 몇 가지 버전들은, 예를 들어, 컴퓨터를 NT로의 초기 부팅에 대비하도록 하는 텍스트모드 셋업을 통하여 설치된다. 그래픽 사용자 인터페이스 모드 셋업은 사용자로부터의 입력에 기초한 설치를 구성한다. 온라인 설치라고 부르는 이 설치방법은 컴퓨터 상에 NT 자체를 부트스트래핑(bootstrapping)하는 것을 포함한다. 그러나, 온라인 설치는 바람직하지 못할 정도로 많은 회수의 컴퓨터 재부팅을 필요로 한다.
대부분의 OS 이미지들은 OS의 기본적으로 요구되는 기능들을 수행하기 위한 소프트웨어 루틴들을 포함하는 커넬(kernel)을 포함한다. 추가적인 기능성은 커넬 외부의 소프트웨어에 의해 수행된다. 일부 OS 이미지들은 최소한의 기능성 및 사이즈를 갖는 마이크로커넬(microkernel)을 포함한다. 이와 같은 마이크로커넬 OS 이미지들에 있어, 커넬 외부의 소프트웨어는 OS 이미지에 요구되는 상당한 양의 기능성을 수행한다. 그러나, 이 마이크로커넬 OS 이미지들은 일반적으로 하드웨어에 의존하고, 사용자에 의해 의도되는 특정의 기능들을 수행하기 위하여 사용자에 의해 커스터마이즈(customize) 될 수 있는 텍스트 기반 스크립트를 포함하지 않는다.
후술되는 본 발명은 이러한 그리고 다른 단점들을 다룬다.
본 발명은 설치 OS 이미지로부터 축소된 오퍼레이팅 시스템 이미지(reduced OS image)를 생성한다. 또한, 본 발명은 결과적으로 축소된 OS 이미지를 포함한다. 퍼스널 컴퓨터(PC)의 최초 장비 제조자(OEM)와 같은 사용자는 설치 OS 이미지에서 이용 가능한 복수의 OS 구성요소들로부터 한 세트의 OS 구성요소들을 선택한다. 선택된 세트의 OS 구성요소들은 CD-ROM과 같은 컴퓨터 판독가능 매체(CRM) 상에 축소된 OS 이미지로서 설치된다. 축소된 OS 이미지는, 축소된 OS 이미지와 상호작용하여 커맨드 프롬프트 디스플레이, 레퍼런스 OS 이미지 설치, 또는 레퍼런스 OS 이미지의 잘못된 설치로부터의 복구와 같이, 사용자에 의해 의도된 기능들을 수행하기 위한 스크립트(script)를 포함한다. 축소된 OS 이미지는 적은 휘발성 및 비휘발성 메모리 저장 요구조건들을 갖는다. 본 발명은 32비트 이상의 구조를 갖는 컴퓨터 상에 레퍼런스 OS 이미지를 설치하기 위해 이용될 수 있다. 본 발명은 32비트 이하의 구조를 갖는 컴퓨터 상에서도 동작한다. 축소된 OS 이미지는, 하드웨어의 적절한 동작을 확인하기 위하여 하드웨어를 제어하는데 이용되는 하드웨어 드라이버들(일반적으로 보호모드로 기록됨)을 사용한다. 축소된 OS 이미지가 복수의 사용자 특정 하드웨어 드라이버들을 포함하므로, 본 발명의 축소된 OS 이미지는 하드웨어에 의존적이다. 본 발명은 사용자가 컴퓨터의 단일의 재부팅으로 컴퓨터 상에 레퍼런스 OS 이미지를 설치하도록 하는 구조를 제공한다. 스크립트는 네트워크 접속(connectivity)을 인에이블하고, 대용량 저장장치를 구획하며, 파일 시스템으로 대용량 저장장치를 포맷하는 것을 포함하는(그러나 이에 국한되지 않음) 임의 갯수의 기능들을 수행한다. 예를 들면, 스크립트는 WINDOWS 오퍼레이팅 시스템에서 이용 가능한 포맷에 따른 파일 시스템으로 대용량 저장장치를 포맷하는 기능을 수행한다.
도 1는 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경의 일 예를 도시하는 본 발명의 방법 및 시스템의 일 실시예의 블럭도.
도 2는 오퍼레이팅 시스템 구성요소를 도시하는 본 발명의 방법 및 시스템의 일 실시예의 블럭도.
도 3는 목적매체 상에 축소된 오퍼레이팅 시스템 이미지를 설치하는 것을 도시하는 본 발명의 방법 및 시스템의 일 실시예의 흐름도.
도 4는 목적매체 상에 축소된 오퍼레이팅 시스템 이미지를 설치하는 것을 도시하는 본 발명의 방법 및 시스템의 일 실시예의 블럭도.
도 5는 축소된 오퍼레이팅 시스템 이미지를 사용하여 또 다른 오퍼레이팅 이미지를 설치하는 것을 도시하는 본 발명의 방법 및 시스템의 일 실시예의 흐름도.
도 6는 원격 부트 컴퓨터로부터 목적 컴퓨터를 부팅시켜 목적 컴퓨터 상에 레퍼런스 오퍼레이팅 시스템 이미지를 설치하는 것을 도시하는 본 발명의 방법 및 시스템의 일 실시예의 블럭도.
도 7는 국부 컴퓨터 판독가능 매체로부터 목적 컴퓨터를 부팅시켜 목적 컴퓨터 상에 레퍼런스 오퍼레이팅 시스템 이미지를 설치하는 것을 도시하는 본 발명의 방법 및 시스템의 일 실시예의 블럭도.
도 8는 동작되지 않는 소프트웨어를 구비한 컴퓨터와 복구매체 사이의 상호작용을 도시하는 본 발명의 방법 및 시스템의 일 실시예의 블럭도.
*도면의 주요부분에 대한 부호의 설명*
110: 컴퓨터 120: 프로세싱 유닛
121: 시스템 버스 130: 시스템 메모리
131: ROM 132: RAM
133: 기본 입출력 시스템(BIOS) 134: 오퍼레이팅 시스템
135: 응용 프로그램 137: 프로그램 데이터
141: 하드디스크 드라이브 151: 자기디스크 드라이브
152: 비휘발성 자기디스크 155: 광학디스크 드라이브
160: 사용자 입력 인터페이스 162: 키보드
172: 모뎀 173: 광역 네트워크(WAN)
180: 원격 컴퓨터 190: 비디오 인터페이스
195: 출력 주변장치 인터페이스
본 발명의 일 형태에 따라, 컴퓨터화된 방법은 사용자 커스터마이즈형(user-customized) 텍스트 기반 스크립트를 제공하고, 컴퓨터 판독가능 매체 상의 오퍼레이팅 시스템 이미지로부터 컴퓨터를 부팅시키며, 스크립트에 따라서 컴퓨터 상에서하나 이상의 기능들을 수행한다. 컴퓨터는 32비트 또는 64비트의 구조이다.
본 발명의 또 다른 형태에 따르면, 시스템은, 사용자 커스터마이즈형 텍스트 기반 스크립트를 제공하기 위한 수단, 컴퓨터 판독가능 매체 상의 오퍼레이팅 시스템 이미지로부터 32비트 또는 64비트 구조를 갖는 컴퓨터를 부팅시키기 위한 수단, 및 사용자 커스터마이즈형 텍스트 기반 스크립트에 따라 컴퓨터 상에서 하나 이상의 기능들을 수행하기 위한 수단을 포함한다.
본 발명의 또 다른 형태에 따라, 컴퓨터화된 방법은, 사용자 커스터마이즈형 텍스트 기반 스크립트를 제공하고, 컴퓨터 판독가능 매체 상의 제1 오퍼레이팅 시스템 이미지로부터 컴퓨터를 부팅시키며, 사용자 커스터마이즈형 텍스트 기반 스크립트에 따라 컴퓨터 상에 제2 오퍼레이팅 시스템 이미지를 설치한다. 단일의 컴퓨터 재부팅으로 부팅 및 설치가 발생한다.
본 발명의 또 다른 형태에 따라, 시스템은, 사용자에 의해 선택된 오퍼레이팅 시스템 구성요소들을 갖는 제1 오퍼레이팅 시스템 이미지, 제2 오퍼레이팅 시스템 이미지, 및 사용자에 의해 커스터마이즈된 텍스트 기반 스크립트 파일을 포함한다. 스크립트 파일은 제1 오퍼레이팅 시스템 이미지와 상호작용하여 컴퓨터 상에 제2 오퍼레이팅 시스템 이미지를 설치한다. 컴퓨터는 32비트 또는 64비트 구조를 갖는다.
본 발명의 또 다른 형태에 따라, 컴퓨터와 함께 사용하기 위한 컴퓨터 판독가능 복구매체(recovery medium)는 오퍼레이팅 시스템 이미지 및 텍스트 기반 스크립트 파일을 갖는다. 스크립트 파일은 오퍼레이팅 시스템 이미지와 상호작용하여컴퓨터 상의 소프트웨어의 오류로부터 복구를 지시한다.
본 발명의 또 다른 형태에 따라, 컴퓨터화된 방법은 목적매체 상에 오퍼레이팅 시스템 이미지를 생성한다. 본 방법은 복수의 오퍼레이팅 시스템 구성요소들로부터 하나의 서브세트의 오퍼레이팅 시스템 구성요소들을 선택하고, 선택된 오퍼레이팅 시스템 구성요소 서브세트와 관련된 파일의 리스트를 생성하며, 오퍼레이팅 시스템 이미지로서 목적매체 상에 오퍼레이팅 시스템 구성요소들의 선택된 서브세트를 설치한다. 설치하는 단계는 설치매체(installation medium)로부터 목적매체로 파일을 복사하는 단계를 포함한다.
본 발명의 또 다른 형태에 따라, 목적매체 상에 오퍼레이팅 시스템 이미지를 생성하는 시스템은 복수의 오퍼레이팅 시스템 구성요소들로부터 하나의 서브세트의 오퍼레이팅 시스템 구성요소들을 선택하기 위한 수단, 오퍼레이팅 시스템 구성요소들의 선택된 서브세트와 관련된 파일의 리스트를 생성하기 위한 수단, 및 오퍼레이팅 시스템 이미지로서 목적매체 상에 오퍼레이팅 시스템 구성요소들의 선택된 서브세트를 설치하기 위한 수단을 포함한다. 설치하기 위한 수단은 설치매체로부터 목적매체로 파일들을 복사하는 단계를 포함한다.
본 발명의 또 다른 형태에 따라, 시스템은 복수의 오퍼레이팅 시스템 구성요소들로부터 목적매체 상에 하나의 오퍼레이팅 시스템 이미지를 생성한다. 시스템은 하나 이상의 응용 프로그램 및 오퍼레이팅 시스템 구성요소 변형들을 포함한다. 응용 프로그램은, 컴퓨터 상에서 하나 이상의 프로세서들에 의해 실행되는 경우, 사용자들이 복수의 오퍼레이팅 시스템 구성요소들로부터 한 세트의 오퍼레이팅 시스템 구성요소들을 선택하게 하는 것을 포함하는 동작들을 하나 이상의 프로세서들이 수행하도록 야기시킨다. 오퍼레이팅 시스템 구성요소 변형들은 오퍼레이팅 시스템 구성요소들의 선택된 세트가 오퍼레이팅 시스템 이미지로서 실행되도록 한다.
일반적으로, 본 발명은 하나 이상의 응용 프로그램 및 오퍼레이팅 시스템(OS) 구성요소들에 대한 변형들을 제공하여, 설치 OS 이미지로부터 부팅이 가능한, 축소된 OS 이미지를 생성하는 방법 및 시스템에 관한 것으로서, 축소된 OS 이미지는 최초 장비 제조자(OEM)와 같은 사용자에 의해 특정된 하나 이상의 기능들을 수행하기 위한 스크립팅 지원을 갖는다. 축소된 OS 이미지는 전체 설치된 설치 OS 이미지의 기능성(funtionality) 및/또는 사이즈와 관련하여 축소된다. 축소된 OS 이미지는 사용자가 선택한 기능성을 갖는다.
사용자는 축소된 OS 이미지에 포함하기 위한 OS 구성요소들을 선택하고, 원하는 기능성을 인에이블하기 위하여 추가적인 OS 구성요소들을 선택적으로 포함시킨다. 응용 프로그램은 선택 OS 이미지에 대하여 상기의 선택 및 추가를 적용하여 부팅 가능한, 축소된 OS 이미지를 생성한다. 축소된 OS 이미지는 CD-ROM과 같은 컴퓨터 판독가능 매체(CRM)에 기록되거나, 원격서버에 저장되거나, 국부(local) 대용량 저장장치에 설치된다. 축소된 OS 이미지는 사용자에 의해 특정된 기능들을 수행하기 위한 스크립트를 포함한다. 예를 들면, 사용자는 스크립트를 편집하여, 축소된 OS 이미지와 상호작용하여, 소프트웨어를 설치하거나 잘못된 OS 설치로부터 복구하거나 하드웨어 드라이버를 업데이트하거나 컴퓨터를 재봉인(reseal) 및 감사(audit)하거나 다른 스크립트들을 포함하는 응용 프로그램들을 실행하거나 임의의 다른 태스크를 수행하도록 할 수 있다.
본 발명의 예시적인 OS는 WINDOWS 오퍼레이팅 시스템이지만, 본 발명은 다른 오퍼레이팅 시스템에도 적용되어 축소된 OS 이미지를 생성 및 이용할 수 있다. 예시적인 WINDOWS 오퍼레이팅 시스템 실시예에서, 축소된 OS 이미지는 최소한 WIN32 응용 프로그래밍 인터페이스(API) 서브시스템을 갖춘 WINDOWS NT 오퍼레이팅 시스템과 관련된 코드 베이스를 포함한다. 축소된 OS 이미지는 WIN32 서브시스템으로 부팅하기 위하여 요구되는 최소 갯수의 OS 구성요소들을 갖는다. 최소 갯수의 OS 구성요소는 커넬, 하드웨어 드라이버, 및 시스템 파일을 포함한다. 또한, 축소된 OS 이미지는 그 자체에 대한 최소 상태 정보(state information)를 WINDOWS 오퍼레이팅 시스템의 레지스트리와 연관된 하이브(hive)와 같은 데이터 베이스에 저장한다.
WINDOWS 오퍼레이팅 시스템에서 이용 가능한 OS 구성요소 및 부트 프로세스에 관한 일반적인 정보에 대하여는, 명세서의 일부로서 참조되는, Solomon and Russinovich,Inside Microsoft Windows 2000,3rdEdition, 2000, pages 46-87, 177-206, 및 215-236을 참조한다.
일 실시예에서, 축소된 OS 이미지는 마이크로프로세서의 보호 동작 모드에 대한 지원을 포함한다. 마이크로프로세서 동작의 보호모드(protected mode)는 마이크로프로세서 동작의 실제모드(real mode)와 대비된다. 사용자는 하드웨어의 제조자에 의해 제공되고 하드웨어를 제어하는데 사용하기 위한 하드웨어 드라이버를이용하여 하드웨어를 유효화하기 위해 스크립트를 편집한다. 보호모드를 위하여 기록된 하드웨어 드라이버의 경우, 사용자가 별도의 하드웨어 드라이버를 기록하거나 보호모드 하드웨어 드라이버를 변형시켜 실제모드에서 동작하도록 할 필요가 없다. 사용자는 축소된 OS 이미지의 변형되지 않은 하드웨어 드라이버를 사용하여 축소된 OS 이미지의 보호모드에서 하드웨어를 유효화한다. 또 다른 OS를 설치하기 위하여 축소된 OS 이미지가 이용되는 경우, 하드웨어 유효화의 결과 또한 설치된 OS에 적용될 수 있다.
스크립트를 편집함으로써, 사용자는 레퍼런스 OS 이미지를 자동적으로, 손을 사용할 필요가 없이 설치하도록 구성한다. 축소된 OS는 임의의 OS 이미지를 설치하기 위하여 사용될 수 있다. 또한, 축소된 OS 이미지는 OS 설치를 고정시키거나 엔드-엔드(end-to-end) 그래픽 사용자 인터페이스(GUI) 응용을 실행하기 위하여 사용될 수 있다.
일 실시예에서, OEM은 축소된 64비트 구조나 32비트 구조를 갖는 퍼스널 컴퓨터(PC)에 레퍼런스 OS 이미지를 설치하기 위하여 OS 이미지를 이용한다. OEM은 축소된 OS 이미지를 생성하기 위하여 필요한 OS 구성요소 변형들 및 응용프로그램을 포함하는 소프트웨어 개발 키트(SDK)를 받는다. OEM은 특정 PC 하드웨어 및 OEM의 다른 사이트 고려사항들(site considerations)을 고려하여 OEM 공장에서 목적 컴퓨터로의 레퍼런스 OS 이미지 설치를 수행하는데 필요한 OS 구성요소들을 선택한다. 특히, OEM은 하드웨어 드라이버와 같은 OS 구성요소들을 부가 또는 제거하고 텍스트 파일을 통하여 대용량 저장장치 구성을 특정한다. 응용 프로그램은OS 구성요소들의 선택된 세트를 갖는 축소된 OS 이미지를 생성한다. 그 후, OEM은 축소된 OS 이미지를 이용하여, 포맷되지 않은 하드디스크 드라이브를 갖는 PC와 같은 목적 컴퓨터를 부팅시키고, 하드웨어를 유효화하고, 목적 컴퓨터의 하드드라이브를 포맷시키며, 목적 컴퓨터에 레퍼런스 OS 이미지를 설치한다.
목적 컴퓨터는 32비트 및 64비트를 포함하는(그러나 이들에 국한되지 않음) 다양한 구조에 따라 설계된다. 각 컴퓨터는 그 구조에 따라 분류되는 것이 일반적이다. 64비트 구조는 내부적으로 64비트의 그룹으로 데이터를 처리하는 컴퓨터의 성능을 의미한다. 64비트 컴퓨터 구조는, 프로세싱 유닛(도 1의 도면부호 120 참조), 프로세싱 유닛 내부 또는 외부의 적어도 하나의 메모리 레지스터, 및 데이터 버스를 포함하는 64비트 범위인 구성요소들에 기초한다. 유사하게, 32비트 이상의 구조를 갖는 컴퓨터의 클래스를 일반적으로 언급하는 경우, 컴퓨터는 64비트 구조, 128비트 구조, 또는 내부적으로 최소한 32비트 그룹으로 데이터를 처리하는 임의의 구조일 수 있다. 본 기술분야에서 능숙한 자라면 본 발명의 시스템 및 방법이 현재 이용 가능한 컴퓨터 구조에 국한되지 않음을 이해할 것이다. 본 발명은 128비트 및 256비트 구조를 포함하여(그러나 이들에 국한되지 않음), 미래의 컴퓨터 구조에 적용 가능하도록 의도한다. 또한, 본 발명은, 컴퓨터 및 그 주변장치들을 제어하는 소프트웨어 기반의 OS의 개념을 컴퓨터가 포함하는 경우라면, 전적으로 상이한 유형의 컴퓨터, 심지어 비디지털(non-digital) 컴퓨터에도 적용이 가능하다. 또한, 본 발명은, 32비트 구조, 16비트 구조, 8비트 구조, 또는 단일비트 구조를 포함하여(그러나 이들에 국한되지 않음) 32비트 이하의 컴퓨터 구조에도 적용이 가능하도록 의도된다. 일반적으로, 본 발명의 시스템 및 방법은 축소된 OS 이미지에 의해 지원되는 임의의 컴퓨터 구조에 대하여 동작한다는 점에서 구조상 독립적이다. 예를 들어, 만일 축소된 OS 이미지가 32비트 구조 및 64비트 구조의 컴퓨터에 대한 지원을 제공한다면, 본 발명은 32비트 또는 64비트 구조를 갖는 컴퓨터에 적용된다. 일 실시예에서, 부팅 및 수행단계는 32비트 이하의 구조를 갖는 컴퓨터에서 동작한다. 또한, 스크립트 파일은 32비트 이하의 구조를 갖는 컴퓨터 상에서 동작한다.
MICROSOFT 디스크 오퍼레이팅 시스템(MS-DOS)과 같은 OS는 16비트 구조의 컴퓨터 상에서 기능성을 스크립팅하는 것을 지원해왔다. MS-DOS는 기본입출력 시스템(BIOS)과 통신하기 위하여 인터럽트를 이용함으로써 컴퓨터 상에서 기능을 수행한다. BIOS는 MS-DOS 및 BIOS가 동작하는 특정 컴퓨터와 관계하여 MS-DOS 명령들을 실행한다. BIOS는 32비트 컴퓨터 상에서 16비트 MS-DOS 명령들을 실행하도록 변형될 수 있다. 그러나, BIOS는 32비트 이상의 구조를 갖는 컴퓨터 상에서는 그러한 구조를 지원하기 위한 BIOS의 완전한 재기록(re-write)이 없이는 16비트 MS-DOS 명령들을 실행하도록 변형될 수 없다. 또한, MS-DOS는 32비트 이상의 구조를 갖는 컴퓨터 상에서는 그런 구조를 지원하기 위한 MS-DOS의 완전한 재기록이 없이는 동작 가능한 명령들을 생성하도록 변형될 수 없다. MS-DOS는 MS-DOS 및 BIOS의 고유의 설계 때문에 기본적으로 32비트 이하의 구조로 제한된다. MS-DOS 및/또는 BIOS의 완전한 재기록은 여기에 기술된 OS와 같은 신규 OS를 야기시킨다.
예를 들면, 어드레스 버스가 단지 20비트 범위에 있었으므로 1 메가바이트의메모리만을 액세스하는 어드레스 제한을 일반적으로 갖는 8비트 및 초기 16비트 구조 프로세서용으로 MS-DOS가 주로 설계되었기 때문에, 다른 제한들 중에서 MS-DOS는 대용량의 메모리를 액세스할 수 없다. MS-DOS의 완전한 재기록(특별한 MS-DOS 확장을 포함)이 없이는, MS-DOS 하에서 실행되는 애플리케이션은 20비트 이상 범위의 어드레스 버스를 갖는 프로세서 상에서 1 메가바이트의 제한을 초과하는 메모리를 액세스할 수 없을 것이다. MS-DOS는 완전한 재기록이 없이는 그런 메모리 액세스를 지원하도록 변형될 수 없다. 일반적으로, MS-DOS 하에 실행되는 대부분의 애플리케이션은 최대로 단지 640 킬로바이트의 메모리를 갖는다.
먼저 도 1를 참조하면, 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 일 예가 블럭도로 도시된다. 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 또는 오퍼레이팅 환경의 일 예에 불과하며, 본 발명의 이용 또는 기능성의 범위에 대하여 어떠한 제한을 가하려고 의도된 것은 아니다. 또한 컴퓨팅 시스템 환경(100)은, 예시적인 컴퓨팅 시스템 환경(100)에 도시된 구성요소의 하나 또는 조합에 연관되는 어떠한 의존성이나 요건을 갖는 것으로 해석되어서도 안된다.
본 발명은 다른 많은 범용 또는 특정 목적의 컴퓨팅 시스템 환경이나 구성에서 동작 가능하다. 본 발명이 적절히 이용될 수 있는 공지된 컴퓨팅 시스템, 환경, 및/또는 구성의 예에는, 퍼스널 컴퓨터, 서버 컴퓨터, 휴대형 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱박스, 프로그램가능 수요자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전술된 시스템이나 장치 중 임의의 것을 포함하는 분산형 컴퓨팅 환경(distributed computingenvironment)을 포함한다(그러나 이들에 국한되지 않음).
본 발명은 하나 이상의 컴퓨터나 다른 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령들과 일반적으로 관련되어 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상적 데이터형(abstract data types)을 실행하는 루틴, 프로그램, 객체, 구성요소 및 데이터 구조를 포함한다.(그러나 이들에 국한되지 않음) 또한, 본 발명은 통신 네트워크를 통하여 링크되는 원격 프로세싱 장치에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서도 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 모두에 위치될 수 있다.
도 1를 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태로 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 구성요소들은 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 구성요소들을 프로세싱 유닛(120)로 연결하는 시스템 버스(121)를 포함할 수 있다(그러나 이들에 국한되지 않음). 본 발명의 일 실시예에서, 프로세싱 유닛(120)는 32비트 또는 64비트 구조를 갖는다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스(peripheral bus), 및 다양한 버스 구조들 중 어느 하나를 이용하는 국부버스(local bus)를 포함하는 버스 구조들의 몇 가지 형태 중 임의의 것일 수 있다. 예로서(제한이 아님), 그런 버스 구조는 산업표준구조(Industry Standard Architecture, ISA)버스, 마이크로 채널구조(Micro Channel Architecture, MCA)버스, 개선된 ISA(EISA)버스, 비디오 전자장치 표준협회(VideoElectronics Standards Association, VESA) 국부 버스, 및 메자닌 버스(Mezzanine bus)로도 알려진 주변장치 구성요소 상호접속(Peripheral Component Interconnect, PSI) 버스를 포함한다.
컴퓨터(110)는 적어도 CRM의 일부 형태를 포함하는 것이 통상적이다. CRM은 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있고 휘발성 및 비휘발성 매체, 제거가능 및 비제거가능 매체 모두를 포함한다. 예로서(제한이 아님), CRM은 컴퓨터 저장매체 및 통신매체를 포함할 수 있다. 컴퓨터 저장매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 그 외의 데이터와 같은 정보의 저장을 위한 임의의 방법 및 기술로 구현되는 휘발성 및 비휘발성, 제거가능 및 비제거가능 매체를 포함한다. 컴퓨터 저장매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disks, DVD) 또는 다른 광디스크 저장매체, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장장치, 또는 원하는 정보를 저장하는데 이용될 수 있거나 컴퓨터(110)에 의해 액세스될 수 있는 다른 매체를 포함한다.(그러나 이들에 국한되지 않음) 통신매체는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 그 외의 데이터를 반송파나 다른 전송 메카니즘과 같은 변조된 데이터 신호로 구현하며, 임의의 정보전달 매체를 포함한다. 당업자들은 신호의 정보를 인코드하는 방식으로 세팅 또는 변경된 하나 이상의 특성을 갖는 변조된 데이터 신호에 익숙하다. 예로서(제한은 아님), 통신매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선매체 및 음향, RF, 적외선 및 다른 무선매체와 같은 무선매체를 포함한다. 상기 중 임의의 조합도 또한 CRM의 범위에 포함된다.
시스템 메모리(130)는 판독전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장매체를 포함한다. 개시(start-up)동안과 같이, 컴퓨터(110) 내의 구성요소들 간의 정보전달을 돕는 기본적인 루틴들을 포함하는 기본 입출력 시스템(133)(BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 프로세싱 유닛(120)에 의해 즉시 액세스 가능하고/하거나 현재 동작되는 프로그램 모듈 및/또는 데이터를 포함하는 것이 보통이다. 예로서(제한은 아님), 도 1에는 오퍼레이팅 시스템(134), 응용 프로그램(135), 그 외의 프로그램 모듈(136) 및 프로그램 데이터(137)가 도시된다.
또한, 컴퓨터(110)는 그 외의 제거가능/비제거가능, 휘발성/비휘발성 컴퓨터 저장매체를 포함할 수 있다. 오직 예로서, 도 1에는 비제거가능, 비휘발성 자기매체로부터 판독하거나 그것에 기록하는 하드디스크 드라이브(141), 제거가능, 비휘발성자기디스크(152)로부터 판독하거나 그것에 기록하는 자기디스크 드라이브(151) 및 CD ROM 또는 다른 광매체와 같은 제거가능, 비휘발성 광디스크(156)로부터 판독하거나 그것에 기록하는 광디스크 드라이브(155)가 도시된다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 그 외의 제거가능/비제거가능, 휘발성/비휘발성 컴퓨터 저장매체는 자기테이프 카세트, 플래시 메모리 카드, 디지털 다기능 디스크, 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함한다.(그러나 이들에 국한되지 않음) 하드디스크 드라이브(141)는 인터페이스(140)와 같은 비제거가능 메모리 인터페이스를 통하여 시스템 버스(121)에 연결되는 것이 보통이며, 자기디스크 드라이브(151) 및 광디스크 드라이브(155)는 인터페이스(150)와 같은 제거가능 메모리 인터페이스에 의해 시스템 버스(121)에 연결되는 것이 보통이다.
전술되고 도 1에 도시된 드라이브 또는 다른 대용량 장치 및 그에 연관된 컴퓨터 저장매체는 컴퓨터(110)에 사용되는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 그 외의 데이터의 저장을 제공한다. 예를 들면, 도 1에서, 하드디스크 드라이브(141)는 오퍼레이팅 시스템(144), 응용 프로그램(145), 그 외의 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이 구성요소들은 오퍼레이팅 시스템(134), 응용 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 상이할 수 있다는 점을 주목한다. 오퍼레이팅 시스템(144), 응용 프로그램(145), 그 외의 프로그램 모듈(146) 및 프로그램 데이터(147)는 최소한 그들이 상이한 카피라는 것을 도시하기 위하여 상이한 부호가 부여된다. 오퍼레이팅 시스템(144)과 같은, 본 발명에 따른 OS는 컴퓨터(110)에 대한 기본적인 소프트웨어 제어 프로그램으로, 사용자 인터페이스를 제공하고 응용 프로그램(145)의 실행을 처리하며 다양한 입출력(I/O) 장치로부터의 데이터 입력 및 출력을 제어하는 것을 포함하는 다양한 기능들을 수행한다. 응용 프로그램(145)은 컴퓨터(110)상에서 실행될 수 있는 하나 이상의 다양한 소프트웨어 루틴들을 나타낸다. 응용 프로그램의 예에는 교육 프로그램, 레퍼런스 프로그램, 생산성 프로그램(예를 들면, 워드프로세서, 스프레드쉬트, 데이터베이스), 레크리에이션 프로그램, 및 유틸리티 프로그램(예를 들면, 통신 프로그램)이 포함된다(그러나 이들에 국한되지 않음). 응용 프로그램(145)은 사용자에 의해 컴퓨터(110)상에 설치되거나, 또는 컴퓨터(110)의 OEM 및/또는 배포자에 의해 예비설치될 수 있다.
사용자는 키보드(162)와 통상적으로 마우스, 트랙볼 또는 터치패드라 부르는 포인팅 장치(161)와 같은 입력장치를 통하여 컴퓨터(20)로 명령과 정보를 입력할 수 있다. 다른 입력장치(도시하지 않음)는 마이크로폰, 조이스틱, 게임패드, 위성접시(satellite dishes), 스캐너 등을 포함할 수 있다. 이러한 그리고 그 외의 입력장치들은 시스템 버스에 접속되는 사용자 입력 인터페이스(160)를 통하여 프로세싱 유닛(120)에 종종 접속되지만, 병렬 포트, 게임 포트 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 형태의 디스플레이 장치도 또한 비디오 인터페이스(190)와 같은 인터페이스를 통하여 시스템 버스(121)에 접속된다. 모니터에 부가하여, 컴퓨터는 또한 스피커(197) 및 프린터(196)와 같은 다른 주변 출력장치를 포함할 수 있는데, 이들은 출력 주변장치 인터페이스(195)를 통하여 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치(peer device) 또는 다른 통상의 네트워크 노드일 수 있으며, 도 1에는 오직 메모리 저장장치(181)만이 도시되었지만, 전형적으로 컴퓨터(110)와 연관되어 전술된 많은 또는 모든 요소들을 포함한다. 도 1에서 설명된 논리 접속은 국부 영역 네트워크(LAN)(171) 및 광역 네트워크(WAN)(173)를 포함하지만, 또한 다른 네트워크를 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 전기업(enterprise-wide) 컴퓨터 네트워크, 인트라넷 및글로벌 컴퓨터 네트워크(예를 들면, 인터넷)에서 흔한 것이다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통하여 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 모뎀(172) 또는, WAN(173) 상에 인터넷과 같은 통신을 구축하기 위한 다른 수단을 포함하는 것이 보통이다. 내장형 또는 외장형의 모뎀(172)은 사용자 입력 인터페이스(160), 또는 다른 적절한 메커니즘을 통하여 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110) 또한 그 일부와 관련되어 도시된 프로그램 모듈은 원격 메모리 저장장치에 저장될 수 있다. 예로서(제한은 아님), 도 1에는 메모리 장치(181)에 상주하는 것으로 원격 응용 프로그램(185)이 도시되어 있다. 도시된 네트워크 접속은 예시적이며 컴퓨터 간의 통신링크를 구축하는 다른 수단들이 사용될 수 있음을 이해할 수 있다.
다음으로 도 2를 참조하면, 블럭도는 OS 구성요소(202)를 도시한다. 일부 컴퓨터 시스템에서, OS 이미지는 각각의 구성요소(202)가 하나 또는 결합된 기능들을 수행하는 OS 구성요소들(202)로 편성된다. 각각의 OS 구성요소(202)는 컴퓨터에 의해 액세스 가능한 최대 N 개의 파일(204)을 포함한다.
다음 도 3를 참조하면, 흐름도는 목적매체(destination medium) 상에 축소된 OS 이미지를 설치하는 것을 도시한다. 목적매체는 컴퓨터에 의해 국부 또는 원격으로 액세스 가능한 임의의 CRM이다. 302에서 사용자는 복수의 OS 구성요소들로부터 적어도 하나의 OS 구성요소를 선택한다(도 2의 도면부호 202 참조). 일 실시예에서, 사용자는 한 세트의 OS 구성요소를 선택한다. 복수의 OS 구성요소는, 도 1에 도시 또는 고려된 대용량 저장장치, 네트워크 카드, 및/또는 임의의 장치를 포함하는 컴퓨터에서 하드웨어를 인에이블하기 위한 드라이버를 포함한다. 전술된 바와 같이, 복수의 OS 구성요소 각각은 적어도 하나의 파일을 포함한다(도 2의 도면부호 204 참조). 축소된 OS 이미지의 설치는 선택된 세트의 OS 구성요소 및 관련된 OS 구성요소의 변형에 연관된 파일들을 목적매체 상에 복사하는 단계 및 통합하는 단계를 포함한다. 선택된 OS 구성요소에 연관된 파일들은 304에서 목적매체로 복사되고 306에서 축소된 OS 이미지로서 통합된다.
일 실시예에서, 축소된 OS 이미지의 선택된 세트의 OS 구성요소는 설치 OS 이미지에서 복수의 오퍼레이팅 시스템 구성요소의 서브세트를 포함한다. 사용자는 추가적인 OS 구성요소를 OS 구성요소의 선택된 세트에 선택적으로 포함시킨다. 추가적인 OS 구성요소는 사용자에 의해 제공되지만 복수의 OS 구성요소에는 존재하지 않는 임의의 구성요소를 포함한다. 추가적인 OS 구성요소는 특정의 하드웨어 드라이버, 스크립트 파일, 및 응용 프로그램을 포함한다(그러나 이에 국한되지 않음). 예를 들면, 특정의 하드웨어 드라이버는 대용량 저장장치 드라이버, 비디오장치 드라이버, 입력장치 드라이버, 및 네트워크장치 드라이버를 포함한다. 축소된 OS 이미지에 포함되는 하드웨어 드라이버는 설치 OS 이미지 내에 또는 제3자들로부터 이용 가능한 하드웨어 드라이버 중 임의의 모든 것을 포함하도록 사용자에 의해 커스터마이즈가 가능하다. 유사하게, 사용자는 네트워크 클라이언트, 테스트 하니스(test harnesses), 및 리포팅 유틸리티와 같은 툴이나 유틸리티를 선택적으로 포함시킨다. 추가적인 OS 구성요소와 연관된 파일들이 사용자에 의해 제공되며축소된 OS 이미지로의 통합을 위해 목적매체로 복사된다. 예를 들면, 특정의 대용량 저장장치를 위한 지원을 추가하기 위하여, 사용자는 특정의 대용량 저장장치를 위한 엔트리를 하드웨어 드라이버 리스트에 추가하며 모든 드라이버를 포함하는 파일 디렉토리에 특정의 대용량 저장장치에 연관된 하드웨어 드라이버를 포함시킨다. 사용자는 목적매체 상에 축소된 OS 이미지를 설치하기 전 또는 이후에 특정의 하드웨어 장치를 위한 지원을 추가 또는 삭제한다.
일 실시예에서, 축소된 OS 이미지는, 전체 설치된 OS 이미지의 경우 통상적인 950 메가바이트 내지 1.2 기가바이트의 비휘발성 메모리 저장에 비하여 약 100 메가바이트의 비휘발성 메모리 저장을 필요로 한다. 당업자는 오퍼레이팅 시스템이 발전함에 따라, 축소된 OS 이미지의 비휘발성 메모리 저장 요건들이 본 발명의 기능성에 영향을 미치지 않고 100 메가바이트보다 매우 작게 될 수 있는 점을 주목할 것이다.
축소된 OS 이미지는 최소의 파일리스트 및 최소의 상태 정보를 포함한다. 예를 들면, WINDOWS 오퍼레이팅 시스템에서, 상태 정보는 하이브(hives)라 부르는 이산 파일 세트를 포함하는 레지스트리로 알려진 데이터베이스에 저장된다. 설치 OS 이미지를 포함하는 매체에 OS 구성요소와 관련된 각각의 모든 파일명을 포함하는 마스터 파일 레이아웃 리스트가 있다. 마스터 파일 레이아웃 리스트의 엔트리들은 축소된 OS 이미지를 위하여 그들이 필요한지 여부를 나타낸다. 예를 들면, WINDOWS 오퍼레이팅 시스템에서, 마스터 파일 레이아웃 리스트는 filelayout.inf 이다. 본 발명은 마스터 파일 레이아웃 리스트를 분석하고 축소된 OS 이미지에 필요한 파일을 식별하기 위한 이미지 생성 소프트웨어를 포함한다. 이미지 생성 소프트웨어는 식별된 파일들을 목적매체 상의 파일 디렉토리에 복사함으로써 목적매체 상에 축소된 OS 이미지를 설치한다. 그 후, 파일 디렉토리는 비휘발성 매체 상으로 이미지화될 수 있다. 또한, 이미지 생성 소프트웨어는 식별된 파일들을 필요한 경우 목적매체 상에 압축해제한다. 또한, 이미지 생성 소프트웨어는 디렉토리 구조를 생성하는 동안 사용자가 추가적으로 요구되는 파일들을 축소된 OS 이미지에 부가하도록 한다. 이런 방식으로, 사용자는 설치 OS 이미지의 부분으로서 존재하지 않는 더 새로운 드라이버 파일 및 다른 유틸리티 파일을 부가한다. GUI 및 텍스트 인터페이스는 복수의 OS 구성요소들로부터 OS 구성요소의 서브세트를 선택하기 위한 수단을 구성한다. 사용자는 SDK와 같은 응용 프로그램을 통하여 두 인터페이스 중 어느 하나와 상호작용하여 축소된 OS 이미지에 포함하기 위한 OS 구성요소의 서브세트를 선택한다. 도 3에서 전술된 SDK는 OS 구성요소의 선택된 서브세트와 연관된 파일 리스트를 생성하기 위한 수단 및 축소된 OS 이미지로서 목적매체 상에 OS 구성요소의 선택된 서브세트를 설치하기 위한 수단을 구성한다. 설치매체로부터 목적매체로 파일을 복사하는 것은 설치를 위한 수단을 구성한다. 또한, 전술된 예시 및 명세서의 다른 곳에 기술된 예시는 OS 구성요소의 서브세트를 선택하기 위한 수단, 파일 리스트를 생성하기 위한 수단, 및 OS 구성요소의 선택된 서브세트를 설치하기 위한 수단을 구성한다.
다음으로 도 4를 참조하면, 블럭도는 목적매체(410) 상에 축소된 OS 이미지(412)를 설치하는 것을 도시한다. 소프트웨어 개발 툴키트(SDK)(405) 또는적어도 하나의 다른 응용 프로그램은, 하드웨어 드라이버 리스트와 같은 OS 구성요소 리스트(402)를 사용자에게 디스플레이한다. 사용자는 리스트(402)로부터 OS 구성요소(404) 세트를 선택한다. 컴퓨터 상의 하나 이상의 프로세서들은 SDK(405)를 실행하여 사용자가 OS 구성요소(402) 리스트로부터 OS 구성요소(404) 세트를 선택하도록 한다. SDK(405)에 의해 액세스 가능한 설치 OS 이미지(406)는 리스트(402)에 대응하는 복수의 OS 구성요소(407)를 제공한다. 예를 들면, 설치 OS 이미지(406)는 WINDOWS 오퍼레이팅 시스템 제품 배포물을 포함하는 매체 상에 위치된다. SDK(405)는 설치 OS 이미지(406)에 대비하여 OS 구성요소(404)의 선택된 세트를 적용하여 OS 구성요소(404)의 선택된 세트와 연관된 파일을 식별한다. 또한, SDK(405)는 복수의 OS 구성요소 변형(408) 중 임의의 것과, OS 구성요소(404)의 선택된 세트에 관련된 대응 파일들을 액세스하고 식별한다. 식별된 OS 구성요소 변형(416)은 선택된 OS 구성요소(414)가 목적매체(410) 상에서 축소된 OS 이미지(412)로서 실행되도록 한다. OS 구성요소(408)는 복수의 OS 구성요소(407)를 대체, 보충, 또는 변형한다.
특히, 복수의 OS 구성요소(407)에 대한 변형(408)은 비휘발성 메모리에 데이터를 기록하지 않도록 OS 구성요소(407)를 변형하는 것을 포함할 수 있다. 예를 들면, WINDOWS 오퍼레이팅 시스템 환경에서, 본 발명의 OS 구성요소는 비휘발성 메모리 대신 휘발성 메모리에 레지스트리 정보를 기록한다. 레지스트리 정보는 하이브로 알려진 이산파일의 데이터베이스에 저장된 OS 구성 데이터를 포함한다. 부트업(bootup)동안, 셋업 로더(setup loader)는 축소된 OS 이미지에 연관된커넬(kernel)로 플래그(flag)를 전달하여 축소된 OS 이미지(412)가 부팅되고 있음을 커넬에 알린다. 커넬 초기화동안, 판독전용 CRM으로부터 부팅하는 경우에도 레지스트리 관리자는 플래그를 보고 휘발성 메모리에 레지스트리를 기록한다. 레지스트리의 엔트리에 대한 변화는 휘발성 메모리에서 이루어진다. 휘발성 메모리의 속성에 따라, 축소된 OS 이미지(412)가 재부팅하면, 모든 변화들은 지워진다. 휘발성 메모리에 레지스트리 정보를 저장하는 것은 매 부팅시마다 축소된 OS 이미지(412)에 새로운 레지스트리를 제공한다. 또 다른 실시예에서, 만일 목적 컴퓨터가 비휘발성 메모리에 대한 기록 액세스를 갖는다면, 사용자는, 비휘발성 메모리에 레지스트리 정보 또는 다른 구성 정보를 저장함으로써 재부팅이 되어도 그 정보를 유지하는 것에 대한 선택을 제안받는다.
하이브의 엔트리도 변형될 수 있다. 하이브 엔트리는 텍스트 파일에 저장된다. 하이브 생성 소프트웨어는 축소된 OS 이미지(412)를 생성하는 동안 텍스트 파일의 바이너리 버전을 생성한다. 하이브 생성 소프트웨어는 텍스트 파일 내의 하이브 엔트리를 분석하고 목적매체를 위한 바이너리 하이브를 생성한다. 또한, 하이브 생성 소프트웨어는 하이브를 메모리로 로드하고, 요청된 변화들을 적용하며, 변형된 하이브를 바이너리 포맷으로 저장함으로써 존재하는 바이너리 하이브를 변형한다.
예를 들면, 부팅을 위하여 WINDOWS 오퍼레이팅 시스템이 필요로 하는 4개의 하이브가 있다. 필요한 하이브는 SYSTEM, SOFTWARE, SECURITY, 및 SAM(Security Accounts Manager) 하이브를 포함한다. 디폴트 SYSTEM 하이브는 WINDOWS 오퍼레이팅 시스템을 부트스트래핑하는 동안 어느 서브시스템, 하드웨어 드라이버, 및 서비스가 실행되는지에 대한 정보를 포함한다. 본 발명의 SYSTEM 하이브는 현재 WINDOWS 오퍼레이팅 시스템 셋업의 SYSTEM 하이브의 변형된 버전이다. 하이브 생성 소프트웨어는 minint.inf과 같은 텍스트 파일에서의 변형을 디폴트 SYSTEM 하이브에 적용한다. SOFTWARE 하이브는 hivesft.inf와 같은 텍스트 파일로부터 하이브 생성 소프트웨어에 의해 생성된다. SECURITY 및 SAM 하이브는 축소된 OS 이미지(412)상에 관련 보안정보(security information)가 없음을 표시하는 길이가 0인 파일이다. 축소된 OS 이미지(412)가 부팅하고 있음을 표시하는, 커넬로 전달되는 로더 플래그(loader flag)에 기초하여, 레지스트리 관리자는 특정의 위치에 레지스트리 키(registry key)를 생성한다. 예를 들면, 레지스트리 관리자는 휘발성 키 HKLM\System\CurrentControlSet\Control\MiniNT를 생성한 후, "Option"이라 불리우는 DWORD 값을 생성한다. "Option"은 사용자가 축소된 OS 이미지(412) 환경에 있음을 나타내기 위하여 1로 세팅될 것이다. 사용자 모드에서 실행하는 응용 프로그램은 필요한 경우 레지스트리 키를 질의(queery)하여 그 값에 따른 구성을 수행한다.
본 발명의 예시적인 WINDOWS 오퍼레이팅 시스템 실시예에 있어서, 축소된 OS 이미지는 "system" 어카운트의 보안 특권(security privilege)을 갖는다. 추가적인 메모리에 대한 액세스를 제공하는 페이징 파일이 부재하므로, 축소된 OS 이미지에 이용 가능한 메모리는 이용 가능한 휘발성 메모리의 양으로 한정된다. 또한, 본 발명의 예시적인 WINDOWS 오퍼레이팅 시스템 실시예에서 디폴트로 개시되는 그외의 의도하지 않는 서비스(예를 들면, 시스템 파일 보호)는 축소된 OS 이미지를 위하여 디스에이블된다.
SDK(405)는 OS 구성요소(404)의 선택된 세트 및 식별된 OS 구성요소 변형(416)에 연관된 파일을 복사 및 통합함으로써, 선택된 OS 구성요소(414) 및 식별된 OS 구성요소 변형(416)을 축소된 OS 이미(412)로서 목적매체(410) 상에 설치한다. 사용자는 복수의 OS 구성요소(407)에 부재하는 추가적인 OS 구성요소를 선택적으로 포함시킨다. 추가적인 OS 구성요소는 SDK(405)를 통하여 선택된 OS 구성요소(414)에 부가된다. SDK(405)는 목적매체(410) 상에 스크립트 파일을 포함하여 사용자에 의해 특정된 기능을 수행한다. 만일 목적매체(410)가 판독전용 CRM이라면, 사용자는 축소된 OS 이미지(412)가 CRM상에 설치되기 전에 스크립트 파일을 커스터마이즈한다. 만일 목적매체(410)가 판독-기록 CRM이라면, 사용자는 축소된 OS 이미지(412)가 CRM상에 설치되기 전 또는 그 후에 스크립트를 커스터마이즈한다.
당업자는 도 4의 설치 OS 이미지(406), 복수의 OS 구성요소 변형(408), 및 목적매체(410)는 SDK(405)에 의해 국부적으로(locally) 또는 원격으로(remotely) 액세스 가능하거나, SDK(405)에 포함될 수 있음을 이해할 것이다. 원격 액세스의 예는 도 1의 네트워킹 환경에 의해 기술된다.
다음으로 도 5를 참조하면, 흐름도는 축소된 OS 이미지를 사용하여 또 다른 OS 이미지를 설치하는 것을 도시한다. 502에서 컴퓨터는 CRM 상의 축소된 OS 이미지로부터 부팅한다. 일 실시예에서, 축소된 OS 이미지는 텍스트 사용자 인터페이스 및 그래픽 사용자 인터페이스(GUI)를 지원한다. 특히, GUI는 최소한 256컬러및 최소한 640×480 픽셀의 해상도를 갖는 비디오 그래픽 어레이(VGA) 비디오 모드를 지원한다. 사용자 커스터마이즈형 텍스트 기반 스크립트는 축소된 OS 이미지와 상호작용하여 컴퓨터 상에서 하나 이상의 기능의 수행을 지시한다. 스크립트는 기능이 수행되는 단계를 식별한다. 또한, 스크립트는 단계가 실행되는 순서를 식별한다. 스크립트는 상기 단계의 멀티태스킹 및 순차실행을 지원한다. 즉, 사용자는 스크립트의 각 단계가 이전의 단계가 실행을 완료한 후에만 실행되어야 하는지 여부를 단계적으로 지정한다. 이런 방식으로 스크립트는 한 번에 한 단계의 실행 및 동시에 복수 단계의 실행을 가능하게 한다. 일 실시예에서, 스크립트는 컴퓨터에 의해 판독가능하고 CRM 상에 위치되는 파일이다. 컴퓨터 실행가능 명령은 단일 CRM상에 상주하여 스크립트에 따라 기능의 부팅 및 수행을 조정한다. 또 다른 실시예에서, 스크립트는 컴퓨터로부터 국부 또는 원격으로 위치한다. CRM은 컴퓨터에 국부 또는 원격으로 위치한다(각각 도 6 및 7 참조). 예를 들면, 컴퓨터는 도 1의 네트워킹 환경에 기술된 바와 같이 CRM 또는 스크립트에 원격으로 액세스한다.
일 실시예에서, OEM과 같은 사용자는 스크립트가 컴퓨터 상에 레퍼런스 OS 이미지를 설치하는데 필요한 기능을 수행하도록 스크립트를 편집한다. 일 실시예에서, 컴퓨터는 구획(partitioning)되지 않고 포맷되지 않은 대용량 저장장치를 구비하는 블랭크(blank) 또는 로우(raw) PC이다. 다른 실시예에서, 컴퓨터는 업데이트될 필요가 있는 OS를 갖는 CRM을 구비하는 PC이다. 또한, 사용자는 스크립트를 편집하여 504에서 컴퓨터 상의 하드웨어를 유효화한다. 컴퓨터 상의 하드웨어는 네트워크 카드, 대용량 저장장치, 비디오 카드, 및/또는 도 1에서 도시되거나 고려된 임의의 다른 장치를 포함한다. 스크립트는 특정의 하드웨어 장치를 인에이블하고, 적절한 동작을 확인하고 오류가 있는 하드웨어를 식별하기 위하여 선택적으로 테스트를 실행함으로써 하드웨어를 유효화 한다. 각각의 하드웨어 장치를 유효화하기 위하여 일반적으로 하드웨어 드라이버는 축소된 OS 이미지로 하여금 하드웨어 장치와 통신하도록 허용할 필요가 있다. 하드웨어 드라이버는 컴퓨터에 설치된 OS와 함께 동작하며 하드웨어 장치와 통신하는, 하드웨어 장치의 제조자에 의해 지원되는 특정의 소프트웨어이다. 일 실시예에서, 축소된 OS 이미지는 플러그 앤드 플레이(PNP) 프로토콜을 지원하여 컴퓨터에서 하드웨어를 검출하고 적절한 하드웨어 드라이버를 식별한다. 축소된 OS 이미지로, PNP 관리자 서비스도 실행된다. 커넬 초기화동안, PNP 관리자의 커넬 모드부는 컴퓨터 상의 다양한 하드웨어 장치들을 검출하고 검출된 하드웨어 장치상의 정보를 레지스트의 특정 위치에 기록한다. 본 발명의 축소된 OS 이미지에 있어, 사용자 모드 PNP 관리자는 검출된 하드웨어 장치에 대한 하드웨어 드라이버를 스스로 설치하지 않도록 필수적으로 디스에이블된다. 이것은, PNP 관리자의 사용자 모드부가 검출된 하드웨어 장치에 대한 하드웨어 드라이버가 설치되는지 여부를 결정하는 다른 OS 이미지와 대비된다. 만일 하드웨어 드라이버가 설치되지 않으면, PNP 관리자의 사용자 모드부는 이 하드웨어 장치에 대한 하드웨어 드라이버를 설치한다.
본 발명에서는, 적절한 하드웨어 드라이버가 적절하게 로드하고 초기화하면, 축소된 OS 이미지는 특정의 하드웨어가 적절히 기능하는 것으로 추정한다. 하드웨어 제조자에 의해 제공되는 테스트 스위트(test suite)에 의해 하드웨어 상에서 추가적인 테스트가 선택적으로 수행된다. 예를 들면, 사용자는 하드웨어와 통신하도록 하드웨어 드라이버로 입출력 제어(IOCTL) 명령을 보낼 수 있다. IOCTL 명령에 의해 복귀된 값을 분석하여, 사용자는 하드웨어가 예상대로 동작하고 있음을 확인한다. 또 다른 예로서, ACME 네트워크 인터페이스 카드(NIC)가 적절히 동작하는지 확인하기 위하여, 사용자는 하드웨어 드라이버 ACMENIC.SYS를 로드시킨다. ACMENIC.SYS가 성공적으로 로드하면, 사용자는 ACMENIC.SYS를 이용하여 선택적으로 루프백(loopback) 테스팅을 수행하여 NIC가 적절히 구성되고 동작하는지를 확인한다.
OEM에 제공되거나 축소된 OS 이미지 내에서 이용 가능한 하드웨어 드라이버는 하드웨어를 제어하기 위하여 이용되고 보호모드를 지원하는 OS에 의한 사용을 위하여 기록된다. 일 실시예에서, 본 발명의 축소된 OS 이미지는 WINDOWS 오퍼레이팅 시스템 환경과 같은 보호모드를 지원하는 OS이다. 축소된 OS 이미지는 컴퓨터 상에 존재할 수 있는 가능한 하드웨어 일부 또는 모두에 대하여 이용 가능한 일부 또는 모든 하드웨어 드라이버를 포함한다. 이런 방식으로, 축소된 OS 이미지는 하드웨어에 독립적이다. 일 실시예에서, txtsetup.sif 또는 txtsetup.oem 같은 작아도 하나의 텍스트 파일은 컴퓨터에 존재할 수 있는 모든 가능한 하드웨어에 대하여 이용 가능한 모든 하드웨어 드라이버를 리스팅한다. 사용자는 상기 리스트로부터 하드웨어 장치를 추가 또는 삭제함으로써 텍스트 파일을 편집하여 컴퓨터에 존재할 수 있는 하드웨어의 가능한 범위를 나타낸다. 하드웨어 드라이버의 리스트를 최소화함으로써, 하드웨어 검출 및 유효화에 필요한 시간이 최소화된다.
예시적인 WINDOWS 오퍼레이팅 시스템 실시예에서, 하드웨어 드라이버는 부팅 하드웨어 드라이버 또는 비부팅(non-boot) 하드웨어 드라이버이다. 축소된 OS 이미지는 부팅 하드웨어 드라이버를 자동으로 로드한다. 부팅 하드웨어 드라이버는 입력, 저장(하드디스크 드라이브 및 파일 시스템) 및 디스플레이 드라이버를 포함(그러나 이들에 국한되지 않음)하는 하드웨어 드라이버이다. 축소된 OS 이미지는 다양한 컴퓨터에서 부팅하므로, 상이한 컴퓨터는 상이한 디스플레이, 입력 및 저장장치를 가질 수 있다. 축소된 OS 이미지는 대부분의 컴퓨터 상에서 동작하는 드라이버의 공통의, 동적인 수퍼세트(superset) 리스트를 포함한다. 통상의 셋업동안 이용되는 로더인 셋업 로더는, 디폴트 VGA 드라이버, 빈번히 사용되는 다양한 하드디스크 드라이버를 위한 일반적인 대용량 저장 드라이버, 통상의 파일 시스템 드라이버 및 키보드와 마우스를 위한 입력 드라이버를 포함하는(그러나 이들에 국한되지 않음) 드라이버를 로드한다. VGA 호환성 디스플레이 장치는 대부분의 WINDOWS 오퍼레이팅 시스템을 위하여 필요하므로, 디폴트 VGA 드라이버는 WINDOWS 오퍼레이팅 시스템 환경에서 거의 모든 컴퓨터에 대하여 동작한다. 셋업 로더는 이 드라이버들을 부트 드라이버로서 로드하고, 리스트를 생성하고 그 리스트를 커넬로 보내서 드라이버를 초기화한다. 드라이버가 초기화되기 전에, SYSTEM 하이브의 서비스키에 유효한 엔트리가 생성된다. 이 드라이버들은 동적으로 로드되므로, 요구되는 레지스트리 엔트리는 축소된 OS 이미지의 생성 동안에 생성될 수 없다. setupdd.sys와 같은 본 발명의 또 다른 드라이버는 부트 드라이버 초기화동안 실행되어 다른 드라이버들이 초기화되기 전에 레지스트리에 필요한 엔트리들을 생성한다. 이것은 드라이버의 적절한 초기화를 돕는다. 사용자는 스크립트에서 특정된 대로 비부팅 하드웨어 드라이버를 로드한다.
스크립트는 506에서 대용량 저장장치의 분할 작업(partitioning)을 지시한다. 대용량 저장장치의 분할 작업은 대용량 저장장치 상의 특정 영역을 508에서 생성, 삭제, 또는 포맷하는 것을 포함한다. 일 실시예에서, 축소된 OS 이미지는 partinfo.txt와 같은 텍스트 파일을 참조하여 특정의 분할정보를 얻는다. 사용자는 partinfo.txt를 편집하여 사용자가 원하는 특정의 분할정보를 포함시킨다. 스크립트는 대용량 저장장치를 축소된 OS 이미지에 의해 지원되는 포맷을 갖는 파일 시스템으로 포맷한다. 예를 들면, WINDOWS 오퍼레이팅 시스템에서, 상기 지원된 파일 시스템 포맷은 CDFS, UDF, FAT12, FAT16, FAT32, 및 NTFS를 포함한다.
레퍼런스 OS 이미지를 갖는 CRM이 컴퓨터와 떨어져 위치하면, 스크립트는 네트워크 접속을 인에이블한다. 스크립트는 factory.exe와 같은 유틸리티를 실행하여 컴퓨터에서 특정의 네트워크 인터페이스를 검출하고 특정의 네트워크 인터페이스에 적절한 하드웨어 드라이버를 설치한다. factory.exe 유틸리티는 PNP 관리자 API를 이용한다. 네트워크 드라이버가 설치된 후, 스크립트는 netcfg.exe와 같은 유틸리티를 통하여 전송제어 프로토콜/인터넷 프로토콜(TCP/IP) 스택 및 관련 서비스를 초기화한다. TCP/IP 스택 및 관련 서비스는 예를 들면 "net use" 명령을 통한 원격 컴퓨터로의 액세스를 컴퓨터에 제공한다. 사용자가 네트워크 접속을 원하지 않으면, 사용자는 스크립트를 변형시켜 factory.exe 및 netcfg.exe의 실행을 디스에이블시킨다. 네트워크 접속을 인에블시킨 후, 스크립트는 510에서 레퍼런스OS 이미지를 획득하고, 512에서 원격 CRM으로부터 컴퓨터 상에 레퍼런스 OS 이미지를 설치한다. 일 실시예에서, 축소된 OS 이미지는 서버 메시지 블럭(SMB)과 같은 네트워크 접속 프로토콜을 지원하여 컴퓨터간의 파일 액세스를 인에이블시킨다.
컴퓨터 상에 레퍼런스 OS 이미지를 설치하는 것은 레퍼런스 OS 이미지에 연관된 하나 이상의 파일들을 복사하는 것과 파일들을 통합하는 것을 포함한다. 예시적인 WINDOWS 오퍼레이팅 시스템 환경에서, 파일들을 통합하는 것은 레지스트리를 생성 또는 업데이트하는 것과, 데스크탑 아이콘을 생성 또는 업데이트하는 것을 포함한다(그러나 이들에 국한되지 않음). 스크립트는 파일들이 복사되고 통합되는 단계들을 식별한다. 또한, 스크립트는 상기 단계들이 실행되는 순서를 식별한다. 컴퓨터 상에 레퍼런스 OS 이미지를 설치한 후, 514에서 컴퓨터는 소비자에게 배달되기 위하여 셧다운되거나 재부팅된다. 재부팅하는 것은 컴퓨터를 끄는 것과, 그 이후 설치된 레퍼런스 OS 이미지를 로드 및 초기화시키는 것을 포함한다. 일 실시예에서, 본 발명은 오직 단일의 재부팅으로 컴퓨터 상에 레퍼런스 OS 이미지를 부팅하고 설치하기 위한 구조를 제공한다. 즉, 스크립트는 사용자가 단일의 재부팅으로 컴퓨터 상에 레퍼런스 OS 이미지를 이미지화하도록 한다. 본 발명은 사용자가 컴퓨터와 연관된 CRM상으로 레퍼런스 OS 이미지를 이미지화하도록 한다. 사용자는 스크립트를 통하여 원하는 이미지화 방법을 실시한다. 상기 이미지화 방법은 파일 복사 및 완전한 OS 설치를 포함하는(그러나 이들에 국한되지 않음) 임의의 파일전송 방법일 수 있다. 재부팅 후, 설치된 레퍼런스 OS 이미지는 최종 사용자에 대한 OS 이미지의 설치후 개인화(post-installation personalization)를 조정한다.
국부적으로 또는 원격적으로 액세스 가능한 휘발성 및 비휘발성 CRM은 사용자 커스터마이즈형 텍스트 기반 스크립트를 제공하기 위한 수단을 구성한다. 국부 CRM으로부터의 부팅, 또는 PXE 또는 임의의 다른 원격 부팅 프로토콜을 통한 원격 부팅은 CRM으로부터 32비트 또는 64비트 구조를 갖는 컴퓨터를 부팅하기 위한 수단을 구성한다. 예시적인 WINDOWS 오퍼레이팅 시스템 환경에서 cmd.exe 및 csh.exe와 같은 응용 프로그램은 사용자 커스터마이즈형 텍스트 기반 스크립트에 따라 컴퓨터 상에서 하나 이상의 기능을 수행하기 위한 수단을 구성한다. 또한, 전술된 예시들 및 본 명세서의 다른 곳에 기술된 예시들은 스크립트를 제공하기 위한 수단 및 컴퓨터를 부팅하기 위한 수단을 구성한다.
다음으로 도 6를 참조하면, 블럭도는 원격 부트 컴퓨터(602)로부터 목적 컴퓨터(616)를 부팅하여 목적 컴퓨터(616)상에 레퍼런스 OS 이미지(612)를 설치하는 단계를 도시한다. WINDOWS 오퍼레이팅 시스템 실시예에서는 예를 들면, 원격 부트 컴퓨터(602)는 원격 설치 서버이다. 원격 부트 컴퓨터(602)는 축소된 OS 이미지(606) 및 원격 부트 CRM 스크립트(608)를 포함하는 원격 부트 CRM(604)을 포함한다. 일 실시예에서, 목적 컴퓨터(616)는 도 1의 예시적인 네트워킹 환경에서 기술된 바와 같이 원격 부트 컴퓨터(602)로 접속된다. 목적 컴퓨터(616)는 예비부트 실행환경(PXE)을 포함하는(그러나 이에 국한되지 않음) 다수의 프로토콜 및 방법을 통하여 원격 부트 CRM(604)으로부터 부팅한다. PXE 부트는 동적 호스트 구성 프로토콜(DHCP)을 따른다. 목적 컴퓨터(616)는 네트워크를 통하여 DHCP 부트 요청을 방송하거나 통신한다. 원격 부트 컴퓨터(602)는 DHCP 부트 요청을 수신하고 원격 부트 CRM(604)으로부터의 목적 컴퓨터(616) 부팅을 초기화한다. 목적 컴퓨터(616)를 부팅하는 것은 축소된 OS 이미지(606)를 원격 부트 컴퓨터(602)로부터 목적 컴퓨터(616)상의 휘발성 메모리로 로드하는 것과, 목적 컴퓨터(616) 상에 축소된 OS 이미지(606)를 초기화시키는 것을 포함한다.
국부 및 원격 부팅 모두에 적용 가능한 부트 프로세스의 일 예는 WINDOWS 오퍼레이팅 시스템에서 발생한다. 본 발명에 따른 WINDOWS 오퍼레이팅 시스템 실시예에서, 축소된 OS 이미지(606)는 최소 WIN32 응용 프로그래밍 인터페이스(API) 서브시스템을 갖는 WINDOWS NT 오퍼레이팅 시스템에 연관된 코드 베이스를 포함한다. 최소 WIN32 API 서브시스템은 입출력 API 및 코아(core) WIN32 API를 포함한다(그러나 이들에 국한되지 않음). 축소된 OS 이미지(606)는 축소된 OS 이미지를 로드하기 위하여 부트 로더 대신에 셋업 로더를 사용한다. 사용자는 셋업 로더에 의한 사용을 위해 구성파일에 로더 플래그를 지정하여 축소된 OS 이미지(606)로서 원격 부트 CRM(604) 상의 OS 이미지를 식별한다. 부트업(bootup)동안, 셋업 로더는 플래그를 설정한다. 설정된 플래그에 응답하여, 축소된 OS 이미지 내의 기능성이 인에이블된다. 예를 들면, 플래그 "/minint"는 boot.ini에서 특정된다. "/minint" 플래그는 "/debug" 및 "/vga"와 같은 다른 로더 플래그와 유사하다. 이런 방식으로, 셋업 로더는 축소된 OS 이미지(606)의 존재를 축소된 OS 이미지의 OS 구성요소에 통신한다. OS 구성요소는 본 명세서에 기술된 대로 축소된 OS 이미지(606)로서 기능하도록 그들의 동작을 변경한다. 예를 들면, 전술된 바와 같이, 기능성은 구성정보를 휘발성 메모리로 로딩하는 것을 포함한다. 또한, 사용자 모드 응용 프로그램은 셋팅된 플래그에 응답하는 구성을 수행한다. 본 실시예에서, 설치 OS 이미지(도 4의 도면부호 406 참조)의 OS 구성요소에 대한 변형은 OS 구성요소 내에 존재하지만 특정 로더 플래그의 존재에 의해 활성화될 때까지는 수동적(passive)이다.
셋업 로더는 txtsetup.sif와 같은 텍스트 파일에 지정된대로 다양한 하드웨어 드라이버를 초기화시킨다. 또한, 셋업 로더는 사용자가 추가적인 부트 하드웨어 드라이버를 로드하고/거나 하드웨어 추상층(hardware abstraction layer)을 갱신하여 축소된 OS 이미지(606)와 목적 컴퓨터(616)의 하드웨어 사이의 통신을 용이하게 한다.
셋업 로더는 셋업 로더에 연관된 세션 관리자(session manager) 대신 정규의 세션 관리자를 사용한다. 부트업동안, 축소된 OS 이미지(606)와 연관된 커넬은 smss.exe와 같은 유틸리티를 실행한다. smss.exe가 실행되는 경우, OS가 축소된 OS 이미지(606)인 것을 나타내기 위하여 커넬 초기화동안 생성된 레지스트리 키를 검색한다. 레지스트리 키가 존재하면, smss.exe는 페이지파일(pagefile) 생성을 포함하는(그러나 이에 국한되지 않음) WINDOWS 오퍼레이팅 시스템 환경으로 부텅하는 경우 통상적으로 수행되는 그 외의 동작들을 생략한다. 또한, 유틸리티 smss.exe는 winlogon.exe와 같은 또 다른 유틸리티를 실행하여 레지스트리 키를 검색한다. 레지스트리 키가 존재하면, winlogon.exe는 인증대화(authentication dialog) 및 explorer.exe를 실행하는 대신 cmd.exe와 같이 레지스트리에 특정된 또 다른 프로세스를 실행한다. cmd.exe 또는 csh.exe와 같은 쉘(shell)은 WINDOWS 오퍼레이팅 시스템 내에서 스크립트 기능성을 지원한다. cmd.exe 또는 다른 쉘의 선택은 축소된 OS 이미지(606)의 생성 전 또는 그 후에 사용자에 의해 구성가능하다. 사용자는 커스텀 쉘(custom shell) 환경을 축소된 OS 이미지(606)를 위한 디폴트 쉘로 선택적으로 지정한다. 상기 쉘은 winBOM.ini 파일 또는 floppy.cmd 파일과 같은 하나 이상의 스크립트 파일을 이용하는 스크립트를 지원하여 사용자에 의해 지정된 기능들을 수행한다. 본 실시예에서, 축소된 OS 이미지(606)는 스크립트 파일을, 축소된 OS 이미지(606) 또는 사용자에 의해 지정된 제거가능 비휘발성 메모리와 같은 그 외의 위치에서 검색한다. 스크립트의 위치가 지정되면, 축소된 OS 이미지(606)는 스크립트내의 명령을 실행한다. 스크립트의 위치가 지정되지 않으면, 축소된 OS 이미지(606)는 명령 프롬프트를 디스플레이하여 사용자에 의해 입력되는 명령을 받는다. 예를 들면, 도 6를 참조하면, 사용자는 리모트 부트 CRM 스크립트(608) 또는 레퍼런스 CRM 스크립트(614)중 어느 하나의 실행, 모두의 실행, 또는 어느 것도 실행하지 않는 것을 지정한다.
그 후, 유틸리티 winlogon.exe는 cmd.exe 또는 다른 쉘 프로세스가 종료되는 것을 기다린다. 예를 들면, winlogon.exe는 24시간을 기다릴 수 있다. 쉘 프로세스가 24시간 이후에 종료하지 않으면, winlogon.exe는 목적 컴퓨터(616)가 재부팅되도록 한다. 사용자가 축소된 OS 이미지(606)를 전체 설치된 OS 이미지로 잘못 사용할 수 없도록 시간제한이 부과된다.
축소된 OS 이미지(606)는 사용자에 의해 지정된 스크립트를 사용하여 목적 컴퓨터(616) 상으로의 레퍼런스 OS 이미지(612)의 설치를 지시한다. 본 발명은 멀티레벨 스크립팅 환경을 제공함으로써 사용자가 손을 쓰지 않고, 자동으로 설치하기 위한 설치 프로세스를 구성하도록 한다. 축소된 OS 이미지(606)는 원격 부트 CRM(604), 목적 컴퓨터(616)에 국부적인 CRM, 또는 네트워크를 통하여 목적 컴퓨터(616)에 의해 액세스 가능한 CRM중 어느 하나 또는 조합상에서 winBOM.ini와 같은 스크립트를 나타내는 파일을 사용한다. 스크립트 가능한 환경은 임의 갯수의 컴퓨터 상에 위치된 하나 또는 다수의 스크립트의 실행을 사용자가 조정하도록 한다. 특정의 스크립트 내에서 사용자가 또 다른 스크립트의 실행을 선택적으로 지정하도록 의도된다. 예를 들면, 원격부트 CRM 스크립트(608)의 최종단계는 레퍼런스 CRM 스크립트(614)를 실행할 수 있다.
목적 컴퓨터(616)가 부팅한 후, 사용자에 의해 지정된 스크립트는 레퍼런스 OS 이미지(612) 및 레퍼런스 CRM 스크립트(614)를 포함하는 레퍼런스 CRM(610)의 위치를 지정한다. 레퍼런스 CRM(610)은 목적 컴퓨터(616)에 국부적이거나 예를 들면 도 1의 네트워킹 환경에서 기술된 바와 같이 목적 컴퓨터(616)에 접속된다. 스크립트는 목적 컴퓨터(616)에 국부적인 대용량 저장장치로 레퍼런스 OS 이미지(612)에 연관된 파일들을 복사 및 통합함으로써 목적 컴퓨터(616) 상에 레퍼런스 OS 이미지(612)를 설치한다. 또 다른 실시예에서, 먼저 스크립트는 파일 시스템으로 대용량 저장장치를 분할하고 포맷시킨다. 목적 컴퓨터(616) 상에 레퍼런스 OS 이미지(612)를 설치한 후, 스크립트는 목적 컴퓨터(616)를 끄거나 재부팅한다.
다음은 대용량 저장장치를 포맷하고 목적 컴퓨터(616) 상에 레퍼런스 OS 이미지(612)를 설치하기 위하여 축소된 OS 이미지(612)와 함께 사용되는 winBOM.ini 스크립트 파일의 일 예이다.
-----------------------------------------------------------------------------
[Version]
signature=$version$
[Factory]
[NetCards]
[WinPE]
Restart=Reboot
Lang=ENG
SKU=pro
Arch=x86
ConfigSet=Awesome2001
SourceRoot=\\machinename\WhistlerOPK
Username=
Password=
[DiskConfig]
Disk1=Disk1.config
[Disk1.config]
Size1=*
PartitionType1=primary
FileSystem1=ntfs
QuickFormat1=yes
[OemRunOnce]
-----------------------------------------------------------------------------
도 7를 참조하면, 블럭도는 목적 컴퓨터(702) 상에 레퍼런스 OS 이미지(712)를 설치하기 위하여 국부 CRM(704)로부터 목적 컴퓨터(702)를 부팅하는 것을 도시한다. 국부 CRM(704)는 축소된 OS 이미지(706) 및 국부 CRM 스크립트(708)를 포함한다. 목적 컴퓨터(702)는 국부 CRM(704) 상의 축소된 OS 이미지로부터 부팅한다.
부팅 후, 축소된 OS 이미지(706)는 목적 컴퓨터(702) 상에 레퍼런스 OS 이미지(712)를 설치하는 것을 지시하기 위하여 사용자에 의해 지정된 스크립트를 사용한다. 축소된 OS 이미지(706)는 사용자에 의해 지정된 스크립트의 위치를 지정하여 레퍼런스 OS 이미지(712) 및 레퍼런스 CRM 스크립트(714)를 포함하는 레퍼런스 CRM(710)를 식별한다. 레퍼런스 CRM(710)은 도 6의 예와 유사하게, 목적 컴퓨터(702)에 국부적이거나 그로부터 원격이다. 예를 들어, 도 7를 참조하면, 사용자는 국부 CRM 스크립트(708) 또는 레퍼런스 CRM 스크립트(714) 중 어느 하나의 실행, 모두의 실행, 또는 어느 것도 실행하지 않는 것을 지정한다. 스크립트는 레퍼런스 OS 이미지(712)에 연관된 파일들을 목적 컴퓨터(702)와 연관된 대용량 저장장치로 복사하고 통합함으로써, 목적 컴퓨터(702)상에 레퍼런스 OS 이미지(712)를 설치한다. 또 다른 실시예에서, 스크립트는 먼저 파일 시스템으로 대용량 저장장치를 분할 및 포맷한다. 목적 컴퓨터(702) 상에 레퍼런스 OS 이미지(712)를 설치한 후, 스크립트는 목적 컴퓨터(702)를 끄거나 재부팅한다.
다음으로 도 8를 참조하면, 블럭도는 오류가 생긴 소프트웨어(810)를 갖는 컴퓨터(808)와 스크립트(806)를 갖는 축소된 OS 이미지(804)를 구비하는 복구매체(802) 사이의 상호작용을 도시한다. 사용자는 오류가 발생된 소프트웨어 (810)로부터 컴퓨터(808)를 복구하는 것을 수행하도록 스크립트(806)를 커스터마이즈한다. 예를 들면, 스크립트(806)는 도 5,6, 또는7의 스크립트일 수 있다. 복구매체(802)는 축소된 OS 이미지(804) 및 스크립트(806)를 포함한다. 컴퓨터(808)는 오류가 생긴 응용 프로그램 또는 OS와 같은 소프트웨어를 갖는다. 오류가 생긴 소프트웨어(810)는, 손상되고 기능상 오류 또는 다른 기능불량을 갖는 소프트웨어를 포함한다(그러나 이들에 국한되지 않음). 스크립트(806)는 컴퓨터(808)를 부팅시키거나 소프트웨어를 재설치하거나 소프트웨어에 정정코드를 부가하거나 기능불량을 제거함으로써, 사용자 지정 명령에 따라 오류가 생긴 소프트웨어(810)의 복구를 지시한다. 또 다른 실시에에서, 복구매체(802)는 네트워크를 통하여 컴퓨터(808)에 의해 액세스 가능하다.
일 실시에에서, 사용자는 레퍼런스 컴퓨터 상에서 복구매체(802)를 사용하여 레퍼런스 컴퓨터 및 다른 컴퓨터 상의 소프트웨어 오류를 복구한다. 다른 컴퓨터는 레퍼런스 컴퓨터에 의해 국부적으로 또는 원격적으로 액세스가 가능하다. 이런 방식으로, 복구매체(802)는 임의 갯수의 컴퓨터 상의 특정한 유사 문제들의 자동적인 정정을 위하여 이용될 수 있다. 예를 들면, 오류가 생긴 소프트웨어로부터 한 컴퓨터를 복구한 후, 스크립트(806)는 스크립트(806)에 식별된 다른 모든 컴퓨터에 패치(patch)를 적용할 수 있다.
또 다른 실시예에서, 스크립트(806)를 갖는 축소된 OS 이미지(804)는 하나 이상의 컴퓨터와 상호작용하여 다양한 태스크들을 수행한다. 예를 들면, 상기 태스크는 컴퓨터 상에 데이터를 백업 및/또는 복구하는 것, 축소된 OS 이미지(804)를 실행하는 중심에 위치된 서버로부터 컴퓨터를 원격으로 고장수리하는 것 및 축소된 OS 이미지(804)를 컴퓨터를 위한 원격서버 상의 씬 클라이언트(thin client)로서 사용하는 것을 포함한다. 또 다른 예는 판독전용 매체로부터 안티-바이러스 소프트웨어를 실행하여 또 다른 OS 이미지 상의 감염된 파일들을 치료하고 다른 OS 이미지 상의 감염된 파일들을 판독전용 매체 상의 설치 OS 이미지 또는 축소된 OS 이미지로부터의 감염된 파일들의 정정 버전으로 대체하는 것을 포함한다.
상기의 관점에서, 본 발명의 몇 가지 바람직한 결과들이 성취된 것을 알 수 있을 것이다. 본 발명의 범위를 벗어나지 않고 제품 및 방법에 다양한 변화가 이루어질 수 있으므로, 상기 명세서에 포함되고 첨부된 도면에 도시된 모든 사항은예시적인 것이지 제한적인 의미를 갖는 것은 아니다.
본 발명에 따르면, 설치 OS 이미지로부터 축소된 오퍼레이팅 시스템(OS) 이미지가 생성되어 CD-ROM과 같은 컴퓨터 판독가능 매체(CRM) 상에 설치된다. 본 발명의 축소된 OS 이미지는 사용자에 의해 의도된 기능들을 수행하기 위한 스크립트(script)를 포함하고, 휘발성 및 비휘발성 메모리를 적게 필요로 하며, 사용자가 컴퓨터의 단일의 재부팅으로 컴퓨터 상에 레퍼런스 OS 이미지를 설치하는 것을 가능하게 해준다.

Claims (55)

  1. 컴퓨터화된 방법(computerized method)으로서,
    사용자 커스터마이즈형(user-customized) 텍스트 기반 스크립트를 제공하는 단계;
    컴퓨터 판독가능 매체 상의 오퍼레이팅 시스템 이미지로부터 컴퓨터를 부팅하는 단계 - 상기 컴퓨터는 32비트 이상의 구조를 가짐 -; 및
    상기 사용자 커스터마이즈형 텍스트 기반 스크립트에 따라 상기 컴퓨터 상에서 하나 이상의 기능을 수행하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  2. 제1항에 있어서, 상기 수행하는 단계는 상기 컴퓨터 상에 또 다른 오퍼레이팅 시스템 이미지를 설치하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  3. 제2항에 있어서, 상기 컴퓨터는 대용량 저장장치를 포함하며, 상기 수행하는 단계는 상기 대용량 저장장치를 분할(partition)하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  4. 제2항에 있어서, 상기 컴퓨터는 대용량 저장장치를 포함하며, 상기 수행하는단계는 상기 대용량 저장장치를 포맷(format)하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  5. 제4항에 있어서, 상기 포맷하는 단계는 상기 오퍼레이팅 시스템 이미지에 의해 지원되는 포맷으로 파일시스템으로 상기 대용량 저장장치를 포맷하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  6. 제2항에 있어서, 상기 컴퓨터는 하드웨어를 포함하며, 상기 수행하는 단계는 상기 하드웨어를 유효화하는(validate) 단계를 더 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  7. 제6항에 있어서, 상기 오퍼레이팅 시스템 이미지는 상기 오퍼레이팅 시스템 이미지의 보호모드(protected mode)에서 동작 가능한 보호모드 하드웨어 드라이버를 포함하며,
    상기 유효화하는 단계는, 상기 설치하는 단계 이전에, 보호모드 하드웨어 드라이버를 이용하여 상기 하드웨어를 유효화하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  8. 제2항에 있어서, 상기 설치하는 단계는 상기 또 다른 오퍼레이팅 시스템 이미지와 연관된 하나 이상의 파일을 상기 컴퓨터로 복사하는 단계 및 상기 파일을통합하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  9. 제8항에 있어서, 상기 스크립트는 상기 파일이 복사되고 통합되는 복수의 단계를 식별하며, 상기 스크립트는 상기 복수의 단계가 수행되는 순서를 식별하는 것을 특징으로 하는 컴퓨터화된 방법.
  10. 제1항에 있어서, 상기 컴퓨터는 64비트 구조를 갖는 것을 특징으로 하는 컴퓨터화된 방법.
  11. 제1항에 있어서, 상기 부팅하는 단계 및 상기 수행하는 단계는 32비트 이하의 구조를 갖는 컴퓨터 상에서 실시되는 것을 특징으로 하는 컴퓨터화된 방법.
  12. 제1항에 있어서, 상기 부팅하는 단계는,
    플래그(flag)를 셋팅하는 단계; 및
    상기 셋팅된 플래그에 응답하여, 상기 오퍼레이팅 시스템 이미지 내에서 기능성(functionality)을 인에이블하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  13. 제12항에 있어서, 사용자 모드 소프트웨어가 상기 셋팅된 플래그에 응답하여 구성(configuration)을 수행하도록 하는 단계를 더 포함하는 것을 특징으로 하는컴퓨터화된 방법.
  14. 제12항에 있어서, 기능성은 구성 정보를 휘발성 메모리로 로드하는 것을 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  15. 제1항에 있어서, 상기 컴퓨터 판독가능 매체는 상기 스크립트를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  16. 제1항에 있어서, 상기 스크립트는 상기 컴퓨터 판독가능 매체로부터 원격되어(remote) 있는 것을 특징으로 하는 컴퓨터화된 방법.
  17. 제1항에 있어서, 상기 수행하는 단계는 소프트웨어 오류(failure)로부터 상기 컴퓨터를 복구하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  18. 제17항에 있어서, 상기 소프트웨어는 오퍼레이팅 시스템 또는 응용 프로그램을 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  19. 제1항에 있어서, 상기 컴퓨터 판독가능 매체는 네트워크를 통하여 상기 컴퓨터에 의해 액세스 가능한 것을 특징으로 하는 컴퓨터화된 방법.
  20. 제1항에 있어서, 상기 수행하는 단계는, 또 다른 오퍼레이팅 시스템 이미지를 설치하도록 상기 사용자 커스터마이즈형 텍스트 기반 스크립트를 편집하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  21. 제1항에 기재된 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 하나 이상의 컴퓨터 판독가능 매체.
  22. 제2항에 기재된 컴퓨터화된 방법으로부터 생성된 컴퓨터 상의 오퍼레이팅 시스템 이미지.
  23. 사용자 커스터마이즈형 텍스트 기반 스크립트를 제공하기 위한 수단;
    컴퓨터 판독가능 매체 상의 오퍼레이팅 시스템 이미지로부터 컴퓨터를 부팅하기 위한 수단 - 상기 컴퓨터는 32비트 이상의 구조를 가짐 - ; 및
    상기 사용자 커스터마이즈형 텍스트 기반 스크립트에 따라 상기 컴퓨터 상에서 하나 이상의 기능을 수행하기 위한 수단
    을 포함하는 것을 특징으로 하는 시스템.
  24. 사용자 커스터마이즈형 텍스트 기반 스크립트를 제공하는 단계;
    컴퓨터 판독가능 매체 상의 제1 오퍼레이팅 시스템 이미지로부터 컴퓨터를 부팅하는 단계; 및
    상기 사용자 커스터마이즈형 텍스트 기반 스크립트에 따라 상기 컴퓨터 상에 제2 오퍼레이팅 시스템 이미지를 설치하는 단계
    를 포함하며, 상기 부팅하는 단계 및 설치하는 단계는 오직 하나의 컴퓨터 재부팅을 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  25. 제24항에 있어서, 상기 스크립트는 상기 컴퓨터 판독가능 매체 상에 위치되는 것을 특징으로 하는 컴퓨터화된 방법.
  26. 제24항에 있어서, 상기 컴퓨터는 하드웨어를 포함하며, 상기 하드웨어를 유효화하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  27. 제24항에 있어서, 상기 컴퓨터는 대용량 저장장치를 포함하며, 상기 설치하는 단계는 상기 대용량 저장장치를 포맷하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  28. 제24항에 있어서, 상기 설치하는 단계는 상기 제2 오퍼레이팅 시스템 이미지와 연관된 하나 이상의 파일을 상기 컴퓨터로 복사하는 단계 및 상기 파일을 통합하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  29. 제28항에 있어서, 상기 스크립트는 파일이 복사되고 통합되는 복수의 단계들을 식별하고, 상기 스크립트는 상기 복수의 단계들이 수행되는 순서를 식별하는 것을 특징으로 하는 컴퓨터화된 방법.
  30. 제24항에 있어서, 상기 컴퓨터는 컴퓨터 판독가능 매체를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  31. 사용자에 의해 선택된 오퍼레이팅 시스템 구성요소들을 갖는 제1 오퍼레이팅 시스템 이미지;
    제2 오퍼레이팅 시스템 이미지; 및
    상기 제1 오퍼레이팅 시스템 이미지와 상호작용하여 상기 제2 오퍼레이팅 시스템 이미지를 컴퓨터 상에 설치하는 사용자에 의해 커스터마이즈 될 수 있는 텍스트 기반 스크립트 파일
    을 포함하며, 상기 컴퓨터는 32비트 이상의 구조를 갖는 것을 특징으로 하는 시스템.
  32. 제31항에 있어서, 상기 오퍼레이팅 시스템 구성요소 각각은 적어도 하나의 파일을 포함하는 것을 특징으로 하는 시스템.
  33. 제31항에 있어서, 상기 오퍼레이팅 시스템 구성요소는 하드웨어 드라이버를 포함하는 것을 특징으로 하는 시스템.
  34. 제31항에 있어서, 상기 제2 오퍼레이팅 시스템 이미지는 복수의 오퍼레이팅 시스템 구성요소를 포함하고, 상기 제1 오퍼레이팅 시스템 이미지는 상기 복수의 오퍼레이팅 시스템 구성요소의 서브세트를 포함하는 것을 특징으로 하는 시스템.
  35. 제31항에 있어서, 상기 컴퓨터는 64비트 구조를 갖는 것을 특징으로 하는 시스템.
  36. 제31항에 있어서, 상기 스크립트 파일은 32비트 이하의 구조를 갖는 컴퓨터 상에서 동작하는 것을 특징으로 하는 시스템.
  37. 컴퓨터와 함께 사용하기 위한 컴퓨터 판독가능 복구매체(recovery medium)로서,
    오퍼레이팅 시스템 이미지; 및
    상기 오퍼레이팅 시스템 이미지와 상호작용하여 상기 컴퓨터 상의 소프트웨어의 오류의 복구를 지시하는 텍스트 기반 스크립트 파일
    을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 복구매체.
  38. 제37항에 있어서, 상기 소프트웨어는 또 다른 오퍼레이팅 시스템 이미지를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 복구매체.
  39. 목적매체(destination medium) 상에 오퍼레이팅 시스템 이미지를 생성하는 컴퓨터화된 방법으로서,
    복수의 오퍼레이팅 시스템 구성요소로부터 오퍼레이팅 시스템 구성요소 서브세트를 선택하는 단계;
    상기 선택된 오퍼레이팅 시스템 구성요소 서브세트와 연관된 파일 리스트를 생성하는 단계; 및
    상기 오퍼레이팅 시스템 이미지로서 상기 목적 매체 상에 상기 선택된 오퍼레이팅 시스템 구성요소 서브세트를 설치하는 단계
    를 포함하며, 상기 설치하는 단계는 설치매체(installation medium)로부터 상기 목적매체로 상기 파일을 복사하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  40. 제39항에 있어서, 상기 오퍼레이팅 시스템 구성요소는 하드웨어 드라이버를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  41. 제39항에 있어서, 적어도 하나의 하이브(hive)를 생성하는 단계를 더 포함하며, 상기 설치하는 단계는 상기 생성된 하이브를 상기 목적매체로 복사하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  42. 제39항에 있어서, 상기 설치하는 단계는 상기 목적매체 상의 상기 파일을 통합하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  43. 제39항에 있어서, 추가적인 오퍼레이팅 시스템 구성요소를 선택하는 단계를 더 포함하며, 상기 설치하는 단계는 상기 추가적인 오퍼레이팅 시스템 구성요소를 상기 목적매체 상에 설치하는 단계를 포함하는 것을 특징으로 하는 컴퓨터화된 방법.
  44. 제39항에 기재된 방법을 수행하기 위한 컴퓨터 실행가능 명령들을 갖는 하나 이상의 컴퓨터 판독가능 매체.
  45. 제39항에 기재된 컴퓨터화된 방법으로부터 생성된 상기 목적매체 상의 오퍼레이팅 시스템 이미지.
  46. 목적매체 상에 오퍼레이팅 시스템 이미지를 생성하는 시스템으로서,
    복수의 오퍼레이팅 시스템 구성요소로부터 오퍼레이팅 시스템 구성요소 서브세트를 선택하기 위한 수단;
    상기 선택된 오퍼레이팅 시스템 구성요소 서브세트와 연관된 파일 리스트를 생성하기 위한 수단; 및
    상기 오퍼레이팅 시스템 이미지로서 상기 목적매체 상에 상기 선택된 오퍼레이팅 시스템 구성요소 서브세트를 설치하기 위한 수단
    을 포함하며, 상기 설치하기 위한 수단은 설치매체로부터 상기 목적매체로 상기 파일을 복사하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
  47. 복수의 오퍼레이팅 시스템 구성요소로부터 목적매체 상에 오퍼레이팅 시스템 이미지를 생성하는 시스템으로서,
    컴퓨터 상의 하나 이상의 프로세서에 의해 실행되는 경우, 사용자가 상기 복수의 오퍼레이팅 시스템 구성요소로부터 오퍼레이팅 시스템 구성요소 세트를 선택하도록 하는 동작 및 상기 선택된 오퍼레이팅 시스템 구성요소 세트와 연관된 파일 리스트를 생성하는 동작을 포함하는 동작을 상기 하나 이상의 프로세서가 수행하도록 야기시키는 적어도 하나의 응용 프로그램; 및
    상기 선택된 오퍼레이팅 시스템 구성요소 세트가 상기 오퍼레이팅 시스템 이미지로서 실행되도록 하는 오퍼레이팅 시스템 구성요소 변형(modification)
    을 포함하는 것을 특징으로 하는 시스템.
  48. 제47항에 있어서, 상기 오퍼레이팅 시스템 이미지에 의한 하나 이상의 기능의 수행을 지시하기 위한 텍스트 기반 스크립트를 더 포함하는 것을 특징으로 하는 시스템 이미지를 생성하는 시스템.
  49. 제48항에 있어서, 상기 기능은 또 다른 컴퓨터 상에 오퍼레이팅 시스템을 설치하는 것을 포함하는 것을 특징으로 하는 시스템.
  50. 제48항에 있어서, 상기 기능은,
    소프트웨어 오류로부터 다른 컴퓨터를 복구하는 것, 다른 컴퓨터 상의 데이터를 백업/및 또는 재생(restore)하는 것, 다른 컴퓨터를 원격으로 고장수리하는 것 및 다른 컴퓨터에 대한 원격 씬 클라이언트(remote thin client)로서 상기 응용 프로그램을 실행하는 컴퓨터를 사용하는 것으로 구성되는 그룹으로부터 선택된 하나 이상의 태스크를 포함하는 것을 특징으로 하는시스템.
  51. 제47항에 있어서, 상기 오퍼레이팅 시스템 구성요소 세트는 상기 복수의 오퍼레이팅 시스템 구성요소의 서브세트인 것을 특징으로 하는 시스템.
  52. 제47항에 있어서, 상기 복수의 오퍼레이팅 시스템 구성요소에 존재하지 않는 추가적인 오퍼레이팅 시스템 구성요소를 더 포함하며, 상기 응용프로그램은, 실행되는 경우, 상기 사용자가 하나 이상의 상기 추가적인 오퍼레이팅 시스템 구성요소를 상기 오퍼레이팅 시스템 구성요소의 선택된 세트로 부가하도록 하는 동작을 포함하는 동작을 상기 하나 이상의 프로세서가 수행하도록 야기시키는 하는 것을 특징으로 하는 시스템.
  53. 제47항에 있어서, 상기 오퍼레이팅 시스템 구성요소 변형은 상태 정보(stateinformation)를 휘발성 메모리에 기록하는 것을 포함하는 것을 특징으로 하는 시스템.
  54. 제47항에 있어서, 상기 응용 프로그램은, 실행되는 경우, 상기 오퍼레이팅 시스템 이미지를 생성하는 동작을 포함하는 동작을 상기 하나 이상의 프로세서가 더 수행하도록 야기시키는 것을 특징으로 하는 시스템.
  55. 제47항에 있어서, 상기 응용 프로그램은, 실행되는 경우, 하나 이상의 하이브를 생성하는 동작을 포함하는 동작을 상기 하나 이상의 프로세서가 더 수행하도록 야기시키는 것을 특징으로 하는 시스템.
KR1020020042514A 2001-07-24 2002-07-19 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템 KR100860447B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/912,864 2001-07-24
US09/912,864 US6993642B2 (en) 2001-07-24 2001-07-24 Method and system for creating and employing an operating system having selected functionality

Publications (2)

Publication Number Publication Date
KR20030011552A true KR20030011552A (ko) 2003-02-11
KR100860447B1 KR100860447B1 (ko) 2008-09-25

Family

ID=25432579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020042514A KR100860447B1 (ko) 2001-07-24 2002-07-19 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US6993642B2 (ko)
EP (1) EP1280058A3 (ko)
JP (3) JP2003099268A (ko)
KR (1) KR100860447B1 (ko)
CN (1) CN1315042C (ko)
TW (1) TWI250451B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710845B1 (ko) * 2006-01-23 2007-04-23 염찬섭 중복 패치 방지 방법
KR100725394B1 (ko) * 2005-07-08 2007-06-07 삼성전자주식회사 복수의 운영체계에서 특정 운영체계를 선택적으로 설치하는컴퓨터 시스템 및 방법
KR100792786B1 (ko) * 2005-08-26 2008-01-14 이철호 백업 이미지 파일을 이용한 컴퓨터의 최적화 운영체제 복구방법

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827611B2 (en) * 2001-08-01 2010-11-02 Mcafee, Inc. Malware scanning user interface for wireless devices
US6658091B1 (en) 2002-02-01 2003-12-02 @Security Broadband Corp. LIfestyle multimedia security system
TWI242160B (en) * 2002-04-01 2005-10-21 Shun-Tang Hsu Method and tools to downsize existing operating systems for embedded applications
US20030221094A1 (en) * 2002-04-17 2003-11-27 Avery Pennarun Method and system for configuring a computer
US8336044B2 (en) * 2002-10-09 2012-12-18 Rpx Corporation Method and system for deploying a software image
US7024581B1 (en) * 2002-10-09 2006-04-04 Xpoint Technologies, Inc. Data processing recovery system and method spanning multiple operating system
US7664984B2 (en) * 2002-10-09 2010-02-16 Xpoint Technologies, Inc. Method and system for updating a software image
US8225306B2 (en) * 2002-12-12 2012-07-17 Dell Products L.P. Platform independent imaging method and system
US7401332B2 (en) * 2003-01-09 2008-07-15 International Business Machines Corporation System and apparatus for eliminating user interaction during hardware configuration at system boot
US7814126B2 (en) * 2003-06-25 2010-10-12 Microsoft Corporation Using task sequences to manage devices
US20050044548A1 (en) * 2003-08-20 2005-02-24 John Page Efficient replication of embedded operating system with a write filter and overlay partition
WO2005055072A1 (en) * 2003-11-26 2005-06-16 Hewlett-Packard Development Company, L.P. System and method for management and installation of operating system images for computers
US7614051B2 (en) * 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
TWI308721B (en) * 2004-01-16 2009-04-11 Wistron Corp Remote boot method and device thereof and server device using remote boot method
US7444621B2 (en) * 2004-02-20 2008-10-28 Microsoft Corporation Method and system for providing a common operating system
US7877747B2 (en) * 2004-02-20 2011-01-25 Hewlett-Packard Development Company, L.P. Flexible operating system operable as either native or as virtualized
US10200504B2 (en) 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10375253B2 (en) 2008-08-25 2019-08-06 Icontrol Networks, Inc. Security system with networked touchscreen and gateway
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US8988221B2 (en) 2005-03-16 2015-03-24 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US8635350B2 (en) 2006-06-12 2014-01-21 Icontrol Networks, Inc. IP device discovery systems and methods
US9609003B1 (en) 2007-06-12 2017-03-28 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US11159484B2 (en) * 2004-03-16 2021-10-26 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11113950B2 (en) 2005-03-16 2021-09-07 Icontrol Networks, Inc. Gateway integrated with premises security system
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10382452B1 (en) 2007-06-12 2019-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US10348575B2 (en) 2013-06-27 2019-07-09 Icontrol Networks, Inc. Control system user interface
US11190578B2 (en) 2008-08-11 2021-11-30 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US9531593B2 (en) 2007-06-12 2016-12-27 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US10156959B2 (en) 2005-03-16 2018-12-18 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US10339791B2 (en) * 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US9191228B2 (en) 2005-03-16 2015-11-17 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
JP2007529826A (ja) 2004-03-16 2007-10-25 アイコントロール ネットワークス, インコーポレイテッド 対象事項管理ネットワーク
US11368429B2 (en) * 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US10444964B2 (en) 2007-06-12 2019-10-15 Icontrol Networks, Inc. Control system user interface
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US8963713B2 (en) 2005-03-16 2015-02-24 Icontrol Networks, Inc. Integrated security network with security alarm signaling system
US11201755B2 (en) 2004-03-16 2021-12-14 Icontrol Networks, Inc. Premises system management using status signal
US9141276B2 (en) 2005-03-16 2015-09-22 Icontrol Networks, Inc. Integrated interface for mobile device
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US10313303B2 (en) 2007-06-12 2019-06-04 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US8473619B2 (en) * 2005-03-16 2013-06-25 Icontrol Networks, Inc. Security network integrated with premise security system
US11277465B2 (en) 2004-03-16 2022-03-15 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US7711796B2 (en) 2006-06-12 2010-05-04 Icontrol Networks, Inc. Gateway registry methods and systems
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
JP4900760B2 (ja) * 2004-03-31 2012-03-21 株式会社日立製作所 Osイメージのデプロイメントマシン及び方法
US20050235281A1 (en) * 2004-04-19 2005-10-20 Telefonaktiebolaget L M Ericsson (Publ) Combined software installation package
US8230095B2 (en) * 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US7765541B1 (en) * 2004-05-26 2010-07-27 Oracle America, Inc. Minimization methodology
US20060031425A1 (en) * 2004-06-07 2006-02-09 Northrop Grumman Corporation Method for imaging computer systems
US20050283479A1 (en) * 2004-06-16 2005-12-22 Advanced Micro Devices, Inc. System for controlling a multipurpose media access data processing system
US8346886B2 (en) * 2004-09-08 2013-01-01 Red Hat, Inc. System, method, and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
US7607003B2 (en) * 2004-09-21 2009-10-20 Cyberlink Corp. System and method for loading an operating system on a personal computer
US20060195839A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Computer system for deploying software on multiple computers
US9306809B2 (en) 2007-06-12 2016-04-05 Icontrol Networks, Inc. Security system with networked touchscreen
US11615697B2 (en) * 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US9450776B2 (en) 2005-03-16 2016-09-20 Icontrol Networks, Inc. Forming a security network including integrated security system components
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US7734945B1 (en) * 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
US7512833B1 (en) * 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program
US8413134B2 (en) * 2005-05-10 2013-04-02 International Business Machines Corporation Method, system and computer program for installing software products based on package introspection
KR20060119373A (ko) * 2005-05-20 2006-11-24 엘지전자 주식회사 컴퓨터 시스템과 시스템 소프트웨어 설치방법 및 휴대용컴퓨터의 소프트웨어 설치방법
US8918530B2 (en) * 2005-09-09 2014-12-23 Microsoft Corporation Plug and play device redirection for remote systems
US7634689B2 (en) * 2005-09-22 2009-12-15 Advanced Micro Devices, Inc. Boot performance optimization for hard drive for personal internet communicator
WO2007038522A2 (en) * 2005-09-27 2007-04-05 Morgan Stanley Host build and rebuild system and method
US20070169112A1 (en) * 2005-10-31 2007-07-19 Inventec Corporation Operating program installation method appended with driver program and related structure
CN100345112C (zh) * 2005-11-25 2007-10-24 中国科学院软件研究所 操作系统的构件化扩充方法
EP1808763A1 (en) * 2005-12-13 2007-07-18 Neoware, Inc. A procedure for booting a first computer using the operating system of a second computer
US8255901B2 (en) * 2005-12-16 2012-08-28 Sap Ag Methods and systems for configuring software applications
CN101390050B (zh) 2005-12-22 2018-04-24 艾伦·J·薛比洛 通过相减性安装达成选择性分配软件资源的装置与方法
US9286308B2 (en) 2005-12-22 2016-03-15 Alan Joshua Shapiro System and method for metadata modification
US8286159B2 (en) 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US20070169116A1 (en) * 2006-01-18 2007-07-19 Dell Products L.P. Method and system for automated installation of system specific drivers
US7631175B2 (en) * 2006-02-21 2009-12-08 Microsoft Corporation Control protocol for image enumeration and transfer
JP4715623B2 (ja) * 2006-05-08 2011-07-06 ソニー株式会社 データ記録装置及びデータ記録方法、並びにコンピュータ・プログラム
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US8423831B2 (en) * 2006-07-11 2013-04-16 Oracle America, Inc. System and method for performing auditing and correction
US7743242B2 (en) * 2006-10-16 2010-06-22 Scalent Systems Inc. Method and system for automatic generation of operating system boot images
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US8522234B2 (en) * 2007-02-05 2013-08-27 Microsoft Corporation Tailoring an operating system to a computer system
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
CN101193452B (zh) * 2007-03-15 2011-03-16 中兴通讯股份有限公司 自动交换光网络中控制模块注册的方法及其应用方法
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US10616075B2 (en) 2007-06-12 2020-04-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US10498830B2 (en) 2007-06-12 2019-12-03 Icontrol Networks, Inc. Wi-Fi-to-serial encapsulation in systems
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11089122B2 (en) 2007-06-12 2021-08-10 Icontrol Networks, Inc. Controlling data routing among networks
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US10051078B2 (en) 2007-06-12 2018-08-14 Icontrol Networks, Inc. WiFi-to-serial encapsulation in systems
US11237714B2 (en) 2007-06-12 2022-02-01 Control Networks, Inc. Control system user interface
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10666523B2 (en) 2007-06-12 2020-05-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US10423309B2 (en) 2007-06-12 2019-09-24 Icontrol Networks, Inc. Device integration framework
US10389736B2 (en) 2007-06-12 2019-08-20 Icontrol Networks, Inc. Communication protocols in integrated systems
US9454384B2 (en) * 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
US7734959B2 (en) * 2007-07-30 2010-06-08 Hewlett-Packard Development Company, L.P. Operating system recovery across a network
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US20090049174A1 (en) * 2007-08-14 2009-02-19 Nicholas Rudnik System and method for managing access to resources and functionality of client computers in a client/server environment
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US8103863B2 (en) * 2007-09-17 2012-01-24 International Business Machines Corporation Workflow management to automatically load a blank hardware system with an operating system, products, and service
US20090089779A1 (en) * 2007-09-28 2009-04-02 Evelyn Thompson Brengle Apparatus system and method for customizing a computing environment
US20090144538A1 (en) * 2007-11-05 2009-06-04 Duda Kenneth J Patch installation at boot time for dynamically installable, piecemeal revertible patches
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US7975084B1 (en) * 2008-02-06 2011-07-05 American Megatrends, Inc. Configuring a host computer using a service processor
US20090217259A1 (en) * 2008-02-26 2009-08-27 Microsoft Corporation Building Operating System Images Based on Applications
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
JP5413366B2 (ja) * 2008-06-23 2014-02-12 富士通株式会社 情報処理装置及び制御方法
US8312448B2 (en) * 2008-06-24 2012-11-13 Sony Corporation Configuration to order software deployment and management
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
JP2010033437A (ja) * 2008-07-30 2010-02-12 Autonetworks Technologies Ltd 制御装置、制御方法及びコンピュータプログラム
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
TW201007469A (en) * 2008-08-15 2010-02-16 Asustek Comp Inc Computer with remote mangement system
WO2010050923A1 (en) * 2008-10-27 2010-05-06 Hewlett-Packard Development Company, L.P. Imaging process
US9628440B2 (en) 2008-11-12 2017-04-18 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
JP2010176534A (ja) * 2009-01-30 2010-08-12 Toshiba Corp 情報処理装置およびプログラム
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US8769529B2 (en) 2009-07-24 2014-07-01 Novell, Inc. Generating and automatically loading reduced operating system based on usage pattern of applications
US8516236B2 (en) 2009-09-30 2013-08-20 Imation Corp. Portable desktop device and method of host computer system hardware recognition and configuration
US9087197B2 (en) 2009-11-13 2015-07-21 Imation Corp. Device and method for verifying connectivity
US8977724B2 (en) * 2010-03-31 2015-03-10 International Business Machines Corporation Method and system for automated operating system image loading
EP2569712B1 (en) 2010-05-10 2021-10-13 Icontrol Networks, Inc. Control system user interface
JP2010231808A (ja) * 2010-06-16 2010-10-14 Autonetworks Technologies Ltd プログラム変更方法及びコンピュータプログラム
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
CN102467392A (zh) * 2010-11-12 2012-05-23 鸿富锦精密工业(深圳)有限公司 操作系统使用的预安装环境
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
US9858126B2 (en) 2010-12-16 2018-01-02 Microsoft Technology Licensing, Llc Device redirection for remote systems
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
WO2012134499A1 (en) * 2011-04-01 2012-10-04 Hewlett-Packard Development Company, L.P. Booting a computing device to have a predefined functionality
US8621496B2 (en) 2011-04-05 2013-12-31 Netapp, Inc. Decoupled application program-operating system computing architecture
US8856506B2 (en) 2011-04-27 2014-10-07 Hewlett-Packard Development Company, L.P. Process for joining a computer to a directory based on either a newly created computer account or renewed computer account depending on a unique identifier associated with an end-user
US9122551B2 (en) 2011-06-17 2015-09-01 The Boeing Comapny Methods and systems for generating read-only operating systems
US9378045B2 (en) * 2013-02-28 2016-06-28 Oracle International Corporation System and method for supporting cooperative concurrency in a middleware machine environment
US9703680B1 (en) * 2011-12-12 2017-07-11 Google Inc. System and method for automatic software development kit configuration and distribution
CN102571491B (zh) * 2011-12-28 2015-02-11 Tcl集团股份有限公司 一种检测网络是否可用的方法及装置
JP5414814B2 (ja) * 2012-01-19 2014-02-12 インテル・コーポレーション ネットワーク環境におけるスペースのカスタマイズ
US9075638B2 (en) * 2012-08-14 2015-07-07 Atlassian Corporation Pty Ltd. Efficient hosting of virtualized containers using read-only operating systems
US9141385B2 (en) * 2012-10-09 2015-09-22 Red Hat, Inc. Managing operating system components
US20140196137A1 (en) 2013-01-07 2014-07-10 Curtis John Schwebke Unified communications with a cloud client device
US10205750B2 (en) * 2013-03-13 2019-02-12 Intel Corporation Policy-based secure web boot
US9928975B1 (en) 2013-03-14 2018-03-27 Icontrol Networks, Inc. Three-way switch
US9287727B1 (en) 2013-03-15 2016-03-15 Icontrol Networks, Inc. Temporal voltage adaptive lithium battery charger
US9867143B1 (en) 2013-03-15 2018-01-09 Icontrol Networks, Inc. Adaptive Power Modulation
KR102047769B1 (ko) * 2013-03-28 2019-11-25 한국전자통신연구원 메모리 가상화 기반 스냅샷 부트 장치 및 방법
WO2014180769A1 (en) * 2013-05-06 2014-11-13 Core-Software Gmbh Automated generation of an appliance for a computing machine
US9239705B2 (en) * 2013-06-18 2016-01-19 Ciambella Ltd. Method and apparatus for customized software development kit (SDK) generation
CA2915620C (en) * 2013-06-18 2022-12-13 Ciambella Ltd. Method and apparatus for code virtualization and remote process call generation
US10841668B2 (en) 2013-08-09 2020-11-17 Icn Acquisition, Llc System, method and apparatus for remote monitoring
EP3042285B1 (en) * 2013-09-04 2018-11-21 Hewlett-Packard Development Company, L.P. Header section download of package
US9537949B2 (en) * 2013-09-24 2017-01-03 Clearcube Technology, Inc. Computer system image clustering architecture and use
US20150160990A1 (en) * 2013-12-05 2015-06-11 Karim Massoud Virtual Computer Technical Support Agent
CN103632074A (zh) * 2013-12-12 2014-03-12 用友软件股份有限公司 基于基本功能模型的特性化功能部署装置和部署方法
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US11146637B2 (en) 2014-03-03 2021-10-12 Icontrol Networks, Inc. Media content management
FR3019336B1 (fr) * 2014-03-25 2016-03-25 Bull Sas Procede et dispositif de controle du changement de systeme d'exploitation dans des nœuds de service d'un calculateur haute performance
EP3073707B1 (en) * 2014-04-24 2019-04-10 Huawei Technologies Co., Ltd. Operating system establishment method and device
CN104484241B (zh) * 2014-12-10 2018-12-11 广东欧珀移动通信有限公司 一种对终端系统文件进行备份与恢复的方法及装置
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
US10601661B2 (en) 2015-06-22 2020-03-24 Arista Networks, Inc. Tracking state of components within a network element
US10110624B2 (en) * 2016-04-19 2018-10-23 Red Hat Israel, Ltd. Discovering and provisioning computing devices in a security enhanced environment
JP7000013B2 (ja) * 2016-08-09 2022-01-19 キヤノン株式会社 情報処理装置、該装置の制御方法、該方法を実行する制御プログラム
CN106293747A (zh) * 2016-08-12 2017-01-04 京东方科技集团股份有限公司 电子设备以及电子设备的驱动方法
EP3596593B1 (en) 2017-03-14 2024-05-01 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
US10565162B2 (en) * 2017-08-02 2020-02-18 Mastercard International Incorporated Systems and methods for customized operating system conversion
US10705825B2 (en) * 2018-09-20 2020-07-07 Hewlett Packard Enterprise Development Lp Creation of images
US10776132B1 (en) * 2019-06-26 2020-09-15 Dell Products, L.P. System and method for preboot device driver provisioning for remotely-staged operating system
KR102370301B1 (ko) * 2020-05-12 2022-03-04 주식회사 다산네트웍스 초기화 파일 생성 장치
US11709760B1 (en) * 2020-07-27 2023-07-25 T-Mobile Innovations Llc Automation failure diagnostic tool
EP4260196A1 (en) * 2020-12-10 2023-10-18 Snap Inc. Camera capabilities api framework and shared oem repository system
CN112835596B (zh) * 2021-02-03 2023-11-14 广东中兴新支点技术有限公司 通用操作系统的安装方法、系统、装置及存储介质
CN114860336B (zh) * 2022-05-06 2023-09-26 麒麟软件有限公司 基于pxe的系统审核模式实现方法及电子设备

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US555416A (en) * 1896-02-25 Nap of fustians
DE3147736A1 (de) * 1981-12-02 1983-06-09 Bayer Ag, 5090 Leverkusen Verfahren zur herstellung von elastischen formkoerpern
JPS633336A (ja) * 1986-06-23 1988-01-08 Hitachi Ltd システム生成方式
JPH0766311B2 (ja) * 1986-06-27 1995-07-19 株式会社日立製作所 スタータosリストア方法
US5142680A (en) * 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
EP0592079A2 (en) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5469573A (en) * 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
JPH07219747A (ja) * 1994-02-01 1995-08-18 Fuji Xerox Co Ltd ソフトウェアのインストール方式
US5713024A (en) * 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
JPH09185494A (ja) * 1995-12-28 1997-07-15 Nec Corp インストール方式
GB2309104B (en) * 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
JPH103382A (ja) * 1996-06-18 1998-01-06 Matsushita Electric Ind Co Ltd オペレーティングシステム生成装置および生成方法
JPH1021084A (ja) 1996-07-04 1998-01-23 P I Ii:Kk ソフトウェア流通媒体およびソフトウェア流通媒体の作成方法
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6138179A (en) * 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
JPH11143724A (ja) 1997-11-13 1999-05-28 Sharp Corp 情報処理装置および情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体
GB2334354B (en) 1998-02-13 2003-04-16 Ibm Booting a computer system from a network
EP1073957B1 (en) 1998-03-23 2003-05-21 Microsoft Corporation Application program interfaces in an operating system
WO1999059059A1 (en) 1998-05-13 1999-11-18 Glaxo Group Limited Remote installation of computer operating systems
US6098097A (en) * 1998-05-14 2000-08-01 International Business Machines Corporation Controlling the installation and configuration of programs and components in a network of server and client computers through entries into a primary server computer
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6377958B1 (en) * 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6262726B1 (en) * 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
US6066182A (en) * 1998-11-05 2000-05-23 Platinum Technology Ip, Inc. Method and apparatus for operating system personalization during installation
TW408286B (en) * 1998-12-18 2000-10-11 Inventec Corp Software pre-installation method
US6188779B1 (en) * 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6711624B1 (en) * 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US20020174329A1 (en) * 1999-04-28 2002-11-21 Bowler Richard A. Method and system for automatically transitioning files among computer systems
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6598223B1 (en) * 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6681323B1 (en) * 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
JP4792686B2 (ja) * 2000-02-07 2011-10-12 ソニー株式会社 画像処理装置及び画像処理方法並びに記録媒体
US6632474B1 (en) * 2000-10-13 2003-10-14 Headway Technologies, Inc. Robust hard bias/conductor lead structures for future GMR heads
US20020188941A1 (en) * 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US6907610B2 (en) * 2001-06-15 2005-06-14 Microsoft Corporation System and method for building a target operating system from a source operating system
US7068309B2 (en) * 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
US7260738B2 (en) * 2002-06-17 2007-08-21 Microsoft Corporation System and method for splitting an image across multiple computer readable media

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725394B1 (ko) * 2005-07-08 2007-06-07 삼성전자주식회사 복수의 운영체계에서 특정 운영체계를 선택적으로 설치하는컴퓨터 시스템 및 방법
KR100792786B1 (ko) * 2005-08-26 2008-01-14 이철호 백업 이미지 파일을 이용한 컴퓨터의 최적화 운영체제 복구방법
KR100710845B1 (ko) * 2006-01-23 2007-04-23 염찬섭 중복 패치 방지 방법

Also Published As

Publication number Publication date
JP2010134941A (ja) 2010-06-17
TWI250451B (en) 2006-03-01
KR100860447B1 (ko) 2008-09-25
JP2008269621A (ja) 2008-11-06
CN1399194A (zh) 2003-02-26
US6993642B2 (en) 2006-01-31
JP2003099268A (ja) 2003-04-04
US20030023839A1 (en) 2003-01-30
JP4932781B2 (ja) 2012-05-16
JP5095717B2 (ja) 2012-12-12
EP1280058A2 (en) 2003-01-29
CN1315042C (zh) 2007-05-09
EP1280058A3 (en) 2004-06-30

Similar Documents

Publication Publication Date Title
KR100860447B1 (ko) 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템
US6804774B1 (en) Software image transition aid comprising building a disk image based on identified hardware
US6996706B1 (en) Booting an operating system or running other pre-boot code from a file stored under a different operating system
US8347137B1 (en) System and method for bare metal restore of a computer over a network
US6009520A (en) Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM
US6993649B2 (en) Method of altering a computer operating system to boot and run from protected media
US6944867B2 (en) Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems
US6317845B1 (en) System for computer recovery using removable high capacity media
US6915420B2 (en) Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation
US6564318B1 (en) Method and apparatus for execution of an application during computer pre-boot operation and post-boot under normal OS control
US6851073B1 (en) Extensible system recovery architecture
US20040255106A1 (en) Recovery of operating system configuration data by firmware of computer system
JPH04233624A (ja) パーソナル・コンピュータ・システム内でシステム・ユーティリティを保護するための装置
US7873960B2 (en) Generic packaging tool for packaging application and component therefor to be installed on computing device
US20080098381A1 (en) Systems and methods for firmware update in a data processing device
US6275930B1 (en) Method, computer, and article of manufacturing for fault tolerant booting
JP2001075812A (ja) コンピュータプリ−ブート作動の際にアプリケーションを実行する方法と装置
US6470446B1 (en) Method for preparing computer hard disks during installation of a network operating system
US20060112313A1 (en) Bootable virtual disk for computer system recovery
JP2001142714A (ja) 通常のos制御下でコンピュータのプリ−ブート及びポスト−ブート作動の際にアプリケーションを実行する方法と装置
JP7087087B2 (ja) オペレーティングシステムをコンピュータ可読媒体上に記憶するためのbiosコード
KR20040051123A (ko) 부트 플래시의 실시간 업데이트 방법 및 장치

Legal Events

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

Payment date: 20120817

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130813

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140814

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee