KR101103795B1 - Method for providing software virtualization system using portable medium - Google Patents

Method for providing software virtualization system using portable medium Download PDF

Info

Publication number
KR101103795B1
KR101103795B1 KR1020100009459A KR20100009459A KR101103795B1 KR 101103795 B1 KR101103795 B1 KR 101103795B1 KR 1020100009459 A KR1020100009459 A KR 1020100009459A KR 20100009459 A KR20100009459 A KR 20100009459A KR 101103795 B1 KR101103795 B1 KR 101103795B1
Authority
KR
South Korea
Prior art keywords
portable medium
resource
virtualized
folder
host
Prior art date
Application number
KR1020100009459A
Other languages
Korean (ko)
Other versions
KR20110089942A (en
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 KR1020100009459A priority Critical patent/KR101103795B1/en
Publication of KR20110089942A publication Critical patent/KR20110089942A/en
Application granted granted Critical
Publication of KR101103795B1 publication Critical patent/KR101103795B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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
    • 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/4555Para-virtualisation, i.e. guest operating system has to be modified
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법이 개시된다. 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은, 소프트웨어 가상화 시스템이 소정의 애플리케이션으로부터 실행 요청을 수신하는 단계, 수신된 상기 실행 요청이 가상화된 자원에 대한 요청인지를 판단하는 단계, 및 판단결과 상기 실행 요청이 가상화된 자원에 대한 요청인 경우 상기 소프트웨어 가상화 시스템은 상기 실행 요청에 응답하여 호스트에 연결된 포터블 매체에 설치되어 있는 가상화 자원을 리턴하고, 판단결과 상기 실행 요청이 가상화된 자원에 대한 요청이 아닌 경우 호스트에 존재하는 로컬 자원을 리턴할 수 있다.Disclosed is a method for providing a software virtualization system using a portable medium. In the method of providing a software virtualization system using the portable medium, the software virtualization system may receive an execution request from a predetermined application, determine whether the received execution request is a request for a virtualized resource, and determine the execution. If the request is a request for a virtualized resource, the software virtualization system returns a virtual resource installed in a portable medium connected to a host in response to the execution request, and as a result, the execution request is not a request for a virtualized resource. If so, you can return local resources that exist on the host.

Description

포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법{Method for providing software virtualization system using portable medium}Method for providing software virtualization system using portable medium {Method for providing software virtualization system using portable medium}

본 발명은 포터블(portable) 매체를 이용한 소프트웨어 가상화 시스템 제공방법에 관한 것으로, 보다 상세하게는 포터블 매체에 소프트웨어를 가상화하여 설치하고, 가상화된 소프트웨어를 호스트의 특성 및 환경에 무관하게 용이하게 실행하여 사용하면서도 호스트 시스템의 환경과 가상화 환경이 통합되어 제공될 수 있는 방법에 관한 것이다.The present invention relates to a method for providing a software virtualization system using a portable medium, and more particularly, to install and virtualize software on a portable medium, and to easily execute and use the virtualized software regardless of the characteristics of the host and the environment. In addition, the present invention relates to a method in which the environment of the host system and the virtualization environment can be integrated and provided.

컴퓨팅 기술의 발달과 함께 컴퓨팅 리소스의 추상화를 통해 실제환경과 독립적인 가상의 컴퓨팅 환경을 제공하기 위한 가상화(virtualization) 기술들이 소개되고 있다.With the development of computing technology, virtualization technologies have been introduced to provide a virtual computing environment independent of the real environment through the abstraction of computing resources.

가상화는 크게 하드웨어 가상화와 소프트웨어 가상화로 구분되고, 소프트웨어 가상화는 다시 커널 레벨 가상화와 유저 레벨 가상화로 구분될 수 있다.Virtualization can be divided into hardware virtualization and software virtualization, and software virtualization can be divided into kernel level virtualization and user level virtualization.

유저 레벨 가상화 중 소프트웨어 가상화는 소프트웨어가 실행되는 환경 및/또는 리소스를 가상화하여 호스트 시스템의 환경과 무관하게 상기 소프트웨어가 실행이 되고, 실행결과가 호스트 시스템에 영향을 미치지 않도록 할 수 있어 최근에 각광받고 있는 기술이다.Among the user level virtualization, software virtualization has recently been in the spotlight by virtualizing the environment and / or resources on which the software is executed so that the software can be executed irrespective of the host system environment and the execution result does not affect the host system. It is a skill.

종래의 소프트웨어 가상화 기술들로는 소프트웨어 설치 전 후의 호스트 시스템의 사용환경을 이미지로 스캔하여 가상 환경을 생성하는 방법 또는 네이티브 API 호출을 처리하기 위한 라이브러리들을 가상 환경상에 같이 패키징하는 방법들이 존재하였다. Conventional software virtualization techniques include a method of scanning a host environment before and after software installation as an image to create a virtual environment, or a method of packaging libraries for processing native API calls together on the virtual environment.

하지만, 이러한 종래의 방법들은 이미지 스캔 또는 API 별 라이브러리의 패키징에 많은 시간과 자원이 소모된다.However, these conventional methods consume a lot of time and resources for image scanning or packaging of API-specific libraries.

또한, 생성된 가상 환경과 호스트 시스템의 로컬 환경은 논리적으로 분리될 뿐만 아니라, 사용 측면에서도 완전히 분리되었다. 즉, 소프트웨어 가상화가 이루어지고 나면, 사용자에게는 가상화된 환경과 로컬 환경이 완전히 분리되어 제공되고, 사용자는 어느 하나의 환경을 의식적으로 선택하여 실행하게 된다.In addition, the created virtual environment and the local environment of the host system are not only logically separated, but also completely separated in terms of use. That is, after software virtualization is performed, the virtualized environment and the local environment are completely provided to the user, and the user consciously selects and executes any one environment.

하지만, 가상환경과 로컬환경이 논리적/물리적으로 분리된다고 하더라도 유저에게 반드시 이를 인식시킬 필요는 없다. 유저는 자신이 원하는 소프트웨어를 선택하여 사용만 하면 되지, 자신이 사용하는 소프트웨어가 가상화된 소프트웨어인지로컬 환경에 존재하는 소프트웨어인지 구분할 필요가 없는 것이 효과적일 수 있다.However, even if the virtual and local environments are logically and physically separated, they do not necessarily need to be recognized by the user. The user only needs to select and use the software he / she wants, and it may be effective that the user does not need to distinguish between the virtualized software and the software existing in the local environment.

따라서, 본 발명이 이루고자 하는 기술적인 과제는 이미지 스캔 또는 라이브러리 패키징 등과 같은 시간과 자원의 소모가 많은 가상화 방법이 아니라 효율적으로 가상 환경상에 소프트웨어를 가상화하여 설치할 수 있는 방법을 제공하는 것이다.Accordingly, a technical problem of the present invention is to provide a method for efficiently virtualizing and installing software in a virtual environment, rather than a time-consuming and resource-consuming virtualization method such as image scanning or library packaging.

또한, 소프트웨어 가상화가 이루어진 후에도, 유저 레벨에서는 로컬환경과 가상 환경이 통합된 인터페이스를 제공받을 수 있는 방법을 제공하는 것이다.In addition, even after software virtualization, the user level provides a way to provide an integrated interface of local and virtual environments.

또한, 가상 환경이 포터블 한 매체에 효율적으로 생성되고, 생성된 가상 환경에 설치된 가상화된 소프트웨어가 호스트 환경에 무관하게 그리고 호스트 환경에 영향을 미치지 않고 실행될 수 있도록 하는 방법을 제공하는 것이다.In addition, the virtual environment is efficiently created on a portable medium, and the virtualized software installed in the created virtual environment can be provided to be executed regardless of the host environment and without affecting the host environment.

상기 기술적 과제를 달성하기 위한 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 소프트웨어 가상화 시스템이 소정의 애플리케이션으로부터 실행 요청을 수신하는 단계, 수신된 상기 실행 요청이 가상화된 자원에 대한 요청인지를 판단하는 단계, 및 판단결과 상기 실행 요청이 가상화된 자원에 대한 요청인 경우 상기 소프트웨어 가상화 시스템은 상기 실행 요청에 응답하여 호스트에 연결된 포터블 매체에 설치되어 있는 가상화 자원을 리턴하고, 판단결과 상기 실행 요청이 가상화된 자원에 대한 요청이 아닌 경우 호스트에 존재하는 로컬 자원을 리턴하는 단계를 포함한다.The method for providing a software virtualization system using a portable medium for achieving the technical problem may include receiving, by a software virtualization system, an execution request from a predetermined application, determining whether the received execution request is a request for a virtualized resource, And in response to the execution request being a request for a virtualized resource, the software virtualization system returns a virtualization resource installed in a portable medium connected to a host in response to the execution request, and as a result, the execution request is a virtualized resource. Returning a local resource that exists on the host if the request is not for.

상기 소프트웨어 가상화 시스템은 상기 호스트의 시스템 폴더 구조가 소정의 가상화 규칙에 따라 표준화된 가상화 시스템 폴더 구조로 매핑하며, 상기 가상화 자원 중 적어도 일부는 매핑된 상기 가상화 시스템 폴더 구조에 따라 상기 포터블 매체에 설치된 것을 특징으로 할 수 있다.The software virtualization system maps the system folder structure of the host to a standardized virtual system folder structure according to a predetermined virtualization rule, and at least some of the virtualization resources are installed on the portable medium according to the mapped virtualization system folder structure. It can be characterized.

상기 소프트웨어 가상화 시스템은 상기 호스트의 시스템 폴더 구조와 상기 가상화 시스템 폴더 구조를 통합한 통합 폴더 구조를 제공할 수 있다.The software virtualization system may provide an integrated folder structure in which the system folder structure of the host and the virtualization system folder structure are integrated.

상기 소프트웨어 가상화 시스템은 상기 호스트의 쉘(shell) 폴더를 소정의 규칙에 의해 표준화된 가상화 쉘 폴더로 생성하고, 상기 가상화 자원 중 적어도 일부는 생성된 가상화 쉘 폴더에 따라 상기 포터블 매체에 설치된 것을 특징으로 할 수 있다.The software virtualization system generates a shell folder of the host as a virtualized shell folder standardized by a predetermined rule, and at least some of the virtualization resources are installed on the portable medium according to the created virtualized shell folder. can do.

상기 소프트웨어 가상화 시스템은 상기 호스트의 환경변수가 소정의 규칙에 의해 표준화된 가상화 환경변수를 생성하고, 상기 가상화 자원 중 적어도 일부는 생성된 가상화 환경변수에 따라 상기 포터블 매체에 설치된 것을 특징으로 할 수 있다.The software virtualization system may generate a virtualization environment variable in which an environment variable of the host is standardized according to a predetermined rule, and at least some of the virtualization resources may be installed in the portable medium according to the generated virtualization environment variable. .

수신된 상기 실행 요청이 상기 가상화된 자원에 대한 요청인지를 판단하는 단계는 상기 포터블 매체에 설치되어 있는 가상화 자원에 대한 정보를 포함하는 소정의 가상화 자원 테이블에 기초하여 판단하는 것을 특징으로 할 수 있다.The determining of whether the received execution request is a request for the virtualized resource may be performed based on a predetermined virtual resource table including information on the virtual resource installed in the portable medium. .

상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 상기 가상화 자원의 작업결과 생성되는 생성 데이터가 상기 가상화 자원 테이블에 포함되는지를 판단하는 단계 및 판단 결과 상기 가상화 자원 테이블에 포함되지 않은 경우, 상기 가상화 자원 테이블을 상기 데이터가 포함되도록 업데이트 하는 단계를 더 포함할 수 있다.The method of providing a software virtualization system using the portable medium may include determining whether the generated data generated as a result of the operation of the virtual resource is included in the virtual resource table, and when the result is not included in the virtual resource table, the virtual resource table. The method may further include updating the data to include the data.

상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 상기 생성 데이터가 상기 포터블 매체에 가상화되어 설치되는 단계를 더 포함할 수 있다.The method for providing a software virtualization system using the portable medium may further include installing the generated data virtualized on the portable medium.

상기 가상화 자원은 상기 애플리케이션에 상응하는 가상화된 서비스, 컴(COM), 파일, 또는 레지스트리 중 적어도 하나일 수 있다.The virtual resource may be at least one of a virtualized service, a COM, a file, or a registry corresponding to the application.

상기 소프트웨어 가상화 시스템이 애플리케이션으로부터 실행 요청을 수신하는 단계는, 상기 애플리케이션으로부터 상기 호스트로 출력된 상기 실행 요청을 상기 소프트웨어 가상화 시스템이 API 후킹하는 단계를 포함할 수 있다.The receiving of the execution request from the application by the software virtualization system may include hooking, by the software virtualization system, the execution request output from the application to the host.

상기 기술적 과제를 해결하기 위한 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 호스트와 포터블 매체가 연결된 상태에서 소프트웨어 가상화 모듈이 로딩되는 단계 및 상기 호스트에 설치된 로컬 환경과 상기 포터블 매체에 설치된 가상 환경이 통합된 통합 UI 구조로 제공되는 단계를 포함한다.The method for providing a software virtualization system using a portable medium for solving the technical problem is a step in which a software virtualization module is loaded while a host and a portable medium are connected, and a local environment installed on the host and a virtual environment installed on the portable medium are integrated. It includes the steps provided by the integrated UI structure.

상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 제공된 상기 통합 UI 구조에 의해 사용자로부터 소정의 자원이 요청되는 단계, 요청된 자원이 가상화된 자원인지 판단하는 단계, 및 판단결과 가상화된 자원인 경우 상기 포터블 매체에 설치된 가상환경 내의 가상화 자원이 리턴되고, 판단결과 가상화된 자원이 아닌 경우 상기 로컬 환경 내의 로컬 자원이 리턴되는 단계를 더 포함할 수 있다.In the method for providing a software virtualization system using the portable medium, the method may include requesting a predetermined resource from a user by using the integrated UI structure, determining whether the requested resource is a virtualized resource, and if the determined virtualized resource is the portable resource. The method may further include returning a virtual resource in the virtual environment installed in the medium, and returning the local resource in the local environment if the virtual resource is not a virtualized resource.

상기 기술적 과제를 해결하기 위한 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 소프트웨어 가상화 모듈이 실행되는 단계, 가상화될 애플리케이션이 선택되는 단계, 및 선택된 애플리케이션에 상응하는 가상화될 자원이 소정의 가상화 규칙에 따라 상기 포터블 매체에서 가상 환경으로 설치되는 단계를 포함한다.The method for providing a software virtualization system using a portable medium for solving the technical problem includes the steps of executing a software virtualization module, selecting an application to be virtualized, and resources to be virtualized corresponding to the selected application according to a predetermined virtualization rule. And installing the virtual environment in the portable medium.

상기 소정의 가상화 규칙은 상기 호스트에 설치된 로컬 환경이 표준화되도록 설정되기 위한 시스템 폴더 구조에 대한 규칙, 쉘(shell) 폴더에 대한 규칙, 또는 환경변수에 대한 규칙 중 적어도 하나를 포함할 수 있다.The predetermined virtualization rule may include at least one of a rule for a system folder structure, a rule for a shell folder, or a rule for an environment variable for setting a local environment installed in the host to be standardized.

상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 상기 호스트의 시스템 폴더 구조와 상기 포터블 매체에 설치된 가상 환경의 시스템 폴더 구조를 통합한 통합 폴더 구조를 제공하는 단계를 더 포함할 수 있다.The method for providing a software virtualization system using the portable medium may further include providing an integrated folder structure integrating the system folder structure of the host and the system folder structure of the virtual environment installed in the portable medium.

상기 선택된 애플리케이션이 상기 포터블 매체에서 가상환경으로 설치되는 단계는, 사용자로부터 상기 애플리케이션이 설치될 지정 경로를 수신하거나 또는 디폴트(default)로 설치될 디폴트 경로가 로컬환경에 상응하는 경로인 경우에도, 상기 가상 환경 경로에 상기 선택된 애플리케이션이 설치되는 것을 특징으로 할 수 있다.The step of installing the selected application to the virtual environment in the portable medium may be performed even if the user receives a designated path from which the application is to be installed or the default path to be installed as a default corresponds to a local environment. The selected application may be installed in a virtual environment path.

상기 선택된 애플리케이션이 상기 포터블 매체에서 가상환경으로 설치되는 단계는, 상기 지정 경로 또는 상기 디폴트 경로로 상기 애플리케이션이 설치되기 위한 API 함수를 후킹하여 상기 가상 환경 경로로 리디렉션 하는 단계를 포함할 수 있다.The installing of the selected application to the virtual environment on the portable medium may include hooking an API function for installing the application to the designated path or the default path and redirecting to the virtual environment path.

상기 선택된 애플리케이션이 상기 포터블 매체에서 가상환경으로 설치되는 단계는, 상기 포터블 매체에 설치되어 있는 가상화 자원에 대한 정보를 포함하는 가상화 자원 테이블을 참조하여 상기 선택된 애플리케이션이 설치되는 단계를 포함할 수 있다.The installing of the selected application to the virtual environment on the portable medium may include installing the selected application with reference to a virtualization resource table including information on virtualization resources installed on the portable medium.

상기 가상화 자원 테이블을 참조하여 상기 선택된 애플리케이션이 설치되는 단계는 상기 가상화될 자원에 대한 정보가 상기 가상화 자원 테이블에 포함되는지를 판단하는 단계 및 판단결과 포함되지 않은 경우, 상기 가상화될 자원을 상기 포터블 매체에 설치하고 상기 가상화 자원 테이블에 상기 가상화될 자원에 대한 정보를 포함시키는 단계를 포함할 수 있다. The step of installing the selected application with reference to the virtualized resource table may include determining whether information about the resource to be virtualized is included in the virtualized resource table, and if it is not included, determining the resource to be virtualized. And installing information on the resource to be virtualized in the virtualization resource table.

상기 가상화될 자원은 상기 애플리케이션에 상응하는 서비스, 컴(COM), 파일, 또는 레지스트리 중 적어도 하나를 포함할 수 있다.The resource to be virtualized may include at least one of a service, a COM, a file, or a registry corresponding to the application.

상기 기술적 과제를 해결하기 위한 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 포터블 매체에 설치된 가상화 되어 있는 자원에 대한 정보를 포함하는 가상화 자원 테이블이 유지되는 단계, 상기 포터블 매체가 호스트에 연결되고, 소프트웨어 가상화 모듈이 실행되는 단계, 가상화될 애플리케이션이 상기 포터블 매체의 가상환경으로 설치되면, 상기 소프트웨어 가상화 모듈은 새롭게 상기 포터블 매체에 설치되는 가상화 자원에 대한 정보를 상기 가상화 자원 테이블에 업데이트 하는 단계를 포함한다.The method of providing a software virtualization system using a portable medium for solving the technical problem is a step of maintaining a virtual resource table including information on the virtualized resources installed in the portable medium, the portable medium is connected to the host, software virtualization When the module is executed and the application to be virtualized is installed in the virtual environment of the portable medium, the software virtualization module may include updating information on the virtualization resource newly installed in the portable medium in the virtual resource table.

상기 기술적 과제를 해결하기 위한 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 호스트의 시스템 폴더 구조와 상기 호스트와 연결된 포터블 매체에 설치된 가상 환경의 시스템 폴더 구조가 통합된 통합 폴더 구조로 제공되는 단계, 제공되는 상기 통합 폴더 구조에 기초하여 사용자로부터 가상화될 애플리케이션이 설치될 경로를 지정받은 지정경로 또는 디폴트로 설치될 디폴트 경로가 특정되는 단계, 및 상기 지정 경로 또는 상기 디폴트 경로가 상기 호스트의 로컬환경에 상응하는 경로인 경우, 상기 로컬환경에 대응되는 가상 환경 경로에 상기 선택된 애플리케이션이 가상화되어 설치되는 단계를 포함한다. 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 프로그램을 기록한 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The method for providing a software virtualization system using a portable medium for solving the technical problem is provided in a consolidated folder structure in which a system folder structure of a host and a system folder structure of a virtual environment installed on the portable medium connected to the host are integrated. Specifying a designated path in which the application to be virtualized is installed or a default path to be installed by default based on the integrated folder structure, and wherein the designated path or the default path corresponds to the local environment of the host. In the case of a path, the selected application is virtualized and installed in a virtual environment path corresponding to the local environment. The method for providing a software virtualization system using the portable medium may be stored in a computer readable recording medium recording a program.

본 발명에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 소정의 가상화 규칙을 설정하여 소프트웨어를 가상화하여 설치할때 뿐만 아니라 가상화된 소프트웨어를 실행할 때에도 이를 참조하도록 함으로써, 호스트의 운영 환경에 무관하게 효율적으로 가상화된 소프트웨어가 설치 및 실행될 수 있는 효과가 있다.In the method for providing a software virtualization system using a portable medium according to the present invention, a predetermined virtualization rule is set to refer to not only when the virtualized software is installed but also when the virtualized software is executed, thereby effectively virtualizing the host environment. There is an effect that the installed software can be installed and executed.

또한, 소프트웨어를 가상화할때 스캔된 이미지나 API 별 라이브러리를 패키징 하는 것이 아니라, 소프트웨어가 설치될때 호출되는 API를 후킹을 통해 포터블 매체로 리디렉션(redirection)하기만 하면 되므로, 소프트웨어 가상화에 걸리는 시간이나 자원의 소모가 적은 효과가 있다.In addition, instead of packaging scanned images or API-specific libraries when virtualizing the software, it is only necessary to redirect the APIs called when the software is installed to the portable media through hooking. There is little effect of consumption.

또한, 소프트웨어가 가상화 된 후에도, 사용자는 가상환경과 로컬환경이 통합된 인터페이스를 제공받음으로써, 유저레벨에서 추상화가 증대되는 효과가 있다.In addition, even after the software is virtualized, the user is provided with an interface in which the virtual environment and the local environment are integrated, thereby increasing the abstraction at the user level.

또한, 포터블 매체에 구비되는 가상환경내에 가상화되는 자원들에 대한 목록이 항상 유지되도록 함으로써, 이러한 목록을 참고하는 것만으로 가상화된 소프트웨어의 실행이 용이하게 수행될 수 있고, 로컬환경과 가상환경의 통합적 인터페이스가 제공되는 경우에도 가상환경의 리소스에 먼저 접근할 수 있게 되는 효과가 있다.In addition, by maintaining a list of resources virtualized in the virtual environment provided in the portable medium at all times, the virtualized software can be easily executed simply by referring to the list, and integrated with the local environment and the virtual environment. Even if an interface is provided, the resource of the virtual environment can be accessed first.

또한, 로컬환경과 가상환경이 통합되는 통합적 인터페이스를 제공받으면서도 가상 환경은 포터블한 매체에만 생성되도록 할 수 있고, 포터블한 매체에 생성되는 가상환경은 용이하게 다른 호스트 환경에서도 통합될 수 있어서 호스트에 디펜던트(dependent) 하지 않은 이동성 있는 소프트웨어 실행환경을 제공할 수 있는 효과가 있다.In addition, while providing an integrated interface that integrates local and virtual environments, virtual environments can be created only on portable media, and virtual environments created on portable media can be easily integrated in other host environments. This has the effect of providing a portable software execution environment that is not dependent.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위한 물리적 구성을 개략적으로 나타낸다.
도 2는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템의 개략적인 논리적 구성을 나타낸다.
도 3은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법으로 소프트웨어를 가상화하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위해 가상화 시스템 폴더가 표준화되는 규칙을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위해 쉘(shell) 폴더 및 환경변수가 표준화되는 규칙을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법에 의해 로컬 환경과 가상 환경이 통합적 인터페이스로 제공되는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위한 가상화 자원 테이블을 개략적으로 나타내는 도면이다.
도 8은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법에 의해 가상화된 소프트웨어가 실행되는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법으로 가상화된 소프트웨어가 실행되는 과정을 설명하기 위한 도면이다.
BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.
1 schematically illustrates a physical configuration for implementing a software virtualization system providing method using a portable medium according to an embodiment of the present invention.
2 illustrates a schematic logical configuration of a software virtualization system using a portable medium according to an embodiment of the present invention.
3 is a view for explaining a process of virtualizing software in a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating a rule in which a virtualization system folder is standardized to implement a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a rule in which a shell folder and an environment variable are standardized to implement a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.
FIG. 6 is a view for explaining that a local environment and a virtual environment are provided as an integrated interface by a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.
7 is a diagram schematically illustrating a virtualization resource table for implementing a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.
8 is a diagram illustrating a method of executing virtualized software by a method of providing a software virtualization system using a portable medium according to an embodiment of the present invention.
FIG. 9 is a diagram illustrating a process of executing virtualized software in a method of providing a software virtualization system using a portable medium according to an embodiment of the present invention.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. Also, in this specification, when any one element 'transmits' data to another element, the element may transmit the data directly to the other element, or may be transmitted through at least one other element And may transmit the data to the other component.

반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.Conversely, when one element 'directly transmits' data to another element, it means that the data is transmitted to the other element without passing through another element in the element.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위한 물리적 구성을 개략적으로 나타낸다.1 schematically illustrates a physical configuration for implementing a software virtualization system providing method using a portable medium according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템을 위해서는 포터블 매체(100) 및 호스트(200)가 구비될 수 있다.Referring to FIG. 1, a portable medium 100 and a host 200 may be provided for a software virtualization system using a portable medium according to an embodiment of the present invention.

상기 포터블 매체(100)는 상기 호스트(200)와 유무선으로 연결될 수 있다. 예컨대, 상기 포터블 매체(100)는 USB(Universal Serial Bus) 인터페이스를 갖는 소정의 저장매체로 구현되어 상기 USB 인터페이스를 통해 상기 호스트(200)와 연결될 수 있다. 구현 예에 따라 상기 포터블 매체(100)는 소정의 근거리 통신(Near Field Communication)을 통해 상기 호스트(200)와 무선으로 연결될 수도 있다. 상기 포터블 매체(100)와 상기 호스트(200)가 연결되어 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위한 소정의 데이터를 송수신할 수만 있으면, 상기 포터블 매체(100)와 상기 호스트(200)간의 네트워크의 종류에 의해 본 발명의 권리범위가 한정되지는 않는다.The portable medium 100 may be connected to the host 200 by wire or wirelessly. For example, the portable medium 100 may be implemented as a predetermined storage medium having a universal serial bus (USB) interface and connected to the host 200 through the USB interface. According to an embodiment, the portable medium 100 may be wirelessly connected to the host 200 through a predetermined near field communication. If the portable medium 100 and the host 200 are connected to each other to transmit and receive predetermined data for implementing a method for providing a software virtualization system using the portable medium according to an embodiment of the present invention, the portable medium 100 The scope of the present invention is not limited by the type of network between the host and the host 200.

상기 포터블 매체(100)에는 본 발명의 기술적 사상에 따라 소정의 가상 환경이 설치될 수 있다. 상기 가상 환경은 소프트웨어 가상화를 위해 필요한 자원들이 포함되어 있다.A predetermined virtual environment may be installed in the portable medium 100 according to the technical spirit of the present invention. The virtual environment includes resources necessary for software virtualization.

상기 호스트(200)는 상기 호스트(200)의 로컬 환경에 따라 운영되는 모든 데이터처리 시스템을 포함하는 의미로 사용될 수 있다. 상기 로컬환경은 상기 호스트(200)를 운영하는 운영체제(OS : Operating System)에 따른 OS 환경 및/또는 사용자가 상기 호스트(200)를 사용하면서 설정된 사용자 환경을 포함하는 의미로 사용될 수 있다.The host 200 may be used to include all data processing systems operated according to the local environment of the host 200. The local environment may be used to mean an OS environment according to an operating system (OS) operating the host 200 and / or a user environment set while the user uses the host 200.

도 2는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템의 개략적인 논리적 구성을 나타낸다.2 illustrates a schematic logical configuration of a software virtualization system using a portable medium according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 적어도 소프트웨어 가상화 모듈(310)을 포함한다. 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 상기 소프트웨어 가상화 모듈(310)에 의해 생성될 수 있는 가상 환경 시스템(320)을 더 포함할 수 있다. 또한, 상기 가상 환경 시스템(320)에 설치된 가상화된 자원 즉, 가상화 자원에 대한 정보를 포함하는 소정의 가상화 자원 테이블(Virtual Object Description Table, 이하 'VDT', 330)을 더 포함할 수 있다.2, a software virtualization system 300 using a portable medium according to an embodiment of the present invention includes at least a software virtualization module 310. The software virtualization system 300 using the portable medium may further include a virtual environment system 320 that may be generated by the software virtualization module 310. In addition, the virtual environment system 320 may further include a predetermined virtual resource table (VDT) 330 including information about virtualized resources, that is, virtualized resources installed in the virtual environment system 320.

도 2에 도시된 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 어느 하나의 물리적 장치를 의미하는 것은 아니다. 도 2는 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)의 각각의 구성은 기능 및 논리적으로 분리될 수 있음을 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것은 아님을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.The software virtualization system 300 using the portable medium illustrated in FIG. 2 does not mean any one physical device. 2 shows that each configuration of the software virtualization system 300 using the portable medium can be functionally and logically separated, and that each configuration must be divided into separate physical devices or written in separate codes. It will be easy for the average expert in the art to deduce.

예컨대, 상기 소프트웨어 가상화 모듈(310), 가상 환경 시스템(320), 및 가상화 자원 테이블(330)은 모두 상기 포터블 매체(100)에 포함되어 구현될 수 있다. 구현 예에 따라서는 상기 소프트웨어 가상화 모듈(310)은 별도의 장치에 설치된 구성일 수도 있다.For example, the software virtualization module 310, the virtual environment system 320, and the virtualization resource table 330 may be included in the portable medium 100 and implemented. According to the implementation example, the software virtualization module 310 may be a component installed in a separate device.

또한, 상기 소프트웨어 가상화 모듈(310)이 복수의 기능을 수행하는 경우, 상기 소프트웨어 가상화 모듈(310) 자체도 서로 다른 물리적 장치에 이격되어 설치될 수 있으며, 이격되어 설치된 구성간에 통신을 통해 상기 복수의 기능을 수행할 수도 있다. In addition, when the software virtualization module 310 performs a plurality of functions, the software virtualization module 310 itself may be installed to be spaced apart from different physical devices, and the plurality of software virtualization modules 310 may be installed to communicate with each other. You can also perform a function.

또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.In addition, the term module in the present specification may mean a functional and structural combination of hardware for performing the technical idea of the present invention and software for driving the hardware. For example, the module may mean a logical unit of a predetermined code and a hardware resource for performing the predetermined code, and means a code that is not necessarily physically connected or does not mean a kind of hardware. It can be easily inferred by the average expert in the art.

본 발명의 일 실시 예에 따르면, 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 상기 포터블 매체(100)에 저장되어 있다가, 상기 호스트(200)와 연결된 후 유저에 의해 상기 소프트웨어 가상화 모듈(310)이 실행되면, 실행된 상기 소프트웨어 가상화 모듈(310)은 상기 호스트(200)의 메모리 상에 로딩될 수 있다. 로딩된 상기 소프트웨어 가상화 모듈(310)은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위해 상기 호스트(200) 및/또는 상기 포터블 매체(100)에 포함되는 하드웨어 및/또는 소프트웨어 리소스를 제어할 수 있다. 상기 소프트웨어 가상화 모듈(310)은 소정의 실행 가능한 파일의 형태로 구현될 수 있지만, 이에 한정되는 것은 아니다.According to an embodiment of the present invention, the software virtualization system 300 using the portable medium is stored in the portable medium 100, and is connected to the host 200 and then connected by the user to the software virtualization module 310. When executed, the executed software virtualization module 310 may be loaded onto the memory of the host 200. The loaded software virtualization module 310 includes hardware included in the host 200 and / or the portable medium 100 to implement a method for providing a software virtualization system using the portable medium according to an embodiment of the present invention. Alternatively, software resources can be controlled. The software virtualization module 310 may be implemented in the form of a predetermined executable file, but is not limited thereto.

상기 가상 환경 시스템(320)은 상기 소프트웨어 가상화 모듈(310)에 의해 소정의 애플리케이션(소프트웨어)가 가상화된 결과 즉, 가상화된 자원이 저장된 시스템을 의미할 수 있다. 상기 가상 환경 시스템(320)에는 상기 애플리케이션이 설치되어서 실행될 때 필요한 모든 자원이 가상화되어 저장될 수 있다. 본 명세서에서 가상화된 자원은 가상화 자원으로 정의될 수 있다. 상기 애플리케이션이 실행될때 필요한 자원은 서비스, 콤(COM, DCOM을 포함함), 파일, 및/또는 레지스트리를 포함할 수 있으며, 상기 애플리케이션의 종류에 따라 이들 중 일부만이 상기 애플리케이션이 실행될때 필요한 자원일 수도 있다. 이처럼 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300) 제공방법은 단순히 파일 및 레지스트리 만을 가상화하는 것이 아니라, 서비스와 콤도 가상화함으로써 로컬 환경과 가상환경에서의 애플리케이션 실행이 완전히 독립될 수 있다. 예컨대, 동일한 애플리케이션이 로컬 환경 및 가상 환경에서 독립적으로 실행될 수 있다. 즉, 서로 다른 프로세스로 실행되어 복수의 창(window)에 의해 로딩될 수 있다. The virtual environment system 320 may mean a system in which a predetermined application (software) is virtualized by the software virtualization module 310, that is, a virtualized resource is stored. In the virtual environment system 320, all the resources required when the application is installed and executed may be virtualized and stored. In the present specification, a virtualized resource may be defined as a virtualized resource. The resources required when the application is run may include services, comms (including COM, DCOM), files, and / or registries, and depending on the type of application, only some of these resources may be needed when the application is run. It may be. As described above, the method for providing a software virtualization system 300 using a portable medium according to an exemplary embodiment of the present invention does not merely virtualize files and registries, but also virtualizes services and comms so that application execution in local and virtual environments is completely independent. Can be. For example, the same application can run independently in local and virtual environments. That is, they can be executed by different processes and loaded by a plurality of windows.

상기 가상화 자원 테이블(330)은 상기 가상 환경 시스템(320)에 포함되는 가상화 자원에 대한 정보를 포함한다. 상기 가상화 자원에 대한 정보는 적어도 상기 가상화 자원의 경로에 대한 정보를 포함할 수 있다. 또한, 상기 가상화 자원 테이블(330)은 소정의 자원이 가상화되어 있는지 여부를 나타낼 수 있는 소정의 필드를 더 포함할 수도 있다. 이러한 필드는 상기 가상화 자원 테이블(330)이 업데이트될때 이용될 수 있다. The virtual resource table 330 includes information on virtual resources included in the virtual environment system 320. The information on the virtual resource may include at least information on the path of the virtual resource. In addition, the virtual resource table 330 may further include a predetermined field that may indicate whether a predetermined resource is virtualized. This field may be used when the virtualization resource table 330 is updated.

상기 가상화 자원 테이블(330)은 논리적으로 테이블의 형태로 구현될 수 있음을 나타내는 것이지, 상기 가상화 자원 테이블(330)에 포함된 정보를 유지하기 위해 반드시 테이블 형태의 데이터 스트럭쳐를 이용하여야 하는 것을 의미하지는 않는다. 상기 가상화 자원 테이블(330)에 포함된 정보를 저장하기 위한 데이터 스트럭쳐는 구현 예에 따라 다양할 수 있음을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.The virtual resource table 330 may be logically implemented in the form of a table, but does not mean that a data structure in the form of a table must be used to maintain the information included in the virtual resource table 330. Do not. The average expert in the art of the present invention may easily deduce that the data structure for storing the information included in the virtualization resource table 330 may vary according to implementation.

도 3은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법으로 소프트웨어를 가상화하는 과정을 설명하기 위한 도면이다.3 is a view for explaining a process of virtualizing software in a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.

먼저, 도 3a를 참조하면, 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)에 포함된 상기 소프트웨어 가상화 모듈(310)이 실행되면, 도 3a에 도시된 바와 같은 소정의 UI인 콘솔(10)이 활성화될 수 있다. 또한, 상기 소프트웨어 가상화 모듈(310)이 실행되면, 상기 소프트웨어 가상화 모듈(310)은 상기 호스트(200)의 메모리에 로딩될 수 있다. 또한, 상기 소프트웨어 가상화 모듈(310)이 실행되면, 상기 가상 환경 시스템(320)이 생성된다. 초기에 상기 가상 환경 시스템(320)에는 아무런 가상 자원이 포함되지 않을 수도 있다.First, referring to FIG. 3A, when the software virtualization module 310 included in the software virtualization system 300 using the portable medium is executed, the console 10, which is a predetermined UI as illustrated in FIG. 3A, is activated. Can be. In addition, when the software virtualization module 310 is executed, the software virtualization module 310 may be loaded into the memory of the host 200. In addition, when the software virtualization module 310 is executed, the virtual environment system 320 is generated. Initially, the virtual environment system 320 may not include any virtual resources.

상기 가상 환경 시스템(320)이 생성되고, 도 3b에 도시된 바와 같이 소정의 애플리케이션 설치 파일이 선택되고, 선택된 설치파일을 실행함으로써 도3c에 도시된 바와 같이 상기 애플리케이션이 설치되기 시작한다. The virtual environment system 320 is generated, a predetermined application installation file is selected as shown in FIG. 3B, and the application starts to be installed as shown in FIG. 3C by executing the selected installation file.

상기 소프트웨어 가상화 모듈(310)에 의해 상기 애플리케이션이 가상화가 되지 않는다면, 상기 애플리케이션을 구성하는 객체(object)들 각각은 상기 호스트(200)의 로컬 환경상에 미리 설정된 디폴트 경로에 설치되거나, 사용자에 의해 지정된 지정 경로에 설치된다. 하지만, 상기 소프트웨어 가상화 모듈(310)에 의해 상기 애플리케이션을 구성하는 객체들은 상기 가상 환경 시스템(320)에 설치되게 된다.If the application is not virtualized by the software virtualization module 310, each of the objects constituting the application are installed in a default path set in advance on a local environment of the host 200 or designated by a user. Installed in the specified path. However, the objects configuring the application are installed in the virtual environment system 320 by the software virtualization module 310.

이때, 상기 소프트웨어 가상화 모듈(310)은 상기 다양한 호스트별 로컬 환경의 차이에 무관하게, 가상화된 상기 애플리케이션이 각각의 호스트에서 실행되도록 하기 위해 소정의 가상화 규칙에 맞도록 가상 환경을 설치할 수 있다.In this case, the software virtualization module 310 may install a virtual environment that meets a predetermined virtualization rule so that the virtualized application is executed on each host regardless of the difference in the local environment for each host.

상기 가상화 규칙은 다양한 호스트의 로컬 환경(예컨대, OS 환경, 사용자 가 정의한 환경 등)에서도 가상화된 소프트웨어가 실행될 수 있도록 하기 위한 소정의 표준화 규칙을 의미할 수 있다.The virtualization rule may mean a predetermined standardization rule for allowing virtualized software to be executed in local environments (eg, OS environments, user-defined environments, etc.) of various hosts.

예컨대, 상기 애플리케이션에 포함되는 객체들 각각은 자신이 상기 호스트(200)상에 설치되어야 할 경로로 설치되기 위해 로컬 API를 호출하게 되는데, 즉, 상기 소프트웨어 가상화 모듈(310)은 상기 애플리케이션의 가상화를 위해 상기 로컬 API를 후킹하여 상기 가상 환경 시스템(320)으로 리디렉션(redirection)하는 기능을 수행할 수 있다. 이러한 리디렉션은 가상화된 상기 애플리케이션이 호스트(200)에 대해 범용성을 갖도록 하기 위해 표준화될 필요가 있다. 또한, 이러한 리디렉션이 소정의 규칙에 의해 표준화됨으로써, 후술하는 바와 같이 로컬환경과 가상환경이 통합적 인터페이스로 사용자에게 제공될 수 있다.For example, each of the objects included in the application will call a local API to be installed in the path that should be installed on the host 200, that is, the software virtualization module 310 to virtualize the application. For example, the local API may be hooked to redirect the virtual API to the virtual environment system 320. This redirection needs to be standardized in order for the virtualized application to be universal to the host 200. In addition, this redirection is standardized by a predetermined rule, so that the local environment and the virtual environment can be provided to the user in an integrated interface as described below.

이처럼, 상기 소프트웨어 가상화 모듈(310)이 가상화된 애플리케이션의 호스트(200)에 대한 범용성 및 로컬환경과 가상환경의 통합적 인터페이스 제공을 위해 표준화 하는 규칙들 즉, 상기 가상화 규칙은 시스템 폴더 구조에 대한 표준화, 쉘 폴더 구조에 대한 표준화, 또는 환경변수에 대한 표준화 중 적어도 하나를 포함할 수 있다. 이러한 가상화 규칙에 대한 표준화 방법은 도 4 및 도 5에 도시될 수 있다.As such, the software virtualization module 310 standardizes rules for providing generality to the host 200 of the virtualized application and providing an integrated interface between the local environment and the virtual environment. It may include at least one of standardization of the shell folder structure or standardization of environment variables. The standardization method for such a virtualization rule may be illustrated in FIGS. 4 and 5.

도 4는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위해 가상화 시스템 폴더가 표준화되는 규칙을 설명하기 위한 도면이다. 또한, 도 5는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위해 쉘(shell) 폴더 및 환경변수가 표준화되는 규칙을 설명하기 위한 도면이다.FIG. 4 is a diagram illustrating a rule in which a virtualization system folder is standardized to implement a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention. In addition, FIG. 5 is a diagram illustrating a rule in which a shell folder and environment variables are standardized to implement a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.

먼저 도 4를 참조하면, 호스트(200)의 로컬 시스템은 로컬 시스템의 운영을 위해 미리 사용하기로 결정되어 있는 소정의 폴더 즉, 시스템 폴더를 포함하고 있다. 예컨대, 도 4a에 도시된 바와 같은 시스템 루트 폴더(C:\), 윈도즈 폴더(C:\WINDOWS\), 프로그램 파일 폴더(C:\Program Files\), 모든 유저 프로파일 폴더(\All User Profile\), 또는 유저 프로파일 폴더(\User Profile\) 등이 이러한 시스템 폴더에 해당할 수 있다. 이러한 시스템 폴더는 상기 애플리케이션을 구성하는 객체들이 원래 설치되어야 하거나 설치될 경우가 많은 폴더들일 수 있다. 또는 상기 객체들이 호출하거나 참조하는 자원들이 존재할 수 있는 폴더들일 수 있다.First, referring to FIG. 4, the local system of the host 200 includes a predetermined folder, that is, a system folder that is determined to be used in advance for the operation of the local system. For example, the system root folder (C: \), the Windows folder (C: \ WINDOWS \), the program file folder (C: \ Program Files \), and the all user profile folder as shown in FIG. 4A. ), Or a user profile folder (\ User Profile \) may correspond to such a system folder. Such a system folder may be folders in which objects constituting the application are originally installed or are often installed. Or may be folders in which resources that the objects call or reference may exist.

하지만, 이러한 시스템 폴더들은 호스트(200)별로 서로 다른 경로를 가질 수 있다. 예컨대, 도 4b에 도시된 바와 같이 다른 호스트에서는 이러한 시스템 폴더들이 다른 경로를 가지고 있을 수 있다. However, these system folders may have different paths for each host 200. For example, as shown in FIG. 4B, on other hosts, these system folders may have different paths.

