KR101489301B1 - 가상환경 시스템 및 그의 구동방법 - Google Patents

가상환경 시스템 및 그의 구동방법 Download PDF

Info

Publication number
KR101489301B1
KR101489301B1 KR20080025900A KR20080025900A KR101489301B1 KR 101489301 B1 KR101489301 B1 KR 101489301B1 KR 20080025900 A KR20080025900 A KR 20080025900A KR 20080025900 A KR20080025900 A KR 20080025900A KR 101489301 B1 KR101489301 B1 KR 101489301B1
Authority
KR
South Korea
Prior art keywords
virtual
operating system
environment
host
management unit
Prior art date
Application number
KR20080025900A
Other languages
English (en)
Other versions
KR20090100614A (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 삼성전자주식회사
Priority to KR20080025900A priority Critical patent/KR101489301B1/ko
Priority to US12/207,677 priority patent/US10007541B2/en
Publication of KR20090100614A publication Critical patent/KR20090100614A/ko
Application granted granted Critical
Publication of KR101489301B1 publication Critical patent/KR101489301B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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

Abstract

가상환경 시스템 및 그의 구동방법이 개시된다. 가상 운영체제부는 이동식 저장매체에 설치된 가상 운영체제가 호스트 컴퓨터에 설치된 호스트 운영체제에서 운영되도록 하며, 가상 운영체제에 포함된 가상 리소스는 호스트 운영체제에 어태치되어(attachment) 가상 운영체제에서 동작하는 가상 프로세스가 가상 리소스를 사용하도록 중재(arbitration)하며, 사용자 인터페이스부는 사용자가 가상 운영체제에서 제공하는 가상환경을 통해 가상 프로세스를 사용하도록 가상 데스크탑 화면을 제공한다.
가상환경, 가상 OS

Description

가상환경 시스템 및 그의 구동방법{Virtual environment system and operating method of the system}
본 발명은 가상환경 시스템 및 그의 구동방법에 관한 것으로, 더욱 상세하게는 이동식 저장매체에 개인 컴퓨팅 환경을 저장하여 모든 컴퓨터에서 개인 컴퓨팅 환경을 설치하지 않고 사용할 수 있도록 하는 가상환경 시스템 및 그의 구동방법에 관한 것이다.
최근, 사용자의 컴퓨터에 설치된 응용 프로그램 또는 운영체제를 다른 컴퓨터에서도 사용가능하도록 하는 기술이 활발히 연구되는 추세이다. 예를 들어, Process Migration 기술, 시스템 가상화 기반의 VM(Virtual Machine) Migration 기술, 서버관리자에 의한 패키징 기술 등이 있다.
Process Migration 기술은 응용 프로그램 또는 운영체제의 이동성 기능을 제공한다. 즉, 컴퓨터에 설치된 응용 프로그램이 이동성 저장매체에 저장된 후 다른 컴퓨터에도 저장되도록 응용 프로그램의 소스 코드를 수정하는 것이다. 그러나, 이는 기존의 응용 프로그램이나 응용체제의 소스코드를 수정하여 별도의 버젼을 가지도록 Rebuild하여야 하므로 비효율적이다.
또한, 시스템 가상화 기반의 VM Migration 기술은 사용자의 컴퓨터 작업환경을 모두 이동하는 것으로서, 이를 위해서는 GB 단위의 저장공간이 필요하며, 부팅시간 및 응용프로그램 실행 시 성능저하가 발생한다.
또한, 서버 관리자에 의한 패키징 기술은 관리자가 서버에 하나 이상의 응용프로그램과 운영체제를 패키징하고, 다수의 사용자가 패키징된 응용프로그램을 개별 컴퓨터에 스트리밍 방식으로 이동함으로써, 사용자가 설치과정없이 응용프로그램과 운영체제를 사용가능하도록 한다. 그러나, 이는 일반 사용자가 패키징할 수 없으며, 전문 지식을 가진 관리자만이 패키징할 수 있다는 한계가 있다.
따라서, 본 발명의 목적은 가상화 환경에서 사용자의 개인 컴퓨팅 환경을 다른 컴퓨터에 새로 설치하거나 설정하는 과정없이 사용할 수 있도록 하는 가상환경 시스템 및 그의 구동방법을 제공하고자 하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 가상환경 시스템은, 이동식 저장매체에 설치된 가상 운영체제가 호스트 컴퓨터에 설치된 호스트 운영체제에서 운영되도록 하며, 상기 가상 운영체제에 포함된 가상 리소스는 상기 호스트 운영체제에 어태치되어(attachment) 상기 가상 운영체제에서 동작하는 가상 프로세스가 상기 가상 리소스를 사용하도록 중재(arbitration)하는 가상 운영체제부; 및 사용자가 상기 가상 운영체제에서 제공하는 가상환경을 통해 상기 가상 프로세스를 사용하도 록 가상 데스크탑 화면을 제공하는 사용자 인터페이스부;를 포함한다.
상기 호스트 컴퓨터에서 상기 가상 운영체제를 통해 상기 가상 프로세스가 동작하도록 상기 가상 운영체제의 시작 및 종료를 관리하는 가상화 관리부;를 더 포함한다.
상기 사용자 인터페이스부에서 제공하는 로그인 화면을 통해 상기 가상환경에 로그인되면, 상기 가상 리소스가 상기 호스트 운영체제에 어태치되어 상기 가상환경이 시작되도록 하는 가상화 관리부;를 더 포함한다.
상기 가상화 관리부는 상기 가상환경 종료시, 상기 가상환경에서 동작하는 상기 가상 프로세스를 통해 생성되는 파일 및 상기 가상환경에서 다운로딩되는 프로그램이 상기 이동성 저장매체에 저장되도록 한다.
상기 가상화 관리부는 상기 생성되는 파일 및 상기 다운로딩되는 응용 프로그램이 상기 호스트 컴퓨터 및 상기 호스트 운영체제에 잔재(殘在)하지 않도록 처리한다.
상기 이동성 저장매체는 휴대용 저장매체 또는 사이버폴더(Cyber Folder)이다.
상기 사용자 인터페이스부는 상기 가상 데스크탑 화면에 상기 호스트 운영체제의 사용환경과 상기 가상 운영체제의 사용환경 간의 전환을 위한 아이콘을 표시한다.
상기 가상 운영체제부는, 입력되는 시스템 호출이 상기 가상 프로세스로부터 발생하였는지를 판단하는 프로세스 관리부; 및 상기 시스템 호출이 상기 가상 프로 세스로부터 발생한 것으로 판단되면, 상기 시스템 호출이 상기 가상 운영체제에서 제공하는 상기 가상 리소스에 접근하도록 하는 가상 리소스 관리부;를 포함한다.
상기 가상 리소스 관리부는, 상기 시스템 호출이 컨피규레이션 접근 요청인 경우, 상기 호스트 운영체제에 어태치된 상기 가상 운영체제의 가상 컨피규레이션 데이터에 상기 시스템 호출이 접근하도록 하는 가상 컨피규레이션 관리부; 상기 시스템 호출이 파일 I/O 요청인 경우, 상기 이동성 저장매체에 저장된 파일에 접근하도록 하는 가상 파일 I/O 관리부; 및 상기 시스템 호출이 DLL 요청인 경우, 상기 호스트 운영체제에 어태치된 상기 가상 운영체제의 가상 DLL(Dynamic Link Libray)이 사용되도록 하는 가상 DLL 관리부;를 포함한다.
상기 가상 리소스 관리부는, 상기 시스템 호출이 서비스 프로그램의 사용 요청인 경우, 상기 가상 프로세스를 위해 동작하는 가상 서비스 프로그램에 의해 실제 서비스가 실행되도록 상기 가상 서비스 프로그램을 제공하는 가상 서비스 관리부;를 더 포함한다.
상기 가상 리소스 관리부는, 사용자가 설정한 사용자 컴퓨팅 환경을 상기 가상화 환경에서 제공하는 가상 데스크탑 관리부;를 더 포함하며, 상기 사용자 인터페이스부는 상기 사용자 컴퓨팅 환경이 반영되는 가상 데스크탑 화면을 생성한다.
상기 가상 리소스는, 상기 호스트 운영체제 및 상기 가상 운영체제가 윈도우즈 계열인 경우, 레지스트리 데이터, 파일 입출력 정보 및 DLL(Dynamic Link Libray) 정보를 포함하며, 상기 레지스트리 데이터는 상기 호스트 운영체제의 레지스터에 어태치된다.
한편, 상기 목적을 달성하기 위한 본 발명에 따른 가상환경 시스템의 구동방법은, 이동식 저장매체와 호스트 컴퓨터가 통신가능한 상태가 되면, 상기 이동식 저장매체에 설치된 가상 운영체제의 가상 리소스가 상기 호스트 운영체제에 어태치(attachment)되는 단계; 사용자가 상기 가상 운영체제에서 제공하는 가상환경을 통해 가상 프로세스를 사용하도록 가상 데스크탑 화면을 제공하는 단계; 상기 이동식 저장매체에 설치된 가상 프로세스로부터 시스템 호출이 발생하면, 상기 가상 운영체제의 가상 리소스를 사용하도록 중재(arbitration)하는 단계; 및 상기 가상 리소스를 사용하여 상기 시스템 호출에 대응하는 가상화 처리를 수행하는 단계;를 포함한다.
상기 어태치되는 단계는, 상기 사용자가 상기 가상 운영체제에 접속하도록 로그인 화면을 제공하는 단계; 상기 로그인 화면을 통해 상기 가상환경에 로그인하는 단계; 및 상기 가상 리소스가 상기 호스트 운영체제에 어태치되어 상기 가상환경이 시작되는 단계;를 포함한다.
상기 가상환경의 종료가 요청되면, 상기 가상환경에서 동작하는 상기 가상 프로세스를 통해 생성되는 파일 및 상기 가상환경에서 다운로딩되는 응용 프로그램이 상기 이동성 저장매체에 저장되는 단계;를 더 포함한다.
상기 중재하는 단계는, 입력되는 시스템 호출이 상기 가상 프로세스로부터 발생하였는지를 판단하는 단계; 및 상기 시스템 호출이 상기 가상 프로세스로부터 발생한 것으로 판단되면, 상기 시스템 호출이 상기 가상 운영체제에서 제공하는 상기 가상 리소스에 접근하도록 처리하는 단계;를 포함한다.
상기 처리하는 단계는, 상기 시스템 호출이 컨피규레이션 접근 요청인 경우, 상기 어태치된 가상 운영체제의 가상 컨피규레이션 데이터에 접근하는 단계; 상기 시스템 호출이 파일 I/O 요청인 경우, 상기 이동성 저장매체에 저장된 파일에 접근하도록 경로를 제어하는 단계; 상기 시스템 호출이 DLL 요청인 경우, 상기 어태치된 가상 운영체제의 가상 DLL(Dynamic Link Libray)이 사용되도록 처리하는 단계;를 포함한다.
상기 처리하는 단계는, 상기 시스템 호출이 서비스 프로그램의 사용 요청인 경우, 상기 가상 프로세스를 위해 동작하는 가상 서비스 프로그램에 의해 실제 서비스가 실행되도록 상기 가상 서비스 프로그램을 제공하는 단계;를 더 포함한다.
본 발명에 따른 가상환경 시스템 및 그의 구동방법에 의하면, 사용자는 이동식 저장매체에 가상 운영체제와 다양한 프로그램, 파일 등을 포함하는 개인 컴퓨팅 환경을 설정 또는 설치한 후, 어느 컴퓨터에서나 가상화 환경으로 진입하여 상기 프로그램, 파일 등을 다시 설치하지 않고 사용하는 것이 가능하다. 또한, 가상화 환경에서 작업한 내용들은 이동식 저장매체에 저장하고, 컴퓨터에는 저장되지 않도록 함으로써 개인정보, 사생활 등을 보호하는 것이 가능하다.
또한, 본 발명은 이동식 저장매체에 설정 또는 설치된 개인 컴퓨팅 환경을 다른 컴퓨터 또는 다른 저장매체에 백업하는 것이 가능하며, 이로써 이동식 저장매체의 분실이나 고장시에도 대처할 수 있도록 한다.
이하 첨부된 도면들을 참조하여 본 발명의 일 실시예를 보다 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
도 1은 본 발명의 바람직한 실시예에 따른 가상환경 시스템에 대응하는 가상환경 레이어를 도시한 도면이다.
도 1을 참조하면 본 발명의 가상환경 시스템에 대응하는 가상환경 레이어는 이동성 저장매체의 레이어로서, 가상화 환경에서 동작하는 응용 프로그램이 사용할 가상 리소스를 제공한다. 가상환경 레이어는, 가상 운영체제(Operating System : OS)가 설치되는 가상 OS 레이어, 가상 OS 상에서 사용될 데스크탑 화면을 제공하는 사용자 인터페이스(User Interface : UI) 레이어 및 가상 OS와 UI의 상태를 관리하는 관리 레이어를 포함한다.
가상환경 레이어는 OS의 가상화를 기반으로 한 SoftWare Mobility를 제공한다. SoftWare Mobility는 이동성 저장매체에 설치된 가상 OS에 의해, 사용자가 개인 컴퓨팅 환경을 어느 컴퓨터에서나 사용할 수 있도록 한다. 즉, SoftWare Mobility는 사용자가 이동성 저장매체에 설치된 가상 OS 상에서 프로그램, 파일, 데스크탑 환경 등을 이동성 저장매체에 저장하면, 다른 컴퓨터에서 이동성 저장매체의 가상 OS를 통해 이동성 저장매체에 저장된 프로그램, 파일, 데스크탑 환경등을 사용할 수 있도록 한다.
도 2는 가상화 환경에서 사용자가 원하는 어플리케이션이 이동성 저장매체에 설치된 후, 호스트 컴퓨터의 계층을 도시한 도면이다.
도 2를 참조하면, 사용자는 호스트 컴퓨터에서 이동성 저장매체에 설치된 가상 OS를 수행한 후, 웹서버로부터 원하는 파일 또는 프로그램을 다운로딩하여 이동성 저장매체에 설치하거나 또는 CD 드라이브와 같은 드라이브를 통해 원하는 파일, 프로그램등을 입력하여 이동성 저장매체에 설치한다. 따라서, 이동성 저장매체의 가상화 환경은 가상 OS 레이어, UI 레이어, 가상화 환경의 상태를 관리하는 관리레이어 뿐만 아니라 가상화 환경에서 동작하는 프로그램, 즉, 가상 프로세스 레이어를 포함한다.
도 2에 도시된 호스트 컴퓨터의 계층은 하드웨어 레이어, 호스트 운영체제(Operating System: OS) 레이어, 호스트 어플리케이션 레이어 및 가상환경 레이어를 포함한다. 하드웨어 레이어에는 하드 디스크 드라이브, 그래픽 카드, ROM, RAM 등의 하드웨어가 위치한다. 호스트 OS 레이어는 윈도우, 맥, 리눅스, 유닉스 등과 같은 OS를 이용하여 호스트 컴퓨터에 설치된 하드웨어를 제어하고 응용 프로그램을 관리한다. 호스트 어플리케이션 레이어는 응용 프로그램을 통해 사용자로부터 데이터를 입력받거나 사용자에게 정보를 제공한다.
호스트 어플리케이션 레이어에서 발생하는 시스템 호출은 호스트 OS 레이어의 호스트 OS에게 시스템 호출에 대응하는 접근을 요청한다(①~②). 반면, 가상 프로세스 레이어에서 발생하는 시스템 호출은 가상 OS 레이어에서 가상화 작업이 수행된 후 호스트 OS에게 시스템 호출에 대응하는 접근을 요청한다(③→④→⑤→⑥).
도 3은 본 발명의 바람직한 실시예에 따른 가상환경 시스템을 도시한 도면이다. 먼저, 상술한 바와 같이, 가상환경 시스템은 사용자에게 가상환경을 제공하기 위한 가상 OS와 가상환경에 필요한 그래픽 유저 인터페이스(Graphic User Interface : GUI)화면을 제공하며, 이동성 저장매체에 설치된다. 이동성 저장매체는 USB(Universal Serial Bus) 메모리, 플래쉬 롬과 같은 휴대용 저장매체 또는 웹상에 마련되는 사이버 폴더가 될 수 있다.
도 3을 참조하면, 가상환경 시스템은 UI부(310), 가상화 관리부(320) 및 가상 OS부(330)를 포함한다. 가상 프로세스부(340)는 이동성 저장매체에서 제공하는 저장영역으로서, 가상 OS를 통해 이동성 저장매체에 설치되는 프로그램, 파일 등을 저장한다.
UI부(310)는 사용자가 가상화 환경을 사용하도록 하는 로그인 화면, 호스트 OS에서 사용되는 데스크탑 화면과 유사한 가상 데스크탑 화면, 호스트 OS와 가상 OS 간의 화면 전환을 위한 GUI를 제공한다. 가상 데스크탑 화면은 사용자가 가상 OS에서 제공하는 가상환경을 통해 가상 프로세스를 사용하도록 하는 화면이다. 즉, 사용자는 가상 데스크탑 화면에서 원하는 프로그램을 활성화한 후 작업을 수행할 수 있다. 가상 프로세스는 가상환경에서 동작하는 프로그램이며, 호스트 프로세스는 호스트 컴퓨팅 환경에서 동작하는 프로그램을 의미한다.
도 4는 UI부(310)가 제공하는 GUI 화면의 일 예를 도시한 도면이다. 도 4를 참조하면, 호스트 컴퓨터에 가상 OS가 설치된 휴대용 저장매체가 연결되면, UI부(310)는 호스트 컴퓨터의 데스크탑 화면(41)에 로그인 화면(42)을 생성하여 오버 랩한다. 로그인 화면(42)을 통해 사용자 인증이 완료되면, UI부(310)는 호스트 OS에서 제공하는 바탕화면에 가상 OS에서 제공하는 바탕화면, 즉, 사용자 컴퓨팅 환경이 반영된 가상 데스크탑 화면(43)을 오버랩시킨다.
가상 데스크탑 화면(43)은 데스크탑 화면(41)으로 전환하도록 하는 제1아이콘(44)을 포함한다. 사용자가 마우스와 같은 디바이스를 통해 제1아이콘(44)을 클릭하면, UI부(310)는 가상 데스크탑 화면(43) 대신 가상 데스크탑 화면(43)으로 전환하도록 하는 제2아이콘(45)을 생성하여 데스크탑 화면(41)에 오버랩시킨다.
다시 도 3을 참조하면, 가상화 관리부(320)는 가상 OS 및 사용자 인터페이스의 상태, 예를 들어, 시작과 종료를 관리한다. 사용자가 도 4와 같은 로그인 화면(42)을 통해 가상화 환경에 로그인하면, 가상화 관리부(320)는 가상 OS에 설치된 가상 리소스가 호스트 OS에 어태치되어 가상환경이 시작되도록 한다.
사용자가 가상 데스크탑 화면(43)을 통해 가상환경의 종료를 요청하면, 가상화 관리부(320)는 가상환경에서 동작하는 가상 프로세스를 통해 생성된 파일, 또는 가상환경에서 웹서버로부터 다운로딩된 프로그램이 가상 OS가 설치되어 있는 이동성 저장매체에 저장되도록 한다. 예를 들어, 이동성 저장매체가 사이버 폴더이면, 가상화 관리부(320)는 가상환경에서 생성된 파일들이 사이버 폴더에 저장되도록 하며, 이동성 저장매체가 휴대용 메모리이면 휴대용 메모리의 드라이버를 통해 휴대용 메모리에 저장되도록 한다.
이와 더불어, 가상화 관리부(320)는 가상환경에서 생성된 파일 또는 다운로딩된 프로그램이 호스터 컴퓨터 또는 호스트 OS에 잔재(殘在)하지 않도록 하여, 개 인 프라이버시가 보장되도록 한다.
가상 OS부(330)에는 가상화 환경을 위한 가상 OS가 설치되며, 가상 OS부(330)는 가상 OS가 호스트 컴퓨터에 설치된 호스트 OS에서 운영되도록 한다. 가상 OS에 포함된 가상 리소스는 가상화 관리부(320)에 의해 호스트 OS에 어태치된다. 그리고, 가상 OS부(330)는, 가상 OS 상에서 동작하는 프로세스인 가상 프로세스가 어태치된 가상 리소스를 사용하도록 중재(arbitration)한다. 이로써, 사용자는 원하는 프로그램이나 파일을 호스트 컴퓨터에 별도로 설치하지 않고 이동식 저장매체에 설치된 가상 OS를 이용하여 가상화 환경에서 작업하게 된다.
가상 OS부(330)는 프로세스 관리부(10), 가상 리소스 관리부(20) 및 보안 관리부(30)를 포함한다.
프로세스 관리부(10)는 프로세스로부터 시스템 호출(예를 들어, registry, DLL, file I/O 등)이 발생하면, 가상 리소스 관리부(20)가 시스템 호출을 가상화 처리를 해야 하는지를 판단할 수 있도록 해준다. 이를 위하여, 프로세스 관리부(10)는 시스템호출을 요청한 프로세스가 호스트 프로세스인지 가상 프로세스인지 구분하기 위하여 프로세스 트리를 관리한다.
보다 자세히 설명하면, 프로세스 관리부(10)는 사용자가 가상화 환경에 로그인하면, 가상 OS 상에서 동작하는 프로세스들을 관리하기 위한 프로세스 트리구조(Tree Structure)를 프로세스 트리 DB(Data Base)에 생성한다. 가상 프로세스 트리구조는 크게 호스트 프로세스 트리와 가상 프로세스 트리로 구분되며, 호스트 프로세스 트리는 호스트 OS 상에서 발생하는 프로세스의 계층적 관계를 보여주며, 가상 프로세스 트리는 가상 OS 상에서 발생하는 프로세스의 계층적 관계를 보여준다. 따라서, 프로세스 관리부(10)는 가상 OS 상에서 프로세스가 활성화될 때마다, 가상 프로세스에 대응하는 트리를 생성하며, 호스트 OS 상에서 프로세스가 활성화되면 호스트 프로세스에 대응하는 트리를 DB에 생성한다.
모든 프로세스들로부터 발생되는 시스템 호출은 가상화 계층, 즉, 가상 OS를 거치게 되는데, 이 때 프로세스 관리부(10)는 시스템 호출이 가상화 환경에서 동작하는 프로세스로부터 발생한 것인지를 프로세스 트리를 통해 확인한다.
프로세스 관리부(10)는 시스템 호출이 가상 프로세스에서 발생한 것인지 또는 호스트 OS에서 발생한 것인지 확인하여 확인결과를 가상 리소스 관리부(20)에게 알려준다.
프로세스 관리부(10)로부터 시스템 호출이 호스트 프로세스에서 발생한 것으로 확인되면, 가상 리소스 관리부(20)는 시스템 호출을 호스트 OS에게 bypass한다.
또한, 프로세스 관리부(10)로부터 시스템 호출이 가상 프로세스에서 발생한 것으로 확인되면, 가상 리소스 관리부(20)는 가상화 작업을 수행한 후, 호스트 OS에게 시스템 호출을 요청한다. 가상화 작업은,시스템 호출이 가상 프로세스로부터 발생한 경우, 가상 OS에서 제공하는 가상 리소스에 시스템 호출이 접근하도록 접근경로 파라미터를 변경하는 것이다.
가상 리소스는 데이터 컨피규레이션 정보, 가상 DLL(Dynamic Link Libray), 가상 서비스 프로그램, 가상 데스크탑 환경정보, 가상 파일 I/O 정보 등을 포함한다. 이를 위하여, 가상 리소스 관리부(20)는 가상 컨피규레이션 관리부(21), 가상 DLL 관리부(22), 가상 서비스 관리부(23), 가상 파일 I/O 관리부(24) 및 가상 데스크탑 관리부(25)를 포함한다.
가상 컨피규레이션 관리부(21)는 가상 프로세스로부터 시스템 호출을 입력받으면 프로세스 관리부(10)에게 시스템 호출이 어느 프로세스로부터 발생하였는지 문의한다. 확인결과, 상기 시스템 호출이 가상 프로세스로부터 발생하였으며, 컨피규레이션 접근을 요청하는 호출인 경우, 가상 컨피규레이션 관리부(21)는 호스트 OS에 어태치된 가상 컨피규레이션에 시스템 호출이 접근하도록 한다.
컨피규레이션은 OS가 실행되는데 필요한 모든 정보를 저장하는 데이터 베이스로서, 예를 들어, 컴퓨터에 설치된 하드웨어, 소프트웨어, 네트워크에 대한 드라이버의 설치 위치 등의 모든 정보가 기록되어 있다. OS가 마이크로소프트사에서 제공하는 윈도우 버젼인 경우, 컨피규레이션은 윈도우의 레지스트리에 해당한다.
가상 DLL 관리부(22)는 가상 프로세스로부터 시스템 호출을 입력받으면 프로세스 관리부(10)에게 시스템 호출이 어느 프로세스로부터 발생하였는지 문의한다. 확인결과, 상기 시스템 호출이 가상 프로세스로부터 발생하였으며, DLL 파일을 요청하는 호출인 경우, 가상 DLL 관리부(22)는 호스트 OS에 어태치된 가상 리소스 중 가상 DLL이 사용되도록 한다.
가상 서비스 관리부(23)는 가상 프로세스로부터 발생한 시스템 호출이 서비스 프로그램의 사용 요청인 경우, 가상 OS에서 실행되도록 구비된 가상 서비스 프로그램을 제공하여 요청된 서비스가 실행되도록 한다. 서비스와 관련된 시스템 호출의 예로는 time job을 들 수 있다. time job은 예약된 시간에 설정된 작업을 수 행하는 것으로서, 가상 서비스 관리부(23)는 예약된 시간에 time job에 대응하는 서비스 프로그램이 실행되어 설정된 작업을 수행하도록 한다.
가상 파일 I/O 관리부(24)는 가상 프로세스로부터 시스템 호출을 입력받으면 프로세스 관리부(10)에게 시스템 호출이 어느 프로세스로부터 발생하였는지 문의한다. 확인결과, 시스템 호출이 가상 프로세스로부터 발생하였으며, 파일 I/O를 요청하는 호출인 경우, 가상 파일 I/O 관리부(24)는 이동성 저장매체에 저장된 파일에 접근하여 해당 파일을 독출하도록 한다.
가상 데스크탑 관리부(25)는 사용자가 선호하는 컴퓨팅 환경을 제공한다. 예를 들어, 초기 가상 데스크탑 화면이 표시된 후 사용자가 선호하는 아이콘과, 아이콘의 배열, 바탕화면, 키보드, 마우스, 언어 등을 설정하여 가상 컴퓨팅 환경을 만들면 가상 데스크탑 관리부(25)는 설정된 가상 컴퓨팅 환경을 유지하여 어느 컴퓨터에서나 동일하게 사용되도록 한다. 이는 사용자가 가상화 환경에서 작업시 사용자의 컴퓨팅 환경을 어느 컴퓨터에서나 동일한 방법으로 사용할 수 있는 UI를 제공하기 위함이다. 따라서, UI부(310)는 가상 데스크탑 관리부(25)에서 제공하는 가상 컴퓨팅 환경이 반영되는 가상 데스크탑 화면을 생성한다.
한편, 보안 관리부(30)는 사용자가 타인의 컴퓨터 또는 공용 컴퓨터를 사용하는 경우, 바이러스 감염, 개인정보 유출, 인터넷 뱅킹과 관련된 정보 유출 등을 방지하는 기능을 제공한다.
도 5 및 도 6은 운영체제가 윈도우 계열인 경우 가상화 환경에서의 작업을 설명하기 위한 도면이다.
도 5에서, 호스트 컴퓨터에 설치된 호스트 OS 및 이동성 저장매체에 설치된 가상 OS는 윈도우즈 계열이며, 이동성 저장매체는 USB 메모리(80)를 예로 들어 설명한다. 이하에서는 호스트 OS를 호스트 윈도우즈라 하며, 가상 OS를 가상 윈도우즈라 한다. USB 메모리(80)에는 가상 윈도우즈 및 프로그램이 설치되어, 호스트 컴퓨터에 다시 설치되는 과정없이 호스트 컴퓨터에서 가상화 작업이 가능하도록 한다.
도 5 및 도 6을 참조하면, 윈도우즈의 커널 내에는 호스트 윈도우즈와 가상 윈도우부(60)가 위치하며, 호스트 윈도우즈는 System Service Dispatcher(51), I/O 매니저(52), 컨피규레이션 매니저(53), 레지스트리(54), Process/Threads 매니저(55), 파일 시스템 드라이버(56), 하드디스크 드라이버(57) 및 이동형 드라이버(58)를 포함한다. 가상 윈도우부(60)는 가상 데스크탑 관리부(61), 가상 레지스트리 관리부(62), 프로세스 관리부(63), 프로세스 트리 DB(64), 가상 파일 I/O 관리부(65), 가상 DLL 관리부(66) 및 가상 서비스 관리부(67)를 포함한다.
도 4에 도시된 가상화 관리부(320) 및 가상 프로세스부(340)는 도 5에서 생략되었으며, 필요한 경우 도 4의 가상화 관리부(320) 및 가상 프로세스부(340)를 이용하여 설명한다.
사용자가 호스트 윈도우즈 상에서 동작중인 호스트 프로세스(HP)를 화면에 표시하여 작업하는 중, USB 메모리(80)가 호스트 컴퓨터에 연결되면, UI부(40)는 호스트 컴퓨터의 화면에 가상화 환경으로 진입하기 위한 로그온 화면(42)을 표시한다. 사용자가 ID와 비밀번호를 입력하면 가상화 관리부(320)는 사용자 인증을 수 행한다.
사용자 인증이 완료되면, UI부(40)는 호스트 컴퓨터의 화면(41)에 가상 데스크탑 화면(44)을 오버랩하여 표시한다. 가상 데스크탑 관리부(61)는 사용자가 설정한 가상 컴퓨팅 환경이 가상 데스크탑 화면(44), 마우스, 언어 등 사용자의 컴퓨팅 환경과 관련된 모든 것에 반영되도록 한다.
또한, 사용자 인증이 완료되면, 가상화 관리부(320)는 가상 윈도우즈에 포함된 가상 리소스가 호스트 윈도우즈에 어태치되도록 한다. 특히, 가상화 관리부(320)는 가상 윈도우즈에 포함된 가상 레지스트리가 호스트 윈도우즈의 레지스트리에 어태치되도록 한다. 가상 리소스는 가상 레지스트리, 가상 파일 I/O, 가상 DLL, 가상 데스크탑 환경, 가상 서비스 프로그램 등을 포함하며, 여기서 '가상'은 가상환경에서 동작하는 것을 의미한다.
이로써 가상화 환경이 활성화되며, 사용자는 별도의 응용 프로그램을 호스트 컴퓨터에 설치하거나 USB 메모리에 설치된 응용 프로그램을 호스트 컴퓨터로 이동하지 않고도, USB 메모리에 설치된 응용 프로그램이 호스트 컴퓨터에 위치하는 것처럼 작업할 수 있다.
가상 윈도우즈에서 동작하는 가상 프로세스(VP)가 발생하면, 예를 들어, 가상 데스크탑 화면(44) 상에서 응용 프로그램이 활성화되면, 프로세스 관리부(63)는 프로세스 트리 DB(64)의 가상 윈도우즈 영역에 가상 프로세스에 대응하는 트리를 생성한다.
가상 프로세스로부터 레지스트리와 관련된 시스템 호출이 발생하면, System Service Dispatcher(51)는 Windows의 커널 내부로 시스템 호출을 인터페이싱한다. 즉, 동작중인 프로세스로부터 발생하는 모든 시스템 호출은 커널 내의 System Service Dispatcher(51)를 통해 커널의 내부 서비스로 전달(dispatching)된다.
예를 들어, 시스템 호출이 레지스트리 접근을 요청하는 호출이면, System Service Dispatcher(51)는 시스템 호출을 가상 레지스트리 관리부(62)에게 전달하며, 시스템 호출이 파일 I/O 요청이면, System Service Dispatcher(51)는 시스템 호출을 I/O 매니저(52)를 통해 가상 파일 I/O 관리부(65)에게 전달한다. 시스템 호출이 DLL 요청이면, System Service Dispatcher(51)는 시스템 호출을 가상 DLL 관리부(66)에게 전달한다.
I/O 매니저(52)는 Windows 커널 내의 In/Out 처리를 담당한다. 특히, I/O 매니저(52)는 System Service Dispatcher(51)로부터 입력되는 파일 I/O와 관련된 시스템 호출을 가상 파일 I/O 관리부(65)에게 전달한다. 또한, I/O 매니저(52)는 가상 DLL 관리부(66)로부터 DLL 파일의 In/Out이 요청되면, 요청된 DLL 파일의 I/O을 가상 파일 I/O 관리부(65)에게 전달한다.
가상 컨피규레이션 관리부(21)에 대응하는 가상 레지스트리 관리부(62)는 System Service Dispatcher(51)를 통해 입력되는 시스템 호출이 가상 프로세스로부터 발생하였는지를 프로세스 관리부(63)에게 문의한다. 프로세스 관리부(63)는 프로세스 트리 DB(64)를 확인하여 시스템 호출을 요청한 프로세스가 호스트 프로세스인지 가상 프로세스인지 판단한다.
시스템 호출이 가상 프로세스로부터 발생한 가상 레지스트리 접근에 대한 요 청인 것으로 확인되면, 가상 레지스트리 관리부(62)는 시스템 호출에 대해 가상화 처리를 수행한다. 즉, 가상 레지스트리 관리부(62)는 시스템 호출이 호스트 윈도우의 레지스트리(54)가 아닌, 가상 레지스트리(54a)에 접근하도록 접근경로 파라미터를 변경한다. 가상 레지스트리(54a)는 가상 윈도우즈에 포함된 레지스트리로서 호스트 윈도우즈의 레지스트리(54)에 어태치되어 있다.
프로세스 트리 DB(64)는 시스템 호출을 요청한 프로세스가 호스트 프로세스인지 가상 프로세스인지 판단하기 위한 프로세스 트리구조로서, 가상 프로세스 또는 호스트 프로세스가 실행될 때마다 프로세스 관리부(63)에 의해 트리가 증가한다.
가상 파일 I/O 관리부(65)는 I/O 매니저(52)로부터 전달되는 시스템 호출이 가상 프로세스로부터 발생하였는지를 프로세스 관리부(63)에게 문의한다. 프로세스 관리부(63)에 의해, 시스템 호출이 가상 프로세스로부터 발생한 것으로 확인되면, 가상 파일 I/O 관리부(65)는 USB 메모리(80)에 저장된 파일에 접근하여 해당 파일을 독출하도록 파일 시스템 드라이버(56)를 제어한다. 또한, 시스템 호출이 호스트 프로세스로부터 발생한 것으로 확인되면, 가상 파일 I/O 관리부(65)는 HDD(Hard Disk Drive)(70)에 접근하도록 파일 시스템 드라이버(56)를 제어한다.
가상 DLL 관리부(66)는 System Service Dispatcher(51)를 통해 입력되는 시스템 호출이 가상 프로세스로부터 발생하였는지를 프로세스 관리부(63)에게 문의한다. 프로세스 관리부(63)에 의해, 가상 프로세스로부터 DLL 사용을 요청하는 시스템 호출이 발생한 것으로 확인되면, 가상 DLL 관리부(66)는 호스트 윈도우즈의 DLL 이 아닌 가상 윈도우즈의 DLL이 사용되도록 제어한다. 즉, 가상 DLL 관리부(66)는 I/O 매니저(52)를 통해 가상 파일 I/O 관리부(65)에게 DLL 파일의 독출을 요청한다.
가상 파일 I/O 관리부(65)는 파일 시스템 드라이버(56)를 제어하여, USB 메모리(80)로부터 해당 DLL 파일을 독출한 후 가상 DLL 관리부(66)에게 제공한다. 가상 DLL 관리부(66)는 독출된 DLL 파일을 가상 프로세스에게 전달하여 가상 프로세스가 사용하도록 한다.
가상 서비스 관리부(67)는 가상 프로세스로부터 서비스 프로그램의 사용이 요청되는 경우, 호스트 윈도우즈의 서비스 프로그램(59)이 아닌 가상 프로세스만을 위해 동작하는 가상 서비스 프로그램(66a)에 의해 실제 서비스가 수행되도록 한다. 이를 위하여, 가상 서비스 관리부(67)는 도 6에 도시된 바와 같이 Spoolsv.exe, Services.exe와 같은 다수의 가상 서비스 프로그램(66a)를 저장 및 관리한다.
컨피규레이션 매니저(53)는 호스트 윈도우즈 커널 내의 레지스트리(54)를 관리하며, 가상 레지스트리 관리부(62)의 제어에 따라 가상 레지스트리(54a) 또는 호스트 레지스트리(54)의 데이터에 접근한다.
Process/Threads 매니저(55)는 활성화되는 호스트 프로세스 또는 가상 프로세스의 ID(identification)를 프로세스 관리부(63)에게 제공하며, 커널 내 프로세스 및 thread의 생성, 종료, 수행을 관리한다. 프로세스 관리부(63)는 Process/Threads 매니저(55)로부터 제공되는 ID를 이용하여 프로세스 트리를 생성한다.
파일 시스템 드라이버(56)는 커널 내에서 file system을 구현하는 디바이스 드라이버로서, 하드 디스크 드라이버(57) 또는 이동형 드라이버(58)를 제어하여 해당 파일을 독출한다. 파일 시스템 드라이버(56)는 I/O 매니저(52)에 의해 관리될 수 있다.
하드디스크 드라이버(57)는 호스트 컴퓨터에 설치된 HDD(70)를 구동하는 드라이버이며, 이동형 드라이버(58)는 USB 메모리(80)를 구동하는 드라이버이다.
상술한 가상환경 시스템을 이용하여 사용자가 가상 데스크탑 화면(43)의 가상 프로세스(VP)를 통해 문서를 작성하거나, 가상 데스크탑 화면(43)상에서 웹으로부터 특정 프로그램을 다운로딩하면, 가상화 관리부(320)는 사용자 요청시, 작성된 문서 또는 다운로딩된 프로그램이 USB 메모리(80)에 저장되도록 한다. 또한, 가상화 환경의 종료가 요청되면, 가상화 관리부(320)는 가상화 환경에서 생성된 모든 파일이 호스트 컴퓨터에 남아있지 않도록 처리한다.
도 7은 본 발명의 바람직한 실시예에 따른 가상환경 시스템의 구동방법을 설명하기 위한 흐름도이다.
도 3 내지 도 7을 참조하면, 가상 OS가 설치된 이동성 저장매체와 호스트 컴퓨터가 통신가능하도록 연결되면(S705), 가상 OS의 UI부(40)는 가상화 환경으로 진입하기 위한 로그온 화면을 표시하며, 사용자는 ID와 비밀번호를 입력하여 로그온한다(S710).
로그온되면, 가상화 관리부(320)는 가상 OS의 가상 리소스가 호스트 OS에 어태치되도록 하며(S715), 가상 데스크탑 관리부(61)는 개인 컴퓨팅 환경이 반영된 가상 데스크탑 화면(43)을 생성하여 표시하도록 UI부(40)를 제어한다(S720). 이에 의해 가상화 환경으로 진입되어 사용자는 가상 OS 상에서 문서를 작성하거나 응용 프로그램을 활성화할 수 있다.
시스템 호출이 발생하면(S725), 프로세스 분류부(10)는 시스템 호출이 가상 프로세스에서 발생하였는지 프로세스 트리 DB(64)를 확인하여 판단한다(S730). 이는, 가상 리소스 관리부(20)가 가상 OS 에서 동작하는 프로세스들만 가상 리소스에 접근하도록 중재(arbitration)하기 위함이다.
시스템 호출이 가상 프로세스에서 발생한 것으로 판단되면, 가상 리소스 관리부(20)는 가상 OS의 가상 리소스를 이용하여 시스템 호출에 대응하는 작업이 수행되도록 한다(S735). 예를 들어, S725단계에서 발생한 시스템 호출이 레지스트리 접근 요청이면, 가상 리소스 관리부(20)는 호스트 OS의 레지스트리 중 가상 레지스트리에 접근하도록 컨피규레이션 매니저(53)를 제어한다.
사용자로부터 가상화 환경에서 작업한 파일 또는 가상화 환경에서 다운로딩한 프로그램의 저장이 요청되면(S740), 가상화 관리부(320)는 파일 또는 프로그램이 이동성 저장매체에 저장되도록 한다(S745).
가상 데스크톱 화면(43)을 통해 가상화 환경의 종료가 요청되면(S750), 가상화 관리부(320)는 가상화 환경에서 생성된 모든 파일이 삭제되도록 한다(S755). 이에 의해 호스트 컴퓨터에는 호스트 OS의 데스크탑 화면이 표시된다(S760).
반면, S730단계에서 시스템 호출이 호스트 프로세스에서 발생한 것으로 판단되면, 가상 리소스 관리부(20)는 호스트 OS의 리소스에 접근하여 시스템 호출에 대 응하는 작업이 수행되도록 한다(S765).
이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시예들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 가상환경 시스템에 대응하는 가상환경 레이어를 도시한 도면,
도 2는 가상화 환경에서 사용자가 원하는 어플리케이션이 이동성 저장매체에 설치된 후, 호스트 컴퓨터의 계층을 도시한 도면,
도 3은 본 발명의 바람직한 실시예에 따른 가상환경 시스템을 도시한 도면,
도 4는 UI부(310)가 제공하는 GUI 화면의 일 예를 도시한 도면,
도 5 및 도 6은 운영체제가 윈도우 계열인 경우 가상화 환경에서의 작업을 설명하기 위한 도면, 그리고,
도 7은 본 발명의 바람직한 실시예에 따른 가상환경 시스템의 구동방법을 설명하기 위한 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명 *
310 : UI부 320 : 가상화 관리부
330 : 가상 OS부 10 : 프로세스 관리부
20 : 가상 리소스 관리부 30 : 보안 관리부
21 : 가상 컨피규레이션 관리부 22 : 가상 DLL 관리부
23 : 가상 서비스 관리부 24 : 가상 파일 I/O 관리부
25 : 가상 데스크탑 관리부

Claims (20)

  1. 이동성 저장매체에 설치된 가상 운영체제가 호스트 컴퓨터에 설치된 호스트 운영체제에서 운영되도록 하며, 상기 가상 운영체제에 포함된 가상 리소스는 상기 호스트 운영체제에 어태치되어(attachment) 상기 가상 운영체제에서 동작하는 가상 프로세스가 상기 가상 리소스를 사용하도록 중재(arbitration)하는 가상 운영체제부; 및
    사용자가 상기 가상 운영체제에서 제공하는 가상환경을 통해 상기 가상 프로세스를 사용하도록 가상 데스크탑 화면을 제공하는 사용자 인터페이스부;를 포함하고,
    상기 가상 운영체제부는,
    시스템 호출을 수신하여 상기 호스트 운영체제에 의한 것인지 상기 가상 운영체제에 의한 것인지 판단하고, 상기 호스트 운영체제에 의한 것이면 상기 시스템 호출을 상기 호스트 운영 체제에 넘겨주고, 상기 가상 운영체제에 의한 것이면 상기 시스템 호출에 대해 가상화를 수행한 후 상기 호스트 운영체제에 상기 가상 리소스에 대한 상기 시스템 호출의 접근을 요청하는 것을 특징으로 하는 가상환경 시스템.
  2. 제 1항에 있어서,
    상기 호스트 컴퓨터에서 상기 가상 운영체제를 통해 상기 가상 프로세스가 동작하도록 상기 가상 운영체제의 시작 및 종료를 관리하는 가상화 관리부;를 더 포함하는 것을 특징으로 하는 가상환경 시스템.
  3. 제 1항에 있어서,
    상기 사용자 인터페이스부에서 제공하는 로그인 화면을 통해 상기 가상환경에 로그인되면, 상기 가상 리소스가 상기 호스트 운영체제에 어태치되어 상기 가상환경이 시작되도록 하는 가상화 관리부;를 더 포함하는 것을 특징으로 하는 가상환 경 시스템.
  4. 제 3항에 있어서,
    상기 가상화 관리부는 상기 가상환경 종료시, 상기 가상환경에서 동작하는 상기 가상 프로세스를 통해 생성되는 파일 및 상기 가상환경에서 다운로딩되는 프로그램이 상기 이동성 저장매체에 저장되도록 하는 것을 특징으로 하는 가상환경 시스템.
  5. 제 4항에 있어서,
    상기 가상화 관리부는 상기 생성되는 파일 및 상기 다운로딩되는 응용 프로그램이 상기 호스트 컴퓨터 및 상기 호스트 운영체제에 잔재(殘在)하지 않도록 처리하는 것을 특징으로 하는 가상환경 시스템.
  6. 제 1항에 있어서,
    상기 이동성 저장매체는 휴대용 저장매체 또는 사이버폴더(Cyber Folder)인 것을 특징으로 하는 가상환경 시스템.
  7. 제 1항에 있어서,
    상기 사용자 인터페이스부는 상기 가상 데스크탑 화면에 상기 호스트 운영체제의 사용환경과 상기 가상 운영체제의 사용환경 간의 전환을 위한 아이콘을 표시 하는 것을 특징으로 하는 가상환경 시스템.
  8. 제 1항에 있어서,
    상기 가상 운영체제부는,
    입력되는 상기 시스템 호출이 상기 가상 프로세스로부터 발생하였는지를 판단하는 프로세스 관리부; 및
    상기 시스템 호출이 상기 가상 프로세스로부터 발생한 것으로 판단되면, 상기 시스템 호출이 상기 가상 운영체제에서 제공하는 상기 가상 리소스에 접근하도록 하는 가상 리소스 관리부;를 포함하는 것을 특징으로 하는 가상환경 시스템.
  9. 제 8항에 있어서,
    상기 가상 리소스 관리부는,
    상기 시스템 호출이 컨피규레이션 접근 요청인 경우, 상기 호스트 운영체제에 어태치된 상기 가상 운영체제의 가상 컨피규레이션 데이터에 상기 시스템 호출이 접근하도록 하는 가상 컨피규레이션 관리부;
    상기 시스템 호출이 파일 I/O 요청인 경우, 상기 이동성 저장매체에 저장된 파일에 접근하도록 하는 가상 파일 I/O 관리부; 및
    상기 시스템 호출이 DLL 요청인 경우, 상기 호스트 운영체제에 어태치된 상기 가상 운영체제의 가상 DLL(Dynamic Link Libray)이 사용되도록 하는 가상 DLL 관리부;를 포함하는 것을 특징으로 하는 가상환경 시스템.
  10. 제 9항에 있어서,
    상기 가상 리소스 관리부는,
    상기 시스템 호출이 서비스 프로그램의 사용 요청인 경우, 상기 가상 프로세스를 위해 동작하는 가상 서비스 프로그램에 의해 실제 서비스가 실행되도록 상기 가상 서비스 프로그램을 제공하는 가상 서비스 관리부;를 더 포함하는 것을 특징으로 하는 가상환경 시스템.
  11. 제 9항에 있어서,
    상기 가상 리소스 관리부는,
    사용자가 설정한 사용자 컴퓨팅 환경을 상기 가상화 환경에서 제공하는 가상 데스크탑 관리부;를 더 포함하며,
    상기 사용자 인터페이스부는 상기 사용자 컴퓨팅 환경이 반영되는 가상 데스크탑 화면을 생성하는 것을 특징으로 하는 가상환경 시스템.
  12. 제 1항에 있어서,
    상기 가상 리소스는, 상기 호스트 운영체제 및 상기 가상 운영체제가 윈도우즈 계열인 경우, 레지스트리 데이터, 파일 입출력 정보 및 DLL(Dynamic Link Libray) 정보를 포함하며, 상기 레지스트리 데이터는 상기 호스트 운영체제의 레지스터에 어태치되는 것을 특징으로 하는 가상환경 시스템.
  13. 이동성 저장매체와 호스트 컴퓨터가 통신가능한 상태가 되면, 상기 이동식 저장매체에 설치된 가상 운영체제의 가상 리소스가 상기 호스트 운영체제에 어태치(attachment)되는 단계;
    사용자가 상기 가상 운영체제에서 제공하는 가상환경을 통해 가상 프로세스를 사용하도록 가상 데스크탑 화면을 제공하는 단계; 및
    호스트 프로세스로부터 시스템 호출이 발생하면, 상기 시스템 호출을 상기 호스트 운영체제에 넘겨주고, 상기 이동식 저장매체에 설치된 가상 프로세스로부터 시스템 호출이 발생하면, 상기 가상 리소스를 사용하여 상기 시스템 호출에 대응하는 가상화 처리를 수행하고, 상기 호스트 운영체제에 상기 가상 리소스에 대한 상기 시스템 호출의 접근을 요청하는 단계;를 포함하는 것을 특징으로 하는 가상환경 시스템의 구동방법.
  14. 제 13항에 있어서,
    상기 어태치되는 단계는,
    상기 사용자가 상기 가상 운영체제에 접속하도록 로그인 화면을 제공하는 단계;
    상기 로그인 화면을 통해 상기 가상환경에 로그인하는 단계; 및
    상기 가상 리소스가 상기 호스트 운영체제에 어태치되어 상기 가상환경이 시작되는 단계;를 포함하는 것을 특징으로 하는 가상환경 시스템의 구동방법.
  15. 제 14항에 있어서,
    상기 가상환경의 종료가 요청되면, 상기 가상환경에서 동작하는 상기 가상 프로세스를 통해 생성되는 파일 및 상기 가상환경에서 다운로딩되는 응용 프로그램이 상기 이동성 저장매체에 저장되는 단계;를 더 포함하는 것을 특징으로 하는 가상환경 시스템의 구동방법.
  16. 제 13항에 있어서,
    상기 이동성 저장매체는 휴대용 저장매체 또는 사이버폴더(Cyber Folder)인 것을 특징으로 하는 가상환경 시스템의 구동방법.
  17. 제 13항에 있어서,
    상기 가상 데스크탑 화면은 상기 호스트 운영체제의 사용환경과 상기 가상 운영체제의 사용환경 간의 전환을 위한 아이콘을 포함하는 것을 특징으로 하는 가상환경 시스템의 구동방법.
  18. 삭제
  19. 제 13항에 있어서,
    상기 가상 리소스에 대한 상기 시스템 호출의 접근 요청은,
    상기 시스템 호출이 컨피규레이션 접근 요청인 경우, 상기 어태치된 가상 운영체제의 가상 컨피규레이션 데이터에 접근을 요청하고,
    상기 시스템 호출이 파일 I/O 요청인 경우, 상기 이동성 저장매체에 저장된 파일에 접근하도록 경로를 제어하고,
    상기 시스템 호출이 DLL 요청인 경우, 상기 어태치된 가상 운영체제의 가상 DLL(Dynamic Link Libray)이 사용되도록 처리하는 것을 특징으로 하는 가상환경 시스템의 구동방법.
  20. 제 19항에 있어서,
    상기 시스템 호출이 서비스 프로그램의 사용 요청인 경우, 상기 가상 프로세스를 위해 동작하는 가상 서비스 프로그램에 의해 실제 서비스가 실행되도록 상기 가상 서비스 프로그램을 제공하는 단계;를 더 포함하는 것을 특징으로 하는 가상환경 시스템의 구동방법.
KR20080025900A 2008-03-20 2008-03-20 가상환경 시스템 및 그의 구동방법 KR101489301B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20080025900A KR101489301B1 (ko) 2008-03-20 2008-03-20 가상환경 시스템 및 그의 구동방법
US12/207,677 US10007541B2 (en) 2008-03-20 2008-09-10 Method for operating a mobile virtual environment upon connection to a host computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080025900A KR101489301B1 (ko) 2008-03-20 2008-03-20 가상환경 시스템 및 그의 구동방법

Publications (2)

Publication Number Publication Date
KR20090100614A KR20090100614A (ko) 2009-09-24
KR101489301B1 true KR101489301B1 (ko) 2015-02-06

Family

ID=41090149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080025900A KR101489301B1 (ko) 2008-03-20 2008-03-20 가상환경 시스템 및 그의 구동방법

Country Status (2)

Country Link
US (1) US10007541B2 (ko)
KR (1) KR101489301B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488645B1 (ko) 2022-02-15 2023-01-12 윤종호 가상 운영체제 서비스 제공을 위한 전자 장치 및 방법

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005472A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Running applications from removable media
US8261254B2 (en) * 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US8234332B2 (en) * 2009-04-22 2012-07-31 Aventura Hq, Inc. Systems and methods for updating computer memory and file locations within virtual computing environments
US9959131B2 (en) * 2009-08-03 2018-05-01 Quantum Corporation Systems and methods for providing a file system viewing of a storeage environment
US8473531B2 (en) 2009-09-03 2013-06-25 Quantum Corporation Presenting a file system for a file containing items
KR101049916B1 (ko) * 2009-11-12 2011-07-15 제주대학교 산학협력단 가상화 보안 시스템 및 방법
KR101089157B1 (ko) * 2010-03-05 2011-12-02 주식회사 안철수연구소 클라이언트 가상화를 이용한 서버의 논리적 망분리 시스템 및 방법
KR101471366B1 (ko) * 2010-09-30 2014-12-10 에스케이플래닛 주식회사 단말기에 따른 적응적 화면 가상화 방법 및 시스템
EP2732397B1 (en) 2011-07-12 2020-02-26 Hewlett-Packard Development Company, L.P. Computing device including a port and a guest domain
US9171139B2 (en) * 2011-08-05 2015-10-27 Vmware, Inc. Lock screens to access work environments on a personal mobile device
KR101492217B1 (ko) * 2012-12-11 2015-02-12 한국전자통신연구원 가상 데스크탑 서비스를 위한 클라이언트 시스템
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US9292323B2 (en) * 2013-05-17 2016-03-22 Citrix Systems, Inc. Context aware virtual desktop
WO2014204453A1 (en) 2013-06-19 2014-12-24 Empire Technology Development, Llc Processor-optimized library loading for virtual machines
US10623243B2 (en) * 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
CN103701791B (zh) * 2013-12-20 2017-09-01 中电长城网际系统应用有限公司 一种基于虚拟桌面系统的虚拟桌面的操作方法
CN104331357B (zh) * 2014-10-10 2018-07-10 北京金山安全软件有限公司 应用程序异常的检测方法、装置和移动终端
WO2016159935A1 (en) * 2015-03-27 2016-10-06 Intel Corporation Dynamic configuration of input/output controller access lanes
US9558529B2 (en) 2015-05-22 2017-01-31 Dell Products, L.P. Rendering video data in an information handling system using a management controller
WO2017126819A1 (ko) * 2016-01-22 2017-07-27 건국대학교 산학협력단 가상 디스크 프로비저닝 관리 방법 및 장치
KR101866086B1 (ko) 2016-11-09 2018-07-04 건국대학교 산학협력단 재사용 기반의 가상 클러스터 구축 방법 및 장치
KR101841847B1 (ko) 2016-11-09 2018-05-04 건국대학교 산학협력단 가상 디스크 프로비저닝 관리 방법 및 장치
US10880272B2 (en) * 2017-04-20 2020-12-29 Wyse Technology L.L.C. Secure software client
US10971161B1 (en) 2018-12-12 2021-04-06 Amazon Technologies, Inc. Techniques for loss mitigation of audio streams
US11336954B1 (en) 2018-12-12 2022-05-17 Amazon Technologies, Inc. Method to determine the FPS on a client without instrumenting rendering layer
US11356326B2 (en) 2018-12-13 2022-06-07 Amazon Technologies, Inc. Continuously calibrated network system
US11368400B2 (en) 2018-12-13 2022-06-21 Amazon Technologies, Inc. Continuously calibrated network system
US11252097B2 (en) 2018-12-13 2022-02-15 Amazon Technologies, Inc. Continuous calibration of network metrics
US11016792B1 (en) * 2019-03-07 2021-05-25 Amazon Technologies, Inc. Remote seamless windows
US11245772B1 (en) 2019-03-29 2022-02-08 Amazon Technologies, Inc. Dynamic representation of remote computing environment
US11461168B1 (en) 2019-03-29 2022-10-04 Amazon Technologies, Inc. Data loss protection with continuity
CN113885758B (zh) * 2021-12-08 2022-02-25 统信软件技术有限公司 一种虚拟屏幕生成方法、计算设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060047766A (ko) * 2004-06-30 2006-05-18 마이크로소프트 코포레이션 가상 기계 환경에서 에뮬레이트된 장치들을 개발하기 위한시스템 및 방법
KR20060062587A (ko) * 2004-12-04 2006-06-12 소프트온넷(주) 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618736B1 (en) * 2001-03-09 2003-09-09 Ensim Corporation Template-based creation and archival of file systems
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US20030179240A1 (en) * 2002-03-20 2003-09-25 Stephen Gest Systems and methods for managing virtual desktops in a windowing environment
US7496931B2 (en) * 2003-12-30 2009-02-24 Symantec Corporation Portable memory storage devices containing public context application layers
US7441108B2 (en) * 2002-11-19 2008-10-21 Ken Scott Fisher Portable memory drive with portable applications and cross-computer system management application
US20060047604A1 (en) * 2004-08-31 2006-03-02 Kraft-Oz Oded S Methods and apparatus providing portable application and data
US7606973B2 (en) * 2004-09-08 2009-10-20 International Business Machines Corporation System and method for pervasive computing with a portable non-volatile memory device
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7577686B1 (en) * 2006-02-10 2009-08-18 Ringcube Technologies, Inc. Dynamic table configuration in a virtual machine
US7926054B2 (en) * 2006-03-03 2011-04-12 Novell, Inc. System, method, and computer-readable medium for virtual machine instantiation from an external peripheral device
US7913252B2 (en) * 2006-04-11 2011-03-22 Installfree, Inc. Portable platform for executing software applications in a virtual environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060047766A (ko) * 2004-06-30 2006-05-18 마이크로소프트 코포레이션 가상 기계 환경에서 에뮬레이트된 장치들을 개발하기 위한시스템 및 방법
KR20060062587A (ko) * 2004-12-04 2006-06-12 소프트온넷(주) 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488645B1 (ko) 2022-02-15 2023-01-12 윤종호 가상 운영체제 서비스 제공을 위한 전자 장치 및 방법

Also Published As

Publication number Publication date
KR20090100614A (ko) 2009-09-24
US20090241110A1 (en) 2009-09-24
US10007541B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
KR101489301B1 (ko) 가상환경 시스템 및 그의 구동방법
US7765544B2 (en) Method, apparatus and system for improving security in a virtual machine host
KR101152227B1 (ko) 클라이언트 및 서버의 보안방법
US9678780B2 (en) Redirection of information from secure virtual machines to unsecure virtual machines
KR101540798B1 (ko) 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법
CN102662741B (zh) 虚拟桌面的实现方法、装置和系统
Ta-Min et al. Splitting interfaces: Making trust between applications and operating systems configurable
EP2513810B1 (en) Methods and systems for communicating between trusted and non-trusted virtual machines
EP2622459B1 (en) Virtual desktop configuration and operation techniques
KR101253560B1 (ko) 가상화 솔루션의 관리 시스템, 관리 서버, 및 그 방법
KR20180099682A (ko) 가상 머신 감사를 위한 시스템 및 방법들
CA2814982A1 (en) Inherited product activation for virtual machines
JP2004070944A (ja) アプリケーション向けにオペレーティングシステム機能を拡張するシステムおよび方法
JP2022522678A (ja) セキュア実行ゲスト所有者環境制御
US10986137B2 (en) Clipboard hardening
KR20210068444A (ko) 컴퓨터 시스템에서 비승인 드라이버의 설치를 제어하는 기법
US8612994B1 (en) Methods and systems for activating and deactivating virtualization layers
US9460293B1 (en) Clipboard hardening
Banga et al. Trustworthy computing for the cloud-mobile era: A leap forward in systems architecture
Wen et al. A secure virtual execution environment for untrusted code
KR102263945B1 (ko) 사용자 세션 별로 보안 기능을 제공하는 보안 프로그램, 보안 서비스 제공 방법, 및 컴퓨팅 장치
LaRock et al. Preemptive Wait Types
KR20110006487A (ko) 리소스 가상화를 이용한 다중 터미널서비스 제공 장치 및 그 방법
表祐志 Computer Systems Management with a Para Pass-through Virtual Machine Monitor
Maikibayeva et al. STUDY OF OPERATING SYSTEMS IN THE COURSE OF INFORMATION AND COMMUNICATION TECHNOLOGIES

Legal Events

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

Payment date: 20150206

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee