KR102559952B1 - 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법 - Google Patents

가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법 Download PDF

Info

Publication number
KR102559952B1
KR102559952B1 KR1020210046710A KR20210046710A KR102559952B1 KR 102559952 B1 KR102559952 B1 KR 102559952B1 KR 1020210046710 A KR1020210046710 A KR 1020210046710A KR 20210046710 A KR20210046710 A KR 20210046710A KR 102559952 B1 KR102559952 B1 KR 102559952B1
Authority
KR
South Korea
Prior art keywords
information
computer
data storage
virtual computer
storage unit
Prior art date
Application number
KR1020210046710A
Other languages
English (en)
Other versions
KR20220118876A (ko
Inventor
김덕우
Original Assignee
김덕우
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김덕우 filed Critical 김덕우
Priority to CN202280015944.9A priority Critical patent/CN116897350A/zh
Priority to PCT/KR2022/002369 priority patent/WO2022177327A1/ko
Priority to JP2023550140A priority patent/JP2024518672A/ja
Publication of KR20220118876A publication Critical patent/KR20220118876A/ko
Application granted granted Critical
Publication of KR102559952B1 publication Critical patent/KR102559952B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

사용자가 자유롭게 컴퓨터 구조를 바꿀 수 있도록 함으로써 개인 정보를 분산시켜 정보노출을 최소화시킬 수 있는 컴퓨터 구조에 관한 발명이다. 사용자가 복수의 가상컴퓨터를 사용할 수 있도록 컴퓨터구조의 전환이 가능하여, 컴퓨터의 데이터저장유닛이 사용자의 입력에 의해서 선택된 구조정보에 따라 파일시스템을 전환하고, 가용리소스정보 등을 OS와 어플리케이션프로그램이 실행하여 CPU와 메모리가 포함된 메인유닛에 제공함으로써 사용자가 안전하게 개인정보를 보호한다. 데이터저장유닛이 능동적으로 컴퓨터구조를 통제하므로 비활성화된 다른 가상컴퓨터를 형성하는 정보들에는 접근이 불가능해 보안이 크게 강화된다.

Description

가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법 {Computer Having Transformable Architecture and Method of Transforming Virtual Computers}
본 발명은 컴퓨터에 관한 것으로, 좀더 상세하게는, 사용자가 안전하게 개인정보를 보호하는 효과를 얻을 수 있도록 하는 컴퓨터 구조에 관한 것이다.
기존 컴퓨터는 사용자인증이 이뤄지면 OS를 비롯하여 가용한 하드웨어/소프트웨어 리소스가 정해져서 컴퓨터의 구조가 결정되고 사용중에 이러한 구조를 바꾸는 것은 불가능하다. 또한 사용중에 파일시스템에 대한 접근은 OS에 의해서 통제되므로 사용자가 파일시스템 전체를 바꿀 수 없는 구조를 갖는다.
그리고 컴퓨터의 사용자인증은 입력된 패스워드나 생체인식정보를 기저장된 인증정보와 비교하는 것이 보통이지만, 블루투스 또는 RFID를 이용한 별도의 장치를 두어 사용자인증을 처리하는 경우도 있다. 한편 휴대폰이나 노트패드와 같이 개인용 휴대기기의 경우는 터치스크린에서 패턴을 그리도록 하여 이를 입력받거나 숫자패드를 제시하여 PIN을 입력받거나 지문인식과 같은 방법으로 사용자를 인증한다.
이렇게 사용자인증을 거쳐 인증된 사용자는 컴퓨터의 모든 자원에 접근이 가능해지므로 기존 컴퓨터와 같이 구조가 고정된 경우 잠깐의 부주의로 컴퓨터의 모든 데이터와 프로그램 등이 제3자에게 노출되어 위험에 빠질 수 있다. 사회적으로 벌어지는 개인정보유출사건 중 상당수는 개인용 컴퓨터나 휴대폰 등의 분실이나 수리시 악의를 가진 제3자에 의해서 또는 악성코드감염으로 인해서 발생하게 되는데, 대표적으로 사진이나 메신저, 소셜미디어의 은밀한 대화가 노출되어 문제가 발생하는 경우가 많다. 또한 이러한 개인용 휴대기기를 인증이 풀린 상태에서 잠깐동안 식탁이나 책상에 두었다가 제3자가 내용을 훔쳐보는 경우도 발생한다. 또한 문자나 대화창에 악성코드가 심어진 링크를 눌러 악성코드가 휴대폰에 깔리게 되어 사용자의 모든 정보가 해커에게 노출되는 경우도 흔하게 발생한다.
따라서 수리시나 악성코드 감염시 정보노출을 최소화 시키는 것이 바람직하지만 기존 고정된 구조를 갖는 컴퓨터에서는 이를 효과적으로 실행할 방법이 없다.
본 발명은 상술한 문제를 해결하기 위해 사용자가 자유롭게 컴퓨터 구조를 바꿀 수 있도록 함으로써 개인 정보를 분산시켜 정보노출을 최소화시킬 수 있는 컴퓨터 구조를 제안한다.
상기 과제를 해결하기 위해, 본 발명은 사용자에게 복수의 가상컴퓨터를 제공하고 사용자가 자유롭게 구조를 바꿀 수 있도록 함으로써 개인 정보를 분산시켜 정보노출을 최소화시킬 수 있는 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법을 제공한다.
보다 구체적으로 본 발명에 따르면, 사용자가 복수의 가상컴퓨터를 사용할 수 있도록 컴퓨터구조의 전환이 가능하며, 컴퓨터의 데이터저장유닛이 사용자의 입력에 의해서 선택된 구조정보에 따라 파일시스템을 전환하고, 가용리소스정보 등을 OS와 어플리케이션프로그램이 실행되고 CPU와 메모리가 포함된 메인유닛에 제공함으로써 안전하게 개인정보를 보호하도록 할 수 있다. 특히 데이터저장유닛이 능동적으로 컴퓨터구조를 통제하므로 비활성화된 다른 가상컴퓨터를 구성하는 정보들에는 접근이 불가능해 보안이 크게 강화된다. 사용자는 복수의 가상컴퓨터를 목적이나 사용환경에 따라 분리하여 필요시에만 활성화시켜 사용함으로써 데이터를 분산하여 보안을 강화할 수 있고, 사용중에 손쉽게 다른 가상컴퓨터로 구조를 바꿀 수 있어 악성코드감염에 대응이 가능하다.
즉, 본 발명에서는 악성코드의 영향을 피하기 위하여 데이터저장유닛은 선택된 구조정보에 따른 파일시스템을 메인유닛과 상관없이 독자적으로 구성하여 제공함으로써 악성코드의 감염으로 발생 가능한 정보유출을 차단한다. 따라서 OS와 모든 어플리케이션프로그램들은 제공된 구조정보에 따라 만들어지는 가상컴퓨터 내에서만 동작하게 되므로 보안이 크게 향상된다. 악성코드에 감염되었다고 해도 다른 가상컴퓨터로 이동하면 파일시스템이 전환되면서 선택적으로 컴퓨터를 콜드스타트(cold start) 또는 웜스타트(warm start) 시킬 수 있어 OS의 전부 또는 일부분 그리고 어플리케이션의 전체가 다시 메인유닛에 로드되어 악성코드의 영향에서 벗어난 다른 가상컴퓨터에서 작업이 가능하다.
한편 휴대폰이나 태블릿 컴퓨터와 같은 개인용휴대기기의 경우에는 수시로 잠금과 해제가 반복되므로 본 발명을 적용하여 복수의 가상휴대기기들을 하나의 휴대기기에서 제공하도록 구현한다면 개인용 휴대기기의 보안성 향상에 큰 진전이 있을 것으로 판단된다.
본 발명의 컴퓨터를 상세하게 알아보면 다음과 같다.
컴퓨터 구조에서 제일 중요한 것은 OS와 어플리케이션프로그램 및 사용자데이터를 비휘발성으로 저장하고 있는 데이터저장유닛이다. 일반적으로 OS에 따라 결정되는 파일시스템 관련 정보들이 데이터저장유닛에 저장되었다가 부트프로그램에 의해서 메인메모리에 로드됨으로써 컴퓨터가 사용준비를 마치게 된다. 그런데 지난 수십 년 동안 데이터저장유닛은 수동적으로 OS의 통제를 받도록 컴퓨터 구조가 설계되었고 수 년 전에야 본 발명자가 본인의 일련의 등록특허에서 데이터저장유닛이 부분적으로 능동적인 역할을 하도록 변경된 기술을 제안한 바 있다.
본 발명은 여기에서 더 나아가 데이터저장유닛이 주도적으로 사용자의 입력에 따라 컴퓨터의 구조를 전환할 수 있는 기능을 갖도록 하여, 사용자가 복수의 가상컴퓨터를 사용하는 효과를 얻도록 하였다. 또한 악성코드에 감염된 후 OS가 기능을 상실한 경우에도 컴퓨터를 정상적으로 복귀시킬 수 있는 구조를 제안함으로써 컴퓨터, 특히 개인용휴대기기들의 보안을 크게 향상시킬 수 있도록 하였다.
즉 본 발명에 따른 복수의 가상컴퓨터를 제공하는 컴퓨터는 사용자가 복수의 가상컴퓨터를 목적 또는 사용환경에 따라 분리하여 사용하는 것이 가능하다. 이들 가상컴퓨터는 한 번에 하나씩만 활성화되어 사용되므로, 활성화된 가상컴퓨터의 정보 이외에 다른 비활성화된 가상컴퓨터의 정보는 노출되지 않아 보안이 크게 향상된다.
이를 위하여 본 발명의 컴퓨터에서는 데이터저장유닛이 사용자의 입력에 의해서 선택된 구조정보에 따라 파일시스템과 가용리소스정보를, OS와 어플리케이션프로그램이 실행되고 CPU와 메모리를 포함하여 구성되는 컴퓨터의 메인유닛에 제공함으로써 가상컴퓨터를 구성하여 사용자에게 제공한다.
이상의 개념에 의해 구현되는 본 발명에 따른 컴퓨터는 아래와 같은 특징을 갖도록 구성된다. 본 발명에 따른 복수의 가상컴퓨터를 제공하는 컴퓨터는 OS와 어플리케이션프로그램이 실행되고 CPU와 메모리를 포함하여 구성되는 메인유닛; 메인유닛과 연결되는 데이터저장유닛; 데이터저장유닛에 연결되고 사용자입력정보를 입력받는 입력유닛을 포함하여 구성된다. 여기서 컴퓨터의 사용자입력정보는 데이터저장유닛으로 입력되어 분석처리되고; 데이터저장유닛은, 사용자입력정보가 구조전환을 의미하는 경우, 상응하는 사용자설정정보에 따라 구조정보를 확인한 후 구조정보에 따라 구조전환을 위한 준비작업을 수행하여 메인유닛에 구조전환정보를 전달하며; 메인유닛은 데이터저장유닛으로부터 전달받은 구조전환정보에 따라 구조전환절차를 이행하여 다른 가상컴퓨터로 전환되도록 하는 것을 특징으로 한다.
데이터저장유닛에서 처리되는 상기 분석처리는 사용자입력정보의 삭제, 메인유닛에 원본 전달, 메인유닛에 분석결과에 따른 상응정보 전달 중 최소한 하나 이상을 포함하는 것을 특징으로 한다.
상기 구조정보는 파일시스템구성정보와 구조전환정보를 포함할 수 있다. 여기서 파일시스템구성정보에는 이름, 제조사, 기능 중 최소한 하나 이상의 정보로 특정되는 어플리케이션프로그램의 사용이나 설치를 금지하는 정보가 포함될 수 있다. 그리고 구조전환정보에는 메인유닛이 참조할 가용리소스정보, OS의 재시작점, 어플리케이션프로그램의 재실행에 관한 정보 중 최소한 하나가 포함될 수 있다. 상기 파일시스템구성정보와 구조전환정보는 다음에 구체적으로 설명한다.상기 준비작업에는 현재 활성화된 가상컴퓨터가 사용중인 파일시스템과 관련된 작업들을 종료하고 사용자입력정보에 따라 복수의 파일시스템들중 활성화되어야 할 파일시스템을 선택하여 활성화시키는 작업이 포함될 수 있다. 여기서 파일시스템은 OS, 어플리케이션프로그램, 사용자데이터 중 최소한 어느 하나를 포함시켜 구성할 수 있다.
상기 파일시스템들에 포함된 정보중 실행이 가능한 파일 또는 실행가능한 파일로 전환 가능한 데이터를 포함한 파일들의 복사본, 파일시스템의 전체 복사본, 또는 사용자가 특별히 지정한 데이터들은, 데이터저장유닛이 관리하고 메인유닛은 접근이 불가능한 저장장소에 별도 보관될 수 있다.
사용자는 사용자설정정보를 관리하는 프로그램을 이용하여 상기 복사본을 이용하여 해당 가상파일시스템을 복구할 수 있다.
상기 사용자입력정보는, 데이터저장유닛이 메인유닛으로부터 시간정보, 공간정보, 제3의 통신유닛의 연결유무정보 중 최소한 어느 하나를 전달받아 사용자설정정보와 비교하여, 새롭게 활성화되어야 할 가상컴퓨터정보를 포함시켜 생성하는 구조전환을 의미하는 정보일 수 있다.
상기 사용자입력정보는 사용자인증정보이거나, 적어도 사용자인증정보를 포함할 수 있다. 이와 같이 사용자입력정보가 사용자인증정보이거나 사용자인증정보를 포함하는 경우에, 데이터저장유닛은 메인유닛이 사용자인증(들)을 구분하지 못하도록 사용자입력정보 대신에 사용자인증의 통과 여부만을 전달할 수 있다.
한편 메인유닛과 데이터저장유닛은 협조작업 혹은 단독작업으로, 현재 활성화되어 사용중인 가상컴퓨터와 새롭게 활성화되어 사용예정인 가상컴퓨터 사이에 공유정보가 있는 경우, 사용자설정정보에 따라 공유정보의 내용과 형식을 포함하는 이동대상정보를 만들어 보관하였다가 구조전환 절차가 마무리되면 이동대상정보를 새로운 가상컴퓨터에서 사용할 수 있도록 동작할 수 있다.
상기 공유정보에는 메시지, 복사되어 저장된 정보, 노트패드나 메모장에 기록된 정보, 파일 중 최소한 어느 하나가 포함될 수 있다.
상기 협조작업을 담당하는 프로그램은 메인유닛에서 실행되는 경우 메인유닛의 프로그램실행환경에 맞추어 구현되고, 데이터저장유닛에서 실행되는 경우 데이터저장유닛의 프로그램실행환경에 맞추어 구현될 수 있다.
상기 데이터저장유닛은 현재 활성화되어 사용중인 가상컴퓨터의 메인유닛이 비활성화된 가상컴퓨터의 구조정보에 포함된 정보를 요청하는 경우, 사용자설정정보에 따라 이를 확인하여 제공할 수 있다.
한편 사용자는 본 발명에 따른 복수의 가상컴퓨터를 제공하는 컴퓨터에 구현되는 복수의 가상컴퓨터 중 하나를 주(primary) 가상컴퓨터로 설정하고 주 가상컴퓨터의 설정정보에 다른 가상컴퓨터들의 사용자인증정보와 사용자설정정보를 포함시켜 관리할 수 있다.
또한 사용자는 가상컴퓨터의 구조정보를 복사하여 다른 가상컴퓨터의 구조정보로 설정하여 사용할 수 있다.
또한 본 발명에 따른 가상컴퓨터는 사용자가 실행가능한 링크를 누르는 경우 기설정된 임시 가상컴퓨터를 활성화시킨 후 임시 가상컴퓨터 내에서 링크를 활성화시킬 수 있다
이상과 같이 구성되는 본 발명에 따른 컴퓨터에 대해서 더 상세하게 알아보면 다음과 같다.
일반적으로 컴퓨터에서의 사용자의 정보입력은 데이터저장유닛과 관계없이 메인유닛에서 실행되는 OS나 관련 어플리케이션프로그램이 입력유닛을 통해서 직접 처리한다. 그러나 이런 구조에서는 해킹프로그램이나 컴퓨터바이러스와 같은 악성코드가 똑같이 메인유닛에서 실행되므로 입력되는 정보를 이들 악성코드가 훔치는 것이 가능하다. 따라서 사용자입력정보 중 하나인 사용자인증정보가 달라지는 것을 OS가 인지하는 구조라면 악성코드들도 당연히 인지가 가능할 것이고 이렇게 노출된 사용자인증정보로 인하여 보안에 구멍이 생기게 되므로 이를 방어할 방법이 필요하다.
또한 본 발명에서는 사용자의 입력에 따라 사실상 다른 컴퓨터인 것처럼 구조가 전환되는 만큼 메인유닛이 아니라 누군가가 이러한 과정을 관리감독해야 한다. 따라서 본 발명의 컴퓨터에서는 사용자입력정보가 전달되는 과정이 기존 컴퓨터와 완전히 다르게 구성된다. 사용자가 정보입력시 사용하는 입력유닛(들)은 일차적으로 데이터저장유닛에 연결된다. 그러나 이 입력유닛(들)은 필요시 메인유닛에도 함께 연결될 수 있으며, 사용자입력유닛을 데이터저장유닛에 별도로 부착하여 가상컴퓨터 사이의 전환에 사용할 수도 있다. 즉 어떠한 경우든 입력유닛(들)의 신호중 일부는 데이터저장유닛을 통해서 메인유닛에 전달된다는 것이다.
따라서 앞에서 언급한 것과 같이 본 발명에 따른 복수의 가상컴퓨터를 제공하는 컴퓨터를, OS와 어플리케이션프로그램이 실행되고 CPU와 메모리를 포함하여 구성되는 메인유닛; 메인유닛과 연결되는 데이터저장유닛; 데이터저장유닛에 연결되고 사용자입력정보를 입력받는 입력유닛을 포함하도록 구현한 것이다.
여기서 컴퓨터의 사용자입력정보는 데이터저장유닛으로 입력되어 분석처리된다. 즉, 사용자가 입력을 하면 데이터저장유닛은 사용자입력정보를 받아 이를 분석하여 이 사용자입력정보를 메인유닛에 그대로 전달할지, 삭제할지, 아니면 이 사용자입력정보에 대응하는 일련의 상응 정보를 만들어 전달할지 결정하게 된다. 또한 각각의 경우에 자신이 수행해야 할 작업들이 있는지 확인하여 이를 수행한다.
그런데 만일 사용자입력정보가 구조전환을 의미하는 경우, 데이터저장유닛은 상응하는 사용자설정정보에 따라 구조정보를 확인한 후 상기 구조정보에 따라 구조전환을 위한 준비작업을 수행하고 메인유닛에는 구조전환정보를 전달하게 된다. 여기서 구조정보는 가상컴퓨터의 구조에 관한 모든 정보를 담고 있는데, 파일시스템 구성정보와, 구조를 전환하기 위하여 메인유닛이 참고해야 할 구조전환정보를 포함할 수 있다.
데이터저장유닛의 작용을 구체적으로 설명하자면, 데이터저장유닛이 사용자입력정보로부터 구조전환을 인지하면 전환을 위한 준비작업을 실행하는데, 이 준비작업에는, 현재 활성화된 가상컴퓨터가 사용중인 파일시스템과 관련된 작업들을 종료하고 사용자입력정보에 따라 복수의 파일시스템들 중 활성화되어야 할 파일시스템을 선택하여 구성해서 활성화시키는 작업이 포함된다. 준비작업이 완료되면 데이터저장유닛은 메인유닛에 구조전환정보를 전달하며, 메인유닛은 데이터저장유닛으로부터 전달받은 구조전환정보에 따라 구조전환 절차를 이행하여 컴퓨터는 새로운 가상컴퓨터로 전환된다.
상기 구조정보에 포함된 파일시스템구성정보는 해당 가상컴퓨터가 사용할 파일시스템이 어떻게 구성되는지에 대한 정보인데 OS와 어플리케이션프로그램에 대한 정보나 데이터 그 자체를 포함하여 구성할 수 있다. 따라서 사용자는 가상컴퓨터마다 OS와 어플리케이션프로그램들을 다르게 사용하는 것이 가능하다. 이때 사용자가 해당 가상컴퓨터를 사용함으로써 OS나 어플리케이션프로그램들이 생성하는 데이터들도 파일시스템의 한 부분이 될 수 있다. 파일시스템 구성정보에는 이름, 제조사, 기능 중 최소한 어느 하나 이상의 정보로 특정되는 어플리케이션프로그램의 사용을 금지하는 정보가 포함될 수 있다.
한편 상기 파일시스템들에 포함된 정보중 실행가능한 파일 또는 실행가능한 파일로 전환이 가능한 데이터를 포함한 파일들의 복사본, 또는 파일시스템 전체의 복사본은, 데이터저장유닛이 관리하고 메인유닛은 접근이 불가능한, 별도의 저장장소에 보관될 수 있다. 이는 가상컴퓨터가 악성코드에 감염되었을 때 가상컴퓨터를 복구하는 데 필요하다. 즉 악성코드는 실행가능한 형태로 파일시스템 내부에 잠복하게 되므로 가상컴퓨터A가 사용 중에 악성코드에 감염된 경우 보관중인 이들 실행가능성이 있는 파일들 또는 파일시스템 전체의 복사본을 이용하여 이를 복원하는 것이 가능하다. 이와 함께 연락처와 같이 사용자가 특별하게 지정한 정보들도 데이터저장유닛이 유사한 방식으로 별도의 저장공간에서 관리할 수 있다.
또한 상기 구조정보에 포함된 다른 정보인 구조전환정보에는 가용리소스정보, OS의 재시작점, 어플리케이션프로그램의 재실행에 대한 정보 중 최소한 어느 하나가 포함될 수 있다.
예를 들어, 사용중인 가상컴퓨터A에서 새로운 가상컴퓨터B로 전환이 이뤄진다면 파일시스템이 변경될 뿐 아니라 쓸 수 있는 리소스들도 바꿜 수 있다. 파일시스템을 전환할 때 현재 실행중인 어플리케이션프로그램을 중지시키거나 OS가 파일시스템정보를 갱신하는 등의 선행작업이 필요할 수 있다. 이때 가상컴퓨터A와 가상컴퓨터B가 동일한 OS를 가진다면, OS 전체를 재로드하기보다는 악성코드 오염가능성을 최소화시키면서 전환시간을 최소화시키는 형태로 OS의 재시작이 가능하다. 따라서 데이터저장유닛은 이러한 정보들을 구조전환정보에 포함시켜 메인유닛에 전달할 수 있다. 메인유닛은 이에 따라 콜드스타트(cold start) 또는 웜스타트(warm start)와 같이 컴퓨터를 재시작 시킬 수 있어 OS의 전부 또는 일부분, 어플리케이션프로그램의 전체나 일부분이 다시 메인유닛에 로드된다.
한편, 전환을 확실하게 하기 위해서는 이러한 구조전환정보가 확실하게 전달되어야 한다. 이에 따라 하드웨어적으로 인터럽트(interrupt) 신호를 사용할 수 있다. 즉 데이터저장유닛이 인터럽트 신호를 출력하면 메인유닛이 인터럽트 루틴에서 이 과정을 처리하도록 하는 것이 바람직하다.
가상컴퓨터가 다른 가상컴퓨터로 전환되는 과정에서 사용자의 불편을 최소화하려면 다양한 기능이 필요하게 된다.
앞서 언급한 것처럼 메인유닛이나 데이터저장유닛은 협조작업 혹은 단독작업으로, 현재 활성화되어 사용중인 가상컴퓨터와 새롭게 활성화되어 사용예정인 가상컴퓨터 사이에 공유해야 하는 정보가 있는 경우에, 공유정보의 내용과 형식을 포함하는 이동대상정보를 만들어 보관하였다가 구조전환 절차가 마무리되면 이동대상정보를 새로운 가상컴퓨터에서 사용할 수 있도록 할 수 있다. 예를 들어 가상컴퓨터A에서 메시지나 사진, 노트패드나 메모장에 기록된 정보, 파일 등을 복사해서 가상컴퓨터B에서 사용할 수 있는 기능이 제공되면 편리할 것이다. 이를 위해서 메인유닛과 데이터저장유닛에는 협조작업이나 단독작업을 위한 프로그램이 실행된다. 이 때 메인유닛에서 실행되는 프로그램은 메인유닛의 프로그램실행 환경에 맞추어 구현되고, 데이터저장유닛에서 실행되는 프로그램은 데이터저장유닛의 프로그램실행 환경에 맞추어 구현되어야 한다.
또, 현재 활성화되어 사용중인 가상컴퓨터에서 비활성화된 가상컴퓨터의 구조정보를 참조할 수 있다. 즉, 앞에서 언급한 것과 같이 현재 활성화되어 사용중인 가상컴퓨터의 메인유닛이 비활성화된 가상컴퓨터의 구조정보에 포함된 정보를 요청하는 경우, 사용자설정정보에 따라 이를 확인하여 제공할 수 있다. 이를 자세히 살펴보면 다음과 같다.
예를 들면 사용자가 가상컴퓨터A와 가상컴퓨터B를 사용하는데 가상컴퓨터A에는 개인연락처가, 가상컴퓨터B에는 업무용 연락처가 존재한다고 가정하자. 또한 개인연락처와 업무용연락처를 통합한 통합연락처는 데이터저장유닛이 자신의 독자적인 저장공간에 보관하고 필요시 제공한다고 가정하자. 이 경우 사용자가 가상컴퓨터A를 사용중에 가상컴퓨터B에만 존재하는 업무용연락처에 기재된 상대방쪽에서 대화요청(예를 들면 메신저나 전화, 문자메세지가 도착했을 때)이 있다면 상대방의 신원은 표시되지 않는 상태로 대화요청이 전달될 것이다. 이 때 사용자는 대화를 진행하거나, 대화를 기설정한 방식으로 거절할 것을 설정할 수 있다.
그런데 이 경우 메인유닛(정확하게는 메인유닛에서 실행중인 어플리케이션프로그램이나 OS 등의 프로그램)이 신원을 알 수 없는 상대방이 다른 가상컴퓨터 파일시스템의 연락처에 등재되어 있는지를 데이터저장유닛에 질문하고 데이터저저장유닛이 이를 확인하는 작업이 가능하다. 이 때 데이터저장유닛은 내부적으로 통합연락처를 검색하거나 가상컴퓨터B의 구조정보를 참고하여 가상컴퓨터B의 파일시스템에서 연락처명단을 확인하여 답변하게 된다. 한편 이렇게 확인된 정보는 가상컴퓨터A의 상태정보표시에 반영하는 것도 가능하다.
데이터의 이동 및 전달에 대하여 보다 자세하게 살펴보면 다음과 같다.
앞선 사례와 같이 가상컴퓨터A를 사용중에 가상컴퓨터B의 구조정보에만 포함된 상대방과의 대화가 진행되면, 이 대화를 현재 활성화된 가상컴퓨터A가 대화내용을 기록하였다가 가상컴퓨터B로 전달할 수 있다. 즉 메인유닛이 상대방 연락처가 가상컴퓨터B의 연락처에 포함되었음을 확인하면, 관련내용을 이동대상정보로 데이터저장유닛에 전달하고 이를 데이터저장유닛이 가상컴퓨터B의 파일시스템에 반영할 수 있다. 이러한 작업을 담당하는 프로그램은 해당 연락처와 관련되어 활성화된 어플리케이션프로그램(예를 들어 전화, 문자메세지, 메신저, 소셜미디어서비스 등)의 공급자가 만들어 제공할 수 있다. 이 경우 이 프로그램은 데이터저장유닛유닛의 프로그램실행환경에 맞추어 구현되어야 한다.
다음으로 사용자가 연락처를 이동시키는 경우를 생각해보자. 휴대폰이나 태블릿같이 외부와 이동통신이 가능한 휴대형 컴퓨터의 경우에는 이런 상황이 빈번하게 발생할 수 있다. 예를 들어 사용자가 연락처를 가상컴퓨터A에서 가상컴퓨터B로 옮기는 경우 그동안 해당 연락처와 주고받은 기록의 처리방안이 필요하다. 이 때 연락처가 옮겨지면 가상컴퓨터A에서는, 관련기록을 삭제하거나 그대로 두고, 연락처가 없어졌므로 전화번호로만 신원을 표시하며 처리할 수 있다. 이 때 가상컴퓨터B에 가상컴퓨터A의 관련기록을 이동시킨다면 매우 편리할 것이다. 이를 위해서는 관련기록의 데이터구조를 파악하여 프로그램하는 것이 필요한데 위에서 언급한 바와 같이 해당 어플리케이션프로그램의 공급자가 제일 적당하다.
이외에도 사진이나 기타 파일과 같이 쉽게 구분 가능한 파일시스템 객체들은 가상컴퓨터 사이를 옮겨다니는 것이 가능하다. 구체적으로 파일/사진을 가상컴퓨터A에서 가상컴퓨터B로 옮기는 경우, 주 가상컴퓨터에 접속하여 사용자설정메뉴에서 데이터이동을 선택하고 가상컴퓨터A에서 이동시킬 데이터들을 표시하고 데이터의 목적지를 가상컴퓨터B로 선택하면 이동이 완료된다.
다음으로 앞에서 언급한 것과 같이 사용자입력정보가 사용자인증정보이거나 사용자인증정보를 포함하는 경우를 구체적으로 살펴보자. 휴대폰과 같은 개인용휴대기기에서는 잠금과 해제가 빈번하게 일어나는데 잠금해제시에 사용자인증을 하게 된다. 따라서 복수의 사용자인증을 가능하게 하고 인증에 따라 결정되는 가상컴퓨터를 사용하는 것이 가능하다. 예를 들어 사용자인증정보가 기존에 사용중인 사용자인증이 아니고 새로운 사용자인증에 해당하는 것이라면, 해당 사용자인증에 따른 사용자설정정보를 이용하여 새로운 가상컴퓨터를 제공하기 위한 절차가 진행된다. 그런데 이런 사용자인증정보는 메인유닛에 전달되어 화면잠금도 해제되어야 한다. 그러나 이 사용자인증정보를 그대로 전달하면 가상컴퓨터가 전환됨을 악성코드도 인지할 가능성이 발생하므로 이 사용자인증정보 대신에 메인유닛에는 입력되는 사용자인증정보와 상관없이 사용자인증통과 여부만을 전송할 수도 있다. 예를 들어 가상컴퓨터A는 사용자인증정보가 “WORLD”이고 가상컴퓨터B는 사용자인증정보가 “KOREA”라고 할 때 이 두 값에 상관없이 데이터저장유닛은 사용자인증통과 여부만을 메인유닛에 전달하고 메인유닛은 이에 따라 화면잠금을 처리할 수 있다. 따라서 OS나 악성코드는 가상컴퓨터가 전환된 것을 감지하지 못하게 되어 보안이 향상된다.
한편 앞에서, 사용자입력정보는 데이터저장유닛이 메인유닛으로부터 시간정보, 공간정보, 제3의 통신유닛의 연결유무정보 중 최소한 어느 하나를 전달받아, 데이터저장유닛이 이 정보들을 사용자설정정보와 비교하여 새롭게 활성화되어야 할 가상컴퓨터정보를 포함시켜 생성하는 구조전환을 의미하는 정보일 수도 있다고 하였다.
이에 대해 예를 들어 설명하자면, 사용자는 사용자설정정보에 시간대를 입력하는 방식으로, 시간을 기준으로 가상컴퓨터를 전환시킬 수 있다. 예를 들어 09:00~18:00시 사이를 가상컴퓨터A로 설정하면 해당 시간대는 가상컴퓨터A로의 전환이 자동적으로 적용된다. 즉 이 시간대에 들어가면 컴퓨터는 현재 사용중인 구조가 가상컴퓨터A가 아닌 경우 가상컴퓨터A로 전환하기 위한 절차를 시작한다. 또한 사용자는 지도상에서 영역을 선택하거나 주소를 입력하는 방식으로, 자신의 위치에 따라 가상컴퓨터를 전환시킬 수 있다. 예를 들어 대한민국 서울시를 가상컴퓨터A로 설정하면 GPS가 컴퓨터의 위치가 서울시에 있을 때 가상컴퓨터A로 전환하기 위한 절차를 시작한다. 즉 사용자가 서울 외곽에서 가상컴퓨터B로 사용중에 서울로 진입하면 가상컴퓨터A로 전환하기 위한 절차를 시작한다. 또한 사용자는 특정 디바이스가 연결되는 상황에서 가상컴퓨터A를 사용하는 것으로 지정할 수 있다. 예를 들어 특정 위치와 특정 이름의 무선랜에 컴퓨터가 연결되는 경우, 또는 특정 이름의 블루투스 디바이스가 연결되는 경우에 가상컴퓨터A를 사용하도록 설정할 수 있다. 즉 해당 유닛들이 연결되면, 현재 사용중인 구조가 가상컴퓨터A가 아닌 경우, 컴퓨터는 자동으로 가상컴퓨터A로 전환하는 절차를 진행한다.
전환절차는 데이터저장유닛으로부터 시작된다. 데이터저장유닛은 주기적으로 가상컴퓨터의 전환조건을 점검하여 전환이 필요하면, 사용자입력정보에 따라 가상컴퓨터를 전환하는 것과 동일한 방법으로 전환절차를 진행한다.
그런데 이 때 사용자인증정보를 구조변경명령을 의미하는 것으로 사용하는 경우에는 사용자인증정보를 처리하는 과정이 추가로 필요하게 된다. 이 경우 데이터저장유닛은 메인유닛에 가상컴퓨터로 전환하기 위한 사용자인증을 받아야 함을 알리고 메인유닛과 협력작업을 통해서 해당 사용자인증이 진행되면, 해당 사용자인증의 가상컴퓨터 구조정보에 따라 준비작업을 진행하고 전환절차를 진행한다.
사용자인증절차는 아래와 같이 진행될 수 있다. 먼저 데이터저장유닛이 컴퓨터가 잠금된 것으로 제1가상입력정보를 만들어 메인유닛에 전달하고 잠시 후에 잠금을 풀려는 사용자의 시도가 있는 것처럼 제2가상입력정보를 만들어 메인유닛에 전달함으로써 새로운 사용자인증정보를 받도록 유도할 수 있다.
예를 들면 휴대용 컴퓨터인 삼성 갤럭시 휴대폰의 경우 전원스위치를 가볍게 눌렀다 떼면 잠금이 이뤄지고 이 상태에서 다시 전원스위치를 가볍게 눌렀다 떼면 잠금해제를 위한 사용자인증절차를 진행한다. 따라서 본 발명과 같이 입력유닛중 하나인 전원스위치입력을 데이터저장유닛이 관리하면 메인유닛의 상태와 관계없이 잠금/해제 동작으로 가상컴퓨터 사이의 전환이 가능해진다.
그런데 이런 갤럭시와 같이 휴대용으로 사용되는 컴퓨터의 전원스위치는 전원제어유닛에 입력되고 전원제어유닛은 대기전력이 최소화되어 설계된다. 즉 전원스위치가 일정시간 이상 눌려지면 전원이 인가되고 컴퓨터의 부팅이 시작되는 것이 일반적이다. 따라서 전원스위치가 데이터저장유닛에만 연결되는 경우에는 전원제어회로가 데이터저장유닛으로 옮겨져야 하므로 대기전력 증가에 대한 방안이 필요하게 된다. 결국 전원스위치입력은, 전원제어회로를 포함한 메인유닛과 데이터저장유닛에 공통적으로 공급되고, 데이터저장유닛에서 출력되는 가상전원스위치 출력이 전원스위치 신호와 OR게이트를 통해 메인유닛으로 입력되는 것이 보다 바람직하다. 이렇게 되면 데이터저장유닛이 가상전원스위치 출력을 펄스로 출력해서 화면 잠금/해제로 사용하고, 길게 내보내는 경우에는 자신을 포함한 휴대용기기 전원 전체를 끄거나 켤 수도 있다.
한편 상기 기능을 구현하기 위해서는 데이터저장유닛이 GPS데이터의 위치정보, 시간정보, 또는 해당 블루투스의 접속상태와 같은 정보를 알아야 하는데, 이는 GPS드라이버프로그램, 블루투스드라이버 프로그램, 또는 OS가 주기적으로 데이터저장유닛이 지정한 보고공간에 해당데이터를 써놓고, 이를 데이터저장유닛이 주기적으로 참고하는 방식으로 해결 가능하다.
다음으로 사용자입력으로 컴퓨터가 일시적으로 잠금되었다가 해제되는 경우의 동작을 살펴보자. 예를 들어 사용자가 패스워드나 지문인식으로 잠금을 해제하게 되면 데이터저장유닛은 중간에서 이 정보를 먼저 읽어들여 분석한 후 대응하게 된다. 한편 휴대폰이 일시적으로 잠금에 들어갈 때 메인유닛은 상태정보를 데이터저장유닛에 전달할 수 있다. 그러나 메인유닛이 정보를 전달하지 않더라도, 잠금과 관련된 정보 즉 무입력대기시간, 전원스위치입력정보, 폴더형의 경우 힌지스위치입력정보 등을 감안하여 제조사가 데이터저장유닛이 독자적으로 잠금과 해제를 판단할 수 있도록 구현하는 것도 충분히 가능하다. 또한 사용자에게 잠금해제시 볼륨스위치나 전원스위치를 동시에 누른 상태에서 잠금을 해제하는 동작을 하도록 함으로써 데이터저장유닛이 독립적으로 잠금해제 순간을 인식하도록 할 수도 있다.
다음, 가상컴퓨터들중 하나를 주 가상컴퓨터로 지정하는 경우에 대해 구체적으로 설명한다. 앞에서, 사용자는 본 발명에 따른 복수의 가상컴퓨터를 제공하는 컴퓨터에 구현되는 복수의 가상컴퓨터중 하나를 주(primary) 가상컴퓨터로 설정하고 주 가상컴퓨터의 설정정보에 다른 가상컴퓨터들의 사용자인증정보와 사용자설정정보를 포함시켜 관리할 수 있다고 언급한 바 있다. 또한 가상컴퓨터의 구조정보를 복사하여 다른 가상컴퓨터의 구조정보로 설정하여 사용할 수 있다는 언급도 하였다.
가상컴퓨터중 하나를 주 가상컴퓨터로 지정하여 사용하면 여러 가지 편리함을 얻을 수 있다. 사용자가 컴퓨터를 구입한 후 최초로 작업을 시작하는 경우를 살펴보자. 사용자가 컴퓨터나 개인용 휴대기기를 켜면 부팅이 끝나고 사용자인증을 요구하게 되는데 대개는 패스워드, 패턴입력, 생체인식 등으로 인증이 진행진다. 공장출고시에는 아무런 식별정보가 없으므로 그대로 사용가능한 환경이 제공되지만, 사용자가 고유한 식별정보를 등록하게 되면 그 다음부터는 사용자가 설정한 식별정보와 입력되는 사용자인증정보가 일치하는 경우에만 해당기기를 사용할 수 있게 된다.
대개 사용자는 시스템설정프로그램을 실행시켜 식별정보를 입력하게 되는데 본 발명이 적용된 컴퓨터는 복수의 가상컴퓨터로 전환이 가능하므로 각기 다른 인증정보를 사용하도록 식별정보도 구분해서 입력할 수 있다. 이 때 사용하려는 가상컴퓨터의 총 수는 사용자가 정할 수도 있고 제조사가 사전에 정해서 공급할 수도 있다.
예를 들어 세 개의 가상컴퓨터A, B, C를 사용하고 이들이 각각 사용자인증A, 사용자인증B, 사용자인증C를 사용한다면, 사용자의 시스템 설정프로그램도 각각 다르게 제공된다. 그런데 이들 가상컴퓨터들은 서로 완전히 분리되어 있으므로 사용자인증정보를 외우는 것이 어려울 수 있다. 따라서 주 가상컴퓨터를 가상컴퓨터A로 설정하고 가상컴퓨터B와 가상컴퓨터C의 사용자인증정보를 포함한 가상컴퓨터 구조정보를 관리가능토록 한다면 매우 편리할 것이다. 이와 함께 주 가상컴퓨터의 사용자설정프로그램에 가상컴퓨터 구조정보를 복사하여 다른 가상컴퓨터를 만드는 기능을 부여하거나 두 개의 가상컴퓨터를 하나로 통합하는 기능을 부여하면 매우 편리하다.
다음으로, 앞에서 언급한 것과 같이 본 발명에 따른 가상컴퓨터는 대화창이나 문자메세지를 통하여 이뤄지는 악성코드의 감염에 대응하기 위하여 사용자가 링크를 누르는 경우 기설정된 가상컴퓨터를 활성화시킨후 해당 가상컴퓨터 내에서 링크를 활성화시킬 수 있다. 이 때 사용되는 가상컴퓨터는 OS와 악성코드감지 프로그램이 포함된 파일시스템을 가지도록 구성될 수 있다. 메인유닛은, 사용자가 링크를 눌러 링크에 포함된 새로운 코드를 자신이 실행해야 하는 경우에, 사용자가 허용한 경우가 아니라면 해당 링크를 실행하지 않고 이동대상정보로 해당 링크를 처리하고 가상컴퓨터의 구조정보에 따른 가상컴퓨터로 전환하여 데이터저장유닛에 링크정보를 전달하고 실행을 요청한다. 이에 따라 데이터저장유닛은 가상컴퓨터로 전환하는 절차를 수행하고 전환이 완료되면 이동된 해당 링크를 가상컴퓨터에 전달하여 실행시키도록 한다. 따라서 링크가 악성코드의 설치를 유도한 것이었다면 악성코드는 사용자의 개인정보는 아무것도 없는 빈 가상컴퓨터에 설치되므로 피해가 전혀 없게 된다. 이때 사용자는 잠금과 해제 과정을 통하여 원래 사용중이던 가상컴퓨터에 다시 접속함으로써 작업을 계속할 수 있다. 이 때 필요시에, 원래 사용중이던 가상컴퓨터를 비활성화 하기 전에 사용중이던 어플리케이션프로그램정보를 데이터저장유닛이 보관하였다가 다시 전달하여 자동으로 재실행되도록 할 수 있다. 한편 사용자는 가상컴퓨터에 포함된 악성코드제거프로그램을 구동시켜 악성코드를 제거하거나 주 가상컴퓨터의 사용자설정프로그램에서 가상컴퓨터를 리빌드함으로써 악성코드를 제거할 수 있다.
상술한 본 발명의 개념은 이후에 도면과 함께 설명하는 구체적인 실시예를 통하여 더욱 명확해질 것이다.
본 발명에 따르면, 사용자가 복수의 가상컴퓨터를 사용할 수 있도록 컴퓨터구조의 전환이 가능하여, 컴퓨터의 데이터저장유닛이 사용자의 입력에 의해서 선택된 구조정보에 따라 파일시스템을 전환하고, 가용리소스정보 등을 OS와 어플리케이션프로그램이 실행하여 CPU와 메모리가 포함된 메인유닛에 제공함으로써 사용자가 안전하게 개인정보를 보호하는 효과를 얻을 수 있다.
기존 컴퓨터의 구조에서도 유사한 구조를 만드는 것이 가능하지만 데이터저장유닛이 수동적으로 OS의 통제를 받게되면 악성코드가 OS의 통제방법을 이용하여 비활성화된 가상컴퓨터구조정보를 액세스할 수 있어 보안이 무력화된다. 그에 비하여 본 발명에서는 데이터저장유닛이 능동적으로 컴퓨터구조를 통제하므로 비활성화된 다른 가상컴퓨터를 형성하는 정보들에는 접근이 불가능하여 보안이 크게 강화된다.
본 발명에 따른 복수의 가상컴퓨터를 제공하는 컴퓨터는 사용자가 복수의 가상컴퓨터를 목적이나 사용환경에 따라 분리하여 사용함으로써 데이터를 분산하여 보안을 강화할 수 있고, 사용중에 손쉽게 다른 가상컴퓨터로 구조를 바꿀 수 있어 악성코드 감염에도 대응이 가능하다.
도 1은 본 발명의 실시예에 따른 구조전환이 가능한 컴퓨터(100)의 개념도이다.
도 2는 구조정보가 파일시스템구성정보(115)와 구조전환정보(116)로 구성됨을 나타낸다.
도 3은 도 1의 개념을 휴대폰에 실제로 적용한 경우를 보다 상세하게 설명하는 도면이다.
본 발명의 이점 및 특징, 그리고 이들을 달성하는 방법은 이하 첨부된 도면과 함께 상세하게 기술된 바람직한 실시예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에 기술된 실시예에 한정되는 것이 아니라 다양한 다른 형태로 구현될 수 있다. 실시예는 단지 본 발명을 완전하게 개시하며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐, 본 발명은 청구항의 기재 내용에 의해 정의되는 것이다.
또한, 본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것이 아니다. 본 명세서에서, 단수형은 특별히 언급하지 않는 한 복수형도 포함한다. 또한 명세서에 사용된 '포함한다(comprise, comprising 등)'라는 용어는 언급된 구성요소, 단계, 동작, 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작, 및/또는 소자의 존재 또는 추가를 배제하지 않는 의미로 사용된 것이다.
이하, 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 상세히 설명한다. 실시예의 설명에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있는 경우에는 그 상세한 설명을 생략한다.
도 1은 본 발명의 일 실시예에 따른 구조전환이 가능한 컴퓨터(100)의 구성도이다. 이 실시예는 제조사가 4개의 가상컴퓨터, 즉, 가상컴퓨터A, 가상컴퓨터B, 가상컴퓨터C, 및 임시가상컴퓨터를 제공할 수 있도록 컴퓨터를 구성한 것으로 가정하였다. 따라서 데이터저장유닛(110)에 가상컴퓨터A의 구조정보A(111), 가상컴퓨터B의 구조정보B(112), 가상컴퓨터C의 구조정보C(113), 및 임시가상컴퓨터의 구조정보T(114)가 저장된다.
각각의 구조정보는 도 2에서 설명하는 바와 같이 파일시스템구성정보(115)와 구조전환정보(116)로 구성된다. 구조전환정보(116)에는 가용리소스 정보, OS의 재시작점, 및 어플리케이션프로그램의 재실행에 대한 정보 중 최소한 하나가 포함된다.
여기서 가상컴퓨터의 전환은 사실상 파일시스템을 변경함으로써 이뤄진다. 따라서 OS는 재시작이나 전환을 위한 인터럽트루틴을 제공하고 데이터저장유닛(110)은 저장된 파일시스템을 부트스트랩로더와 OS가 사용할 수 있도록 매핑하는 작업을 하게 된다. 예를 들어 설명하면, 부트스트랩로더는 클러스터 0x00000에서부터 데이터저장유닛(110)의 데이터를 읽어 부트과정을 수행한다고 가정하고, 주(primary) 가상컴퓨터A의 파일시스템은 클러스터 0x000000~0x0fffff, 가상컴퓨터B의 파일시스템은 클러스터 0x100000~0x1fffff, 가상컴퓨터C의 파일시스템은 클러스터 0x200000~0x2fffff, 임시가상컴퓨터T의 파일시스템은 클러스터 0x300000~0x3fffff 사이에 위치한다고 가정하자. 이 경우에 만일 가상컴퓨터A가 가상컴퓨터B로 전환되면 데이터저장유닛(110)은 클러스터 0x100000~0x1fffff 사이에 위치한 가상컴퓨터B의 파일시스템을 클러스터 0x000000~0x0fffff로 매핑하여 메인유닛(101)에 제공함으로써 가상컴퓨터 파일시스템을 전환할 수 있다. 하지만 만일 OS데이터 저장공간과 어플리케이션프로그램과 사용자가 생성하는 데이터를 저장하는 사용자데이터저장공간을 구분하여 사용하는 경우에는, 사용자데이터저장공간만을 교체하여 가상컴퓨터를 전환하는 것도 가능하다. 즉 만일 0x180000~0x1fffff 사이에 사용자데이터저장공간이 위치한다면 이 부분을 0x080000~0x0fffff 사이로 매핑하게 된다. 한편 이렇게 매핑하는 경우에 OS는 사용자데이터저장공간을 물리적으로 해당 클러스터에 두어야 한다.
다음으로, 가상컴퓨터A가 주(primary) 가상컴퓨터이며 사용자인증정보A로 인증되고, 가상컴퓨터B는 사용자인증정보B로 인증되고, 가상컴퓨터C는 사용자인증이 필요없이 가상컴퓨터A와 가상컴퓨터B를 사용중에 입력유닛(120)으로부터 사용자의 구조전환을 의미하는 사용자입력정보를 받으면 즉시 활성화된다.
한편 주 가상컴퓨터가 설정되면 주 가상컴퓨터에서 다른 가상컴퓨터의 사용자인증 식별정보를 비롯한 여러 가지를 관리할 수 있어 편리하다.
출고시에 주 가상컴퓨터A에는 기본적인 어플리케이션프로그램과 OS(예를 들면 안드로이드 OS)가 설치되어 있을 것인데, 사용자가 필요한 어플리케이션프로그램을 설치하고 과거에 사용하던 컴퓨터로부터 관련데이터를 복사하여 설치하면 사용준비가 일차적으로 종료된다. 한편 출고시에 자동적으로 가상컴퓨터A가 주 가상컴퓨터로 지정되고 구조정보A(111)도 입력되어 있다고 가정하자. 또한 주 가상컴퓨터는 디폴트로 사용자인증을 사용하도록 되어 있어 사용자가 PIN형식의 사용자인증정보A를 식별정보로 입력했다고 가정하자. 이러한 경우에 사용자는 주 가상컴퓨터A의 사용자설정프로그램을 이용하여 나머지 가상컴퓨터의 구조정보B(112)와 구조정보C(113)을 설정하게 된다.
사용자는 주 가상컴퓨터에서 사용자설정프로그램을 이용하여 구조정보A(111)를 복사하여 가상컴퓨터B와 가상컴퓨터C의 구조정보들을 생성하고 필요없는 어플리케이션프로그램을 제거함으로써 이들 가상컴퓨터들의 구조정보B(112)와 구조정보C(113)를 만들 수 있다. 예를 들면 사용자가 사용자설정프로그램에서 가용리소스정보 설정메뉴로 들어가 가상컴퓨터C의 CDMA통신유닛 사용을 비활성화시켰다고 가정하면 해당 CDMA통신유닛을 지원하는 드라이버가 제거된 상태로 OS가 제공될 것이다. 이 때 사용자는 가상컴퓨터B의 사용자인증방식으로 패턴입력을 선택하고 사용자인증정보B로 식별정보를 저장할 수 있다.
또한 가상컴퓨터T는 제조사가 제공하는 악성코드제거프로그램과 OS로만 구성되고 사용자인증은 사용되지 않는 것으로 제조사가 제공하는 구성정보(114)가 초기값으로 제공된다고 가정하자. 이때, 가상컴퓨터T는 사용자가 실행가능한 링크를 누르는 경우에만 활성화되어 해당 링크를 활성화시킨 결과를 보여주는 것으로 설정된다. 가상컴퓨터T는 사용자설정프로그램에서 재생성 할 수 있는데 이 경우 기존 정보는 지워지고 주 가상컴퓨터A의 OS와 악성코드제거프로그램이 새로 설치된다.
또한 각 가상컴퓨터의 구조정보A(111), 구조정보B(112), 구조정보C(113)는 공장에서 설정된 초기값을 위주로 사전에 자동지정될 수 있는데 예를 들어 OS의 재시작점, 가용리소스정보, 어플리케이션의 재실행여부와 같은 구조전환정보와 해당 컴퓨터의 파일시스템구성정보를 포함할 수 있다.
또한 주 가상컴퓨터A를 구성하는 OS와 어플리케이션프로그램 또는 실행가능한 파일 또는 실행가능한 파일로 전환이 가능한 데이터를 포함한 파일들의 복사본 또는 파일시스템의 전체 복사본은, 데이터저장유닛(110)이 관리하고 메인유닛(101)은 접근 불가능한 별도의 저장장소에 보관될 수 있다. 이는 가상컴퓨터가 악성코드에 감염되었을 때 가상컴퓨터를 복구하는 데 필요하다. 즉 악성코드는 실행가능한 형태로 파일시스템 내부에 잠복하게 되므로 가상컴퓨터A나 다른 가상컴퓨터가 악성코드에 감염된 경우 보관중인 이들 실행가능성이 있는 파일들의 복사본을 이용하여 이를 복원하는 것이 가능하다. 이와 함께 연락처와 같이 사용자가 특별하게 지정한 정보들도 데이터저장유닛(110)이 유사하게 별도의 저장공간에서 관리할 수 있다.
한편 이렇게 입력된 사용자설정정보들중 데이터저장유닛(110)에 필요한 잠금대기시간과 같은 정보들은 메인유닛(101)과 데이터저장유닛(110)의 통신인터페이스를 통해서 데이터저장유닛(110)에도 전달된다.
도 3은 도 1의 실시예에서 변형된 실시예의 구성도로, 휴대폰과 같이 휴대용으로 사용되는 컴퓨터에 적용가능한 실시예의 구성도이다. 여기서 컴퓨터(100)는 휴대폰을 의미하고 입력유닛(120)안에는 터치스크린 유닛(121), 볼륨스위치(122), 전원스위치(123), 구조전환스위치(124)가 포함된다.
따라서 가상컴퓨터C는 사용자 인증없이 가상컴퓨터A와 가상컴퓨터B를 사용중에 구조전환스위치(124)가 눌려지면 즉시 활성화된다. 한편 별도의 구조전환스위치(124) 없이 입력유닛(120) 내의 다른 입력장치들의 입력조합으로 구조변환 명령을 의미하는 사용자입력정보를 데이터저장유닛(110)에 입력할 수도 있다. 어느 경우든 사용자가 다시 가상컴퓨터A나 가상컴퓨터B로 돌아가기 위해서는 필요한 경우에 사용자인증절차를 포함하는 적절한 전환절차를 거쳐야 한다.
한편 메인유닛(101)에는 기본적으로 OS와 어플리케이션프로그램을 실행하기 위한 CPU와 메모리가 있고, 디스플레이유닛, CDMA와 같은 이동통신프로프로토콜을 처리하기 위한 프로세서 및 주변회로, 근거리통신회로(블루투스, 무선LAN), USIM 인터페이스, 배터리 및 충전회로 전원제어회로, 기타 전자결제를 위한 회로, 카메라 및 관련회로 등이 포함된다.
본 실시예에서는 메인유닛(101)의 구성을 위와 같이 보여줬지만, 경우에 따라 메모리카드나 디스플레이를 접거나 마는 것과 관련된 유닛들이 추가될 수도 있는 등, 컴퓨터와 관련된 기초적인 기술을 가진 사람이라면 그 확장성에는 제한이 없다.
다음으로 데이터저장유닛(110)은 일반적으로 플래쉬메모리나 HDD와 같은 비휘발성메모리로 구성되는데 플래쉬메모리를 사용하는 경우에는 플래쉬메모리콘트롤러가 통합되고 HDD 형태인 경우에는 모터구동을 위한 회로 등이 포함된다. 일반적으로 이러한 데이터저장유닛들은 CPU와 메모리를 포함하여 제어능력을 가진 형태로 구현되는데 본 실시예에서는 NVMe 인터페이스로 연결되는 SSD 형태로 구현된 것으로 상정한 것이다. 한편 터치스크린입력유닛(121)은 대개 디스플레이유닛(메인유닛에 포함. 미도시)과 디스플레이 윗면에 위치하도록 하나로 결합되어 제작되는 것이 보통이다.
다시 도 3으로 돌아가면, 일반적인 컴퓨터나 휴대폰들은 데이터저장유닛(110), 터치스크린유닛(121), 볼륨스위치(122)가 메인유닛(101)으로 직접 연결되지만, 본 발명이 적용된 컴퓨터(휴대폰)는 도 3과 같이 데이터저장유닛(110)에, 입력장치 중 사용자인증정보 입력시 사용될 수 있는 터치스크린유닛(121)과 볼륨스위치(122)가 직접 연결된다. 따라서 터치스크린유닛(121)과 볼륨스위치(122)로부터 입력되는 정보는 일차적으로 데이터저장유닛(110)이 분석하여 선택적으로 메인유닛(101)으로 전달한다.
볼륨스위치(122)는 통상적으로 볼륨스위치플러스와 볼륨스위치마이너스의 두 개의 버튼스위치입력으로 구성되는데 볼륨뿐만이 아니고 다양한 어플리케이션프로그램에서 이를 사용한다. 예를 들어 화면의 밝기를 조정하거나 진동세기를 조절하는 경우에도 이 스위치를 사용한다. 또한 볼륨스위치마이너스 입력과 전원스위치(123)를 동시에 누름으로써 화면을 캡처할 수도 있는 등 다양하게 사용된다.
다음으로, 전원스위치(123)는 데이터저장유닛(110)에만 연결(더 정확하게는, 데이터저장유닛(110)에 위치한 전원제어회로(미도시)에 연결)할 수도 있으나, 도 3의 구성에서는 더 바람직하게 전원스위치(123)의 신호가 데이터저장유닛(110)에 연결됨과 함께 OR게이트(132)의 한쪽 입력으로 연결되고, 데이터저장유닛(110)이 제어하는 가상전원스위치출력(131)이 OR게이트(132)의 다른 한쪽 입력에 연결되어 메인유닛(101)으로 입력되도록 하였다. 이와 같이 전원스위치(123)를 데이터저장유닛(110)과 메인유닛(101)의 양쪽 모두에 연결하고 전원제어회로(미도시)를 메인유닛(101)에 위치시키는 것이 설계상 바람직하다.
다음으로 터치스크린유닛(121)은 일반적으로 업체별로 특화된 방식으로 제조되고는 있으나 최종적으로는 레지스터를 읽어들이는 형태로 구현되어 온도, 좌표, 접촉압력 등을 사용자에게 제공한다. 터치스크린유닛(121)은 보통 정전용량식과 저항식의 두가지가 널리 사용되는데 대부분 전용콘트롤러가 AD컨버젼 등 필요한 부분을 담당하고 I2C(Inter-Intergrated Circuit) 버스나 USB와 같은 직렬통신버스를 통해서 메인유닛(101)에 연결되어 해당 드라이버프로그램이 데이터통신을 통해서 좌표 등을 읽어 OS나 어플리케이션프로그램에 제공한다. 펜을 사용하는 경우에는 인터럽트를 사용하여 고속처리를 하는 경우도 있으나 일반적으로는 기기들의 고속동작에 비해서 사람의 손동작이 매우 느리기 때문에 폴링방식으로 터치여부를 감지하고 데이터를 읽어온다. 본 실시예에서는 데이터저장유닛(110)이 터치스크린유닛(121)과의 인터페이스를 위하여 I2C 통신인터페이스를 갖추는 것으로 가정한다.
한편 앞서 설명한 바와 같이 본 실시예의 경우 사용자는 4개의 가상컴퓨터를 사용할 수 있다. 이렇게 가상컴퓨터로 정보를 분산함으로써 휴대폰의 보안은 크게 향상된다. 예를 들어 가상컴퓨터A에는 보안이 필요한 연락처정보, 대화앱(전화, 문자메세지, 메신저 등), 카메라, 소셜미디어 앱, 금융업무 앱을 위치시키고, 가상컴퓨터B에는 노출되어도 문제없는 연락처정보, 대화앱(전화, 문자메세지, 메신저 등), 카메라, 소셜미디어 앱을 위치시키고, 가상컴퓨터C에는 인터넷검색, 신문사, 방송사, 쇼핑과 같은 앱을 위치시킬 수 있다.
또한 가상컴퓨터B를 추가적인 앱의 설치나 사용중인 앱의 삭제를 불가능하게 설정하였다고 가정하면, 휴대폰 수리를 맡기더라도 사용자는 가상컴퓨터B의 사용자인증B만을 제공함으로써 기능을 충분히 점검할 수 있으므로 가상컴퓨터A의 내용은 노출을 피할 수 있다. 또한 가상컴퓨터C는 CDMA통신이 불가능하므로 무선랜과 같은 통신으로만 사용이 가능하게 된다.
이제 사용자가 전원스위치(123)를 길게 누르면 OR게이트(132)의 한쪽 입력과 데이터저장유닛(110)에 동시에 입력이 인가되고 OR게이트(132)의 출력은 'ON'을 의미하는 신호가 발생하여 메인유닛(101)에 전달된다. 이에 따라 전원제어회로(미도시)가 동작하여 각 부분에 전원을 공급함으로써 부팅이 시작된다. 전원이 최초로 인가되면 데이터저장유닛(110)은 주 가상컴퓨터A가 선택된 것으로 가정하고 작업을 시작한다. 따라서 부팅은 일단 가상컴퓨터A의 구조정보(111)를 이용하여 진행된다. 따라서 이 시점에서 활성화되어 제공되는 파일시스템은 구조정보A(111)에 따라 결정된다. 그러나 이 기능은 사용자가 설정으로 바꿀 수도 있다. 즉 전원 최초인가시에 사용할 가상 컴퓨터의 정보를 사용자가 사용자설정정보에 입력하면, 이를 메인유닛(101)이 데이터저장유닛(110)에 전달하고, 데이터저장유닛(110)은 부트시에 이 정보를 기준으로 제공할 파일시스템을 정할 수 있다.
이제 메인유닛(101)이 사용자인증화면을 제시한 경우에 대해 살펴보자. 기존 휴대폰은 사용자인증화면을 제시할 때 사용자인증이 PIN이면 PIN입력화면만을, 패턴이면 패턴입력화면만을 제시하는데, 본 발명의 경우에 기존 방식을 사용하면 다른 종류의 사용자인증을 사용하는 경우에 문제가 발생한다. 따라서 본 발명의 경우에는 기존 사용자인증과정에 변형이 필요하다. 즉 메인유닛(101)은 PIN -> 패턴입력 -> 패스워드입력의 순서로 사용자인증화면을 바꾸어가며 제시하게 되는데 이는 볼륨스위치플러스를 사용자가 누름으로써 가능하다. 즉 매번 볼륨스위치플러스가 눌려지면 이를 데이터저장유닛(110)이 읽어 메인유닛(101)로 전달하고 이에 따라 메인유닛(101)이 다른 방식의 사용자인증입력화면을 제시하여 종류에 관계없이 사용자인증이 가능토록 한다.
따라서 최초에 사용자인증화면은 PIN입력화면이 될 것인데 사용자가 볼륨스위치플러스를 누르면 패턴입력화면으로 변경된다. 이제 이 상황에서 사용자가 패턴입력을 하였는데 그 사용자입력정보가 사용자인증B라고 하면 휴대폰은 가상컴퓨터B로 전환을 시작한다.
그런데 터치스크린유닛(121) 입력을 해석하기 위해서는 현재 사용자에게 제시된 사용자인증화면의 구성을 데이터저장유닛(110)도 알아야 한다. 즉 터치된 지점의 좌표나 압력 등의 정보는 데이터저장유닛(110)이 읽을 수 있으나 이 값들이 무엇을 의미하는지 해석하는 것은 사용자인증화면구성에 대한 정보가 없이는 불가능하다. 따라서 메인유닛(101)이 사용자인증화면구성에 대한 정보를 데이터저장유닛(110)에 제공하는 작업이 필요할 수 있다.
휴대폰이 아니라 노트북과 같은 컴퓨터에서도 비슷한 상황이 발생할 수 있다. 예를 들어 패스워드를 키보드로 입력하는 경우에는 키보드가 데이터저장유닛으로 연결되므로 키 값을 바로 데이터저장유닛도 인지할 수 있으나 가상키패드가 주어지고 마우스를 입력장치로 사용하는 경우에는 위와 유사한 상황이 발생한다.
따라서 터치스크린으로 문자나 숫자를 입력받기 위해서는 화면에 키패드를 제시하고 제시된 키패드의 위치를 메인유닛(101)이 데이터저장유닛(110)에게 전달하고 데이터저장유닛(110)에서 실행되는 터치스크린유닛(121)의 드라이버프로그램이 좌표와 입력정보 등을 읽을 수 있다. 데이터저장유닛(110)은 이 정보와 화면상의 키패드위치를 비교하여 입력정보를 결정한다. 이렇게 하나의 키값이 결정되면 데이터저장유닛(110)은 하나의 키값이 결정되었음을 메인유닛(101)에 통보하고 메인유닛(101)은 '*'표시를 입력창에 표시한다. 이와같은 과정이 반복되고 엔터키(또는 OK키)가 입력되면 데이터저장유닛(110)은 가상컴퓨터들 중 사용자인증정보로 PIN을 사용하는 것을 찾아 저장된 식별정보와 비교한다. 식별정보와 입력받은 사용자인증정보가 일치하면 해당 가상컴퓨터의 활성화를 위한 작업이 시작된다. 이 경우 데이터저장유닛(110)은 메인유닛(101)에 PIN정보 그 자체를 보내는 것이 아니라 메인유닛(101)과의 통신인터페이스로 사용자인증이 완료되었음을 통지한다.
한편 사용자인증정보를 패턴으로 입력받는 경우도 유사하게 진행된다. 보통은 패턴점들이 격자를 이뤄 화면에 표시되고 이 점들을 순서대로 연결하면 패턴이 된다. 사용자가 패턴으로 입력하는 경우 패턴점으로 형성된 격자상의 첫 번째 점을 터치하고 손가락을 떼지 않고 움직이게 되면 이 움직임이 순서대로 보고되고 움직임 속에 격자상의 패턴점을 터치할 때마다 순서대로 점들이 배열된다. 최종적으로는 패턴점들을 잇는 데이터열이 식별을 위한 패턴입력정보가 된다.
패턴입력시 데이터저장유닛(110)은 입력되는 터치좌표를 메인유닛(101)에 송신하고 메인유닛(101)은 이를 화면에 표시한다. 한편 데이터저장유닛(101)은 패턴점들을 잇는 데이터열을 가상컴퓨터들중 사용자인증정보로 패턴입력을 사용하는 것을 찾아 저장된 식별정보와 비교한다. 식별정보와 입력받은 사용자인증정보가 일치하면 해당 가상컴퓨터의 활성화를 위한 작업이 시작된다. 이 경우 데이터저장유닛(110)은 메인유닛(101)에 좌표들을 보내지만 메인유닛은 표시만 할뿐 아무런 추가작업도 하지 않는다. 메인유닛(101)은 데이터저장유닛(110)으로부터 사용자인증의 성공여부를 통지받는데, 실패인 경우에는 다시 사용자인증화면을 제시하고 성공인 경우에는 다음 단계를 진행하여 사용자에게 준비된 가상컴퓨터를 사용하게 한다..
한편 사용자인증화면의 구성을 항상 동일하게 가져간다면, 즉 사용자인증에 사용되는 키패드의 위치와 패턴점격자의 위치를 고정한다면, 메인유닛(101)으로부터 화면정보를 제공받지 않아도 데이터저장유닛(110)이 독자적으로 사용자식별정보를 분석하는 것도 가능하다. 실제로 대부분의 휴대폰은 사용자인증화면은 인증방식에 따라 항상 같은 화면이 제시되므로, 이런 방식으로 구현하는 것이 바람직하다.
이제 다시 가상컴퓨터B로의 전환과정을 보자. 가상컴퓨터A로 부팅되었지만 사용자입력정보가 사용자인증B이므로 가상컴퓨터B로 전환을 해야 한다. 만일 분석결과 현재 활성화되어 사용중인 가상컴퓨터A에 대한 인증이라면 전환동작은 실행되지 않는다.
전환을 위해서 데이터저장유닛(110)은 가상컴퓨터B의 구조정보B(112)를 확인한 후 이에 따라 준비작업을 수행하고 메인유닛에는 구조전환정보를 전달한다. 이때 구조정보에는 가상컴퓨터의 구조에 관한 모든 정보가 포함되는데 파일시스템의 구성정보와 구조를 전환하기 위하여 메인유닛(101)이 참고해야 할 구조전환에 필요한 정보가 포함된다.
먼저 파일시스템 구성정보(115)는 해당 가상컴퓨터가 사용할 파일시스템이 어떻게 구성되는지에 대한 정보인데 OS와 어플리케이션프로그램에 대한 정보나 데이터 그 자체를 포함하여 구성할 수 있다. 예를 들면 파일시스템 구성정보(115)는 아래와 같이 표시할 수 있다.
만일 가상컴퓨터B의 파일시스템구성정보(115)가 [FileSyetemB, SAVED], ['삼성전화', ComputerA], ['삼성메세지', CompuetrA], ['삼성카메라', code0], ['페이스북', code1], ['틱톡', NO_USE]로 설정되어 있다면, 데이터저장유닛(110)은 자신이 보관중인 OS복사본(주 가상컴퓨터OS의 복사본)을 가져오고, 어플리케이션프로그램 '삼성전화'와 '삼성메세지'의 데이터는 가상컴퓨터A의 파일시스템에서 가져오며, '삼성카메라'는 저장위치 code0에서, '페이스북'은 저장위치 code1에서 가져와 가상컴퓨터B의 파일시스템을 구성하고 사용자설정정보에 따라 처음으로 할당된 사용자데이터저장공간 또는 기존에 가상컴퓨터B가 사용중인 사용자데이터저장공간을 추가하여 파일시스템을 구성하게 된다.
그러나 이렇게 구성하면 저장공간을 줄일 수는 있으나 데이터이동에 시간이 걸릴 수 있으므로 OS와 어플리케이션프로그램을 포함한 완전한 데이터블록으로 관리하는 것이 보다 바람직하다. 따라서 본 실시예에서는 구성정보가 [FileSystem B, BLOCK], [0x100000,0x1fffff]로 설정되어 가상컴퓨터B의 파일시스템은 데이터저장유닛(110)이 관리하는 저장공간중 클러스터 0x100000~0x1fffff 사이에 위치하는 것으로 한다. 참고로 이 데이터블럭 안에는 부트가 가능하도록 구성된 OS를 포함하여 어플리케이션프로그램 '삼성전화', '삼성메세지', '삼성카메라', 및 '페이스북'이 모두 설치되어 있는 것이고 가상컴퓨터B의 사용자데이터저장공간도 포함되어 있는 것이다. 이 경우 나중에 사용자가 해당 가상컴퓨터를 사용함으로써 OS나 어플리케이션프로그램들이 생성하는 데이터들도 파일시스템에 기록된다. 따라서 구조전환절차가 종료되면 사용자는 마치 SSD나 HDD가 교체된 다른 컴퓨터를 사용하는 것처럼 느낄 수 있다.
이제 가상컴퓨터B가 활성화 되어야 하므로 데이터저장유닛(110)은 가상컴퓨터B의 파일시스템을 클러스터 0x000000~0x0fffff로 매핑하여 제공준비를 마치고 메인유닛(101)에 구조전환정보(116)를 전달하며, 메인유닛(101)은 데이터저장유닛(102)으로부터 전달받은 구조전환정보(116)에 따라 구조전환절차를 이행하여, 컴퓨터는 새로운 가상컴퓨터로 전환된다. 이때 구조전환정보(116)에는 가용리소스정보, OS의 재시작점, 어플리케이션프로그램의 재실행에 대한 정보 중 최소한 어느 하나가 포함될 수 있다. 예를 들어 구조전환정보(116)는 다음과 같이 구성된다.
따라서 가상컴퓨터B의 구조전환정보(116)가 다음과 같이 표시된다면
메인유닛(101)은 가상컴퓨터B가 CDMA를 포함한 WiFi 및 블루투스통신 기능을 사용하고 구조전환시에 OS는 처음부터 다시 시작하고 현재 활성화되어 사용중인 가상컴퓨터에서 실행중인 어플리케이션프로그램을 가상컴퓨터B에서 자동으로 실행할 필요는 없다는 것을 인지하게 된다.
만일 가상컴퓨터A와 가상컴퓨터B가 동일한 OS를 가진다면, OS 전체를 재로드(reload)하기보다는 악성코드 오염가능성을 최소화시키면서 전환시간을 최소화시키는 형태로 OS의 재시작도 가능하다.
한편 전환과정을 빠르게 하기 위해서는 메인유닛(101)과 데이터저장유닛(110) 사이에 통신인터페이스에 하드웨어적인 인터럽트(Interrupt)신호(133)를 사용할 수 있다. 즉 데이터저장유닛(110)이 인터럽트신호(133)를 출력하면 지체없이 메인유닛(101)이 인터럽트 루틴에서 이를 처리함으로써 빠른 전환이 가능하다.
이제 메인유닛(101)이 준비상태를 데이터저장유닛(110)에 통보하고 대기하면, 데이터저장유닛(110)은 위에서 설명한 매핑을 포함한 필요 작업들을 실행하여 파일시스템을 전환하고 이를 메인유닛(101)에 통보한다. 메인유닛(101)은 통보를 받으면 콜드스타트이므로 부트스트랩로더를 호출하여 OS의 로드를 비롯한 부팅과정을 새롭게 진행하여 가상컴퓨터A에서 가상컴퓨터B로의 전환을 완료한다.
위의 실시예는 가상컴퓨터B의 데이터블럭 안에 부트가 가능하도록 구성된 OS를 포함하여 어플리케이션프로그램 '삼성전화', '삼성메세지', '삼성카메라', 및 '페이스북'이 모두 설치되어 있는 것이고 가상컴퓨터B의 사용자데이터저장공간도 포함되어 있는 경우이다. 그러나 현재 사용중인 가상컴퓨터에서 OS는 그대로 두고 사용자데이터저장공간과 어플리케이션프로그램관련 저장공간만 바꾸어서 다른 가상컴퓨터로 전환하는 것도 가능하다.
이 경우에 구조전환정보(116)는 아래와 같이 표시될 수 있다.
이 경우 메인유닛(101)은 실행중인 어플리케이션프로그램을 중지시키고 리스트만을 보관하고, 데이터저장유닛(110)이 가상컴퓨터B의 파일시스템으로 지정된 블록을 사용자데이터 저장공간으로 매핑한 후 메인유닛(101)에 대기종료를 통보하면 메인유닛(101)이 리스트의 어플리케이션프로그램을 재실행 함으로써 전환을 완료하게 된다. 한편 상기 파일시스템구성정보에서 ['틱톡', NO_USE]라고 되어 있어 데이터저장유닛(110)은 메인유닛(101)이 틱톡의 실행프로그램을 액세스할 때 이를 거절함으로써 사용이 못하도록 통제할 수 있다.
이제 컴퓨터(100)는 잠금상태가 아니고 전환도 종료되었으므로 데이터저장유닛(110)은 입력유닛(120)으로 입력되는 정보들을 그대로 메인유닛(101)으로 전달하게 된다. 그러다가 컴퓨터(100)가 일시적으로 잠금에 들어가면 메인유닛(101)은 잠금되었음을 데이터저장유닛(110)에 전달한다. 그러나 메인유닛(101)이 정보를 전달하지 않더라도, 잠금과 관련된 정보 즉 무입력대기시간, 전원스위치입력정보, 폴더형의 경우 힌지스위치입력정보 등을 감안하여 제조사가 데이터저장유닛(110)이 독자적으로 잠금과 해제를 판단할 수 있도록 구현하는 것도 충분히 가능하다. 또한 사용자에게 잠금해제시 볼륨스위치(122)나 전원스위치(123)를 동시에 누른 상태에서 잠금을 해제하는 동작을 하도록 함으로써 데이터저장유닛(110)이 독립적으로 잠금해제 순간을 인식하도록 할 수도 있다.
이제 사용자가 잠금을 해제하려 하면 메인유닛(101)은 잠금해제과정이 시작되었음을 데이터저장유닛(110)에 전달한다. 이에 따라 데이터저장유닛(110)은 위에서 언급했던 과정을 거쳐서 사용자인증정보를 입력받아 분석하는 동작을 재개한다.
다음으로 가상컴퓨터가 다른 가상컴퓨터로 전환되는 과정에서 사용자의 불편을 최소화시키려면 다양한 기능이 필요하게 된다. 즉 메인유닛(101)이나 데이터저장유닛(110)은 협조작업 혹은 단독작업으로, 현재 활성화되어 사용중인 가상컴퓨터와 새롭게 활성화되어 사용 예정인 가상컴퓨터 사이에 공유해야 하는 정보가 있는 경우, 사용자설정정보에 따라 공유정보의 내용과 형식정보들을 함께 보관하였다가 구조전환절차가 마무리되면 공유정보를 동일한 방식으로 새로운 가상컴퓨터에서 사용할 수 있도록 할 수 있다. 예를 들어 가상컴퓨터A에서 메시지나 사진, 노트패드나 메모장에 기록된 정보, 파일 등을 복사해서 가상컴퓨터B에서 사용할 수 있는 기능이 제공되면 편리할 것이다.
이를 위해서 메인유닛(101)과 데이터저장유닛(110)에는 협조작업이나 단독작업을 위한 프로그램이 실행된다. 이 때 메인유닛에서 실행되는 프로그램은 메인유닛(101)의 프로그램실행환경에 맞추어 구현되고, 데이터저장유닛(110)에서 실행되는 프로그램은 데이터저장유닛의 프로그램실행환경에 맞추어 구현되어야 한다.
이와 같은 과정은 가상컴퓨터의 전환과정에서 메인유닛(101)이 이동해야 할 정보의 위치와 형식을 데이터저장유닛(110)에 통보하고 데이터저장유닛(110)이 해당 정보를 새로운 가상컴퓨터에 같은 형식으로 제공함으로써 가능하다. 예를 들어 가상컴퓨터A에서 문자메세지를 복사한 것이 클립보드에 기록되어 있다면 메인유닛(101)이 클립보드의 정보를 읽어 데이터저장유닛(110)에 이동대상정보로 통보하고 데이터저장유닛(110)이 이 정보를 가상컴퓨터B의 파일시스템의 클립보드에 추가함으로써 이동이 가능하다. 또한 어플리케이션프로그램이 해당 기능을 가지고 있어 직접 데이터저장유닛(110)에 이동대상정보 내용과 형식을 전달하고 전환이 완료된 후 데이터저장유닛(110)이 해당 어플리케이션프로그램에 이동대상정보를 다시 전달하여 이동대상정보의 내용을 형식에 맞춰 기록토록 함으로써 데이터의 이동이 가능하다.
한편 현재 활성화되어 사용중인 가상컴퓨터에서 비활성화된 가상컴퓨터의 구조정보들을 참조할 수 있다. 즉 현재 활성화되어 사용중인 가상컴퓨터의 메인유닛이 비활성화된 가상컴퓨터의 구조정보에 포함된 정보를 요청하는 경우, 사용자가 이를 허용한 때 이를 확인하여 제공할 수 있다. 예를 들면 사용자가 가상컴퓨터A와 가상컴퓨터B를 사용하는데 가상컴퓨터A에는 개인연락처가 가상컴퓨터B에는 업무용 연락처가 존재한다고 가정하자. 또한 개인연락처와 업무용연락처를 통합한 통합연락처는 데이터저장유닛(10)이 자신의 독자적인 저장공간에 보관하고 필요시 제공한다고 가정하자. 이 경우 사용자가 가상컴퓨터A를 사용중에 가상컴퓨터B에만 존재하는 업무용연락처에 기재된 상대방쪽에서 대화요청(예를 들면 메신저나 전화, 문자메세지가 도착했을 때)이 있다면 상대방의 신원은 표시되지 않는 상태로 대화요청이 전달될 것이다. 이 때 사용자는 대화를 진행하거나 대화가 기설정한 방식으로 거절되는 것을 사용자가 설정할 수 있다.
예를 들어 MR.BACH라는 인물이 가상컴퓨터B에 전화번호 555-1234-5678 이라는 번호로 등록되어 있다고 가정하자. 따라서 가상컴퓨터A를 사용하는 중에 MR.BACH로부터 전화가 오면 발신자는 'MR.BACH'가 아니라 '555-1234-5678'로 표시된다. 이 때 '삼성전화' 프로그램에서 연락처명단에 없는 상대방으로부터 전화가 온 경우 '지금은 회의중입니다.'라는 메시지를 발송하고 전화를 끊도록 설정할 수 있다.
그런데 이 경우 메인유닛(101)은 누구인지 모르는 상대방이 다른 가상컴퓨터 파일시스템의 연락처에 등재되어 있는지를 데이터저장유닛(110)에 질문하고 데이터저장유닛(110)이 이를 확인하는 작업이 가능하다. 이 때 데이터저장유닛(110)은 내부적으로 통합연락처를 검색하거나 가상컴퓨터B의 구조정보B(112)를 참고하여 가상컴퓨터B의 파일시스템에서 연락처명단을 확인하여 답변하게 된다. 한편 이렇게 확인된 정보는 가상컴퓨터A의 상태정보표시에 반영하는 것이 가능하다.
위의 사례에서 '삼성전화' 프로그램이 해당 전화번호를 OS의 관련프로그램을 호출해서 데이터저장유닛(110)에 '555-1234-5678'를 전달하여 연락처명단에 있는지 확인요청을 하고 그 결과를 받아 발신자표시를 '555-1234-5678'에서 'MR.BACH'로 바꾸는 것이 가능하다.
다음으로 가상컴퓨터A를 사용중에 가상컴퓨터B의 구조정보B(112)에만 포함된 상대방과의 대화가 진행되면 이 대화를 현재 활성화된 가상컴퓨터A가 대화내용을 기록하였다가 가상컴퓨터B로 전달할 수 있다. 즉 메인유닛(101)이 상대방 연락처가 가상컴퓨터B의 연락처에 포함되었음을 확인하면 관련내용을 데이터저장유닛(110)에 전달하고 이를 데이터저장유닛(110)이 가상컴퓨터B의 파일시스템에 반영할 수 있다.
예를 들어 상기와 같이 MR.BACH의 대화시도가 있는 경우에 전화받기가 자동거절되었다면 통화기록에 남게 된다. 그런데 가상컴퓨터B에는 MR.BACH와의 통화기록이 이미 존재한다. 이 경우 두 기록은 합쳐지는 것이 사용자에게 편리하다. 이 경우에 앞서 이동대상정보관리기능을 갖춘 가상컴퓨터A의 '삼성전화' 프로그램이 이동대상정보를 만들어 가상컴퓨터B의 '삼성전화' 프로그램에게 전달하는 방식으로 통화기록을 이전하여 통합할 수 있다.
다음으로 사용자가 연락처를 이동시키는 경우를 생각해 보자. 휴대폰이나 태블릿같이 외부와 이동통신이 가능한 휴대용 컴퓨터의 경우에는 이런 상황이 빈번하게 발생할 수 있다. 예를 들어 사용자가 연락처를 가상컴퓨터A에서 가상컴퓨터B로 옮기는 경우 그동안 해당 연락처와 주고받은 기록의 처리방안이 필요하다. 이 때 연락처가 옮겨지면 가상컴퓨터A에서는 관련기록을 삭제하거나 그대로 두고 연락처가 없어졌으므로 전화번호로만 신원을 표시하며 처리할 수 있다.
이 때 가상컴퓨터B에 가상컴퓨터A의 관련기록을 이동시킨다면 매우 편리할 것이다. 이를 위해서는 관련기록의 데이터구조를 파악하여 프로그램하는 것이 필요한데 위에서 언급한 바와 같이 해당 어플리케이션프로그램의 공급자가 제일 적당하다.
예를 들면 '삼성전화' 프로그램을 수정하여, 분리된 두 개의 연락처정보와 통화기록을 하나로 통합하는 기능을 구현하고 '삼성전화' 프로그램이 주 가상컴퓨터에서 실행되는 경우에는 데이터저장유닛(110)에 요청을 해서 다른 가상컴퓨터가 사용하는 연락처와 통화기록을 받을 수 있도록 추가적으로 기능을 구현하는 방식으로 해결이 가능하다. 이외에도 사진이나 기타 파일 등 구분이 쉽게 가능한 파일시스템 객체들은 가상컴퓨터 사이를 옮겨다니는 것이 가능하다. 예를 들어 사진을 가상컴퓨터B에서 가상컴퓨터A로 옮기는 경우를 살펴보자. 사용자가 주 가상컴퓨터A에 접속하여 사용자설정메뉴에서 데이터이동을 선택하면 사용자설정프로그램은 데이터저장유닛(110)에 가상컴퓨터B의 파일시스템상 각 파일들의 전체 접근경로와 파일들의 내용에 대한 정보를 요구하고 데이터저장유닛(110)은 가상컴퓨터B의 파일시스템구조정보를 참고하여 관련정보를 사용자설정프로그램에 제공한다. 사용자설정프로그램은 이를 이용하여 사진이 저장된 디렉토리들을 찾아 파일들의 세부내용을 보여주고 사용자는 이동하려는 파일이나 사진들을 표시하게 한다. 표시가 종료되고 사용자가 이동을 명령하면 사용자설정프로그램은 해당 파일들의 정보를 데이터저장유닛(110)에 요청하여 이를 수신한 후 가상컴퓨터A 파일시스템의 사진저장디렉토리에 저장하게 된다.
다음으로 자동으로 가상컴퓨터가 전환되는 경우를 살펴보자. 예를 들어 사용자는 사용자설정정보에 전환시간과 전환해야 할 가상컴퓨터이름을 입력하는 방식으로 시간을 기준으로 가상컴퓨터를 전환시킬 수 있다. 예를 들어 '09:00~18:00시 사이에 가상컴퓨터A'로 설정하면 해당 시간대에 가상컴퓨터A로의 전환이 자동적으로 적용된다. 즉 이 시간대에 들어가면 컴퓨터는, 현재 활성화된 컴퓨터가 가상컴퓨터A가 아닌 경우 가상컴퓨터A로 전환하기 위한 절차를 시작한다.
또한 사용자는 지도상에서 영역을 선택하거나 주소를 입력하는 방식으로 자신의 위치에 따라 가상컴퓨터를 전환시킬 수 있다. 예를 들어 대한민국 서울시를 가상컴퓨터A로 설정하면 GPS가 컴퓨터의 위치가 서울시에 있을 때는 가상컴퓨터A로 전환하기 위한 절차를 시작한다. 예를 들면 사용자가 서울외곽에서 가상컴퓨터B로 사용중에 서울로 진입하면 가상컴퓨터A로 전환하기 위한 절차를 시작한다.
또한 사용자는 특정 디바이스가 연결되는 상황에서 가상컴퓨터A를 사용하는 것으로 지정할 수 있다. 예를 들어 특정 위치와 특정 이름의 무선랜에 컴퓨터가 연결되는 경우 또는 특정 이름의 블루투스디바이스가 연결되는 경우 가상컴퓨터A 사용을 설정할 수 있다. 즉 해당 유닛들이 연결되면, 현재 사용중인 구조가 가상컴퓨터A가 아닌 경우, 컴퓨터는 자동으로 가상컴퓨터A로 전환하는 절차를 진행한다
한편 상기 기능들을 구현하기 위해서는 데이터저장유닛(110)이 GPS데이터의 위치정보, 시간정보, 또는 해당 블루투스의 접속상태와 같은 정보를 알아야 하는데, 이는 메인유닛(101)에서 실행되는 GPS드라이버프로그램, 블루투스드라이버프로그램, 또는 OS가 주기적으로 데이터저장유닛(110)이 지정한 보고공간에 해당 데이터를 써놓고 이를 데이터저장유닛이 주기적으로 참고하는 방식으로 해결 가능하다.
한편 상기 자동전환은 데이터저장유닛(110)으로부터 시작된다. 데이터저장유닛(110)은 주기적으로 가상컴퓨터의 전환조건을 점검하여 전환이 필요하면, 사용자입력정보에 따라 가상컴퓨터를 전환하는 것과 동일한 방법으로 전환절차를 진행한다.
그런데 이 때 사용자인증정보를 구조변경명령을 의미하는 것으로 사용하는 경우에 사용자인증정보를 처리하는 과정이 필요하게 된다. 이 경우 데이터저장유닛(110)은 메인유닛(101)에 가상컴퓨터로 전환하기 위한 사용자인증을 받아야 함을 알리고 메인유닛(101)과 협력작업을 통해서 해당 사용자인증이 진행되면, 해당 사용자인증의 가상컴퓨터 구조정보에 따라 준비작업을 진행하고 전환절차를 진행한다.
예를 들면 사용자인증절차는 아래와 같이 진행될 수 있다. 먼저 데이터저장유닛(110)이 컴퓨터가 잠금된 것으로 제1가상입력정보를 만들어 메인유닛(101)에 전달하고 잠시 후에 잠금을 풀려는 사용자의 시도가 있는 것처럼 제2가상입력정보를 만들어 다시 메인유닛(101)에 전달함으로써 새로운 사용자인증정보를 받도록 유도할 수 있다. 예를 들면 전원스위치(123)를 가볍게 눌렀다 떼면 잠금이 이뤄지고 이 상태에서 다시 전원스위치(123)를 가볍게 눌렀다 떼면 잠금해제를 위한 사용자인증절차를 진행한다. 따라서 본 발명과 같이 입력유닛(120) 중 하나인 전원스위치(123)를 데이터저장유닛(110)이 함께 관리하면 사용자인증도 처리하면서 잠금해제 동작으로 가상컴퓨터 사이의 전환이 가능해진다.
다음으로 본 발명에 따른 가상컴퓨터는 대화창이나 문자메세지를 통하여 이뤄지는 악성코드의 감염에 대응하기 위하여 사용자가 해당 링크를 누르는 경우 기설정된 가상컴퓨터를 활성화시킨 후 가상컴퓨터내에서 링크를 활성화시킬 수 있다. 예를 들면 가상컴퓨터T는 사용자가 링크를 누를 때 활성화되는 것으로 OS와 악성코드감지 프로그램이 포함된 파일시스템을 가지도록 구성될 수 있다. 메인유닛(101)은, 사용자가 링크를 눌러 링크에 포함된 새로운 코드를 자신이 실행해야 하는 경우에, 사용자가 허용한 경우가 아니라면 해당 링크를 실행하지 않고 이동대상정보로 해당 링크를 처리하고 데이터저장유닛(110)에 가상컴퓨터T의 구조정보에 따라 가상컴퓨터로 전환하여 이동대상정보인 링크정보를 전달하고 실행을 요청한다. 이에 따라 데이터저장유닛(110)은 가상컴퓨터T로 전환하는 절차를 수행하고 전환이 완료되면 이동된 해당 링크를 가상컴퓨터T에 전달하여 실행시키도록 한다.
따라서 링크가 악성코드의 설치를 유도한 것이었다면 악성코드는 사용자의 개인정보는 아무것도 없는 빈 가상컴퓨터T에 설치되므로 피해가 전혀 없게 된다. 이때 사용자는 잠금과 해제과정을 통하여 원래 사용중이던 가상컴퓨터에 다시 접속함으로써 작업을 계속할 수 있다. 이 때 필요시에 원래 사용중이던 가상컴퓨터를 비활성화 하기 전에 사용중이던 어플리케이션프로그램정보를 데이터저장유닛(110)이 보관하였다가 다시 전달하여 자동으로 재실행될 수 있다.
한편 사용자는 가상컴퓨터T에 포함된 악성코드제거프로그램을 구동시켜 악성코드를 제거하거나 주 가상컴퓨터A의 사용자설정프로그램에서 가상컴퓨터T를 리빌드함으로써 악성코드를 제거할 수 있다.
지금까지 본 발명의 바람직한 실시예를 통하여 본 발명을 상세히 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 명세서에 개시된 내용과는 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다. 또한 본 발명의 보호범위는 상기 상세한 설명보다는 후술한 특허청구범위에 의하여 정해지며, 특허청구의 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태는 본 발명의 기술적 범위에 포함되는 것으로 해석되어야 한다.
100 컴퓨터(휴대폰), 101 메인유닛, 110 데이터저장유닛, 111 구조정보A, 112 구조정보B, 113 구조정보C, 114 구조정보T, 115 파일시스템구성정보, 116 구조전환정보, 120 입력유닛, 121 터치스크린유닛, 122 볼륨스위치, 123 전원스위치, 124 구조전환스위치, 131 가상전원스위치출력, 132 OR게이트, 133 인터럽트신호

Claims (20)

  1. 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터로,
    OS와 어플리케이션프로그램이 실행되고 CPU와 메모리를 포함하여 구성되는 메인유닛;
    메인유닛과 연결되는 데이터저장유닛; 및
    데이터저장유닛에 연결되고 사용자입력정보를 입력받는 입력유닛을 포함하되,
    상기 사용자입력정보는 상기 데이터저장유닛으로 입력되어, 상기 데이터저장유닛 내에서 복수의 가상컴퓨터들 중 하나로 구조전환을 실행해야 하는지를 결정하기 위하여 상기 메인유닛과 독립적으로 분석처리되고;
    상기 분석처리에 따라 상기 데이터저장유닛은, 상기 메인유닛에 데이터를 전달하지 않고 사용자입력정보를 삭제하는 동작, 메인유닛에 사용자입력정보의 원본을 전달하는 동작, 및 상기 메인유닛에 사용자입력정보의 분석결과에 따른 상응정보를 전달하는 동작 중 하나 이상을 수행하고;
    상기 데이터저장유닛은, 사용자입력정보가 구조전환을 의미하여 구조전환을 실행해야 하는 경우, 상응하는 사용자설정정보가 설정한 구조정보에 따라 활성화시킬 가상컴퓨터의 파일시스템을 결정하고 해당 가상컴퓨터로의 구조전환을 위한 준비작업을 수행하여 상기 메인유닛에 구조전환정보를 전달하고;
    상기 메인유닛은 상기 데이터저장유닛으로부터 전달받은 상기 구조전환정보에 따라 구조전환절차를 이행하여 다른 가상컴퓨터를 활성화하여 전환하는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  2. 삭제
  3. 제1항에 있어서, 상기 준비작업에는
    현재 활성화된 가상컴퓨터가 사용중인 파일시스템과 관련된 작업들을 종료하고 사용자입력정보에 따라 복수의 파일시스템들 중 활성화되어야 할 파일시스템을 선택하여 활성화시키는 작업이 포함되는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  4. 제1항에 있어서, 상기 구조정보는
    어플리케이션프로그램의 사용이나 설치를 금지하는 정보가 포함된 파일시스템구성정보와,
    상기 메인유닛이 참조할 가용리소스정보, OS의 재시작점, 및 어플리케이션프로그램의 재실행에 관한 정보 중 최소한 하나가 포함된 구조전환정보를 포함하는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  5. 제1항에 있어서, 상기 구조전환을 의미하는 사용자입력정보는 사용자 인증정보인 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  6. 제3항에 있어서, 상기 파일시스템에 포함된 정보 중 일부는, 상기 데이터저장유닛이 관리하고 상기 메인유닛의 접근이 불가능한 저장장소에 별도 보관되는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  7. 제1항에 있어서, 상기 사용자입력정보는, 데이터저장유닛이 메인유닛으로부터 시간정보, 공간정보, 및 통신유닛의 연결유무정보 중 최소한 어느 하나를 전달받아 사용자설정정보와 비교하여, 새롭게 활성화되어야 할 가상컴퓨터정보를 포함시켜 생성하는 구조전환을 의미하는 정보인 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  8. 제1항에 있어서,
    상기 사용자입력정보는 사용자인증정보를 포함하고,
    상기 데이터저장유닛은 상기 메인유닛이 사용자인증을 구분하지 못하도록 상기 사용자입력정보 대신에 사용자인증의 통과 여부만을 전달하는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  9. 제1항에 있어서, 상기 메인유닛과 데이터저장유닛은 현재 활성화되어 사용중인 가상컴퓨터와 새롭게 활성화되어 사용예정인 가상컴퓨터 사이에 공유정보가 있는 경우, 공유정보의 내용과 형식을 포함하는 이동대상정보를 만들어 보관하였다가 상기 구조전환 절차가 마무리되면 이동대상정보를 새로운 가상컴퓨터에서 사용할 수 있도록 동작하는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  10. 제9항에 있어서, 상기 공유정보는 메시지, 복사되어 저장된 정보, 노트패드나 메모장에 기록된 정보, 및 파일 중 최소한 하나를 포함하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  11. 제1항에 있어서, 상기 데이터저장유닛은 현재 활성화되어 사용중인 가상컴퓨터의 메인유닛이 비활성화된 가상컴퓨터의 구조정보에 포함된 정보를 요청하는 경우 이를 제공하는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  12. 제1항에 있어서, 상기 복수의 가상컴퓨터는 사용자에 의해 설정된 주 가상컴퓨터를 포함하되, 주 가상컴퓨터의 설정정보에 다른 가상컴퓨터의 사용자인증정보와 사용자설정정보가 포함되는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  13. 제1항에 있어서, 가상컴퓨터 사용중에 사용자가 실행가능한 링크를 누르는 경우 기설정된 임시 가상컴퓨터를 활성화시킨 후 임시 가상컴퓨터 내에서 링크를 활성화시키는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  14. 제1항에 있어서, 상기 구조전환정보는 가용리소스정보, OS의 재시작점, 어플리케이션프로그램의 재실행에 대한 정보 중 최소한 하나를 포함하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  15. 제1항에 있어서, 상기 구조전환정보에 따라 이행되는 구조전환절차는 상기 데이터저장유닛이 인터럽트 신호를 상기 메인유닛으로 보내면 메인유닛이 인터럽트 루틴에서 처리하는 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  16. 제1항에 있어서, 상기 전환 가능한 구조를 갖는 컴퓨터는 개인용휴대기기인 것을 특징으로 하는, 복수의 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터.
  17. OS와 어플리케이션프로그램이 실행되는 메인유닛; 메인유닛과 연결되는 데이터저장유닛; 및 데이터저장유닛에 연결되고 사용자입력정보를 입력받는 입력유닛을 포함하는 전환 가능한 구조를 갖는 컴퓨터 상에서 복수의 가상컴퓨터들 간의 전환을 수행하는 방법으로서,
    상기 데이터저장유닛이 상기 입력유닛으로부터 사용자입력정보를 수신하여, 복수의 가상컴퓨터들 중 하나로 구조전환을 실행해야 하는지를 결정하기 위하여 상기 메인유닛과 독립적으로 분석처리하고;
    상기 데이터저장유닛이 상기 분석처리에 따라 상기 메인유닛에 데이터를 전달하지 않고 사용자입력정보를 삭제하는 동작, 메인유닛에 사용자입력정보의 원본을 전달하는 동작, 및 상기 메인유닛에 사용자입력정보의 분석결과에 따른 상응정보를 전달하는 동작 중 하나 이상을 수행하고;
    상기 데이터저장유닛이 상기 사용자입력정보를 분석하여 복수의 가상컴퓨터들 중 하나로 구조전환을 실행할 것인지를 결정하고, 구조전환을 실행해야 하는 경우에 사용자가 설정한 구조정보에 따라 활성화시킬 가상컴퓨터의 파일시스템을 결정하고 해당 가상컴퓨터로의 구조전환을 위한 준비작업을 수행하고 구조전환정보를 생성하여, 상기 메인유닛에 상기 구조전환정보를 전달하고;
    상기 메인유닛이 상기 데이터저장유닛으로부터 전달받은 상기 구조전환정보에 따라 구조전환절차를 이행하여 다른 가상컴퓨터를 활성화하여 전환하는 것을 포함하는, 전환 가능한 구조를 갖는 컴퓨터상에서의 가상컴퓨터들간 전환 방법.
  18. 제17항에 있어서, 상기 복수의 가상컴퓨터는 사용자에 의해 설정된 주 가상컴퓨터를 포함하되, 주 가상컴퓨터의 설정정보에 다른 가상컴퓨터의 사용자인증정보와 사용자설정정보가 포함되는 것을 특징으로 하는, 전환 가능한 구조를 갖는 컴퓨터상에서의 가상컴퓨터들간 전환 방법.
  19. 제17항에 있어서, 상기 구조전환을 실행해야 하는 사용자입력정보는 사용자 인증정보인 것을 특징으로 하는, 전환 가능한 구조를 갖는 컴퓨터상에서의 가상컴퓨터들간 전환 방법.
  20. 제17항에 있어서, 상기 메인유닛 및 데이터저장유닛 중 하나는 현재 활성화되어 사용중인 가상컴퓨터와 새롭게 활성화되어 사용예정인 가상컴퓨터 사이에 공유정보가 있는 경우, 공유정보의 내용과 형식을 포함하는 이동대상정보를 만들어 보관하였다가 상기 구조전환 절차가 마무리되면 이동대상정보를 새로운 가상컴퓨터에서 사용할 수 있도록 동작하는 것을 특징으로 하는, 전환 가능한 구조를 갖는 컴퓨터상에서의 가상컴퓨터들간 전환 방법.
KR1020210046710A 2021-02-19 2021-04-09 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법 KR102559952B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280015944.9A CN116897350A (zh) 2021-02-19 2022-02-17 具有虚拟计算机间可转换的结构的计算机及转换方法
PCT/KR2022/002369 WO2022177327A1 (ko) 2021-02-19 2022-02-17 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법
JP2023550140A JP2024518672A (ja) 2021-02-19 2022-02-17 仮想コンピュータ間変換可能な構造を有するコンピュータおよび変換方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210022464 2021-02-19
KR20210022464 2021-02-19

Publications (2)

Publication Number Publication Date
KR20220118876A KR20220118876A (ko) 2022-08-26
KR102559952B1 true KR102559952B1 (ko) 2023-07-27

Family

ID=83113231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210046710A KR102559952B1 (ko) 2021-02-19 2021-04-09 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법

Country Status (1)

Country Link
KR (1) KR102559952B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086202A1 (en) * 2011-09-29 2013-04-04 Comcast Cable Communications, Llc Multiple Virtual Machines in a Mobile Virtualization Platform
US20150089497A1 (en) * 2013-09-26 2015-03-26 Citrix Systems, Inc. Separate, disposable execution environment for accessing unverified content

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166067B2 (en) * 2008-12-26 2012-04-24 Sandisk Il Ltd. Method and apparatus for providing access to files based on user identity
KR20150053282A (ko) * 2013-11-07 2015-05-18 포항공과대학교 산학협력단 화면 전환을 통해 가상 환경을 자동 변경하는 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086202A1 (en) * 2011-09-29 2013-04-04 Comcast Cable Communications, Llc Multiple Virtual Machines in a Mobile Virtualization Platform
US20150089497A1 (en) * 2013-09-26 2015-03-26 Citrix Systems, Inc. Separate, disposable execution environment for accessing unverified content

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jeremy Andrus et al., "Cells: A Virtual Mobile Smartphone Architecture", Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles, pp. 173-187(2011.10.)*

Also Published As

Publication number Publication date
KR20220118876A (ko) 2022-08-26

Similar Documents

Publication Publication Date Title
CN100426238C (zh) Vex-虚拟扩展框架
EP3608809B1 (en) Device power-on method using power button integrated with fingerprint sensor
US20140115316A1 (en) Boot loading of secure operating system from external device
JP6793732B2 (ja) 情報画像表示方法及び装置
US20140184549A1 (en) Method of Defining Software Functions on an Electronic Device Having Biometric Detection
CN107392055A (zh) 一种双系统安全芯片控制方法、终端、计算机可读存储介质及基于安全芯片的双系统架构
US20150326575A1 (en) Data transfer based on input device identifying information
CN101430642B (zh) 一种应用于uefi的操作界面的实现方法及系统
CN101271500B (zh) 生物识别启动装置及方法
CN1700171A (zh) 提供从虚拟环境对硬件的直接访问
CN107450839B (zh) 基于黑屏手势的控制方法、装置、存储介质及移动终端
CN103902881A (zh) 管理应用安全的方法及其电子设备
EP3113121A1 (en) Method for performing authentication and electronic device thereof
TWI675329B (zh) 資訊圖像顯示方法及裝置
WO2019218886A1 (zh) 应用预加载管理方法、装置、存储介质及智能终端
TWI706288B (zh) 穿戴式設備、解鎖控制系統及解鎖控制方法
US20140173714A1 (en) Information processing apparatus, and lock execution method
CN104318185A (zh) 一种应用控制方法、设备及移动终端
KR102297383B1 (ko) 보안 데이터 처리
CN103809840A (zh) 操作终端设备的方法、装置和终端设备
KR102559952B1 (ko) 가상컴퓨터 간 전환 가능한 구조를 갖는 컴퓨터 및 전환 방법
US20240134964A1 (en) Computer having transformable architecture and method of transforming virtual computers
JP2024518672A (ja) 仮想コンピュータ間変換可能な構造を有するコンピュータおよび変換方法
CN101436162A (zh) 一种存储装置多用户管理的实现方法及系统
US9053048B2 (en) System and method for extending a biometric framework

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right