따라서, 도 4a에 도시된 바와 같이 로컬 환경의 각각의 시스템 폴더들 각각은 가상환경에서는 표준화된 가상화 시스템 폴더들(예컨대, $#sd#, $#sr#, $#pf#, $#aup#, $#up#)로 매핑되게 된다. 이처럼 상기 소프트웨어 가상화 모듈(310)은 표준화된 가상화 시스템 폴더로 로컬 환경의 시스템 폴더를 매핑하므로, 서로 다른 시스템 폴더의 경로를 가지는 호스트들에서도 가상화된 애플리케이션의 실행이 가능해지게 된다. 이러한 매핑 규칙은 상기 소프트웨어 가상화 모듈(310)이 실행되면, 상기 호스트(200)의 로컬 환경을 참조하여 결정되게 된다. Thus, as shown in FIG. 4A, each of the system folders of the local environment is a standardized virtual system folder (eg, $ # sd #, $ # sr #, $ # pf #, $ # aup #) in the virtual environment. , $ # up #). As described above, the software virtualization module 310 maps the system folder of the local environment to the standardized virtual system folder, thereby enabling the execution of the virtualized application even on hosts having different system folder paths. This mapping rule is determined by referring to the local environment of the host 200 when the software virtualization module 310 is executed.

예컨대, 도 4a에 도시된 바와 같은 표준화 규칙에 의해 가상화된 애플리케이션이 상기 가상 환경 시스템(320)에 설치될 수 있다. 이 후, 포터블 매체(100)가 시스템 폴더의 경로가 도 4b에 도시된 바와 같이 설정된 호스트에 연결되고 상기 소프트웨어 가상화 모듈(310)이 실행되면, 상기 소프트웨어 가상화 모듈(310)은 상기 호스트의 로컬 환경을 참조하여 상기 매핑 규칙을 업데이트 함으로써, 로컬 API 호출을 후킹하여 원하는 가상화 자원에 접근하도록 제어할 수 있게 된다.For example, an application virtualized by the standardization rule as shown in FIG. 4A may be installed in the virtual environment system 320. Thereafter, when the portable medium 100 is connected to a host whose path of a system folder is set as shown in FIG. 4B and the software virtualization module 310 is executed, the software virtualization module 310 is configured to execute the local environment of the host. By updating the mapping rule with reference to, it is possible to control to access a desired virtual resource by hooking a local API call.

즉, 도 4a와 같은 매핑규칙을 가지는 환경에서는 표준화된 가상화 시스템 폴더는 C 드라이브의 경로를 갖는 시스템 폴더가 호출될 때 접근되며, 도 4b와 같은 환경에서는 D 드라이브의 경로를 갖는 시스템 폴더가 호출될 때 표준화된 가상화 시스템 폴더가 접근되게 된다.That is, in an environment having a mapping rule as shown in FIG. 4A, the standardized virtualization system folder is accessed when a system folder with a path of C drive is called. In an environment as shown in FIG. 4B, a system folder with a path of D drive is called. When the standardized virtualization system folder is accessed.

전술한 바와같은 매핑규칙은 상기 소프트웨어 가상화 모듈(310)에 저장될 수 있다.The mapping rule as described above may be stored in the software virtualization module 310.

또한, 이러한 시스템 폴더 간의 매핑 규칙에 의해 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템은 가상환경과 로컬환경의 통합적 인터페이스를 제공할 수 있게 되어 유저 레벨에서 시스템 환경의 추상화가 이루어 지게 되는데, 이에 대해서는 후술하도록 한다. In addition, the software virtualization system using the portable medium according to the embodiment of the present invention can provide an integrated interface between the virtual environment and the local environment by the mapping rule between the system folders, thereby abstracting the system environment at the user level. This will be described later.

도 5는 상기 호스트(200)의 쉘 폴더 또는 상기 호스트(200)의 환경변수들을 표준화함으로써 도 4에서 설명한 바와 같이 가상화된 애플리케이션이 호스트별 범용성을 갖도록 하는 경우를 나타낸다. 도 5a는 쉘 폴더(예컨대, 내문서 폴더(\내문서\), 바탕화면 폴더(\바탕화면\), 로컬 데이터 폴더(\local_data\), 로컬 에이피피 데이터 폴더(\local_app_data\)가 소정의 표준화 규칙(매핑 규칙)에 의해 표준화 되는 경우를 도시하고 있으며, 이러한 쉘 폴더들 역시 OS의 버전 등에 따라 차이가 날 수 있다. 이러한 쉘 폴더들이 달라지면 레지스트리 역시 달라질 수 있는데, 도 5a와 같이 가상환경에서는 이러한 쉘 폴더들을 표준화함으로써, 로컬 환경이 다른 호스트에서는 표준화 규칙을 재설정해 줌으로써 가상화된 애플리케이션의 범용성을 제공할 수 있다. 도 5b 역시 애플리케이션 객체들이 참조하는 환경변수가 로컬 환경에 따라 다를 수 있으므로, 이를 소정의 규칙에 의해 표준화함으로써 가상환경의 호스트에 대한 범용성을 제공할 수 있는 효과가 있다. 도 4 내지 도 5에서 설명한 표준화된 폴더 또는 변수의 이름은 구현 예에 따라 다양할 수 있음은 물론이다.FIG. 5 illustrates a case where the virtualized application has host-specific versatility as described with reference to FIG. 4 by standardizing a shell folder of the host 200 or environment variables of the host 200. 5A shows a shell folder (eg, My Documents folder (\ My Documents \), desktop folder (\ Desktop \), local data folder (\ local_data \), and local IP data folder (\ local_app_data \)). The case of standardization by the standardization rule (mapping rule) is shown, and these shell folders may also differ according to the OS version, etc. When these shell folders are changed, the registry may also be different. By standardizing these shell folders, it is possible to provide versatility for virtualized applications by resetting standardization rules on hosts with different local environments, as shown in Figure 5b, because the environment variables referenced by application objects may vary depending on the local environment. By standardizing according to a predetermined rule, there is an effect of providing versatility to a host of a virtual environment. The standardized folder or variable name described with reference to FIG. 5 may vary depending on implementation.

다시 도 3을 참조하면, 상기 소프트웨어 가상화 모듈(310)이 실행되는 경우, 전술한 바와 같은 가상화 규칙(표준화 규칙)이 로컬환경을 참조하여 새롭게 업데이트되거나 새롭게 설정될 수 있으며, 이러한 가상화 규칙에 의해 상기 애플리케이션은 상기 가상 환경 시스템(320)에 설치될 수 있다. 즉, 도 3d에 도시된 바와 같이 가상화된 자원(예컨대, 레지스트리, 파일, 서비스 또는 콤 등)이 상기 가상 환경 시스템(320)에 설치될 수 있다.Referring back to FIG. 3, when the software virtualization module 310 is executed, the above-described virtualization rule (standardization rule) may be newly updated or newly set with reference to the local environment. An application may be installed in the virtual environment system 320. That is, as illustrated in FIG. 3D, virtualized resources (eg, a registry, a file, a service, or a comm, etc.) may be installed in the virtual environment system 320.

한편, 도 3b에 도시된 바와 같이 사용자는 상기 콘솔(10)을 이용하여 설치할 애플리케이션을 선택하고, 선택된 애플리케이션을 설치할 경로를 지정할 수도 있다. 또는 상기 콘솔(10)을 이용하여 설치할 애플리케이션만 선택하면 상기 애플리케이션이 설치될 경로는 디폴트(default)로 결정될 수도 있다. 물론, 사용자가 선설치할 경로를 지정하는 경우에도, 상기 애플리케이션에 포함되는 객체별로는 미리 지정된 디폴트 경로가 있을 수도 있다. 상기 애플리케이션 또는 상기 애플리케이션의 객체가 설치될 경로가 디폴트로 결정되는 경우에는 당연히 호스트(200)의 로컬 환경에 설치될 경로가 설정되어 있을 수 있다. 따라서, 상기 소프트웨어 가상화 모듈(310)은 로컬 환경으로 설정된 설치 경로를 API 후킹을 통하여 리디렉션할 수 있다. Meanwhile, as illustrated in FIG. 3B, the user may select an application to install using the console 10 and designate a path to install the selected application. Alternatively, if only the application to be installed is selected using the console 10, the path where the application is to be installed may be determined as a default. Of course, even when the user designates a path to be preinstalled, there may be a predetermined default path for each object included in the application. When the path where the application or the object of the application is installed is determined as a default, the path to be installed in the local environment of the host 200 may be set. Therefore, the software virtualization module 310 may redirect the installation path set to the local environment through API hooking.

뿐만 아니라, 사용자가 로컬 환경으로 설치 경로를 지정한 경우에도, 상기 소프트웨어 가상화 모듈(310)은 설치 경로를 상기 가상 환경 시스템(320)으로 리디렉션할 수 있다. 이는 후술하는 바와 같이 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 로컬환경과 가상환경을 통합한 통합 UI(예컨대, 폴더 구조)를 제공할 수 있으므로, 애플리케이션이 자신이 설치되는 위치를 알지 못하게 할 뿐만 아니라, 사용자도 직접 로컬환경과 가상환경을 구분할 필요가 없도록 할 수 있다. In addition, even when the user designates the installation path to the local environment, the software virtualization module 310 may redirect the installation path to the virtual environment system 320. This is because the software virtualization system 300 using a portable medium according to an embodiment of the present invention as described below may provide an integrated UI (eg, a folder structure) integrating a local environment and a virtual environment, so that the application is installed by itself. Not only do they not know where they are, but they do not have to distinguish between local and virtual environments.

즉, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 실제로는 상기 포터블 매체(100)에 상기 애플리케이션이 가상환경으로 설치되더라도 사용자의 입장에서는 자신이 지정한 설치경로에 상기 애플리케이션이 설치된 것처럼 느끼도록 함으로써 유저레벨에서는 시스템의 구조를 추상화하도록 하는 효과를 제공할 수 있다.That is, in the software virtualization system 300 using the portable medium according to an embodiment of the present invention, even though the application is actually installed in the portable medium 100 as a virtual environment, the application is installed in the installation path designated by the user. By making it feel like it is installed, the user level can provide the effect of abstracting the structure of the system.

또한, 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 사용자가 설치 경로를 지정하도록 소정의 UI를 제공할때, 도 6에서 후술하는 바와 같은 통합 폴더 구조를 제공할 수도 있다. 따라서, 사용자가 지정하는 설치 경로는 통합 폴더 구조에 기초하여 지정될 수도 있다.In addition, the software virtualization system 300 using the portable medium may provide an integrated folder structure as described below in FIG. 6 when the user provides a predetermined UI to designate an installation path. Therefore, the installation path specified by the user may be specified based on the integrated folder structure.

도 6은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법에 의해 로컬 환경과 가상 환경이 통합적 인터페이스로 제공되는 것을 설명하기 위한 도면이다.FIG. 6 is a view for explaining that a local environment and a virtual environment are provided as an integrated interface by a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.

도 6을 참조하면, 도 6a는 로컬 환경의 폴더 구조를 나타내는 인터페이스를 도시하고 있다. 도 6a와 같은 폴더 구조를 갖는 로컬 환경에서 소정의 애플리케이션이 설치되는 경우, 상기 애플리케이션은 상기 소프트웨어 가상화 모듈(310)에 의해 가상 환경 시스템(320)에 가상화되어 설치된다. 따라서, 상기 로컬 환경의 폴더구조는 아무런 변화가 없을 수 있다.Referring to FIG. 6, FIG. 6A illustrates an interface representing a folder structure of a local environment. When a predetermined application is installed in a local environment having a folder structure as shown in FIG. 6A, the application is virtualized and installed in the virtual environment system 320 by the software virtualization module 310. Therefore, the folder structure of the local environment may not change at all.

상기 애플리케이션이 가상화되어 설치되면, 상기 가상 환경 시스템(320)은 도 6b에 도시된 바와 같은 폴더 구조를 갖게 될 수 있다. 도 6b를 참조하면, 전술한 바와 같이 로컬 환경의 시스템 폴더에 대응되는 폴더들이 소정의 규칙으로 표준화 되어 있음을 알 수 있다. 즉, 도 6a는 호스트(200)의 로컬 환경의 폴더 구조를 나타내며 도 6b는 가상환경의 폴더 구조를 나타내는데, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 상기 로컬 환경의 폴더 구조(도 6a에 도시된 구조)와 상기 가상 환경의 폴더구조(도 6b에 도시된 구조)를 통합하여 통합 폴더 구조를 생성할 수 있다. 생성된 통합 폴더 구조는 도 6c에 도시된다.When the application is virtualized and installed, the virtual environment system 320 may have a folder structure as shown in FIG. 6B. Referring to FIG. 6B, as described above, it can be seen that folders corresponding to system folders of a local environment are standardized by a predetermined rule. That is, FIG. 6A illustrates the folder structure of the local environment of the host 200 and FIG. 6B illustrates the folder structure of the virtual environment. The integrated folder structure can be created by integrating the folder structure (structure shown in FIG. 6A) and the folder structure (structure shown in FIG. 6B) of the virtual environment. The created unified folder structure is shown in FIG. 6C.

도 6c를 참조하면, 로컬 환경의 시스템 폴더(C:\Program Files\)와 상기 시스템 폴더(C:\Program Files\)에 대응되는 가상 환경의 표준화된 시스템 폴더($#pf#)가 하나의 폴더구조로 통합되어 있음을 알 수 있다. 즉, 통합 폴더 구조에서는 통합되는 두 개의 폴더(도 6a의 (C:\Program Files\) 및 도 6b의 ($#pf#)) 각각의 자(child) 폴더들은 통합된 폴더(도 6c의 (\Program Files\))의 자 폴더로 생성되게 된다. 이처럼 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 가상환경과 로컬환경을 통합 또는 더블 레이어링(double layering)함으로써, 사용자에게 가상환경과 로컬환경이 구분할 필요가 없는 추상화된 시스템을 제공할 수 있게 되는 효과가 있다.Referring to FIG. 6C, a system folder (C: \ Program Files \) of a local environment and a standardized system folder ($ # pf #) of a virtual environment corresponding to the system folder (C: \ Program Files \) are one. You can see that it is integrated into a folder structure. That is, in the consolidated folder structure, the child folders of each of the two folders to be merged ((C: \ Program Files \) in FIG. 6A and ($ # pf #) in FIG. 6B) are combined folders (( \ Program Files \)) will be created as a ruler folder. As described above, the software virtualization system 300 using the portable medium according to the embodiment of the present invention integrates or double-layers the virtual environment and the local environment, so that the user does not need to distinguish between the virtual environment and the local environment. There is an effect that can be provided.

또한, 도 6에 도시된 바와 같은 폴더 구조를 나타내는 UI 외에도 구현 예에 따라 로컬 환경의 파일 및 폴더를 나타낼 수 있는 다양한 형태의 UI가 존재할 수 있으며, 이때에도 그 형태의 UI에 상응하도록 통합 UI가 생성될 수 있다.In addition to the UI showing the folder structure as shown in FIG. 6, there may be various types of UIs that may represent files and folders in a local environment according to an implementation example. In this case, the integrated UI may correspond to the UI of the type. Can be generated.

또한, 사용자는 도 6c에 도시된 바와 같은 통합 UI(폴더 구조)를 이용하여 호스트에 자원(예컨대, 파일 및 폴더 등)을 요청할 수 있는데, 이때에도 상기 소프트웨어 가상화 모듈(310)은 요청된 자원이 가상화 자원인지를 판단하고, 판단결과에 따라 가상환경(예컨대, 도 6b의 환경)내의 자원을 리턴하거나, 로컬 환경(예컨대, 도 6a의 환경)내의 자원을 리턴할 수 있다.In addition, the user may request resources (eg, files and folders, etc.) from the host by using the integrated UI (folder structure) as shown in FIG. 6C. It may be determined whether the resource is a virtual resource, and according to the determination result, the resource in the virtual environment (eg, the environment of FIG. 6B) may be returned, or the resource in the local environment (eg, the environment of FIG. 6A) may be returned.

한편, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 VDT(330)를 더 포함할 수 있는데, 상기 VDT(330)는 포터블 매체(100)에 구비되는 가상환경 내에 설치된 가상화 자원들에 대한 목록이 항상 유지되도록 할 수 있다. 따라서 이러한 목록을 참고하는 것만으로 가상화된 소프트웨어의 실행이 용이하게 수행될 수 있고, 로컬환경과 가상환경의 통합적 인터페이스가 제공되는 경우에도 가상환경의 리소스에 먼저 접근할 수 있게 되는 효과가 있다.On the other hand, the software virtualization system 300 using a portable medium according to an embodiment of the present invention may further include a VDT 330, the VDT 330 is a virtualization installed in a virtual environment provided in the portable medium 100 You can ensure that lists of resources are always maintained. Therefore, the virtualized software can be easily executed only by referring to this list, and even when the integrated interface between the local environment and the virtual environment is provided, the resources of the virtual environment can be accessed first.

도 7은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법을 구현하기 위한 가상화 자원 테이블을 개략적으로 나타내는 도면이다.7 is a diagram schematically illustrating a virtualization resource table for implementing a method for providing a software virtualization system using a portable medium according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 가상 환경 시스템(320) 내에 가상화된 가상화 자원(예컨대, 파일, 콤, 서비스, 또는 레지스트리 중 적어도 하나)에 대한 목록을 유지할 수 있는데, 이러한 목록은 가상화 자원 테이블(330) 즉, VDT(Virtual Object Discriptor Table)에 의해 유지될 수 있다. 이처럼 가상화 자원에 대한 목록을 유지함으로써, 가상화된 애플리케이션이 실행될 때 로컬 API가 호출하는 자원이 가상화된 자원인지 아닌지 여부를 효율적으로 판단할 수 있다. 또한, 이러한 VDT를 유지함으로써, 도 6에서 설명한 바와 같이 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)은 로컬 환경과 가상 환경이 통합되어 추상화된 시스템을 제공할 수 있는데, 이러한 추상화된 시스템에서 사용자가 실행하고자 하는 애플리케이션이 가상화된 애플리케이션인지 아닌지를 모르는 상태에서도 요청된 애플리케이션이 가상화된 애플리케이션인 경우에는 상기 가상 환경 시스템(320)에 설치된 가상화 자원에 먼저 접근하게 할 수 있다. Referring to FIG. 7, a software virtualization system 300 using a portable medium according to an embodiment of the present invention may include virtualized resources (eg, at least one of a file, a comb, a service, or a registry) virtualized in the virtual environment system 320. The list may be maintained by the virtualization resource table 330, that is, the virtual object descriptor table (VDT). By maintaining a list of virtualized resources in this way, it is possible to efficiently determine whether the resources that the local API calls when the virtualized application runs are virtualized resources. In addition, by maintaining the VDT, as described in FIG. 6, the software virtualization system 300 using the portable medium according to the embodiment of the present invention may provide a system in which a local environment and a virtual environment are integrated and abstracted. If the requested application is a virtualized application even without knowing whether or not an application to be executed by the user in the abstracted system is a virtualized application, the virtual resource installed in the virtual environment system 320 may be accessed first.

상기 VDT는 상기 소프트웨어 가상화 모듈(310)에 의해 업데이트(update) 될 수 있으며, 도 3에서 설명한 바와 같이 애플리케이션이 가상화될 때 업데이트 될 수 있다. 또한, 가상화된 애플리케이션을 사용하여 새롭게 생성되는 생성 데이터는 상기 호스트(200)에 영향을 미치지 않기 위해 가상화 될 수 있는데, 이러한 생성 데이터가 가상화되는 경우에도 상기 VDT는 업데이트 될 수 있다.The VDT may be updated by the software virtualization module 310, and may be updated when the application is virtualized as described in FIG. 3. In addition, the generated data newly generated using the virtualized application may be virtualized so as not to affect the host 200. Even when the generated data is virtualized, the VDT may be updated.

상기 VDT는 도 7에 도시된 바와 같이 가상 환경에 설치된 가상화 자원의 경로에 대한 정보를 포함할 수 있다. 또한, 상기 VDT에 포함된 자원이 가상화되었는지 여부에 대한 정보가 더 포함될 수도 있다. 이러한 가상화 여부에 대한 정보는 상기 가상 환경 시스템(320)에 새롭게 설치될 자원 또는 객체가 상기 VDT에 미리 기록되는 경우에 사용되거나, 필요에 따라 상기 가상 환경 시스템(320)에 상기 애애플리케이션을 구성하는 객체에 상응하는 가상화 자원이 아닌 다른 자원 또는 객체가 포함될 필요가 있는 경우, 상기 가상화 자원이 아닌 다른 자원 또는 객체를 구분하기 위해 사용될 수 있다. 예컨대, 애플리케이션을 구성하는 모든 객체 또는 자원이 먼저 VDT에 기록될 수 있다. 이때에는 아직 가상화가 되지 않은 자원이므로 가상화가 되지 않은 자원으로 표시될 수 있다. 그 후 VDT에 기록된 객체 또는 자원 중 상기 가상 환경 시스템(320)에 write되는 API가 호출된 후에는 가상화된 자원으로 표시될 수 있다.As illustrated in FIG. 7, the VDT may include information on a path of a virtual resource installed in a virtual environment. In addition, information on whether a resource included in the VDT is virtualized may be further included. Information about whether or not such virtualization is used when a resource or an object to be newly installed in the virtual environment system 320 is previously recorded in the VDT, or when the application is configured in the virtual environment system 320 as necessary. When a resource or object other than the virtualization resource corresponding to the object needs to be included, it may be used to distinguish other resources or objects other than the virtualization resource. For example, all the objects or resources that make up the application may first be written to the VDT. In this case, since the resource is not yet virtualized, it may be represented as a resource that is not virtualized. Thereafter, after the API to be written to the virtual environment system 320 among the objects or resources recorded in the VDT is called, it may be displayed as a virtualized resource.

상기 소프트웨어 가상화 모듈(310)은 VDT를 참고하여 요청된 자원이 가상화 자원인 경우에는 가상화 자원을 리턴하고, 그렇지 않은 경우에는 로컬 자원을 리턴하게 된다. 가상화 자원 또는 로컬 자원을 리턴한다고 함은, 호출된 요청에 상응하는 자원의 접근을 허락하거나, 접근경로를 호출한 프로세스에 전달하는 것을 의미할 수 있다.The software virtualization module 310 returns a virtualized resource if the requested resource is a virtualized resource with reference to the VDT, and returns a local resource if not. Returning a virtualized resource or a local resource may mean granting access to a resource corresponding to the called request or passing the access path to the calling process.

예컨대, 상기 소프트웨어 가상화 모듈(310)이 실행되어 가상 환경이 생성 및/또는 실행된 후, 사용자에 의해 소정의 애플리케이션이 실행이 요청될 수 있다. 예컨대, 상기 애플리케이션이 실행되기 위해 호출된 경로가 C:\Program Files\a.exe라고 가정할 수 있다. 그러면 상기 소프트웨어 가상화 모듈(310)은 호출된 자원(C:\Program Files\a.exe)이 가상화 자원인지 여부를 상기 VDT를 참조하여 판단할 수 있다. 이때 상기 VDT는 전술한 바와 같은 가상화 규칙에 의해 표준화된 경로를 가질 수 있다. 예컨대, 상기 경로(C:\Program Files\a.exe)가 표준화된 가상환경의 경로는 $#pf#a.exe일 수 있다. 상기 표준화된 경로($#pf#a.exe)는 상기 VDT에 포함되어 있으므로, 상기 소프트웨어 가상화 모듈(310)은 상기 표준화된 경로($#pf#a.exe)에 존재하는 자원 즉, 상기 가상 환경 시스템(320)에 가상화된 자원에 접근하게 된다. 만약 표준화된 경로가 상기 VDT에 포함되어 있지 않은 자원인 경우에는 상기 로컬 환경에 상기 경로(C:\Program Files\a.exe)로 접근을 하게 된다. 이러한 VDT를 이용한 자원의 접근제어는 소정의 애플리케이션이 실행될 때 뿐만 아니라, 소정의 애플리케이션이 실행되는 중에 요청되는 자원에 대해서도 동일하게 적용될 수 있다.For example, after the software virtualization module 310 is executed to create and / or execute a virtual environment, a predetermined application may be requested to be executed by a user. For example, it may be assumed that a path called to execute the application is C: \ Program Files \ a.exe. Then, the software virtualization module 310 may determine whether the called resource (C: \ Program Files \ a.exe) is a virtualized resource with reference to the VDT. In this case, the VDT may have a path standardized by the virtualization rule as described above. For example, the path of the virtual environment in which the path (C: \ Program Files \ a.exe) is standardized may be $ # pf # a.exe. Since the standardized path ($ # pf # a.exe) is included in the VDT, the software virtualization module 310 is a resource existing in the standardized path ($ # pf # a.exe), that is, the virtual. Access to resources virtualized in the environment system 320. If the standardized path is a resource not included in the VDT, the local environment is accessed as the path (C: \ Program Files \ a.exe). The access control of resources using the VDT can be equally applied to resources requested while a predetermined application is executed as well as when a predetermined application is executed.

또한, 상기 애플리케이션의 소정의 객체가 설치되는 경로가 상기 가상 환경 시스템(320)으로 리디렉션될 때, 상기 소프트웨어 가상화 모듈(310)은 상기 VDT에 상기 소정의 객체가 포함되어 있는지를 판단하고, 판단결과 상기 소정의 객체가 포함되어 있지 않은 경우 즉, 가상화 되어 있지 않은 경우에만 상기 소정의 객체를 상기 가상 환경 시스템(320)으로 설치할 수 있다. 물론, 동일한 가상환경 경로에 다시 설치할 수도 있으며, 이때에는 종래의 가상화 자원이 새로운 가상화 자원으로 대체될 수도 잇다.In addition, when the path in which the predetermined object of the application is installed is redirected to the virtual environment system 320, the software virtualization module 310 determines whether the predetermined object is included in the VDT, and determines the result. The predetermined object may be installed in the virtual environment system 320 only when the predetermined object is not included, that is, when the predetermined object is not virtualized. Of course, it can also be reinstalled in the same virtual environment path, in which case the conventional virtualization resources may be replaced by new virtualization resources.

도 8은 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법에 의해 가상화된 소프트웨어가 실행되는 방법을 설명하기 위한 도면이다.8 is a diagram illustrating a method of executing virtualized software by a method of providing a software virtualization system using a portable medium according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템(300)에 포함되는 소프트웨어 가상화 모듈(310)이 실행되면, 상기 소프트웨어 가상화 모듈(310)은 상기 호스트(200)의 메모리상에 로딩될 수 있다(S100). 상기 소프트웨어 가상화 모듈(310)이 로딩된 후 소정의 프로세스가 상기 메모리상에 로딩될 수 있다(S110). 그러면, 상기 소프트웨어 가상화 모듈(310)은 상기 프로세스로부터 상기 호스트(200)의 로컬환경으로 출력되는 API를 모니터링할 수 있다. Referring to FIG. 8, when the software virtualization module 310 included in the software virtualization system 300 using the portable medium is executed, the software virtualization module 310 may be connected to the host 200. Can be loaded on the memory (S100). After the software virtualization module 310 is loaded, a predetermined process may be loaded onto the memory (S110). Then, the software virtualization module 310 may monitor the API output from the process to the local environment of the host 200.

이를 위해 상기 소프트웨어 가상화 모듈(310)은 상기 프로세스가 소정의 로컬 API를 출력하면(S120), 상기 로컬 API를 후킹(hooking)할 수 있다(S130). 그러면, 상기 소프트웨어 가상화 모듈(310)은 후킹한 정보에 기초하여 상기 로컬 API가 가상화 자원에 대한 요청인지 아닌지를 판단할 수 있다. 이는 전술한 바와 같이 VDT를 참조하여 이루어질 수 있다. 또한, 상술한 바와 같은 가상화 규칙에 기초하여 상기 VDT를 참조할 수 있다. 참조결과 가상자원에 대한 접근이라고 판단한 경우, 즉 요청된 자원이 가상화된 경우에는 가상자원을 리턴하게 되고, 그러면 상기 프로세스는 가상 자원에 접근할 수 있다(S140). 만약 요청된 자원이 가상화 자원이 아닌 경우에는 로컬 자원을 리턴하게 되며, 이는 원래 요청된 로컬 API의 요청이 처리되어 상기 프로세스가 로컬 자원에 접근할 수 있다(S140-1).To this end, if the process outputs a predetermined local API (S120), the software virtualization module 310 may hook the local API (S130). Then, the software virtualization module 310 may determine whether the local API is a request for a virtualization resource based on the hooked information. This can be done with reference to the VDT as described above. In addition, the VDT may be referred to based on the virtualization rule as described above. If it is determined that the reference result is access to the virtual resource, that is, if the requested resource is virtualized, the virtual resource is returned. Then, the process may access the virtual resource (S140). If the requested resource is not a virtualized resource, the local resource is returned, which is a request of the originally requested local API so that the process can access the local resource (S140-1).

도 9는 본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법으로 가상화된 소프트웨어가 실행되는 과정을 설명하기 위한 도면이다.FIG. 9 is a diagram illustrating a process of executing virtualized software in a method of providing a software virtualization system using a portable medium according to an embodiment of the present invention.

먼저, 도 9a를 참조하면, 애플리케이션이 가상화된 후, 상기 호스트(200) 또는 별도의 호스트에서 상기 소프트웨어 가상화 모듈(310)이 실행된다. 그러면 가상환경이 실행되며, 콘솔이 디스플레이된다. First, referring to FIG. 9A, after an application is virtualized, the software virtualization module 310 is executed on the host 200 or a separate host. This will launch the virtual environment and display the console.

사용자는 디스플레이된 콘솔을 이용하여 도 9b에 도시된 바와 같이 소정의 애플리케이션을 선택할 수 있다. 상기 도 9b에 도시된 풀 다운(pull-down) 메뉴는 가상환경에 설치된 애플리케이션만을 포함하도록 설정될 수 있다. 또는 도 6에서 설명한 바와 같이 로컬 환경과 가상환경에 설치된 애플리케이션이 통합적으로 디스플레이될 수도 있다. The user can select a given application using the displayed console as shown in FIG. 9B. The pull-down menu illustrated in FIG. 9B may be set to include only applications installed in a virtual environment. Alternatively, as described with reference to FIG. 6, an application installed in a local environment and a virtual environment may be integratedly displayed.

디스플레이된 애플리케이션 중 어느 하나가 선택되면, 선택된 애플리케이션이 가상화 되었는지를 판한하고, 판단 결과에 따라 상기 가상 환경 시스템(320)에 설치된 가상화 자원 또는 로컬 자원이 리턴될 수 있다.When one of the displayed applications is selected, it is determined whether the selected application is virtualized, and a virtual resource or a local resource installed in the virtual environment system 320 may be returned according to the determination result.

그 결과 도 9c에서와 같이 선택된 애플리케이션이 설치될 수 있다.As a result, the selected application may be installed as shown in FIG. 9C.

본 발명의 실시 예에 따른 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The method for providing a software virtualization system using a portable medium according to an embodiment of the present invention may be embodied as computer readable codes on a computer readable recording medium. Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, hard disk, floppy disk, optical data storage, and the like, and also in the form of carrier waves (e.g., transmission over the Internet). It also includes implementations. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. And functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

Claims (23)

호스트에 의해 실행되고 있는 소프트웨어 가상화 시스템이 소정의 애플리케이션의 실행 요청을 수신하는 단계;
수신된 상기 실행 요청이 가상화된 자원에 대한 요청인지를 판단하는 단계; 및
판단결과 상기 실행 요청이 가상화된 자원에 대한 요청인 경우 상기 소프트웨어 가상화 시스템은 상기 실행 요청에 응답하여 호스트에 연결된 포터블 매체에 설치되어 있는 가상 환경의 가상화 자원을 리턴하고, 판단결과 상기 실행 요청이 가상화된 자원에 대한 요청이 아닌 경우 호스트에 존재하는 로컬 자원을 리턴하는 단계를 포함하며,
상기 소프트웨어 가상화 시스템은,
상기 호스트의 시스템 폴더 구조가 소정의 가상화 규칙에 따라 표준화된 가상화 시스템 폴더 구조로 매핑하며, 상기 가상화 자원 중 적어도 일부는 매핑된 상기 가상화 시스템 폴더 구조에 따라 상기 포터블 매체에 설치된 것을 특징으로 하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
Receiving, by the software virtualization system running by the host, a request to execute a predetermined application;
Determining whether the received execution request is for a virtualized resource; And
In response to the execution request being a request for a virtualized resource, the software virtualization system returns a virtualization resource of a virtual environment installed in a portable medium connected to a host in response to the execution request. Returning a local resource that exists on the host if it is not a request for a scheduled resource,
The software virtualization system,
And a system folder structure of the host is mapped to a standardized virtual system folder structure according to a predetermined virtualization rule, and at least some of the virtualization resources are installed in the portable medium according to the mapped virtual system folder structure. Software virtualization system providing method using.
삭제delete 제 1항에 있어서, 상기 소프트웨어 가상화 시스템은,
상기 호스트의 시스템 폴더 구조와 상기 가상화 시스템 폴더 구조를 통합한 통합 폴더 구조를 제공하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 1, wherein the software virtualization system,
A method for providing a software virtualization system using a portable medium providing an integrated folder structure integrating the host system folder structure and the virtualization system folder structure.
제 1항에 있어서, 상기 소프트웨어 가상화 시스템은,
상기 호스트의 쉘(shell) 폴더를 소정의 규칙에 의해 표준화된 가상화 쉘 폴더로 생성하고, 상기 가상화 자원 중 적어도 일부는 생성된 가상화 쉘 폴더에 따라 상기 포터블 매체에 설치된 것을 특징으로 하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 1, wherein the software virtualization system,
The shell folder of the host is generated as a virtualized shell folder standardized by a predetermined rule, and at least some of the virtualized resources are installed in the portable medium according to the generated virtualized shell folder. How to provide software virtualization system.
제 1항에 있어서, 상기 소프트웨어 가상화 시스템은,
상기 호스트의 환경변수가 소정의 규칙에 의해 표준화된 가상화 환경변수를 생성하고, 상기 가상화 자원 중 적어도 일부는 생성된 가상화 환경변수에 따라 상기 포터블 매체에 설치된 것을 특징으로 하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 1, wherein the software virtualization system,
Software virtual system using a portable medium, characterized in that the environment variable of the host generates a virtualized environment variable standardized by a predetermined rule, at least some of the virtualization resources are installed in the portable medium according to the generated virtual environment environment variable How to Provide.
제 1항에 있어서, 수신된 상기 실행 요청이 상기 가상화된 자원에 대한 요청인지를 판단하는 단계는,
상기 포터블 매체에 설치되어 있는 가상화 자원에 대한 정보를 포함하는 소정의 가상화 자원 테이블에 기초하여 판단하는 것을 특징으로 하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 1, wherein determining whether the received execution request is a request for the virtualized resource comprises:
And determining based on a predetermined virtual resource table including information on virtual resources installed in the portable medium.
제 6항에 있어서, 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은,
상기 가상화 자원의 작업결과 생성되는 생성 데이터가 상기 가상화 자원 테이블에 포함되는지를 판단하는 단계; 및
판단 결과 상기 가상화 자원 테이블에 포함되지 않은 경우, 상기 가상화 자원 테이블을 상기 데이터가 포함되도록 업데이트 하는 단계를 더 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 6, wherein the software virtualization system providing method using the portable medium comprises:
Determining whether the generated data generated as a result of the operation of the virtual resource is included in the virtual resource table; And
If the determination result is not included in the virtual resource table, updating the virtual resource table to include the data further comprises providing a software virtualization system using a portable medium.
제 7항에 있어서, 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은,
상기 생성 데이터가 상기 포터블 매체에 가상화되어 설치되는 단계를 더 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 7, wherein the software virtualization system providing method using the portable medium,
And generating the virtualized data on the portable medium and installing the generated data.
제 1항에 있어서, 상기 가상화 자원은,
상기 애플리케이션에 상응하는 가상화된 서비스, 컴(COM), 파일, 또는 레지스트리 중 적어도 하나인 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 1, wherein the virtualization resources,
A method of providing a software virtualization system using a portable medium, which is at least one of a virtualized service, a COM, a file, and a registry corresponding to the application.
제 1항에 있어서, 상기 소프트웨어 가상화 시스템이 애플리케이션으로부터 실행 요청을 수신하는 단계는,
상기 애플리케이션으로부터 상기 호스트로 출력된 상기 실행 요청을 상기 소프트웨어 가상화 시스템이 API 후킹하는 단계를 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 1, wherein the software virtualization system receives an execution request from an application.
And the software virtualization system API hooking the execution request outputted from the application to the host.
포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법에 있어서,
호스트와 포터블 매체가 연결된 상태에서 소프트웨어 가상화 모듈이 상기 호스트로 로딩되는 단계; 및
상기 호스트에 설치된 로컬 환경과 상기 포터블 매체에 설치된 가상 환경이 통합된 통합 UI 구조가 생성되는 단계; 및
생성된 상기 통합 UI 구조가 상기 호스트에 의해 디스플레이되는 단계를 포함하며,
상기 통합 UI 구조는,
상기 로컬 환경의 소정의 제1폴더와 소정의 가상화 규칙에 따라 상기 제1폴더에 대응되는 상기 가상 환경의 제2폴더를 하나의 폴더로 통합하여 표시하는 것을 특징으로 하고,
상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은,
디스플레이된 상기 통합 UI 구조에 의해 사용자로부터 소정의 자원이 요청되는 단계;
요청된 자원이 가상화된 자원인지 판단하는 단계; 및
판단결과 가상화된 자원인 경우 상기 포터블 매체에 설치된 가상환경 내의 가상화 자원이 리턴되고, 판단결과 가상화된 자원이 아닌 경우 상기 로컬 환경 내의 로컬 자원이 리턴되는 단계를 더 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
In the software virtualization system providing method using a portable medium,
Loading a software virtualization module into the host while the host and the portable medium are connected; And
Generating an integrated UI structure in which a local environment installed in the host and a virtual environment installed in the portable medium are integrated; And
The generated integrated UI structure is displayed by the host,
The integrated UI structure is
The first folder of the local environment and the second folder of the virtual environment corresponding to the first folder in accordance with a predetermined virtualization rule is integrated into one folder, and displayed.
The software virtualization system providing method using the portable medium,
Requesting a predetermined resource from a user by the displayed integrated UI structure;
Determining whether the requested resource is a virtualized resource; And
In the case of the virtualized resource, the virtualization resource in the virtual environment installed in the portable medium is returned. When the determination is not the virtualized resource, the local resource in the local environment is returned. How to Provide.
삭제delete 소프트웨어 가상화 모듈이 실행되는 단계;
가상화될 애플리케이션이 선택되는 단계; 및
선택된 애플리케이션에 상응하는 가상화될 자원이 소정의 가상화 규칙에 따라 포터블 매체에서 가상 환경으로 설치되는 단계를 포함하며,
상기 소정의 가상화 규칙은,
상기 호스트에 설치된 로컬 환경이 표준화되도록 설정되기 위한 시스템 폴더 구조에 대한 규칙, 쉘(shell) 폴더에 대한 규칙, 또는 환경변수에 대한 규칙 중 적어도 하나를 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
Executing the software virtualization module;
Selecting an application to be virtualized; And
Resources to be virtualized corresponding to the selected application are installed from the portable medium into the virtual environment according to a predetermined virtualization rule,
The predetermined virtualization rule,
And a rule for a system folder structure, a rule for a shell folder, or a rule for an environment variable to set a local environment installed on the host to be standardized.
삭제delete 제 13항에 있어서, 상기 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법은,
상기 호스트의 시스템 폴더 구조와 상기 포터블 매체에 설치된 가상 환경의 시스템 폴더 구조를 통합한 통합 폴더 구조를 제공하는 단계를 더 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 13, wherein the software virtualization system providing method using the portable medium comprises:
And providing an integrated folder structure integrating the system folder structure of the host and the system folder structure of the virtual environment installed in the portable medium.
제 13항에 있어서, 상기 선택된 애플리케이션이 상기 포터블 매체에서 가상환경으로 설치되는 단계는,
사용자로부터 상기 애플리케이션이 설치될 지정 경로를 수신하거나 또는 디폴트(default)로 설치될 디폴트 경로가 로컬환경에 상응하는 경로인 경우에도, 상기 가상 환경 경로에 상기 선택된 애플리케이션이 설치되는 것을 특징으로 하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 13, wherein the installing of the selected application to the virtual environment from the portable medium comprises:
The portable medium, wherein the selected application is installed in the virtual environment path even if the user receives a designated path from which the application is to be installed or the default path to be installed as a default corresponds to a local environment. Software virtualization system providing method using.
제 16항에 있어서, 상기 선택된 애플리케이션이 상기 포터블 매체에서 가상환경으로 설치되는 단계는,
상기 지정 경로 또는 상기 디폴트 경로로 상기 애플리케이션이 설치되기 위한 API 함수를 후킹하여 상기 가상 환경 경로로 리디렉션 하는 단계를 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 16, wherein the selected application is installed as a virtual environment on the portable medium.
And hooking an API function for installing the application in the designated path or the default path and redirecting the API function to the virtual environment path.
제 13항에 있어서, 상기 선택된 애플리케이션이 상기 포터블 매체에서 가상환경으로 설치되는 단계는,
상기 포터블 매체에 설치되어 있는 가상화 자원에 대한 정보를 포함하는 가상화 자원 테이블을 참조하여 상기 선택된 애플리케이션이 설치되는 단계를 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 13, wherein the installing of the selected application to the virtual environment from the portable medium comprises:
And installing the selected application by referring to a virtualization resource table including information on virtualization resources installed in the portable medium.
제 18항에 있어서, 상기 가상화 자원 테이블을 참조하여 상기 선택된 애플리케이션이 설치되는 단계는,
상기 가상화될 자원에 대한 정보가 상기 가상화 자원 테이블에 포함되는지를 판단하는 단계; 및
판단결과 포함되지 않은 경우, 상기 가상화될 자원을 상기 포터블 매체에 설치하고 상기 가상화 자원 테이블에 상기 가상화될 자원에 대한 정보를 포함시키는 단계를 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 18, wherein the installing of the selected application with reference to the virtualization resource table comprises:
Determining whether information about the resource to be virtualized is included in the virtualized resource table; And
If not determined, the method of providing a software virtualization system using a portable medium comprising the step of installing the resource to be virtualized in the portable medium and including information on the resource to be virtualized in the virtual resource table.
제 13항에 있어서, 상기 가상화될 자원은,
상기 애플리케이션에 상응하는 서비스, 컴(COM), 파일, 또는 레지스트리 중 적어도 하나를 포함하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
The method of claim 13, wherein the resource to be virtualized,
A method for providing a software virtualization system using a portable medium including at least one of a service, a COM, a file, and a registry corresponding to the application.
삭제delete 호스트의 시스템 폴더 구조와 상기 호스트와 연결된 포터블 매체에 설치된 가상 환경의 시스템 폴더 구조가 통합된 통합 폴더 구조로 제공되는 단계; 및
제공되는 상기 통합 폴더 구조에 기초하여 사용자로부터 가상화될 애플리케이션이 설치될 경로를 지정받은 지정경로 또는 디폴트로 설치될 디폴트 경로가 특정되는 단계; 및
상기 지정 경로 또는 상기 디폴트 경로가 상기 호스트의 로컬환경에 상응하는 경로인 경우, 상기 선택된 애플리케이션은 상기 지정 경로 또는 상기 디폴트 경로가 소정의 매핑규칙에 의해 매핑된 가상 환경 경로에 가상화되어 설치되는 단계를 포함하며,
상기 통합 폴더 구조는,
상기 호스트의 시스템의 소정의 제1폴더와 소정의 가상화 규칙에 따라 상기 제1폴더에 대응되는 상기 가상 환경의 제2폴더를 하나의 폴더로 통합하여 표시하는 구조인 것을 특징으로 하는 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법.
Providing a consolidated folder structure in which a system folder structure of a host and a system folder structure of a virtual environment installed in a portable medium connected to the host are integrated; And
Specifying a designated path in which a path to install an application to be virtualized is installed from a user or a default path to be installed by default based on the integrated folder structure provided; And
If the designated path or the default path is a path corresponding to the local environment of the host, the selected application may be installed by virtualizing the designated path or the default path in a virtual environment path mapped by a predetermined mapping rule. Include,
The integrated folder structure is
Using a portable medium, characterized in that the first folder and the second folder of the virtual environment corresponding to the first folder in accordance with a predetermined virtualization rule integrated into one folder and displayed in a single folder. How to provide software virtualization system.
제 1항, 제3항, 제4항 내지 제11항, 제13항, 제15항 내지 제 20항, 제22항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
A computer-readable recording medium having recorded thereon a program for performing the method according to any one of claims 1, 3, 4, 11, 13, 15, 20, and 22. .
KR1020100009459A 2010-02-02 2010-02-02 Method for providing software virtualization system using portable medium KR101103795B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100009459A KR101103795B1 (en) 2010-02-02 2010-02-02 Method for providing software virtualization system using portable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100009459A KR101103795B1 (en) 2010-02-02 2010-02-02 Method for providing software virtualization system using portable medium

Publications (2)

Publication Number Publication Date
KR20110089942A KR20110089942A (en) 2011-08-10
KR101103795B1 true KR101103795B1 (en) 2012-01-06

Family

ID=44927814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100009459A KR101103795B1 (en) 2010-02-02 2010-02-02 Method for providing software virtualization system using portable medium

Country Status (1)

Country Link
KR (1) KR101103795B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101448060B1 (en) 2012-11-30 2014-10-15 한국전자통신연구원 Encryption appratus using virtual machine and method thereof
KR102141850B1 (en) * 2020-02-19 2020-08-06 주식회사 커넥션소프트 System, Server, Terminal, and Method for Virtual Mobile Infrastructure

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086311A (en) * 2001-04-05 2003-11-07 인터내셔널 비지네스 머신즈 코포레이션 Collecting and restoring user environment data using removable storage
KR20060067815A (en) * 2004-12-15 2006-06-20 마이크로소프트 코포레이션 Portable application
KR100654675B1 (en) * 2004-12-04 2006-12-08 소프트온넷(주) A Portable Data Storage System and Method to Run Application Programs on a Host Computer System
US20090319793A1 (en) 2006-09-11 2009-12-24 John Joseph Zic Portable device for use in establishing trust

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086311A (en) * 2001-04-05 2003-11-07 인터내셔널 비지네스 머신즈 코포레이션 Collecting and restoring user environment data using removable storage
KR100654675B1 (en) * 2004-12-04 2006-12-08 소프트온넷(주) A Portable Data Storage System and Method to Run Application Programs on a Host Computer System
KR20060067815A (en) * 2004-12-15 2006-06-20 마이크로소프트 코포레이션 Portable application
US20090319793A1 (en) 2006-09-11 2009-12-24 John Joseph Zic Portable device for use in establishing trust

Also Published As

Publication number Publication date
KR20110089942A (en) 2011-08-10

Similar Documents

Publication Publication Date Title
US10992758B2 (en) Virtualizing device management services on a multi-session platform
US10284416B2 (en) Workload deployment with infrastructure management agent provisioning
CA2761563C (en) Annotating virtual application processes
KR101540798B1 (en) Apparatus for providing security information in virtual environment and method thereof
JP5015665B2 (en) Method, apparatus, and computer program for sharing kernel services between kernels
TWI478063B (en) System and method for providing application program utilizing virtual machine and computer readable storage medium storing the method
US10007541B2 (en) Method for operating a mobile virtual environment upon connection to a host computer
US9405521B2 (en) Mapping of virtualized setup-free applications for a computing system
JP5847734B2 (en) Declarative registration of extension points for virtualization
US20130047160A1 (en) Systems and methods for modifying an operating system for a virtual machine
US8589918B1 (en) Multi-platform compatible portable virtual machine player
US7840967B1 (en) Sharing data among isolated applications
EP2859443B1 (en) Virtual machine image write leasing
JP2008524686A (en) Method for maintaining an application in a computer device
CN111475227B (en) Business plug-in loading implementation method and device and terminal equipment
US20220121472A1 (en) Vm creation by installation media probe
CN110780930A (en) Method and device for starting Android system, electronic equipment and storage medium
WO2007123620A1 (en) Isolation of application execution
JP5951002B2 (en) Selective policy enables component propagation between a host and multiple guests
KR101103795B1 (en) Method for providing software virtualization system using portable medium
EP3543849A1 (en) Driver management method and host machine
US10963621B2 (en) Management of remote access user application layouts
KR101636457B1 (en) The image forming apparatus which operates based on framework can owns function among a plurality of bundle and method for installing of bundle in the image forming apparatus
KR102572383B1 (en) Method and apparatus for managing application
KR101089792B1 (en) Method for providing security for application virtualization

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee