KR20130098775A - 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법 - Google Patents

다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법 Download PDF

Info

Publication number
KR20130098775A
KR20130098775A KR1020120020563A KR20120020563A KR20130098775A KR 20130098775 A KR20130098775 A KR 20130098775A KR 1020120020563 A KR1020120020563 A KR 1020120020563A KR 20120020563 A KR20120020563 A KR 20120020563A KR 20130098775 A KR20130098775 A KR 20130098775A
Authority
KR
South Korea
Prior art keywords
file
operating system
memory
client terminal
providing apparatus
Prior art date
Application number
KR1020120020563A
Other languages
English (en)
Other versions
KR101389977B1 (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 KR1020120020563A priority Critical patent/KR101389977B1/ko
Priority to US13/662,892 priority patent/US20130227259A1/en
Publication of KR20130098775A publication Critical patent/KR20130098775A/ko
Application granted granted Critical
Publication of KR101389977B1 publication Critical patent/KR101389977B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

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

Abstract

다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법이 개시된다. 본 발명의 일 실시예에 따른 클라이언트 단말은 제한된 자원 하에서 운영체제 제공장치의 자원을 이용하여 다중 운영체제를 지원받고, 운영체제에 기반하여 실행되는 파일을 관리한다.

Description

다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법 {Client terminal and method for supporting multiple Operating System}
본 발명의 일 양상은 운영체제 운용기술 및 데이터 관리기술에 관한 것이다.
운영체제(Operating System: 이하 'OS'라 칭함)는 장치를 구별하는 가장 큰 요소 중 하나이다. 특히 작은 컴퓨터로 불릴 정도로 다양한 작업을 처리해야 하는 스마트폰이나 스마트 패드와 같은 휴대용 다기능 디바이스에 있어서, 외관 디자인과 더불어 어떤 OS를 탑재했는가가 제품 선택에 중요한 부분을 차지한다.
하나의 장치에 여러 개의 OS가 탑재된 다중 운영체제(multiple Operating System: 이하 '다중 OS'라 칭함) 기술이 적용 가능하다. 다중 OS가 탑재된 장치는 다중 OS를 운영하기 위한 부팅관리 영역이 OS별로 물리적으로 서로 다른 영역에 형성된다. 또한, 데이터를 포함한 파일은 OS에 종속적인데, 각 OS마다 파일 시스템 구성이 상이하고 프로그램 실행기술도 상이하다. 따라서 각 OS들은 물리적으로 구분되어야 하며, 구분되었다고 할지라도 각 OS에 기반한 파일만 활성화된다. 결국 하나의 OS가 실행되고 있을 때 다른 OS 기반 파일은 사용될 수 없다.
다중 OS 기술 적용 시에 장치의 메모리 상에는 각 OS와 OS를 운용하기 위한 자원이 미리 저장되어 있어야 한다. PC와 같이 정형화된 프로세서와 하드웨어로 구성되는 시스템에서는 OS를 운용하기 위한 자원이 많이 필요하지 않으나, 휴대용 단말과 같이 하드웨어 구성이 다양한 시스템에서는 매우 많은 자원이 필요하게 된다. 특히, 다양한 기능을 수행해야 하는 휴대용 다기능 디바이스에 있어서 다중 OS 운영을 위해 사용 가능한 자원은 더 한정되게 된다.
일 양상에 따라, 제한된 자원을 가지는 단말이 OS 제공장치의 자원을 이용하여 다중 운영체제를 지원받고, 파일을 관리할 수 있는 기술을 제안한다.
일 양상에 따른 클라이언트 단말은, 제1 운영체제와 제1 운영체제 하에서 사용되는 파일을 저장하는 메모리와, 메모리에 저장된 파일을 운영체제 제공장치로 전송하고 메모리를 포맷하며, 운영체제 제공장치로부터 제2 운영체제와 함께 제1 운영체제 하에서 사용되던 파일 중 적어도 제2 운영체제에서 실행 가능한 파일을 수신하는 프로세서를 포함한다.
다른 양상에 따른 클라이언트 단말의 다중 운영체제 지원방법은, 클라이언트 단말의 메모리에 저장된 파일을 분석하고, 분석된 파일을 메모리에 저장된 파일분류 기준정보와 비교하여 분류하는 단계와, 분류된 파일을 OS 제공장치에 전송하는 단계와, 제2 운영체제와, 운영체제 제공장치에 전송된 파일 중에 적어도 제2 운영체제에서 실행 가능한 파일을 운영체제 제공장치로부터 수신하는 단계를 포함한다.
일 실시예에 따르면, 하드웨어 자원과 개발비용의 한계로 인해서 다중 OS를 운영하기 어려운 클라이언트 단말에 있어서, 사용자가 제1 OS를 기반으로 동작되는 클라이언트 단말을 제2 OS 기반으로 사용하고자 제 1OS를 제2 OS로 변경하는 경우, 제1 OS에서 사용했던 데이터는 변경된 제2 OS 상에서는 사용할 수가 없게 되는 비효율성 문제를 해결하여, OS 변경 시 제1 OS를 기반으로 사용자가 사용했던 파일들 중에서 제2 OS를 기반으로 운영되는 파일들을 재사용할 수 있다. 특히, 본 발명은 가상화를 지원하지 않는 클라이언트 단말이나 하나의 운영체제를 운영하는 일반적인 클라이언트 단말에 적용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 클라이언트 단말과 OS 제공장치를 도시한 참조도,
도 2는 본 발명의 일 실시예에 따른 클라이언트 단말의 구성도,
도 3은 본 발명의 일 실시예에 따른 클라이언트 단말 내 메모리에 저장되는 파일분류 기준정보를 설명하기 위한 데이터 영역 구조도,
도 4는 본 발명의 일 실시예에 따른 프로세서의 세부 구성도,
도 5는 본 발명의 일 실시예에 따라 제2 OS 설치 이벤트 발생 시에 클라이언트 단말이 OS 제공장치에 파일을 전송하는 프로세스를 설명하기 위한 프로세서 구성도,
도 6은 본 발명의 일 실시예에 따라 클라이언트 단말이 OS 제공장치로부터 OS와 파일을 전송받는 프로세스를 설명하기 위한 프로세서 구성도,
도 7은 본 발명의 일 실시예에 따른 다중 OS 지원방법을 도시한 흐름도,
도 8은 본 발명의 일 실시예에 따라 제2 OS 설치 이벤트가 표시되는 클라이언트 단말의 화면을 도시한 참조도,
도 9는 본 발명의 일 실시예에 따라 클라이언트 단말의 화면에 표시되는 제2 OS 정보를 도시한 참조도,
도 10은 본 발명의 일 실시예에 따라 파일 분석부의 파일 탐색 및 파일 파싱 프로세스를 도시한 흐름도,
도 11은 본 발명의 일 실시예에 따라 클라이언트 단말의 파일 파싱 동작 수행을 위한 소프트웨어 및 하드웨어 구성을 도시한 참조도,
도 12는 본 발명의 일 실시예에 따라 다중 OS 지원을 위해 클라이언트 단말과 OS 제공장치 간의 통신 프로세스를 도시한 흐름도,
도 13a 및 도 13c는 본 발명의 다양한 실시예에 따라 클라이언트 단말이 OS 제공장치로부터 제2 OS를 다운로드 받아 설치하는 프로세스를 설명하기 위한 참조도,
도 14는 본 발명의 일 실시예에 따라 클라이언트 단말이 OS 제공장치에 파일을 백업하는 프로세스를 설명하기 위한 참조도,
도 15는 본 발명의 일 실시예에 따라 클라이언트 단말이 OS 제공장치에 백업해 둔 파일을 불러와 클라이언트 단말에 복원하는 프로세스를 설명하기 위한 참조도,
도 16은 본 발명의 일 실시예에 따라 OS 제공장치의 저장공간을 도시한 참조도,
도 17은 본 발명의 일 실시예에 따라 클라이언트 단말의 메모리 내 부팅관리 영역의 기능을 설명하기 위한 참조도,
도 18은 본 발명의 다른 실시예에 따른 다중 OS 지원방법을 도시한 흐름도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 클라이언트 단말(1)과 운영체제 제공장치 (2)를 도시한 참조도이다.
운영체제 제공장치(이하 'OS 제공장치'라 칭함)(2)는 클라이언트 단말(1)에 OS를 제공할 수 있는 모든 전자장치를 총칭한다. 예를 들어, OS 제공장치(2)는 개인용 데스크탑이나 노트북 일 수 있다. 또는 운영체제 제공장치(2)는 서버일 수 있는데, 특히 클라우드 서버(cloud server)일 수 있다.
이하, 본 발명의 일 실시예에 따라 클라우드 서버 형태인 OS 제공장치(2)에 대해 설명하면, OS 제공장치(2)는 클라이언트 단말(1)에 클라우드 컴퓨팅 서비스를 제공하는 서버로서, 클라이언트 단말(1)이 요청하는 컴퓨팅 자원을 인터넷을 통해 제공해준다. 여기서 컴퓨팅은 데이터 저장, 데이터 처리, 네트워크 사용 등 클라이언트 단말(1)에서 동작되는 일련의 프로세스 처리를 말한다. 클라우드 컴퓨팅은 인터넷 기반의 컴퓨팅 기술을 의미한다. 컴퓨터 네트워크 구성도에서 인터넷은 구름으로 표현되며, 이는 숨겨진 복잡한 인프라 구조를 의미한다. 클라우드 컴퓨팅은 IT와 관련된 기능들이 서비스 형태로 제공되는 컴퓨팅 스타일이다. 사용자는 클라우드 컴퓨팅을 이용하여 인터넷을 통해 언제 어디서나 자신이 원하는 컴퓨팅 자원을 제공받을 수 있다. 컴퓨팅 자원은 통상적으로 대량의 데이터 센터와 같이 별도의 자원 제공자에 의해 관리되며, 그 대상은 CPU 능력, 메모리, 스토리지와 같은 하드웨어 자원이거나 개발 플랫폼, 응용 프로그램 등이 될 수 있다. 컴퓨팅 능력을 클라이언트 단말(1)에서 이용하기 위해 자원 제공자가 제공하는 서비스를 클라우드 컴퓨팅 서비스라고 한다.
클라이언트 단말(1)은 소정의 OS 상에서 운용되며, OS 제공장치(2)로부터 OS를 추가로 제공받을 수 있는 사용자 단말이다. 클라이언트 단말(1)은 OS 제공장치(2)와 통신 가능한 단말 장치로서, 휴대 전화, PDA, PMP, MP3 플레이어, 디지털 카메라 등 각종 형태의 장치 등일 수 있다. 클라이언트 단말(1)은 주로 컴퓨팅 능력이 부족한 휴대용 장치들일 수 있다. 특히 클라이언트 단말(1)은 스마트폰, 스마트 패드 등 휴대용 다기능 디바이스(portable multi function device)일 수 있다.
본 발명에 따르면, 클라이언트 단말(1)에는 제1 운영체제(이하 '제1 OS'라 칭함)가 저장되어 제1 OS를 기반으로 동작하고, OS 제공장치(2)에는 제2 운영체제(이하 '제2 OS'라 칭함)가 저장된다. 제2 OS는 다수 개일 수 있다. 본 발명은 클라이언트 단말(1)이 자원의 한정 또는 개발의 어려움으로 인해 다수의 OS를 운용하기 어려워서 불가피하게 하나의 OS를 갖는 환경을 전제로 한다.
사용자가 제1 OS를 기반으로 동작되는 클라이언트 단말(1)을 제2 OS 기반으로 사용하고자 제 1OS를 제2 OS로 변경하는 경우, 일반적으로 제1 OS에서 사용되는 데이터는 삭제되어 버리기 때문에 제1 OS에서 사용했던 데이터는 변경된 제2 OS 상에서는 사용할 수가 없게 된다. 따라서, 본 발명은 OS 변경 때문에 사용자가 그 전에 사용했던 데이터를 사용할 수 없게 되는 문제를 해결하기 위해, 클라이언트 단말(1)의 제1 OS 상에서 사용되던 파일을 OS 제공장치(2)에 백업한 이후, OS 제공장치(2)로부터 백업 파일 중에 제2 OS에서 실행 가능한 파일과 제2 OS를 제공받는다. 이에 따라, 사용자는 OS 변경 시 제1 OS를 기반으로 사용자가 사용했던 파일들 중에서 제2 OS를 기반으로 운영되는 파일들은 재사용할 수 있게 된다.
클라이언트 단말(1)과 OS 제공장치(2) 간의 데이터 교환은 클라이언트 단말(1)의 모뎀, WLAN, RF 블럭과, USB 등의 주변장치와, 시스템 메모리의 프로세서들에서 처리하는 유무선 통신 프로토콜과 TCP/IP와 같은 인터넷 프로토콜을 통해 수행될 수 있다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 단말(1)의 구성도이다.
클라이언트 단말(1)은 메모리(10), 프로세서(12) 및 사용자 인터페이스(14)를 포함한다.
도 2에 도시된 클라이언트 단말(1)의 구성은 본 발명의 실시예를 설명하기 위하여 필수적인 구성요소만을 개략적으로 도시한 것이다. 따라서 클라이언트 단말(1)의 동작을 위하여 필수적인 다른 기능을 수행하기 위한 구성요소들이 추가로 클라이언트 단말(1)에 포함될 수도 있다. 이때, 추가되는 구성요소들은 클라이언트 단말(1)의 종류나 기능 등에 따라서 달라질 수 있다.
메모리(10)는 부팅관리 영역(100)과 OS 영역(102) 및 데이터 영역(104)을 포함한다. 부팅관리 영역(100)과 OS 영역(102) 및 데이터 영역(104)은 플래시(flash)와 같은 비휘발성 메모리에 형성될 수 있다.
부팅관리 영역(100)은 부트로더, 바이오스 등으로도 불린다. 부팅관리 영역(100)은 클라이언트 단말(1) 시스템을 초기화하고, 사용자가 클라이언트 단말(1)을 부팅할 때에 OS를 로드하고 가동시킨다. 부팅관리 영역(100)의 기능에 대해서는 도 17에서 더 상세히 후술한다.
OS 영역(102)에는 하나의 OS가 존재한다. 예를 들면, 구글의 안드로이드, MS의 윈도우 모바일, 애플의 iOS 중 하나일 수 있다. 하나의 OS로 한정하는 이유는 클라이언트 단말(1)이 PC 등과 달리 다수의 OS 운용을 위해서는 많은 자원이 필요하게 되는 등 운용능력이 PC 등에 비해 떨어지기 때문이다.
데이터 영역(104)에는 파일이 저장된다. 파일은 어플리케이션과 같은 프로그램의 실행을 제어하는 실행파일과, 음악, 동영상, 이미지, 문서 등과 같은 멀티미디어 관련 파일을 총칭한다. 예를 들면, 파일은 MS Window CE, Window Mobile과 같은 임베디드 OS에서는 *.EXE 이름을 가지는 애플리케이션 실행파일이 될 수 있다. 또는 안드로이드와 같은 임베디드 OS에서는 *.APK 이름을 가지는 애플리케이션 실행파일이 될 수 있다. 파일은 클라이언트 단말(1) 부팅 시 RAM과 같은 XIP(Execute in Place) 메모리에 로드되고 실행될 수 있다. 사용자는 OS 영역(102)에 설치된 제1 OS를 사용하면서 파일들을 생성할 수 있다.
일 실시예에 따르면, 데이터 영역(104)에는 파일이 어느 OS에서 실행 가능한지를 알 수 있는 파일분류 기준정보가 저장된 DB가 포함된다. 데이터 영역(104)의 DB에 저장되는 파일분류 기준정보에 대한 상세한 설명은 도 3에서 후술한다.
프로세서(12)는 클라이언트 단말(1)의 동작에 필요한 전반적인 관리 및 제어 기능을 수행한다. 본 발명의 프로세서(12)는 메모리(10)에 저장된 파일을 OS 제공장치(2)로 백업한 후 메모리(10)의 OS 영역(102)과 데이터 영역(104)을 포맷한다. 그리고, 사용자가 요청한 제2 OS를 OS 제공장치(2)로부터 제공받아 이를 메모리(10)의 OS 영역(102)에 설치하며, OS 제공장치(2)로부터 제2 OS 상에서 실행 가능한 파일을 제공받아 사용자가 제2 OS를 기반으로 사용할 수 있게 한다. 일 실시예에 따르면, 프로세서(12)는 메모리(10)에 저장된 파일분류 기준정보에 따라 파일을 분류하고, 분류된 파일을 OS 제공장치(2)로 백업한다. 프로세서(12)의 세부구성은 도 4 내지 도 6에서 상세히 후술한다.
사용자 인터페이스(14)는 사용자와 클라이언트 단말(1)의 인터렉션(interaction)을 위한 입출력 수단이다. 사용자는 사용자 인터페이스(14)를 통해 제2 OS 설치명령을 포함하는 명령이나 데이터를 클라이언트 단말(1)로 입력할 수 있으며, 클라이언트 단말(1)은 사용자 인터페이스(14)를 통해 정보나 데이터 등을 사용자에게 출력할 수 있다.
클라이언트 단말(1)이 사용자 인터페이스(14)를 통해 사용자로부터 제2 OS 설치명령을 수신하면, 프로세서(12)는 사용자 인터페이스(14)를 통해 클라이언트 단말(1)이 OS 제공장치(2)에 접속하기 위한 개인 계정정보를 사용자에게 요청할 수 있다. 이 경우, 사용자로부터 개인 계정정보를 입력받아 OS 제공장치(2)에 접근한다. 제2 OS 설치 이벤트 실시예는 도 8을 통해 후술한다.
도 3은 본 발명의 일 실시예에 따른 클라이언트 단말(1) 내 메모리(10)에 저장되는 파일분류 기준정보를 설명하기 위한 데이터 영역(104) 구조도이다.
일 실시예에 따르면, 클라이언트 단말(1) 사용자가 제1 OS에서 제2 OS로 OS를 변경하는 경우, 제1 OS를 기반으로 사용자가 사용했던 파일들 중에서 제2 OS를 기반으로 운영되는 파일들을 재사용할 수 있도록 하기 위해서, 제1 OS 상에서 사용자에 의해 사용되던 파일들을 분류한다. 파일 분류를 위해, 메모리(10)의 데이터 영역(104) 내 데이터베이스(104a)에 파일분류 기준정보가 저장될 수 있다. 파일분류 기준정보는 클라이언트 단말(1) 내 파일이 어느 OS에서 실행 가능한지를 알 수 있는 정보이다. 일 실시예에 따르면, 파일분류 기준정보는 OS의 종류에 관계없이 실행되는 파일(1042)과, OS에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일(1044)과, OS에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일(1046)과, 그 외의 파일(1048)로 분류하기 위한 정보이다.
OS의 종류에 관계없이 실행되는 파일(1042)은 어느 OS에서도 실행 가능한 파일로서, 예를 들면, *.avi, *.mp4 등의 확장자를 갖는 컨텐츠 파일이다. OS에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일(1044)은 특정 OS 하에서만 실행 가능한 파일로서, 예를 들면, 애플의 iOS에서 실행되는 파일, MS의 모바일 OS에서 실행되는 파일, 안드로이드에서 실행되는 파일이다. OS에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일(1046)은 특정 OS 하에서 실행 가능하되, 포맷 변경을 통해 다른 OS에서도 실행 가능한 파일이다. 즉, 해당 파일은 현재는 특정 OS에서 실행될 수 없는 상태이지만, 변환 툴(conversion tool)을 이용하여 파일을 변환하면 특정 OS에서도 실행 가능한 파일이다. 전술한 바와 같이 파일을 OS 종속 여부에 따라 분류함에 따라 각 OS 기반에서 운용되는 파일을 효율적으로 관리할 수 있다.
전술한 파일 분류 기준에 따라 파일을 분류하고 OS 제공장치에 파일 백업 후 OS 제공장치로부터 제2 OS에서 실행 가능한 파일을 제공받고 OS를 제1 OS에서 제2 OS로 변경하는 경우, 제1 OS 상에서 사용자가 사용했던 파일 중에서, 제2 OS에서 실행 가능한 파일, 예를 들어, OS의 종류에 관계없이 실행되는 파일과, 제2 OS에서 실행되는 파일과, 현재 제2 OS에서 실행될 수 없는 상태이지만, 변환 툴을 이용하여 파일을 변환하면 제2 OS에서도 실행 가능한 파일들은 사용자가 재사용할 수 있게 된다.
도 4는 본 발명의 일 실시예에 따른 프로세서(12)의 세부 구성도이다.
프로세서(12)는 파일 분석부(120), 데이터베이스 비교부(122), 파일 태그 생성 및 분석부(124), 운영체제 및 파일 처리부(126), 네트워크 통신부(128)를 포함한다.
일 실시예에 따르면, 네트워크 통신부(128)는 클라이언트 단말(1)이 OS 제공장치(2)에 접속하기 위한 통신기능을 제공한다. 그리고, 클라이언트 단말(1)에 설치할 제2 OS 정보를 OS 제공장치(2)로부터 수집할 수 있다. 제2 OS 정보 수집을 위해 네트워크 통신부(128)는 OS 제공장치(2)에 OS 정보 요청 메시지를 전송하고, OS 제공장치(2)로부터 이에 대한 응답 메시지를 수신함에 따라, 응답 메시지를 통해 OS 제공장치(2)에 있는 제2 OS 정보를 확인할 수 있다. 네트워크 통신부(128)를 통해 수집된 제2 OS 정보는 사용자 인터페이스(14)를 통해 화면에 디스플레이될 수 있는데, 이에 대한 실시예는 도 9에서 후술한다.
프로세서(12)는 제2 OS 설치 이전에 메모리(10)에 저장된 파일들을 OS 제공장치(2)에 백업한다. 일 실시예에 따르면, 프로세서(12)는 데이터베이스 비교부(이하 'DB 비교부'라 칭함)(122)를 통해 메모리(10)에 저장된 파일들을 파일분류 기준정보에 따라 분류한 후, 네트워크 통신부(128)를 통해 분류된 파일을 전송한다. 다른 실시예에 따르면, 프로세서(12)는 DB 비교부(122)를 통한 파일 분류 없이 파일들을 네트워크 통신부(128)를 통해 OS 제공장치(2)에 백업한 후, OS 제공장치(2)가 파일들을 분류하면, OS 제공장치(2)로부터 분류된 파일을 전송받는다.
네트워크 통신부(128)는 파일분류 기준정보에 따라 분류된 파일을 OS 제공장치(2)에 전송하거나 OS 제공장치(2)로부터 제2 OS에서 실행 가능한 파일을 전송받는다. 클라이언트 단말(1)의 메모리(10)에 저장된 파일은 OS에 관계없이 실행되는 파일, OS에 종속적으로 실행되는 파일, OS에 종속적으로 실행되는 파일 중 파일 포맷 변경 후 제2 OS에서 사용될 수 있는 파일 그룹 등으로 분류된다.
네트워크 통신부(128)는 OS 제공장치(2)에 파일분류 기준정보에 따라 분류된 파일을 전송할 수 있는데, OS 제공장치(2)의 저장공간에서도 파일분류 기준정보에 따라 분류될 수 있다. 예를 들어, OS에 관계없이 실행되는 파일은 예를 들면 *.AVI, *.JPG 등의 컨텐츠 파일일 수 있는데, OS 제공장치(2)의 저장공간에서도 동일한 그룹인 OS에 관계없이 실행되는 파일영역에 전송되어 저장될 수 있다. 전술한 바와 같이, OS 제공장치(2)에서도 파일을 구분함에 따라, 나중에 클라이언트 단말(1)에서 이 정보를 이용하여 해당하는 파일을 다운로드 받거나 분류할 수 있다.
일 실시예에 따르면, 네트워크 통신부(128)는 OS 제공장치(2)로 모든 파일을 백업한 이후, OS 제공장치(2)로부터 제2 OS를 다운로드 받는다. 제2 OS를 다운로드 받기 위해, 네트워크 통신부(128)는 OS 요청 메시지를 OS 제공장치(2)에 전송하고, OS 제공장치(2)로부터 제2 OS를 전송받을 수 있다.
한편, 파일 분석부(120)는 메모리(10)에서 파일을 탐색한다. 파일탐색 결과, 메모리(10)에 파일이 존재하는 경우, 파일 분석부(120)는 파일의 확장자를 파싱(parsing)하여 파일이 어떤 파일인지를 확인할 수 있다. 파일 확장자 파싱의 예를 들면, 확장자 앞에 있는‘.’를 검출하여 확장자를 확인할 수 있다. 파일 분석부(120)의 파일존재 여부 확인 프로세스와 파일 파싱 프로세스에 대한 실시예는 도 10 및 도 11에서 후술한다.
파일 분석부(120)는 메모리(10)로부터 탐색한 파일이 어느 OS에서 실행되는 파일인지를 확인하기 위해 DB 비교부(122)에 DB 비교 요청 메시지를 전송하여 응답 메시지를 수신한다. 이때, 파일 분석부(120)는 파일의 확장자를 DB 비교부(122)에 전송할 수 있다.
DB 또한 하나의 프로세스로 구현된다면 파일 분석부(120)와 DB 비교부(122) 간은 파이프, IPC 등의 통신 수단으로 연결될 수 있다. DB가 단지 메모리 상의 데이터만 가지고 있는 영역으로 만들어진다면 포인터 등의 메모리 접근 방법으로 구현할 수 있다.
DB 비교부(122)는 파일 분석부(120)로부터 수신한 파일과 메모리(10)의 데이터 영역 DB에 저장된 파일분류 기준정보를 비교하여, 해당 파일이 어느 분류기준에 해당하는지를 확인한다. 즉, 파일 분석부(120)로부터 수신한 파일이 운영체제의 종류에 관계없이 실행되는 파일과, 운영체제에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일과, 운영체제에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일과, 그 외의 파일 중 어느 파일에 해당하는지를 확인한다.
일 실시예에 따르면, DB 비교부(122)가 파일 분석부(120)로부터 분석한 파일이 DB의 파일분류 기준정보에 따라 어느 파일로 분류되는지를 확인하면, 파일 태그 생성 및 분석부(124)가 해당 파일이 어느 파일로 분류되는지를 확인할 수 있는 파일 태그(file tag)를 생성한다. 생성된 파일 태그는 네트워크 통신부(128)를 통해 OS 제공장치(2)에 파일과 함께 전송된다.
일 실시예에 따르면, 파일 태그 생성 및 분석부(124)는 OS 제공장치(2)로부터 파일 태그를 수신할 경우, 파일 태그를 분석하여 OS 제공장치(2)로부터 수신한 파일이 파일분류 기준정보에 따라 어느 파일로 분류되는지를 확인한다.
한편, OS 및 파일 처리부(126)는 제2 OS를 설치하기 위해서 클라이언트 단말(1) 내 비휘발성 메모리의 OS 영역과 데이터 영역을 소거한다. 네트워크 통신부(128)를 통해 OS 제공장치(2)로부터 제2 OS를 다운로드 받으면, OS 및 파일 처리부(126)는 다운로드 받은 제2 OS를 클라이언트 단말(1)의 휘발성 메모리로 가져온 후, 이를 비휘발성 메모리에 설치할 수 있다.
또한, 네트워크 통신부(128)를 통해 OS 제공장치(2)로부터 파일을 다운로드 받으면, OS 및 파일 처리부(126)는 파일 태그 생성 및 분석부(124)의 태그 분석 결과에 따라 파일을 분류하여 메모리(10)의 데이터 영역에 저장할 수 있다. 전술한 바와 같이 OS 및 파일 처리부(126)가 OS와 파일을 다운로드 받은 후, 클라이언트 단말(1)이 재부팅되면, 클라이언트 단말(1)은 제2 OS 상에서 운용되는 시스템으로 변경되게 된다.
도 5는 본 발명의 일 실시예에 따라 제2 OS 설치 이벤트 발생 시에 클라이언트 단말(1)이 OS 제공장치(2)에 파일을 전송하는 프로세스를 설명하기 위한 프로세서(12) 구성도이다.
일 실시예에 따르면, 제2 OS 설치 이벤트가 발생하면, 클라이언트 단말(1)의 네트워크 통신부(128)는 OS 제공장치(2)에 접속하여 OS 제공장치(2)로부터 클라이언트 단말(1)에 설치할 제2 OS 정보를 수집한다. 이때, 클라이언트 단말(1)은 수집한 제2 OS 정보를 사용자 인터페이스(도 2의 14)를 통해 화면에 표시할 수 있다.
이어서, 파일 분석부(120)는 메모리(10)에 저장된 파일을 분석하고, DB 비교부(122)가 파일 분석부(120)를 통해 분석된 파일을, 메모리(10)의 DB(104a)에 저장된 파일분류 기준정보와 비교한다. 파일 분석부(120)는 비교를 통해 파일을 OS의 종류에 관계없이 실행되는 파일과, OS에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일과, OS에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일과, 그 외의 파일로 분류할 수 있다.
이어서, 파일 태그 생성 및 분석부(124)는 DB 비교부(122)가 분류한 파일들을 대상으로 각 파일 마다 어느 OS를 기반하여 실행될 수 있는 파일인지를 알 수 있는 파일 태그를 생성할 수 있다. 이 파일 태그는 OS 및 파일 처리부(126)로 전송된다.
OS 및 파일 처리부(126)는 파일 태그 생성 및 분석부(124)로부터 파일 태그를 수신하고, 메모리(10)로부터 파일을 수신한 후, 수신한 파일과 파일 태그를 백업을 위해 네트워크 통신부(128)를 통해 OS 제공장치(2)에 전송한다. 이때, 네트워크 통신부(128)는 파일과 파일 태그 전송을 위해 TCP/IP와 같은 인터넷 프로토콜을 이용할 수 있다.
도 6은 본 발명의 일 실시예에 따라 클라이언트 단말(1)이 OS 제공장치(2)로부터 OS와 파일을 전송받는 프로세스를 설명하기 위한 프로세서(12) 구성도이다.
클라이언트 단말(1)은 네트워크 통신부(128)를 통해 OS 제공장치(2)로부터 제2 OS와 제2 OS에서 실행 가능한 파일을 전송받는다. 제2 OS에서 실행 가능한 파일은 예를 들어, OS의 종류에 관계없이 실행되는 파일과, 제2 OS에서 실행되는 파일과, 현재 제2 OS에서 실행될 수 없는 상태이지만, 변환 툴을 이용하여 파일을 변환하면 제2 OS에서도 실행 가능한 파일을 OS 제공장치(2)로부터 제공받는다.
이때, OS 제공장치(2)로부터 파일 태그를 함께 전송받아, 파일 태그 생성 및 분석부(124)를 통해 파일이 어느 OS를 기반하여 실행될 수 있는 파일인지를 검증할 수 있다. 이어서, OS 및 파일 처리부(126)는 OS 또는 태그 정보를 제외한 파일 데이터를 메모리(10)에 저장한다.
도 7은 본 발명의 일 실시예에 따른 다중 OS 지원방법을 도시한 흐름도이다.
클라이언트 단말(1)은 제2 OS 설치 이벤트가 발생하면, OS 제공장치(2)에 접속하여 OS 제공장치(2)로부터 클라이언트 단말(1)에 설치할 제2 OS 정보를 수집한다(700).
이어서, 클라이언트 단말(1)은 메모리(10)에 저장된 파일을 분석하고, 분석된 파일을, 메모리(10)의 DB에 저장된 파일분류 기준정보와 비교한다(710). 이때, 클라이언트 단말(1)은 비교를 통해 파일을 OS의 종류에 관계없이 실행되는 파일과, OS에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일과, OS에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일과, 그 외의 파일로 분류할 수 있다.
이어서, 클라이언트 단말(1)은 분류된 파일들을 대상으로 각 파일 마다 어느 OS를 기반하여 실행될 수 있는 파일인지를 알 수 있는 파일 태그를 생성한다(720). 그리고, 파일과 파일 태그를 OS 제공장치(2)에 전송하여 OS 제공장치(2)에 저장한다(730). 전술한 프로세스는 데이터 영역 내 저장된 모든 파일을 OS 제공장치(2)에 전송할 때까지 반복 수행된다(740).
이어서, 클라이언트 단말(1)은 제2 OS를 설치하기 위해 메모리(10)의 데이터 영역과 OS 영역을 포맷한다(750). 그리고, OS 제공장치(2)로부터 제2 OS를 제공받아 포맷된 OS 영역에 설치(760)한 후, OS 제공장치(2)로부터 제2 OS에서 실행될 수 있는 파일과 파일 태그를 전송받는다(770). 이때, 파일이 어느 OS를 기반하여 실행될 수 있는 파일인지 다시 한 번 검증할 수 있다. 이어서, 클라이언트 단말(1)이 재부팅되면, 클라이언트 단말(1)은 제2 OS 상에서 운용되는 시스템으로 변경된다(780).
도 8은 본 발명의 일 실시예에 따라 제2 OS 설치 이벤트가 표시되는 클라이언트 단말(1)의 화면을 도시한 참조도이다.
도 8을 참조하면, 클라이언트 단말(1)은 사용자 인터페이스(14)를 통해 사용자에게 제2 OS 설치 이벤트 실행을 위한 그래픽 사용자 인터페이스(GUI)를 제공할 수 있다. 이때, 사용자가 제2 OS 설치 이벤트 실행명령을 내리면, 클라이언트 단말(1)은 사용자 인터페이스(14)를 통해 클라이언트 단말(1)이 OS 제공장치(2)에 접속하기 위한 개인 계정정보를 사용자에게 요청할 수 있다. 이 경우, 사용자로부터 개인 계정정보를 입력받아 OS 제공장치(2)에 접근할 수 있다.
도 9는 본 발명의 일 실시예에 따라 클라이언트 단말(1)의 화면에 표시되는 제2 OS 정보를 도시한 참조도이다.
클라이언트 단말(1)은 클라이언트 단말(1)에 설치할 제2 OS 정보를 OS 제공장치(2)로부터 수집한다. 이를 위해 클라이언트 단말(1)은 네트워크 통신부(128)를 통해 OS 제공장치(2)에 OS 정보 요청 메시지를 전송하고, OS 제공장치(2)로부터 이에 대한 응답 메시지를 수신함에 따라, 응답 메시지를 통해 OS 제공장치(2)에 있는 제2 OS 정보를 확인할 수 있다. 제2 OS 정보는 사용자 인터페이스(14)를 통해 화면에 디스플레이될 수 있다. 예를 들면, 도 9에 도시된 바와 같이 OS 제공장치(2)에 저장된 제2 OS인 윈도우 모바일, 안드로이드, iOS 등이 화면에 디스플레이된다.
도 10은 본 발명의 일 실시예에 따라 파일 분석부(120)의 파일 탐색 및 파일 파싱 프로세스를 도시한 흐름도이다.
파일 분석부(120)는 메모리(10)에서 파일을 탐색한다. 우선, 메모리(10)에 폴더가 존재하는지 여부를 탐색(1000)하여, 폴더가 존재하면 폴더 내 파일이 존재하는지 여부를 탐색한다(1010). 폴더 내 파일이 존재하거나, 폴더는 아니지만 파일이 존재하는 경우, 파일 분석부(120)는 파일 또는 폴더 목록을 작성(1020)하고, 파일의 확장자를 파싱하여 파일이 어떤 파일인지를 확인한다(1030). 파일 확장자 파싱의 예를 들면, 확장자 앞에 있는‘.’를 검출하여 확장자를 확인할 수 있다. 전술한 프로세스는 모든 폴더와 폴더 내 파일을 탐색할 때까지 반복 수행된다(1040).
도 11은 본 발명의 일 실시예에 따라 클라이언트 단말(1)의 파일 파싱 동작 수행을 위한 소프트웨어 및 하드웨어 구성을 도시한 참조도이다.
일 실시예에 따르면, 클라이언트 단말(1)의 애플리케이션(1100) 단은 API(Application Programming Interface) 함수를 이용하여 파일을 검색한다. API 함수는 API 라이브러리(1110)에서 지원한다. API 함수는 예를 들면, FindFirstFile, FindNextFile 등일 수 있다. 애플리케이션(1100)은 API 함수를 API 라이브러리(1110)에서 가져오며, 애플리케이션(1100)은 API 함수를 이용하여 커널(1120) 단의 파일 시스템 드라이버(1120a)와 상호 동작하여 하드웨어(1130) 단의 메모리에 저장된 파일의 확장자를 읽어 들일 수 있다. 이때, 하드웨어(1130) 단의 메모리는 디렉터리에 파일을 저장시키고, 파일명과 파일 확장자를 정의하며, 디렉터리 구조를 통하여 파일까지 가는 경로를 설정하는데, 애플리케이션(1100)은 파일 시스템 드라이버(1120a)와 상호 동작하여 하드웨어(1130) 단의 메모리에 저장된 파일의 파일 경로를 탐색한 후, 경로가 탐색된 파일의 확장자를 읽어 들인다. 예를 들면, 파일명의 첫 문자부터 읽어들여 확장자 앞에 있는‘.’를 검출하고, 검출된 ‘.’뒤에 위치하는 확장자를 확인할 수 있다.
도 12는 본 발명의 일 실시예에 따라 다중 OS 지원을 위해 클라이언트 단말(1)과 OS 제공장치(2) 간의 통신 프로세스를 도시한 흐름도이다.
클라이언트 단말(1)은 제2 OS 설치 이벤트가 발생하면, OS 제공장치(2)에 접속하여 OS 제공장치(2)에 제2 OS 정보 요청 메시지를 전송하고, OS 제공장치(2)로부터 클라이언트 단말(1)에 설치할 제2 OS 정보를 수집한다(1200). 예를 들면, 제2 OS 정보는 구글의 안드로이드일 수 있다.
이어서, 클라이언트 단말(1)은 메모리(10)에 저장된 파일을, 메모리(10)의 DB에 저장된 파일분류 기준정보에 따라 분류하고, 분류된 파일들을 대상으로 각 파일 마다 어느 OS를 기반하여 실행될 수 있는 파일인지를 알 수 있는 파일 태그를 생성하며, 파일과 파일 태그를 OS 제공장치(2)에 전송한다(1210).
이어서, 클라이언트 단말(1)은 제2 OS를 설치하기 위해 메모리(10)의 데이터 영역과 OS 영역을 포맷하고, OS 제공장치(2)로부터 제2 OS를 전송받아 설치한다(1220). 이어서, OS 제공장치(2)로부터 제2 OS에서 실행 가능한 파일과 파일 태그를 전송받아 해당 파일을 메모리(10)에 저장한다(1230). 또는 OS 제공장치(2)에 전송했던 모든 파일과 파일 태그를 전송받은 후, 제2 OS에서 동작 가능한 파일만 메모리(10)에 저장하고, 나머지 파일은 삭제할 수도 있다. 추가적으로, 파일이 어느 OS를 기반하여 실행될 수 있는 파일인지 한번 더 검증할 수 있다. 예를 들면, 파일 태그를 통해 안드로이드에서 실행되는 파일인지를 검증할 수 있다. 이어서, 클라이언트 단말(1)이 재부팅되면, 클라이언트 단말(1)은 제2 OS 상에서 운용되는 시스템으로 변경된다.
도 13a 및 도 13c는 본 발명의 다양한 실시예에 따라 클라이언트 단말(1)이 OS 제공장치(2)로부터 제2 OS를 다운로드 받아 설치하는 프로세스를 설명하기 위한 참조도이다.
도 13a 내지 도 13c에 있어서, 클라이언트 단말(1)의 메모리(10)는 플래시와 같은 비휘발성 메모리(10b)와 RAM과 같은 휘발성 메모리(10a)를 포함한다.
도 13a를 참조하면, 클라이언트 단말(1)은 OS 제공장치(2)로부터 제2 OS를 다운로드 받아 설치하기 위해, 비휘발성 메모리(10b)의 데이터 영역과 OS 영역을 포맷한다[1]. 이어서, OS 제공장치(2)로부터 제2 OS를 다운로드 받아 이를 휘발성 메모리(10a)의 버퍼영역에 복사[2]한 후, 휘발성 메모리(10a)의 버퍼영역에 복사된 제2 OS를, 포맷된 비휘발성 메모리(10b)의 OS 영역에 설치한다[3].
도 13b를 참조하면, 클라이언트 단말(1)은 OS 제공장치(2)로부터 제2 OS를 다운로드 받아 설치하기 위해, OS 제공장치(2)로부터 제2 OS를 다운로드 받아 이를 휘발성 메모리(10a)의 버퍼영역에 복사한다[1]. 이어서, 비휘발성 메모리(10b)의 데이터 영역과 OS 영역을 포맷[2]한 후, 휘발성 메모리(10a)의 버퍼영역에 복사된 제2 OS를, 포맷된 휘발성 메모리(10b)의 OS 영역에 설치한다[3].
도 13c를 참조하면, 클라이언트 단말(1)은 OS 제공장치(2)로부터 제2 OS를 다운로드 받아 설치하기 위해, OS 제공장치(2)로부터 제2 OS를 다운로드 받아 이를 휘발성 메모리(10a)의 버퍼영역에 복사한다[1]. 이어서, 휘발성 메모리(10a)의 버퍼영역에 복사된 제2 OS를 비휘발성 메모리(10b)의 데이터 영역 내 소정의 영역에 구분하여 저장한다[2]. 그리고, 비휘발성 메모리(10b)의 OS 영역을 포맷[3]한 후, 비휘발성 메모리(10b)의 데이터 영역 내 소정의 영역에 저장된 제2 OS를, 포맷된 휘발성 메모리(10b)의 OS 영역에 설치한다[4]. 이어서, 비휘발성 메모리(10b)의 데이터 영역을 포맷한다[5].
한편, 도 13a 내지 도 13c를 통해 전술한 제2 OS 다운로드 및 설치 실시예는 본 발명의 일 실시예일 뿐 이 외의 다양한 실시예가 가능하다.
도 14는 본 발명의 일 실시예에 따라 클라이언트 단말(1)이 OS 제공장치(2)에 파일을 백업하는 프로세스를 설명하기 위한 참조도이다.
도 14에 있어서, 클라이언트 단말(1)의 메모리(10)는 플래시와 같은 비휘발성 메모리(10b)와 RAM과 같은 휘발성 메모리(10a)를 포함한다. 클라이언트 단말(1)은 파일 백업을 위해, 비휘발성 메모리(10b)의 데이터 영역에 저장된 파일을 휘발성 메모리(10a)의 버퍼에 복사한다[1]. 그리고, 휘발성 메모리(10a)의 버퍼에 복사된 파일을 OS 제공장치(2)로 전송한다[2].
도 15는 본 발명의 일 실시예에 따라 클라이언트 단말(1)이 OS 제공장치(2)에 백업해 둔 파일을 불러와 클라이언트 단말(1)에 복원하는 프로세스를 설명하기 위한 참조도이다.
도 15에 있어서, 클라이언트 단말(1)의 메모리(10)는 플래시와 같은 비휘발성 메모리(10b)와 RAM과 같은 휘발성 메모리(10a)를 포함한다. 클라이언트 단말(1)은 파일 복원을 위해, OS 제공장치(2)로부터 파일을 전송받아 휘발성 메모리(10a)의 버퍼에 복사한다[1]. 이어서, 휘발성 메모리(10a)의 버퍼에 복사된 파일을 비휘발성 메모리(10b)의 데이터 영역에 저장한다[2].
도 16은 본 발명의 일 실시예에 따라 OS 제공장치(2)의 저장공간(20)을 도시한 참조도이다.
OS 제공장치(2)는 클라이언트 단말(1)로부터 파일을 전송받아 저장하고, 클라이언트 단말(1) 요청 시에 전송받은 파일을 다시 클라이언트 단말(1)에 제공한다.
일 실시예에 따르면, OS 제공장치(2)는 클라이언트 단말(1)로부터 파일을 전송받을 때에, 파일이 어느 OS를 기반으로 실행되는지를 나타내는 파일 태그를 함께 전송받아, 파일 태그에 따라 파일들을 분류하여 분류 기준에 맞게 저장공간(20)에 분리 저장한다. 예를 들면, 도 16에 도시된 바와 같이, 파일을 OS의 종류에 관계없이 실행되는 파일(1600)과, OS에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일(1610)과, OS에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일(1620)과, 그 외의 파일(1630)로 분류하여 해당 영역에 각각 저장한다.
다른 실시예에 따르면, OS 제공장치(2)는 파일이 어느 OS를 기반으로 실행되는지를 분류할 수 있는 파일분류 기준정보가 저장된다. 이 경우, OS 제공장치(2)가 클라이언트 단말(1)로부터 파일을 전송받으면, OS 제공장치(2)에 저장된 파일분류 기준정보에 따라 파일을 분류한다.
클라이언트 단말(1)과 OS 제공장치(2) 간의 파일 전송을 위해 인터넷 프로토콜, 예를 들면 파일 전송 프로토콜(FTP)를 사용할 수 있다. OS 제공장치(2)의 저장공간(20)에는 제2 OS에서 종속적으로 실행되는 파일 중 현재는 제2 OS에서 실행될 수는 없지만, 파일을 변환하면 제2 OS에서 실행 가능하게 하는 변환 툴을 포함할 수 있다. 변환 툴은 클라이언트 단말(1)에 제공할 수도 있다.
한편, OS 제공장치(2)의 저장공간(20)은 클라이언트 단말(1)의 주 시스템 메모리를 제외한 공간, 예를 들면 SD 카드의 영역으로 확장될 수 있다. SD 카드는 휴대 가능한 클라이언트 단말(1)에 사용하기 위한 비휘발성 메모리 카드 포맷이다.
도 17은 본 발명의 일 실시예에 따라 클라이언트 단말(1)의 메모리(10) 내 부팅관리 영역의 기능을 설명하기 위한 참조도이다.
각 OS에 따라 부팅관리 영역의 기능은 상이할 수 있다. 이는 일반적인 다중 OS 운용 방법과 동일하게 운용된다. 데이터 영역에는 OS 정보가 저장되는데, 부팅관리 영역은 OS 정보에 맞게 시스템 설정을 하고 클라이언트 단말(1)을 부팅시킬 수 있다. OS 정보는 데이터 영역 중 한 부분에 항상 포맷되지 않고 관리될 수 있도록 함에 따라, 부팅관리 영역은 이 OS 정보를 이용하여 시스템을 가동시킬 수 있다.
도 18은 본 발명의 다른 실시예에 따른 다중 OS 지원방법을 도시한 흐름도이다.
도 18에 도시된 다중 OS 지원방법과, 도 7을 참조로 설명한 다중 OS 지원방법과의 차이점은 도 7에서는 클라이언트 단말(1)이 각 파일을 바로 OS 제공장치(2)로 전송하지만, 도 18에서는 클라이언트 단말(1)이 일단 모든 파일의 위치를 파악한 후 최종적으로 한번에 모든 파일을 OS 제공장치(2)로 전송하게 된다.
이하, 전술한 차이점을 위주로, 다중 OS 지원방법을 후술한다.
클라이언트 단말(1)은 제2 OS 설치 이벤트가 발생하면, OS 제공장치(2)에 접속하여 OS 제공장치(2)로부터 클라이언트 단말(1)에 설치할 제2 OS 정보를 수집한다(1800).
이어서, 클라이언트 단말(1)은 메모리(10)에 저장된 파일을 분석하고, 분석된 파일을, 메모리(10)의 DB에 저장된 파일분류 기준정보와 비교한다(1810). 이때, 클라이언트 단말(1)은 비교를 통해 파일을 OS의 종류에 관계없이 실행되는 파일과, OS에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일과, OS에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일과, 그 외의 파일로 분류할 수 있다.
이어서, 클라이언트 단말(1)은 분류된 파일들을 대상으로 각 파일 마다 어느 OS를 기반하여 실행될 수 있는 파일인지를 알 수 있는 파일 태그를 생성한다(1820). 그리고, 각 파일의 위치를 파악(1830)한 후 최종적으로 한번에 모든 파일을 OS 제공장치(2)로 전송한다(1840,1850).
이어서, 클라이언트 단말(1)은 제2 OS를 설치하기 위해 메모리(10)의 데이터 영역과 OS 영역을 포맷한다(1860). 그리고, OS 제공장치(2)로부터 제2 OS를 제공받아 포맷된 OS 영역에 설치(1870)한 후, OS 제공장치(2)로부터 제2 OS에서 실행될 수 있는 파일과 파일 태그를 전송받는다(1880). 이때, 파일이 어느 OS를 기반하여 실행될 수 있는 파일인지 검증한 후, 해당 파일을 메모리(10)에 저장할 수 있다. 이어서, 클라이언트 단말(1)이 재부팅되면, 클라이언트 단말(1)은 제2 OS 상에서 운용되는 시스템으로 변경된다(1890).
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1 : 클라이언트 단말 2 : OS 제공장치
10 : 메모리 12 : 프로세서
14 : 사용자 인터페이스 120 : 파일 분석부
122 : 데이터베이스 비교부 124 : 파일 태그 생성 및 분석부
126 : 운영체제 및 파일 처리부 128 : 네트워크 통신부

Claims (21)

  1. 제1 운영체제와, 상기 제1 운영체제 하에서 사용되는 파일을 저장하는 메모리; 및
    상기 메모리에 저장된 파일을 운영체제 제공장치로 전송하고 상기 메모리를 포맷하며, 상기 운영체제 제공장치로부터 제2 운영체제와 함께 상기 제1 운영체제 하에서 사용되던 파일 중 적어도 상기 제2 운영체제에서 실행 가능한 파일을 수신하는 프로세서;
    를 포함하는 것을 특징으로 하는 클라이언트 단말.
  2. 제 1 항에 있어서,
    상기 메모리에 저장된 파일은 어플리케이션과 같은 프로그램의 실행을 제어하는 실행 파일과, 음악, 동영상, 이미지, 문서와 같은 멀티미디어 관련 파일 중 적어도 하나를 포함하는 것을 특징으로 하는 클라이언트 단말.
  3. 제 1 항에 있어서,
    상기 제2 운영체제에서 실행 가능한 파일은, 운영체제의 종류에 관계없이 실행되는 파일과, 제2 운영체제에서 실행되는 파일과, 현재 제2 운영체제에서 실행될 수 없는 상태이지만 제2 운영체제에서 실행될 수 있도록 변환이 가능한 파일 중 적어도 하나를 포함하는 것을 특징으로 하는 클라이언트 단말.
  4. 제 1 항에 있어서,
    상기 메모리는 제1 운영체제가 저장된 운영체제 영역과, 파일 및 파일분류 기준정보가 저장된 데이터 영역을 포함하고,
    상기 프로세서는 상기 파일분류 기준정보에 따라 파일을 분류하고, 분류된 파일을 상기 운영체제 제공장치로 전송한 후 상기 운영체제 영역과 데이터 영역을 포맷하며, 상기 제2 운영체제와, 상기 전송된 파일 중에서 상기 제2 운영체제에서 실행 가능한 파일을 상기 운영체제 제공장치로부터 수신하는 것을 특징으로 하는 클라이언트 단말.
  5. 제 4 항에 있어서, 상기 프로세서는,
    파일을 상기 파일분류 기준정보에 따라 운영체제의 종류에 관계없이 실행되는 파일과, 운영체제에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일과, 운영체제에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일과, 그 외의 파일로 분류하는 것을 특징으로 하는 클라이언트 단말.
  6. 제 4 항에 있어서, 상기 프로세서는,
    상기 파일분류 기준정보에 따라 파일이 어느 운영체제를 기반으로 실행되는지를 알 수 있는 파일 태그를 생성하여 이를 상기 운영체제 제공장치에 전송하는 것을 특징으로 하는 클라이언트 단말.
  7. 제 4 항에 있어서, 상기 프로세서는,
    상기 파일분류 기준정보에 따라 분류된 파일들을 상기 데이터 영역의 소정의 영역들에 분리하여 저장하는 것을 특징으로 하는 클라이언트 단말.
  8. 제 4 항에 있어서, 상기 프로세서는,
    상기 메모리에 저장된 파일을 분석하는 파일 분석부;
    상기 파일 분석부를 통해 분석된 파일을, 상기 메모리에 저장된 파일분류 기준정보와 비교하여 분류하는 데이터베이스 비교부;
    상기 메모리로부터 파일을 수신하고, 상기 운영체제 영역과 데이터 영역을 포맷하고 상기 운영체제 제공장치로부터 수신된 제2 운영체제를 상기 메모리에 설치하는 운영체제 및 파일 처리부; 및
    상기 운영체제 및 파일 처리부로부터 파일을 전송받아 상기 운영체제 제공장치에 전송하는 네트워크 통신부;
    를 포함하는 것을 특징으로 하는 클라이언트 단말.
  9. 제 8 항에 있어서, 상기 프로세서는,
    상기 데이터베이스 비교부가 분류한 파일들을 대상으로 각 파일 마다 어느 운영체제를 기반하여 실행될 수 있는 파일인지를 알 수 있는 파일 태그를 생성하는 파일 태그 생성 및 분석부; 를 더 포함하며,
    상기 네트워크 통신부는 상기 운영체제 및 파일 처리부로부터 파일과 파일 태그를 전송받아 상기 운영체제 제공장치에 전송하는 것을 특징으로 하는 클라이언트 단말.
  10. 제 9 항에 있어서,
    상기 네트워크 통신부는, 상기 운영체제 제공장치로부터 제2 운영체제와 상기 제2 운영체제에서 실행 가능한 파일을 수신하고,
    상기 파일 태그 생성 및 분석부는, 상기 네트워크 통신부를 통해 운영체제 제공장치로부터 수신된 파일이 어느 운영체제를 기반하여 실행될 수 있는 파일인지 검증하며,
    상기 운영체제 및 파일 처리부는, 상기 운영체제 제공장치로부터 수신된 제2 운영체제를 상기 메모리에 설치하고, 상기 설치된 제2 운영체제 하에서 파일을 실행하는 것을 특징으로 하는 클라이언트 단말.
  11. 제 8 항에 있어서,
    상기 파일 분석부는, 상기 메모리에서 파일을 탐색하고 탐색된 파일을 파싱하여 파일 확장자를 추출하며,
    상기 데이터베이스 비교부는, 상기 파일 분석부를 통해 추출된 파일 확장자를 이용하여 파일을 상기 메모리에 저장된 파일분류 기준정보에 따라 분류하는 것을 특징으로 하는 클라이언트 단말.
  12. 제 4 항에 있어서, 상기 메모리는,
    운영체제를 운영하는 부팅관리 영역을 더 포함하며,
    상기 프로세서는 포맷 시에 상기 부팅관리 영역과, 데이터 영역 내 운영체제 정보는 포맷 대상에서 제외시켜, 상기 부팅관리 영역이 상기 운영체제 정보를 이용하여 상기 제2 운영체제를 설치 가능하게 하는 것을 특징으로 하는 클라이언트 단말.
  13. 제 1 항에 있어서, 상기 프로세서는,
    상기 메모리에 저장된 파일을 상기 운영체제 제공장치에 전송하고, 상기 운영체제 제공장치가 상기 전송된 파일을 파일분류 기준정보에 따라 분류하면, 상기 제2 운영체제와 함께 상기 분류된 파일 중에서 상기 제2 운영체제에서 실행 가능한 파일을 상기 운영체제 제공장치로부터 수신하는 것을 특징으로 하는 클라이언트 단말.
  14. 제 1 항에 있어서,
    사용자 명령을 입력받는 사용자 인터페이스; 를 더 포함하며,
    상기 프로세서는 상기 사용자 인터페이스를 통해 상기 제1 운영체제에서 상기 제2 운영체제로의 운영체제 변경 명령을 수신하는 것을 특징으로 하는 클라이언트 단말.
  15. 클라이언트 단말의 다중 운영체제 지원방법에 있어서,
    상기 클라이언트 단말의 메모리에 저장된 파일을 분석하고, 분석된 파일을 상기 메모리에 저장된 파일분류 기준정보와 비교하여 분류하는 단계;
    상기 분류된 파일을 운영체제 제공장치에 전송하는 단계; 및
    상기 메모리에 저장된 제1 운영체제와 파일을 삭제하고, 제2 운영체제와, 상기 운영체제 제공장치에 전송된 파일 중에 적어도 상기 제2 운영체제에서 실행 가능한 파일을 상기 운영체제 제공장치로부터 수신하는 단계;
    를 포함하는 것을 특징으로 하는 다중 운영체제 지원방법.
  16. 제 15 항에 있어서, 상기 분석된 파일을 상기 메모리에 저장된 파일분류 기준정보와 비교하여 분류하는 단계는,
    파일을 상기 파일분류 기준정보에 따라 운영체제의 종류에 관계없이 실행되는 파일과, 운영체제에 따라 종속적으로 실행되고 파일 형식이 변경되지 않는 파일과, 운영체제에 따라 종속적으로 실행되고 파일 형식이 변경 가능한 파일과, 그 외의 파일로 분류하는 것을 특징으로 하는 다중 운영체제 지원방법.
  17. 제 15 항에 있어서,
    상기 분류된 파일을 대상으로 각 파일 마다 어느 운영체제를 기반하여 실행될 수 있는 파일인지를 알 수 있는 파일 태그를 생성하는 단계; 및
    상기 분류된 파일을 상기 운영체제 제공장치에 전송 시에 상기 생성된 파일 태그를 함께 상기 운영체제 제공장치에 전송하는 단계;
    를 더 포함하는 것을 특징으로 하는 다중 운영체제 지원방법.
  18. 제 15 항에 있어서,
    상기 운영체제 제공장치에 접속하여 상기 운영체제 제공장치로부터 상기 클라이언트 단말에 설치할 제2 운영체제 정보를 수집하는 단계;
    를 더 포함하는 것을 특징으로 하는 다중 운영체제 지원방법.
  19. 제 15 항에 있어서, 상기 수신하는 단계는,
    상기 클라이언트 단말 내 비휘발성 메모리의 데이터 영역과 운영체제 영역을 포맷하는 단계;
    상기 운영체제 제공장치로부터 제2 운영체제를 다운로드 받아 이를 상기 클라이언트 단말 내 휘발성 메모리의 버퍼영역에 복사하는 단계; 및
    상기 휘발성 메모리의 버퍼영역에 복사된 제2 운영체제를, 상기 포맷된 휘발성 메모리의 운영체제 영역에 설치하는 단계;
    를 포함하는 것을 특징으로 하는 다중 운영체제 지원방법.
  20. 제 15 항에 있어서, 상기 수신하는 단계는,
    상기 운영체제 제공장치로부터 제2 운영체제를 다운로드 받아 이를 휘발성 메모리의 버퍼영역에 복사하는 단계;
    상기 비휘발성 메모리의 데이터 영역과 운영체제 영역을 포맷하는 단계; 및
    상기 휘발성 메모리의 버퍼영역에 복사된 제2 운영체제를, 상기 포맷된 휘발성 메모리의 운영체제 영역에 설치하는 단계;
    를 포함하는 것을 특징으로 하는 다중 운영체제 지원방법.
  21. 제 15 항에 있어서, 상기 수신하는 단계는,
    상기 운영체제 제공장치로부터 제2 운영체제를 다운로드 받아 이를 휘발성 메모리의 버퍼영역에 복사하는 단계;
    상기 휘발성 메모리의 버퍼영역에 복사된 제2 운영체제를 비휘발성 메모리의 데이터 영역 내 소정의 영역에 저장하는 단계;
    상기 비휘발성 메모리의 운영체제 영역을 포맷하는 단계;
    상기 비휘발성 메모리의 데이터 영역 내 소정의 영역에 저장된 제2 운영체제를, 상기 포맷된 휘발성 메모리의 운영체제 영역에 설치하는 단계; 및
    상기 비휘발성 메모리의 데이터 영역을 포맷하는 단계;
    를 포함하는 것을 특징으로 하는 다중 운영체제 지원방법.
KR1020120020563A 2012-02-28 2012-02-28 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법 KR101389977B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120020563A KR101389977B1 (ko) 2012-02-28 2012-02-28 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법
US13/662,892 US20130227259A1 (en) 2012-02-28 2012-10-29 Client terminal, operating system providing apparatus, and methods for supporting multiple operating systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120020563A KR101389977B1 (ko) 2012-02-28 2012-02-28 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법

Publications (2)

Publication Number Publication Date
KR20130098775A true KR20130098775A (ko) 2013-09-05
KR101389977B1 KR101389977B1 (ko) 2014-05-07

Family

ID=49004589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120020563A KR101389977B1 (ko) 2012-02-28 2012-02-28 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법

Country Status (2)

Country Link
US (1) US20130227259A1 (ko)
KR (1) KR101389977B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021066972A1 (en) * 2019-09-30 2021-04-08 UiPath, Inc. Document processing framework for robotic process automation
CN113316761A (zh) * 2019-12-08 2021-08-27 西部数据技术公司 自格式化数据存储设备

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055031A1 (en) * 2014-11-13 2016-02-25 Mediatek Inc. Dual-System Architecture With Fast Recover And Switching Of Operating System
US9756061B1 (en) 2016-11-18 2017-09-05 Extrahop Networks, Inc. Detecting attacks using passive network monitoring
US10476673B2 (en) 2017-03-22 2019-11-12 Extrahop Networks, Inc. Managing session secrets for continuous packet capture systems
US9967292B1 (en) 2017-10-25 2018-05-08 Extrahop Networks, Inc. Inline secret sharing
US10389574B1 (en) 2018-02-07 2019-08-20 Extrahop Networks, Inc. Ranking alerts based on network monitoring
US10038611B1 (en) 2018-02-08 2018-07-31 Extrahop Networks, Inc. Personalization of alerts based on network monitoring
US10270794B1 (en) 2018-02-09 2019-04-23 Extrahop Networks, Inc. Detection of denial of service attacks
US10411978B1 (en) 2018-08-09 2019-09-10 Extrahop Networks, Inc. Correlating causes and effects associated with network activity
US10594718B1 (en) 2018-08-21 2020-03-17 Extrahop Networks, Inc. Managing incident response operations based on monitored network activity
US10965702B2 (en) 2019-05-28 2021-03-30 Extrahop Networks, Inc. Detecting injection attacks using passive network monitoring
CN110347532A (zh) * 2019-07-11 2019-10-18 陕西瑞迅电子信息技术有限公司 多分区系统备份方法及装置
US11165814B2 (en) 2019-07-29 2021-11-02 Extrahop Networks, Inc. Modifying triage information based on network monitoring
US10742530B1 (en) 2019-08-05 2020-08-11 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US11388072B2 (en) 2019-08-05 2022-07-12 Extrahop Networks, Inc. Correlating network traffic that crosses opaque endpoints
US10742677B1 (en) 2019-09-04 2020-08-11 Extrahop Networks, Inc. Automatic determination of user roles and asset types based on network monitoring
US11165823B2 (en) 2019-12-17 2021-11-02 Extrahop Networks, Inc. Automated preemptive polymorphic deception
US11463466B2 (en) 2020-09-23 2022-10-04 Extrahop Networks, Inc. Monitoring encrypted network traffic
US11310256B2 (en) 2020-09-23 2022-04-19 Extrahop Networks, Inc. Monitoring encrypted network traffic
US11349861B1 (en) 2021-06-18 2022-05-31 Extrahop Networks, Inc. Identifying network entities based on beaconing activity
US11296967B1 (en) 2021-09-23 2022-04-05 Extrahop Networks, Inc. Combining passive network analysis and active probing
US11843606B2 (en) 2022-03-30 2023-12-12 Extrahop Networks, Inc. Detecting abnormal data access based on data similarity

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813708B2 (en) * 2002-10-29 2004-11-02 Electronic Data Systems Corporation System and method for searching a BIOS for a type of computer network drive to boot and an operating system for migrating an operating system to a computer
US20040187104A1 (en) * 2003-03-18 2004-09-23 Shantanu Sardesai Operating system deployment methods and systems
US9003173B2 (en) 2007-09-28 2015-04-07 Microsoft Technology Licensing, Llc Multi-OS (operating system) boot via mobile device
US8548956B2 (en) * 2008-02-28 2013-10-01 Mcafee, Inc. Automated computing appliance cloning or migration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021066972A1 (en) * 2019-09-30 2021-04-08 UiPath, Inc. Document processing framework for robotic process automation
CN113316761A (zh) * 2019-12-08 2021-08-27 西部数据技术公司 自格式化数据存储设备

Also Published As

Publication number Publication date
US20130227259A1 (en) 2013-08-29
KR101389977B1 (ko) 2014-05-07

Similar Documents

Publication Publication Date Title
KR101389977B1 (ko) 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법
US10740078B2 (en) Dynamic plugin(s) for cloud application(s)
EP3333704B1 (en) Method and apparatus for repairing kernel vulnerability
US9619304B2 (en) Automatic connections between application components
US20150012924A1 (en) Method and Device for Loading a Plug-In
Gilbert et al. Pocket ISR: Virtual machines anywhere
WO2014089734A1 (zh) 终端和应用程序恢复方法
US9535666B2 (en) Dynamic agent delivery
US10649679B2 (en) Containerized application extensions in distributed storage systems
US8856740B2 (en) Implementing multiple versions of a plug-in concurrently
US20160188310A1 (en) Information processing apparatus, control method for information processing apparatus, and storage medium of program for executing control method
US20130081010A1 (en) Template and server content download using protocol handlers
US9971611B2 (en) Monitoring a mobile device application
US20170364347A1 (en) Selectively migrating applications during an operating system upgrade
US9672020B2 (en) Selectively loading precompiled header(s) and/or portion(s) thereof
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
US10216505B2 (en) Using machine learning to optimize minimal sets of an application
JP6546832B2 (ja) 動作環境再構築プログラム、動作環境再構築システム、動作環境再構築方法
CN115454827B (zh) 兼容性检测方法、系统、设备和介质
CN115421785B (zh) 应用程序的移植处理方法、装置和介质
KR101211673B1 (ko) 사용자 단말에서 다른 시스템 환경을 갖는 외부 단말의 프로그램을 실행하기 위한 바이너리 호환 시스템 및 그 방법
CN110764792B (zh) 一种应用程序的安装方法、装置、设备及存储介质
Zhu et al. Research of optimizing the system partition in android system
Cohen et al. Customization and installation of android
KR20070025530A (ko) 운영 체계를 부팅하는 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee