KR20160136441A - 사용자 선택형 운영체제 - Google Patents

사용자 선택형 운영체제 Download PDF

Info

Publication number
KR20160136441A
KR20160136441A KR1020167029800A KR20167029800A KR20160136441A KR 20160136441 A KR20160136441 A KR 20160136441A KR 1020167029800 A KR1020167029800 A KR 1020167029800A KR 20167029800 A KR20167029800 A KR 20167029800A KR 20160136441 A KR20160136441 A KR 20160136441A
Authority
KR
South Korea
Prior art keywords
operating system
user
boot loader
storage
operating systems
Prior art date
Application number
KR1020167029800A
Other languages
English (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160136441A publication Critical patent/KR20160136441A/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/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)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 사용자 선택형 운영체제를 가진 사용자 장치에 관한 것이다. 일 구현예는 복수의 압축된 운영체제가 비실행 형태로 저장된 1차 스토리지를 포함할 수 있다. 이 구현예는 개별 운영체제의 사용자 선택을 수신하도록 구성된 다중 옵션 부트 로더를 실행하도록 구성된 프로세서를 또한 포함할 수 있다. 다중 옵션 부트 로더는 개별 운영체제에 특유한 구성으로 1차 스토리지에 파일 폴더 구조를 설치하고 상기 파일 폴더 구조에 관한 1차 스토리지에 실행 가능 형태로 상기 개별 운영체제를 설치하도록 구성된다.

Description

사용자 선택형 운영체제{USER SELECTABLE OPERATING SYSTEMS}
전통적으로, 컴퓨팅 장치는 그 장치에서 동작하는 단일 운영체제를 포함한다. 일부 정통한 사용자는 2개의 운영체제 중 어느 하나로 부팅하도록 장치를 구성할 수 있다. 그러나 그러한 구성은 운영체제의 변경 및 운영체제를 서로 분리하기 위해 하드 분할(partitioning)이 필요하다. 또한, 복수의 운영체제는 다량의 스토리지 공간을 점유하고 그 스토리지 공간은 사용자에게 이용할 수 없었다. 또한, 그 구성은 장치 및 운영체제에 대한 보안성 문제를 야기하였다. 그래서 사용자는 그들의 장치에서 복수의 운영체제 옵션을 위해 많은 것을 희생하거나, 단일 운영체제를 가진 장치에 의해 제공되는 선택의 결여를 수용하였다.
본 발명은 사용자 선택형 운영체제를 가진 사용자 장치에 관한 것이다. 일 구현예는 반도체 하드 드라이브 또는 하드 디스크 드라이브와 같은 1차 스토리지를 구비한 장치와 관련된다. 1차 스토리지는 복수의 압축된 운영체제를 비실행(inoperable) 형태 또는 버전으로 저장할 수 있다. 이 구현예는 다중 옵션 부트 로더(loader)를 실행하도록 구성된 프로세서를 또한 포함할 수 있다. 다중 옵션 부트 로더는 개별 운영체제의 사용자 선택을 수신하도록 구성될 수 있다. 다중 옵션 부트 로더는 개별 운영체제에 특유한 구성으로 1차 스토리지에 파일 폴더 구조를 설치(install)하고 상기 파일 폴더 구조에 관한 1차 스토리지에 실행 가능 형태로 개별 운영체제를 설치하도록 구성될 수 있다.
다른 구현예는 디스플레이, 스토리지 및 프로세서를 포함할 수 있다. 프로세서는 스토리지에 이진 형태로 저장된 복수의 운영체제를 리스팅하는 그래픽 사용자 인터페이스(GUI)를 디스플레이에서 제시하도록 구성될 수 있다. GUI는 실행 가능 형태의 개별 운영체제를 스토리지에 설치하기 위해 사용자가 선택할 수 있게 한다. 프로세서는 복수의 운영체제 중 실행 형태의 다른 하나의 운영체제를 장치에 설치하고 실행 형태의 개별 운영체제를 삭제하기 위해 사용자가 선택할 수 있게 하는 다른 GUI가 디스플레이에서 제시되게 할 수 있다.
또 다른 구현예는 디스플레이, 프로세서, 스토리지, 및 스토리지에 설치된 적어도 2개의 실행 가능한 운영체제를 포함할 수 있다. 프로세서는 개별 운영체제의 사용자 선택을 수신하고 적어도 2개의 운영체제 중 다른 것들을 삭제하도록 구성될 수 있다. 프로세서는 또한 삭제된 운영체제에 전용된 스토리지의 일부를 사용자 데이터 스토리지용으로 포맷할 수 있다.
이 요약은 뒤의 상세한 설명 부분에서 더 구체적으로 설명하는 개념들의 선택을 간단한 형태로 소개하기 위해 제공된다. 이 요약은 청구된 주제의 핵심적인 특징 또는 본질적인 특징을 식별하기 위한 것으로 의도되지 않고, 또한 청구된 주제의 범위를 결정함에 있어서의 보조자로서 사용되는 것으로 의도되지 않는다.
구체적인 설명이 첨부 도면과 관련하여 설명된다. 도면에 있어서, 참조 문자의 가장 좌측 숫자는 그 참조 번호가 최초로 나오는 도면을 표시한다. 설명 및 도면의 다른 사례에서 동일한 참조 번호를 사용하는 것은 유사하거나 동일한 아이템을 표시할 수 있다.
도 1 내지 도 9는 본 발명의 일부 구현예에 따른 사용자 운영체제 선택 시나리오의 예를 보인 도이다.
도 10은 사용자 선택형 운영체제 개념을 구현할 수 있는 시스템의 예를 보인 도이다.
도 11 내지 도 13은 일부 구현예에 따른, 도 10과 관련하여 소개된 일부 요소들에 대한 추가적인 세부를 보인 도이다.
도 14 및 도 15는 일부 구현예에 따른 복수의 운영체제 방법의 흐름도이다.
개관
본 기술은 제조업자 또는 다른 공급자가 복수의 운영체제를 컴퓨팅 장치 또는 "장치"에 설치할 수 있게 한다. 최종 사용자(또는 최종 사용자를 대신하여 행동하는 누군가)는 어떤 운영체제를 장치에서 사용할 것인지 선택할 수 있다. 임의 유형의 장치에 적용할 수 있지만, 본 개념은 특히 태블릿, 스마트폰 및/또는 웨어러블 스마트 장치와 같은 스토리지가 한정된 장치에 적용할 수 있다. 스토리지가 한정된 장치는 비교적 소량의 스토리지를 갖는 경향이 있다. 전통적인 구성에서, 장치에 복수의 운영체제를 갖는 것은 음악, 사진 및/또는 비디오와 같은 사용자 데이터를 저장하기 위해 사용자가 사용할 수 있는 스토리지의 양을 크게 감소시킨다. 그 결과, 복수의 운영체제로부터 선택할 수 있는 편리성은 크게 감소된 사용자 스토리지에 의해 압도되었다. 본 구현예는 이러한 트레이드오프를 극복하고 사용자에게 이용 가능한 데이터 스토리지를 매우 적게 감소시키면서 사용자에게 복수의 운영체제의 선택을 제공할 수 있다. 이하에서의 설명은 몇 가지 시나리오 예를 먼저 설명하고, 그 다음에 하드웨어 예 및 마지막으로 방법 예를 설명할 것이다.
유즈 케이스 시나리오
도 1 및 도 2는 장치(102)를 수반하는 제1 유즈 케이스(use case) 시나리오를 집합적으로 보인 것이다. 이 예에서, 장치(102)는 디스플레이(104)를 구비한 태블릿형 장치로서 명시된다. 장치 시나리오는 장치(102)의 최종 사용자(106)(예를 들면, 구매자)를 수반할 수 있다. 도 1에서, 사용자가 장치를 파워 업(power up)하면 그래픽 사용자 인터페이스(GUI)(108)가 사용자에게 제시된다. GUI는 사용자에게 제시되는 복수의 운영체제 메시지(110)를 포함한다. 메시지는 태블릿이 2개의 사전 설치된 운영체제를 갖고 있다고 112에서 표시한다. GUI는 114에서 운영체제(예를 들면, 운영체제 1과 운영체제 2)를 리스팅하고 사용자에게 운영체제 중 하나를 선택하도록 요구한다. 메시지는 116에서 비선택 운영체제는 사용자가 장치에서 더 많은 이용 가능한 스토리지 공간을 갖게 하기 위해 삭제될 것이라고 사용자에게 설명한다. 설명의 목적으로 사용자가 운영체제 2를 선택한다고 가정하자. 비록 도시 생략되었지만, 사용자의 선택을 확인하도록 사용자에게 요청하고 및/또는 선택의 임의의 지류를 설명하는 다른 하나의 GUI가 이 시점에서 발생될 수 있다.
도 2는 운영체제 2가 장치에서 발진되고 운영체제 1은 사용자에게 스토리지 공간을 개방하기 위해 장치에서 삭제되었다고 사용자에게 표시하는 후속 GUI(208)를 보인 것이다. 요약하자면, 이 구성은 장치에 상이한 운영체제가 사전 설치될 수 있게 한다. 사용자는 개별 운영체제를 선택할 수 있다. 다른 운영체제들은 삭제된 운영체제에 의해 점유되었던 스토리지 부분이 사용자가 사용하게끔 구성될 수 있도록 삭제될 수 있다. 이 시점에서 장치(102)는 마치 선택된 운영체제만이 장치에 사전 설치되었던 것과 같은 방식으로 선택된 운영체제에 의해 기능할 수 있다. 그래서 제조업자는 복수의 운영체제 옵션을 가진 단일 장치를 만들 수 있고 사용자는 원하는 대로 장치를 구성할 수 있다. 최종 결과는 마치 사용자 사양(예를 들면, 사용자가 원하는 사양)으로 구축된 것처럼 기능할 수 있는 일반 장치로서 생각될 수 있다.
도 3 내지 도 9는 다른 다중 옵션 시나리오를 집합적으로 보인 것이다. 이 시나리오는 장치(302)와 관련하여 설명한다. 이 경우에, 장치(302)는 디스플레이(304)와 하드웨어 버튼(306)을 구비한 스마트폰으로서 명시된다. 이 경우에는 3개의 하드웨어 버튼(306(1), 306(2), 306(3))이 있다. 하드웨어 버튼(306)은 전원 버튼, 볼륨 버튼 등과 같은 각종 능력으로 기능할 수 있다. 일부 구성에서, 하드웨어 버튼은 "소프트 키"를 이용할 수 없을 때 시동 중에 사용하는 것으로 이용할 수 있다. 이 예에서 사용자는 시동 GUI(308)를 보기 위해 전원 버튼을 기동시킬 수 있다. 다른 장치 구성은 다른 수의 하드웨어 버튼을 가질 수 있고, 또는 하드웨어 버튼이 전혀 없고 그 대신에 사용자가 장치를 제어하게 하는 다른 메카니즘을 가질 수 있다는 점에 주목한다.
GUI(308)는 장치가 파워 업되고 있는 것 및 사용자가 310에 표시된 것처럼 장치에 설치하기 위해 3개의 운영체제(OS1-OS3) 중 하나를 선택할 수 있다는 것을 사용자에게 표시한다. 설명의 목적으로 사용자는 하나 이상의 하드웨어 버튼(306)을 이용하여 운영체제 1을 선택하였다고 가정하자. 도 4는 운영체제 1에 의해 발생된 GUI(408)를 보인 것이다. 이 시점에서, 운영체제 1은 정상적으로 발진한다(예를 들면, 마치 운영체제 1이 장치에서의 유일한 운영체제인 것처럼). 그러나 이 경우에 다른 운영체제(예를 들면, OS2 및 OS3)는 장치로부터 삭제되지 않는다. 그 대신에, OS2 및 OS3는 장치에서 비교적 작은 공간(예를 들면, 1기가바이트 이하)을 차지하는 압축된 비실행 형태로 장치에서 유지될 수 있다.
도 5는 사용자가 다시 한번 장치(302)의 전원을 켠 경우의 후속 GUI(508)를 보인 것이다. 이 경우에 GUI는 현재의 운영체제가 운영체제 1임을 510에서 표시한다. GUI는 또한 사용자가 운영체제를 바꾸고 싶어하는지를 512에서 사용자에게 묻는다. 설명 목적으로, 사용자가 다른 운영체제를 사용하고 싶어한다는 것을 표시한다고 가정하자.
도 6은 사용자가 이용 가능한 운영체제(예를 들면, OS1-OS3)로부터 선택할 수 있게 하는 후속 GUI(608)를 보인 것이다. 설명 목적으로, 사용자가 OS3를 선택한다고 가정하자. 도 7은 운영체제를 변경하기 위한 준비로 장치가 사용자의 개인 데이터를 저장하는 동작을 취하고 있음을 710에서 표시하는 다른 GUI(708)를 보인 것이다. 이 상황에서, 사용자의 개인 데이터는 이전 운영체제와 연관된 개인 설정 및/또는 문서, 미디어 등과 같은 개인 콘텐츠를 포함할 수 있다. 일부 경우에, 개인 데이터는 개별 운영체제와 연관된 구성 데이터의 일부로서 생각할 수 있다. GUI(708)는 또한 712에서 사용자가 그의 개인 데이터를 저장하기 위해 취할 수 있는 동작에 대하여 학습하는 기회를 사용자에게 제공한다. 예를 들면, 사용자는 이 섹션을 클릭할 수 있고, 사용자가 특정의 개인 데이터를 백업하는 방법 및 장소를 설명하는 다른 하나의 GUI가 발생될 수 있다. 예를 들면, 사용자는 그의 개인 데이터를 2차 스토리지, 예를 들면, 플래시 스토리지 장치(예를 들면, 보안 디지털(SD) 카드) 및/또는 클라우드 스토리지 등에 백업할 수 있다.
도 8은 운영체제 변경 중에 사용자의 개인 데이터를 보호하는 것에 관한 다른 하나의 GUI(808)를 보인 것이다. 이 GUI는 운영체제 전환 중에 사용자의 개인 데이터를 보호하기 위한 동작들이 취해질 수 있음을 표시한다. 이 예에서 GUI(808)는 특정 개인 데이터(이 경우에는 비디오 파일)가 저장될 수 없다는 것을 810에서 표시한다. GUI는 장치가 812에서 운영체제 전환을 진행하기 전에 사용자가 특정 데이터를 수동으로 백업하도록 요청한다.
도 9는 선택된 OS3를 발진시키는 후속 GUI(908)를 보인 것이다. 910에서, GUI는 도 7 및 도 8에서 저장된 사용자 개인 데이터가 OS3와 연관된 것임을 표시한다. 이 시점부터 OS3는 정상적인 방식으로 동작할 수 있다.
요약하자면, 도 3 내지 도 9는 복수의 운영체제의 압축된 비실행 형태를 유지할 수 있는 장치를 보인 것이다. 사용자는 (예를 들면, 실행 가능 형태로) 장치에 설치하기 위해 개별 운영체제를 선택할 수 있다. 사용자는 만일 필요하다면 다른 운영체제로 후속적으로 전환할 수 있다. 이 구성은 단일 장치(예를 들면, 제품)가 많은 다른 사용자들을 만족시키게 할 수 있다. 또한, 개별 사용자는 매우 작은 스토리지(예를 들면, 1차 스토리지의 32기가바이트 중 1기가바이트 미만)를 희생하면서 장치에서 사용되는 개별 운영체제를 선택(및 재선택)할 수 있다. 장치(302)는 초기 재시동과 같은 소정의 환경에서 사용자가 운영체제를 자동으로 선택(예를 들면, 변경)하게 구성될 수 있다. 대안적으로 또는 추가적으로, 최초의 사용자 선택 후에, 사용자는 예를 들면 '설정' 폴더 또는 유사한 사용자 제어 특징에서 선택을 행함으로써 운영체제 선택 GUI를 불러내도록 결정할 수 있다.
도 10은 사용자가 복수의 운영체제로부터 선택할 수 있도록 구성된 시스템(1000)을 보인 것이다. 시스템(1000)은 전술한 장치(102, 302)와 유사한 장치(1002)를 포함한다. 일부 구성에서, 장치(1002)는 애플리케이션 층(1004), 운영체제 층(1006) 및 하드웨어 층(1008)을 갖는 것으로서 특징화될 수 있다. 하나 이상의 애플리케이션(1010)이 운영체제(OS)(1012)를 통해 동작할 수 있다. 다중 옵션 부트 로더(1014)는 사용자가 장치에서 동작하기 위한 개별 운영체제를 선택하게 할 수 있다. 운영체제는 드라이버(1018)를 통해 하드웨어(1016)와 상호작용할 수 있다(운영체제는 그들 자신의 드라이버를 각각 가질 수 있음에 주목한다. 예를 들면, 제1 운영체제용의 디스플레이 드라이버는 제2 운영체제에서 기능하지 않을 수 있다).
하드웨어(1016)의 예로는 특히 디스플레이(1020)(도 1 및 도 3의 디스플레이(104, 304)와 각각 유사한 것), 센서(1022), 프로세서(1024), 배터리(예를 들면, 전원)(1026), 통신 콤포넌트(1028), 및/또는 스토리지 매체 또는 스토리지(1030)가 있다. 물론 각종 구현예에서 다른 요소들이 포함될 수 있다. 또한, 이 설명은 설명의 목적상 요소들을 층과 같은 그룹으로 조직할 수 있음에 주목한다. 독자는 그룹화가 모든 상황에서 정밀하게 정확하지 않을 수 있고, 또는 요소들의 관계를 표현하는 유일한 방법이 아닐 수 있다는 것을 이해하여야 한다. 예를 들어서, 다중 옵션 부트 로더(1014)는 운영체제(1012) 다음에 예시될 수 있고, 또는 운영체제의 하부가 아닌 상부에 예시될 수 있다. 다른 특징으로, 다중 옵션 부트 로더(1014)는 애플리케이션 층(1004)의 일부로서 설명될 수 있다. 그래서, 예시의 의도는 제한하는 구조를 나타내는 것이 아니라 독자가 본 발명을 이해하는 것을 돕기 위한 것이다. 다중 옵션 부트 로더를 생각하는 다른 방법은 다중 옵션 부트 로더가 시동시에 장치에서 동작하는 제1 명령어일 수 있다는 것이다. 동작할 때 다중 옵션 부트 로더는 다른 명령어를 동작시킬 수 있다.
하나의 견지에서, 장치(1002)는 컴퓨터로서 생각할 수 있다. 컴퓨터 또는 장치의 예로는 퍼스널 컴퓨터, 데스크톱 컴퓨터, 노트북 컴퓨터, 셀폰, 스마트폰, 개인용 정보 단말기, 패드형 컴퓨터, 디지털 화이트보드, 카메라, 스마트 안경과 같은 웨어러블 장치, 또는 무수한 진화중에 있는 또는 아직 개발중에 있는 유형의 임의의 컴퓨팅 장치가 있을 수 있다.
프로세서(1024)는 기능을 제공하기 위해 컴퓨터 판독가능 명령어의 형태로 데이터를 실행할 수 있다. 컴퓨터 판독가능 명령어 및/또는 사용자 관련 데이터와 같은 데이터는 컴퓨터의 내부에 또는 외부에 있을 수 있는 스토리지와 같은 스토리지(1030)에 저장될 수 있다. 스토리지는 특히 휘발성 또는 비휘발성 메모리, 하드 드라이브, 플래시 스토리지 장치, 및/또는 광학 스토리지 장치(예를 들면, CD, DVD 등) 중의 임의의 하나 이상을 포함할 수 있다. 여기에서 사용하는 용어 "컴퓨터 판독가능 매체"는 신호를 포함할 수 있다. 이와 대조적으로, 용어 "컴퓨터 판독가능 스토리지 매체"는 신호를 배제한다. 컴퓨터 판독가능 스토리지 매체는 "컴퓨터 판독가능 스토리지 장치"를 포함한다. 컴퓨터 판독가능 스토리지 장치의 예로는 RAM과 같은 휘발성 스토리지 매체, 및 하드 드라이브, 광디스크 및 플래시 메모리와 같은 비휘발성 스토리지 매체가 있다.
설명의 목적상, 이 명세서에 있어서, 스토리지(1030)는 1차 스토리지(1030(1)) 및 2차 스토리지(1030(2))로서 언급될 수 있다. 1차 스토리지(1030(1))는 플래시, 하드 드라이브 등과 같은 임의의 내장형(예를 들면, 제조시에 포함된 것) 스토리지일 수 있다. 2차 스토리지(1030(2))는 멀티미디어 포트에 추가된 멀티미디어 카드와 같이 판매자 또는 최종 사용자에 의해 장치에 추가되는 스토리지와 같은 임의의 다른 스토리지일 수 있다. 2차 스토리지는 장치에 의해 액세스 또는 활용될 수 있는 클라우드 기반 스토리지와 같은 원격 스토리지를 또한 포함할 수 있다. 용어 '프로세서'와 '스토리지'가 별도의 요소로서 설명되고 있지만, 중복이 있을 수 있다는 점에 또한 주목한다. 예를 들어서, 다른 구성들 중에서도 특히, 1차 스토리지(1030(1))는 플래시 메모리를 포함한 매립형 멀티미디어 컨트롤러(eMMC) 스토리지 및 동일한 실리콘 다이에 통합된 플래시 메모리 컨트롤러로서 구체화될 수 있다. 유사하게, 프로세서(1024)는 스토리지(1030)의 일부로서 생각할 수 있는 그 자신의 전용 메모리를 가질 수 있다.
일부 구성에서, 장치(1002)는 시스템 온 칩(SOC)형 설계를 포함할 수 있다. 그 경우에, 장치에 의해 제공되는 기능은 단일 SOC 또는 복수의 결합된 SOC에 통합될 수 있다. 하나 이상의 프로세서는 메모리, 스토리지 등과 같은 공유 자원 및/또는 소정의 특수 기능을 수행하도록 구성된 하드웨어 블록과 같은 하나 이상의 전용 자원과 협력하도록 구성될 수 있다. 따라서 여기에서 사용하는 용어 "프로세서"는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 컨트롤러, 마이크로컨트롤러, 프로세서 코어, 또는 다른 유형의 처리 장치를 또한 말할 수 있다.
일반적으로, 여기에서 설명하는 임의의 기능은 소프트웨어, 펌웨어, 하드웨어(예를 들면, 고정식 논리 회로), 매뉴얼 처리 또는 상기 구현예들의 조합을 이용하여 구현될 수 있다. 여기에서 사용하는 용어 "콤포넌트"는 일반적으로 소프트웨어, 펌웨어, 하드웨어, 전체(whole) 장치 또는 넷북 또는 이들의 조합을 표시한다. 예를 들어서 소프트웨어 구현예의 경우에, 이들은 프로세서(예를 들면, CPU)에서 실행될 때 특정 태스크를 수행하는 프로그램 코드를 표시할 수 있다. 프로그램 코드는 컴퓨터 판독가능 스토리지 매체와 같은 하나 이상의 컴퓨터 판독가능 메모리 장치에 저장될 수 있다. 콤포넌트들의 특징 및 기술은 플랫폼 독립형이고, 이것은 콤포넌트들이 다양한 처리 구성을 가진 다양한 상업적 컴퓨팅 플랫폼에서 구현될 수 있다는 것을 의미한다.
다중 옵션 부트 로더(1014)는 사용자가 복수의 운영체제로부터 선택하게 할 수 있다. 예를 들면 장치의 파워 업시에, 다중 옵션 부트 로더(1014)는 프로세서(1024)에서 동작하는 제1 명령어일 수 있다. 예를 들면 사용자가 전원 버튼을 누른 때와 같은 장치의 시동시에, 하드웨어(1016)가 파워 업할 수 있다. 하드웨어(예를 들면, 프로세서(1024))는 1차 스토리지(1030(1))의 특정 위치에 저장될 수 있는 다중 옵션 부트 로더(1014)를 찾아낼 수 있다. 하드웨어(1016)는 하드웨어(1016)에(예를 들면, 프로세서를 포함한 집적회로 칩에) 새겨진 증명서(certificate)에 기초하여 다중 옵션 부트 로더(1014)의 증명서를 비준할 수 있다. 일부 구현예에서, 이 구성은 다른 부트 로더가 장치에서 동작하지 않도록 보장할 수 있다. 다시 말하면, 칩에 새겨진 증명서는 다중 옵션 부트 로더의 디지털 서명을 비준할 것이다. 만일 서명이 통과하면(예를 들면, 비준되면), 다중 옵션 부트 로더가 로드된다. 다중 옵션 부트 로더는 그 다음에 예를 들면 그들 각각의 고유의 디지털 서명을 통해 개별 운영체제를 비준할 수 있다. 이 양태는 도 12와 관련하여 뒤에서 더 자세히 설명한다.
다르게 설명하면, 일부 구현예는 단일의 다중 옵션 부트 로더를 사용할 수 있다(예를 들면, 다중 옵션 부트 로더는 장치에서 유일한 부트 로더이다). 단일의 다중 옵션 부트 로더는 장치에서 인증될 수 있고 그 다음에 모든 운영체제를 취급할 수 있다. 이러한 구성은 임의의 다른 부트 로더가 장치에서 발진하여 사용자 데이터와 같은 민감 데이터를 노출할 수 있는 신뢰되지 않은 운영체제를 장치에 설치하는 것을 금지함으로써 장치의 보안을 보장(하도록 시도)할 수 있다.
다중 옵션 부트 로더(1014)는 복수의 운영체제가 사용자에게 이용 가능하다는 것을 설명하고 사용자가 개별 운영체제를 선택하게 하는 GUI를 사용자에게 제시하게 할 수 있다. 이러한 GUI의 예는 도 1-9와 관련하여 설명하였다. 사용자 선택시에, 다중 옵션 부트 로더는 단일 실행 운영체제로 장치(1002)를 구성할 수 있다. 이러한 양태의 예는 도 11 및 도 12와 관련하여 뒤에서 설명한다. 사용자 선택시에, 다중 옵션 부트 로더(1014)는 장치를 사용자가 선택한 운영체제용으로 구성하기 위해 각종 동작을 취할 수 있다.
통신 콤포넌트(1028)는 장치가 예를 들면 네트워크를 통해서 다른 장치와 통신하게 하는 셀룰러 회로, 다른 무선 회로, 모뎀, 포트 등으로서 명시될 수 있다. 프로세서(1024)는 어떤 운영체제가 실행 가능 형태로 장치에 설치되었는지 통신 콤포넌트(1028)가 전달하게 할 수 있다.
도 11은 1차 스토리지(1030(1))에서 스토리지 공간의 수평 막대 그래프 표시를 보인 것이다. 1차 스토리지(1030(1))는 플래시 메모리 또는 하드 드라이브와 같이 임의의 영속적(예를 들면, 비휘발성) 스토리지일 수 있다. 이 예는 OS1 및 OS2라고 표시된 2개의 다른 운영체제(1012)와 관련된다. 설명의 목적상 및 비교 목적으로, 1차 스토리지(1030(1))는 '제1 인스턴스' 및 후속되는 '제2 인스턴스'로 도시된다.
제1 인스턴스는 1차 스토리지(1030(1))를 스토리지에 2개의 실행 가능한 운영체제(OS1, OS2)가 설치된 것으로 나타낸다. 더 구체적으로, 1차 스토리지(1030(1))는 다중 옵션 부트 로더(MOBL)(1014)를 포함한다. 또한, 1차 스토리지(1030(1))는 2개의 하드 파티션(1102(1), 1102(2))으로 조직된다. 제1 하드 파티션(1102(1))은 OS1, OS1과 연관된 구성 데이터(1104) 및 사용자 데이터용의 스토리지(1106)에 전용된다. 유사하게, 제2 하드 파티션(1102(2))은 OS2, OS2과 연관된 구성 데이터(1108) 및 사용자 데이터용의 스토리지(1110)에 전용된다. 설명의 목적으로, 하드 파티션을 생각하는 하나의 방법은 하드 파티션 내에 설치된 운영체제의 견지에서, 하드 파티션이 스토리지의 범위를 규정하는 것이다(예를 들면, 운영체제는 스토리지가 하드 파티션을 넘어서 연장하는 것을 알지 못한다).
다중 옵션 부트 로더(1014)가 동작하고 사용자가 2개의 운영체제 중의 하나를 선택하게 할 수 있다(예를 들면, 도 1 참조). 다중 옵션 부트 로더(1014)는 그 다음에 제2 인스턴스에서 명시된 구성을 생성하도록 1차 스토리지(1030(1))를 리포맷할 수 있다. 구체적으로, 다중 옵션 부트 로더(1014)는 비선택 운영체제(이 예에서는 OS1)를 삭제하고 그 스토리지 공간을 1112에 표시된 것처럼 사용자 관련 스토리지로 리포맷할 수 있다. 일부 구성에서, 다중 옵션 부트 로더(1014)는 스토리지를 추가적인 사용자 공간으로 리포맷하기 위해 선택된 운영체제와 협력적으로 동작할 수 있다.
도 12는 사용자가 운영체제를 선택하게 하는 1차 스토리지(1030(1))의 다른 구현예를 보인 것이다. 이 경우에, 1차 스토리지는 다중 옵션 부트 로더(1014) 및 압축 형태의 복수의 운영체제를 OS 볼트(vault)(1202)에 포함한다. 일부 구현예에서, 압축된 운영체제는 각 운영체제의 구성 데이터와 함께 이진 형태로 저장된다. 명확하게 도시하지 않았지만, 이 예에서 OS 볼트(1202)에는 3개의 압축된 비실행 운영체제(OS1-OS3) 및 관련 구성 데이터가 저장된다. 이러한 양태는 도 13과 관련하여 뒤에서 더 자세히 설명한다.
도 10과 관련한 상기 설명에서 언급한 것처럼 장치 시동시에 다중 옵션 부트 로더(1014)가 인증될 수 있다는 것을 상기하자. 또한, 전술한 바와 같이, 다중 옵션 부트 로더는 사용자가 장치에서 동작할 개별 OS를 선택하게 할 수 있다. 다중 옵션 부트 로더(1014)는 선택된 운영체제용으로 1차 스토리지(1030(1))를 구성할 수 있다. 예를 들면, 다중 옵션 부트 로더(1014)는 상기 선택된 운영체제에 특유한 OS 볼트(1202)로부터의 구성 데이터를 이용하여 1차 스토리지에 소프트 파티션(1204(1), 1204(2))을 설치할 수 있다. 다중 옵션 부트 로더(1014)는 OS 볼트(1202) 내의 각 운영체제의 시작 어드레스 및 종료 어드레스를 알거나 또는 그러한 어드레스에 액세스할 수 있다. 일부 경우에, OS 볼트 내의 개별 운영체제의 시작 어드레스와 종료 어드레스는 OS 볼트에서 리스트되고 다중 옵션 부트 로더에 의해 판독될 수 있다. 다중 옵션 부트 로더는 그 다음에 상기 선택된 운영체제를 OS 볼트(1202)로부터 추출하고 그 운영체제의 증명서를 비준할 수 있다.
만일 선택된 운영체제의 증명서가 통과하면, 다중 옵션 부트 로더(1014)는 선택된 운영체제와 연관된 구성 데이터의 일부를 1206(1)에 표시된 것처럼 1차 스토리지(1030(1))의 일부에 기록할 수 있다. 또한, 선택된 운영체제가 비준되었을 때, 다중 옵션 부트 로더(1014)는 비준된 OS를 1206(2)에 표시된 것처럼 (예를 들면, 소프트 파티션 1204(1)과 1204(2) 사이에 규정된) OS 파티션에 기록할 수 있다. 다중 옵션 부트 로더(1014)는 1206(3)에 표시된 것처럼 사용자 스토리지를 구성할 수 있다.
다중 옵션 부트 로더(1014)는 전체 부트 체인이 안전하고 신뢰될 수 있는 방식으로 1차 스토리지(1030(1))의 상기 구성을 달성할 수 있다. 첫째로, 장치 하드웨어(1016)는 다중 옵션 부트 로더(1014)를 체크할 수 있다. 둘째로, 다중 옵션 부트 로더(1014)는 운영체제 및 임의의 나머지 콤포넌트가 신뢰된 엔티티에 의해 인증되고 서명되는 것을 보장할 수 있다. 하나의 견지에서 생각할 때, 다중 옵션 부트 로더(1014)는 각각의 이용 가능한 운영체제의 단일화된 확장 가능 펌웨어 인터페이스(unified extensible firmware interface, UEFI) 안전 부트 로더 기능을 그 전체 기능의 일부로서 제공할 수 있다.
요약하자면, 초기 시동시에 다중 옵션 부트 로더(1014)가 동작하여 장치에서 동작할 개별 운영체제를 사용자가 선택하게 할 수 있다(도 3 참조). 예시 목적으로, 사용자가 OS1을 선택한다고 가정하자. 응답으로, 다중 옵션 부트 로더(1014)는 OS1용으로 1차 스토리지(1030(1))를 조직하고 OS 볼트 내의 OS1의 압축된 이진 형태로부터 실행 가능 형태로 스토리지에 OS1을 설치할 수 있다. 이 경우에(도 12의 제2 인스턴스에 나타낸 것처럼), 다중 옵션 부트 로더(1014)는 구성 데이터가 위치된 곳(1206(1)로 표시됨), 운영체제가 위치된 곳(1206(2)로 표시됨), 및 사용자 데이터에 할당된 스토리지가 위치된 곳(1206(3)으로 표시됨)을 규정하기 위해 OS1에 의해 특정된 대로 소프트 파티션(1204(1), 1204(2))을 설치할 수 있다. 여기에서 사용되는 소프트 파티션은 개별 운영체제와 관련된 파일 시스템 포맷과 관련된다. 하나의 견지에서 소프트 파티션은 파일 폴더와 유사하게 될 수 있다.
다중 옵션 부트 로더(1014)는 운영체제 볼트(1202) 내의 압축 형태로부터 섹터마다의 실행가능 형태의 OS1을 스토리지 부분(1206(2))에 설치할 수 있다. 이 시점에서 OS1은 정상적으로 동작할 수 있고(예를 들면, 마치 그 OS가 장치에서 유일한 운영체제인 것처럼) 1차 스토리지(1030(1))에서 OS 볼트(1202)의 존재를 인식할 필요가 없다. 사실, 일부 구현예는 실행가능 OS가 OS 볼트(예를 들면, 다른 비실행 운영체제 또는 그들의 구성 데이터)에 접근할 수 없도록 구성된다. 그래서 하나의 운영체제와 연관된 안전한 정보가 다른 운영체제로부터 보호되고, 그 역도 또한 같다.
1206(1)에 저장된 운영체제 특유의 구성 데이터(1104 및 1108에서 도 11과 관련하여 위에서 소개됨)는 프로비저닝 데이터(provisioning data) 및/또는 사용자 설정을 포함하는 것으로 생각할 수 있다. 프로비저닝 데이터는 특히 모뎀 구성, 교정 데이터 및/또는 NV 아이템에 대한 정보를 포함할 수 있다. 따라서, 구성 데이터는 구성 데이터가 운영체제의 파티션 레이아웃뿐만 아니라 다중 옵션 부트 로더(1014)가 파티션에 기록할 수 있는 교정 데이터 등의 다른 구성 데이터를 둘 다 포함할 수 있기 때문에 정확하게 설명하기가 어려울 수 있다. 프로비저닝 데이터는 특정 운영체제에 대하여 유일할 수 있다는 점에 주목한다. 그래서 프로비저닝 데이터는 각각의 구성 데이터의 일부로서 그 각각의 운영체제와 관련하여 저장될 수 있다. 이 구성 데이터는 다른 운영체제에 알려지지 않았고 다른 운영체제에 대하여 접근불능일 수 있다. 도 10과 관련하여 전술한 바와 같이, 드라이버(1018)는 운영체제 특유의 것일 수 있다. 그래서 일부 인스턴스에서, 각 운영체제의 구성 데이터(1104)는 그 운영체제에 특유한 드라이버를 포함할 수 있다. 이러한 드라이버는 다른 운영체제에 접근 불능으로 유지될 수 있다.
1차 스토리지(1030(1))가 제2 인스턴스에서 설명한 것처럼 구성된 때, 다중 옵션 부트 로더는 OS1을 가동하기 위해 장치를 재부팅할 수 있다는 점에 주목한다.
다시, 도 12를 참조하면, 사용자가 선택된 운영체제로부터 다른 이용가능한 운영체제 중의 하나로 변경하도록 선택하는 시나리오로부터 제3 인스턴스가 야기될 수 있다(예를 들면, 도 5 및 도 6 참조)(이 경우에는 사용자가 OS3를 선택하였다고 가정하자). 제2 인스턴스로부터 제3 인스턴스로의 천이시에, 사용자의 개인 설정, OS 특유의 드라이버 등과 같은 구성 데이터는 OS 볼트(1202)에 저장될 수 있다. 따라서, 이 데이터는 사용자가 나중에 OS1으로 되돌아가기로 결정한 경우에 이용할 수 있다. 만일 운영체제 변경에 기인하여 잃어버릴 수 있는 1차 스토리지에 저장된 다른 사용자 데이터가 있으면, 다중 옵션 부트 로더(1014)는 다른 사용자 데이터를 예컨대 2차 스토리지(1030(2))에 백업하는 법을 사용자에게 보이는 것과 같은 동작을 취할 수 있다(도 7 및 도 10 참조).
제4 인스턴스는 다중 옵션 부트 로더(1014)가 이제 설치되어 실행 가능한 OS3용으로 1차 스토리지(1030(1))를 리포맷한 것을 보인 것이다. 일부 구현예는 여기에서 도시된 것보다 더 많은 및/또는 다른 소프트 파티션(1204(1)', 1204(2)')을 포함할 수 있지만, 그러한 구현예는 위 및 아래에서 설명하는 개념과 양립한다는 점에 주목한다. 예를 들어서 간단히 하기 위해 2개의 소프트 파티션이 제2 인스턴스와 제4 인스턴스 둘 다에 도시되어 있지만, 다른 구현예에서는 OS2와 OS3가 다른 수의 파티션을 특정할 수 있다. 1차 스토리지(1030(1))가 제4 인스턴스에 도시된 것처럼 구성된 때, 다중 옵션 부트 로더(1014)는 OS3를 가동하기 위해 장치를 재부팅할 수 있다는 점에 주목한다. 이 경우에, 구성 데이터는 1206(1)'로서 지정되고, OS3는 1206(2)'로서 지정되며, 사용자 데이터는 1206(3)'로서 지정된다.
이 구성예에 있어서, 제1 인스턴스에는 운영체제가 사용자 선택 전에 실행 가능 형태로 1차 스토리지(1030(1))에 설치되지 않는다는 점에 주목한다. 그러나 다른 구현예는 디폴트 구성에서 1차 스토리지(1030(1))에 실행 가능 형태로 설치된 개별 운영체제로 배분될 수 있다. 만일 사용자가 그 운영체제를 선택하면, 동작할 준비가 된다. 만일 사용자가 다른 운영체제를 선택하면, 디폴트 운영체제가 제거되고 프로세스는 도 12의 '제1 인스턴스'에서 다시 시작할 수 있다.
일부 구현예는 운영체제 변경을 진행하기 전에 각종 파라미터를 체크할 수 있음에 주목한다. 예를 들어서 이러한 구현예는 장치의 배터리 레벨을 체크할 수 있다. 운영체제 변경은 배터리가 운영체제 설치 과정 중에 나가지 않도록 보장하기 위해 배터리 레벨이 규정된 역치, 예를 들면, 40% 이상인 경우에만 시작될 수 있다. 또한, 다중 옵션 부트 로더는 운영체제 설치 과정이 중단되면 1차 스토리지를 특정 구성으로 복귀시키도록 구성될 수 있다. 예를 들어서 다중 옵션 부트 로더가 제1 인스턴스로부터 제2 인스턴스로 1차 스토리지를 변환하는 동안에 사용자가 배터리를 밖으로 꺼낼 수 있다. 전원이 복구된 때, 다중 옵션 부트 로더는 장치를 제1 인스턴스의 구성으로 복귀시킬 수 있다(실행 운영체제 또는 관련 스토리지 구성이 없음). 그 다음에 다중 옵션 부트 로더는 프로세스를 다시 시작할 수 있다(예를 들면, 사용자가 운영체제를 선택하게 하거나, 또는 1차 스토리지를 구성하고 선택된 운영체제의 실행 버전의 설치를 재시작할 수 있다).
제조 중에, 장치는 제조 설비(예를 들면, 공장) 또는 다른 설비에서 NV 아이템, NVM 아이템, 라디오, DPP 등을 테스트, 교정 및 저장하기 위해 각각의 운영체제로 반복적으로 부팅될 수 있다는 점에 주목한다. 예를 들면, 장치는 제1, 제2, 제3 및 제4 인스턴스를 통해 복수 회 순환될 수 있다. 본 구현예는 각각의 실행 운영체제가 제조 중에 다른(예를 들면, 비실행) 운영체제에 의해 소유되는 데이터를 붕괴시키는 것을 방지할 수 있다. 예를 들면, OS1은 부팅하여 OS2 및 OS3용의 설치 파티션을 삭제하거나, 또는 비실행 운영체제에 관한 각종 키 및 증명서를 통해 액세스 및/또는 기록할 수 없다.
요약하자면, 단일 다중 옵션 부트 로더의 일부 구현예는 이용 가능한 압축 운영체제의 리스트로부터 장치에서 동작할 개별 운영체제를 사용자가 선택하게 하는 GUI를 발생할 수 있다. 단일 다중 옵션 부트 로더는 장치에 포함된 각각의 운영체제에 대한 UEFI 호환 부트 로더 기능을 제공할 수 있다. 따라서, 단일 다중 옵션 부트 로더는 장치의 보안성을 유지하고 비실행 운영체제 및 그들의 구성 데이터를 보호하면서 1차 스토리지를 구성하고 선택된 운영체제를 설치할 수 있다.
도 13은 OS 볼트(1202)를 생성하도록 구성된 시스템(1300)을 보인 것이다. 2개의 OS 볼트 구성이 OS 볼트 1202(1) 및 1202(2)로서 도시되어 있다. 제1 OS 볼트 구성은 실선으로 도시되고, 제2 OS 볼트 구성은 점선으로 구별된다. 이 인스턴스에서 OS 볼트는 압축 형태의 3개의 운영체제(OS1, OS2, OS3)를 내포한다는 것을 도 12와 관련한 위에서의 설명으로부터 상기하자. 물론, 3개의 운영체제가 이 구현예에서 사용되지만, 다른 구현예는 2개의 운영체제 또는 4개 이상의 운영체제를 사용할 수 있다. 시스템은 부트 체인 키트(1302)를 사용할 수 있다(이 경우에는 각 운영체제(OS1, OS2, OS3)에 대하여 요소 1302(1), 1302(2) 및 1302(3)을 각각 수반한다). 제1 구성에서, 부트 체인 키트(1302)는 단일의 압축된 이진 파일(1304)을 만들기 위해 사용될 수 있다. 임의의 구성 데이터 또는 개별 운영체제에 특유한 다른 데이터가 각각의 OS1-OS3에 전용되는 소프트 파티션(1306(1)-1306(3))에 저장될 수 있다. 압축 이진 파일은 각각의 운영체제에 대한 시작 어드레스와 종료 어드레스의 리스팅을 포함할 수 있다.
제2 구성에서, 각각의 운영체제(OS1-OS3)는 압축 형태로 그 자신의 전용 이진 파일(1304(1)-1304(3))에 각각 저장된다. 도시된 구성에서, 각 OS의 이진 파일은 그 OS에 대한 소프트 파티션(1306(1)-1306(3)) 내의 구성 데이터에 인접하게 위치된다. 다른 구성에서, OS 이진 파일은 함께 그룹화될 수 있고, 구성 데이터도 함께 그룹화될 수 있다.
예시적인 기술
도 14는 다중 운영체제 선택 기술 또는 방법(1400)의 흐름도이다.
블록 1402에서, 방법은 1차 스토리지의 제1 부분에 복수의 운영체제를 압축된 비실행 형태로 기록할 수 있다. 일부 경우에, 비실행 형태는 복수의 압축된 비실행 운영체제 모두를 내포하는 단일 이진 파일이다. 다른 경우에, 이진 파일은 각각의 압축된 비실행 운영체제에 전용된다. 물론, 이진 파일이 이 예에서 사용되지만, 복수의 운영체제의 비실행 형태를 저장하기 위해 다른 압축된 파일 구성을 사용할 수 있다.
블록 1404에서, 방법은 단일 부트 로더를 1차 스토리지의 제2 부분에 설치할 수 있다. 단일 부트 로더는 복수의 운영체제 중 임의의 하나를 1차 스토리지의 제3 부분에 실행 가능 형태로 설치하도록 구성될 수 있다. 복수의 운영체제 중 다른 것과 연관된 1차 스토리지의 제1 부분에서의 어드레스는 실행 운영체제에 의해 판독 또는 기록되는 것으로부터 보호될 수 있다.
도 15는 다중 운영체제 선택 기술 또는 방법(1500)의 흐름도이다.
블록 1502에서, 방법은 개별 운영체제의 실행 인스턴스를 장치에 설치하기 위한 명령어를 수신할 수 있고, 상기 장치는 그곳(예를 들면, 장치)에 저장된 복수의 비실행 압축 운영체제를 갖는다.
블록 1504에서, 방법은 운영체제의 비실행 압축 버전에 접근할 수 있다. 일부 구현예에서, 비실행 압축 버전은 전용 파일로서 저장될 수 있다. 다른 구현예에서, 비실행 압축 버전은 다른 선택되지 않은 운영체제의 비실행 압축 버전을 또한 포함하는 단일 파일의 일부일 수 있다.
블록 1506에서, 방법은 운영체제의 비실행 압축 버전의 진정성을 검증할 수 있다. 예를 들면, 상기 검증은 비실행 압축 형태의 디지털 서명을 체크하는 것을 수반할 수 있다.
블록 1508에서, 방법은 운영체제에 고유의 방식으로 장치를 구성할 수 있다. 일부 경우에, 구성은 선택된 운영체제에 의해(및/또는 선택된 운영체제용으로) 특정된 방식으로 1차 스토리지에 소프트 파티션을 설치하는 것을 수반할 수 있다.
블록 1510에서, 방법은 운영체제의 실행 인스턴스를 설치할 수 있다. 일부 경우에, 방법은 어떤 운영체제가 장치에 실행 형태로 설치되었는지 표시하는 통지를 전송할 수 있다. 예를 들면, 상기 통지는 장치 제조업자 또는 서비스 제공자, 예를 들면, 장치와 연관된 셀룰러 서비스 제공자에게 전송될 수 있다. 다른 용도 중에서도 특히, 상기 통지는 청구(billing) 목적으로 사용될 수 있다. 예를 들어서, 셀룰러 서비스 제공자는 제1 엔티티로부터의 제1 운영체제 및 제2 엔티티로부터의 제2 운영체제를 가진 스마트폰을 판매할 수 있다. 셀룰러 서비스 제공자는 상기 통지들을 수집하고 그들 각각의 운영체제를 가동하는 판매된 스마트폰의 수에 기초하여 제1 엔티티 및 제2 엔티티에게 지불을 제공할 수 있다. 지불은 1회 지불 또는 주기적 지불일 수 있다. 예를 들어서 사용자는 소정의 시구간 동안 제1 운영체제를 선택하고, 그 다음에 제2 운영체제로 전환할 수 있다. 그 경우에, 각 엔티티는 그들의 운영체제의 사용에 대하여 보상받을 수 있다. 대안적인 구성에서, 상기 통지는 제조업자에게 전송되고, 제조업자는 상기 통지에 기초하여 제1 엔티티 또는 제2 엔티티에게 보상할 수 있다.
여기에서 설명한 방법들은 도 1-13과 관련하여 위에서 설명한 시스템 및/또는 장치에 의해, 및/또는 다른 장치 및/또는 시스템에 의해 수행될 수 있다. 방법을 설명한 순서는 제한하는 것으로 해석되도록 의도되지 않고, 임의 수의 설명된 동작들이 상기 방법 또는 대안적인 방법을 구현하기 위해 결합될 수 있다. 또한, 방법은 장치가 방법을 구현할 수 있도록 임의의 적당한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현될 수 있다. 하나의 경우에, 방법은 컴퓨팅 장치의 프로세서에 의한 실행이 컴퓨팅 장치가 방법을 수행하게 하는 명령어들의 집합으로 컴퓨터 판독가능 기억 매체에 저장된다.
결어
비록 본 발명이 구조적 특징 및/또는 방법적 단계에 특유한 언어로 설명되어 있지만, 첨부된 특허 청구범위에서 규정되는 발명은 반드시 전술한 특유의 특징 또는 단계들로 제한되지 않는다는 것을 이해하여야 한다. 오히려, 전술한 특유의 특징 및 단계들은 청구되는 발명을 구현하는 예시적인 형태로서 개시된다.

Claims (10)

  1. 장치에 있어서,
    복수의 압축된 운영체제가 비실행 형태로 저장된 1차 스토리지; 및
    개별 운영체제의 사용자 선택을 수신하고 상기 개별 운영체제에 특유한 구성으로 상기 1차 스토리지에 파일 폴더 구조를 설치하고 상기 파일 폴더 구조에 관한 상기 1차 스토리지에 실행 가능 형태로 상기 개별 운영체제를 설치하도록 구성된 다중 옵션 부트 로더를 실행하도록 구성된 프로세서
    를 포함하는, 장치.
  2. 제1항에 있어서,
    상기 다중 옵션 부트 로더는 상기 장치에서의 유일한 부트 로더인 것인, 장치.
  3. 제1항에 있어서,
    상기 다중 옵션 부트 로더는, 상기 복수의 압축된 운영체제 중 다른 운영체제에 대한 후속되는 사용자 선택을 수신하고, 실행 가능 형태의 상기 개별 운영체제 및 상기 파일 폴더 구조를 삭제하고, 상기 다른 운영체제에 특유한 다른 파일 폴더 구조를 설치하고, 비실행의 압축된 형태의 상기 다른 운영체제로부터 실행 가능 형태의 상기 다른 운영체제를 설치하도록 구성되는 것인, 장치.
  4. 제1항에 있어서,
    상기 다중 옵션 부트 로더는 상기 복수의 압축된 운영체제 각각에 대하여 통일 확장 가능 펌웨어 인터페이스(unified extensible firmware interface, UEFI) 호환 부트 로더를 포함하는 것인, 장치.
  5. 제1항에 있어서,
    상기 비실행 형태의 복수의 압축된 운영체제는 이진 파일을 포함하는 것인, 장치.
  6. 제1항에 있어서,
    상기 장치는 스마트폰, 태블릿, 웨어러블 스마트 장치 또는 퍼스널 컴퓨터를 포함하는 것인, 장치.
  7. 제1항에 있어서,
    통신 콤포넌트를 더 포함하고,
    상기 프로세서는 또한, 상기 통신 콤포넌트로 하여금 상기 개별 운영체제가 실행 가능 형태로 설치되었음을 표시하는 메시지를 전송하게 하도록 구성되는 것인, 장치.
  8. 장치에 있어서,
    디스플레이;
    스토리지;
    상기 스토리지에 설치된 적어도 2개의 실행 가능한 운영체제; 및
    개별 운영체제의 사용자 선택을 수신하고 상기 적어도 2개의 운영체제 중 다른 것을 삭제하고 상기 삭제된 운영체제에 전용된 스토리지의 일부를 사용자 데이터 스토리지용으로 포맷하도록 구성된 프로세서
    를 포함하는, 장치.
  9. 제8항에 있어서,
    상기 장치는 또한 상기 적어도 2개의 실행 가능 운영체제가 복구될 수 있는 상기 적어도 2개의 운영체제의 비실행 압축 형태를 유지하도록 구성되는 것인, 장치.
  10. 제8항에 있어서,
    상기 프로세서는 상기 장치의 하드웨어 버튼으로부터 사용자 선택을 수신하도록 구성되는 것인, 장치.
KR1020167029800A 2014-03-25 2015-03-20 사용자 선택형 운영체제 KR20160136441A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/225,096 2014-03-25
US14/225,096 US9697010B2 (en) 2014-03-25 2014-03-25 User selectable operating systems
PCT/US2015/021623 WO2015148280A1 (en) 2014-03-25 2015-03-20 User selectable operating systems

Publications (1)

Publication Number Publication Date
KR20160136441A true KR20160136441A (ko) 2016-11-29

Family

ID=52815307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167029800A KR20160136441A (ko) 2014-03-25 2015-03-20 사용자 선택형 운영체제

Country Status (10)

Country Link
US (1) US9697010B2 (ko)
EP (1) EP3123310A1 (ko)
JP (1) JP2017509085A (ko)
KR (1) KR20160136441A (ko)
CN (1) CN106104473A (ko)
AU (1) AU2015236460A1 (ko)
CA (1) CA2939845A1 (ko)
MX (1) MX2016012121A (ko)
RU (1) RU2016137900A (ko)
WO (1) WO2015148280A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
US9582393B2 (en) * 2014-06-20 2017-02-28 Dell Products, Lp Method to facilitate rapid deployment and rapid redeployment of an information handling system
KR20160049632A (ko) * 2014-10-28 2016-05-10 삼성전자주식회사 렌즈를 인식하는 전자 장치 및 동작 방법
EP3062225B1 (en) * 2015-02-24 2019-07-03 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
JP6512895B2 (ja) * 2015-03-27 2019-05-15 キヤノン株式会社 撮像装置、その制御方法及びプログラム
CN104794014B (zh) * 2015-04-08 2020-08-25 华为技术有限公司 系统运行的方法及智能终端
KR102494241B1 (ko) * 2016-08-18 2023-02-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US20180059650A1 (en) * 2016-08-31 2018-03-01 Esab Ab Techniques for multiple application banks in a welding or cutting system
CN106502675A (zh) * 2016-10-27 2017-03-15 铭软件股份有限公司 一种用于管理同一台电脑上的多操作系统的方法
CN108062386A (zh) * 2017-12-14 2018-05-22 易知成都数据服务有限公司 一种实现web页面地域跨级别多选的方法
CN113126575B (zh) * 2019-12-31 2022-07-26 捷普电子(无锡)有限公司 用于装配操作流程的引导方法及引导系统
CN115151895A (zh) * 2020-04-01 2022-10-04 松下知识产权经营株式会社 存储系统
US11899949B2 (en) * 2020-07-17 2024-02-13 Dish Network Technologies India Private Limited Methods and systems for dynamic configuration and effective usage for allocating memory in media presentations or like devices

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434695B1 (en) 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM
US6727920B1 (en) 1999-03-11 2004-04-27 Micron Technology, Inc. Multiple operating system quick boot utility
US6401183B1 (en) 1999-04-01 2002-06-04 Flash Vos, Inc. System and method for operating system independent storage management
US6807665B2 (en) 2001-01-18 2004-10-19 Hewlett-Packard Development Company, L. P. Efficient data transfer during computing system manufacturing and installation
US6920555B1 (en) * 2001-03-10 2005-07-19 Powerquest Corporation Method for deploying an image into other partition on a computer system by using an imaging tool and coordinating migration of user profile to the imaged computer system
US8726294B2 (en) 2010-10-01 2014-05-13 Z124 Cross-environment communication using application space API
US9098437B2 (en) 2010-10-01 2015-08-04 Z124 Cross-environment communication framework
US6928542B2 (en) 2001-11-15 2005-08-09 Inventec Corporation Method and system for starting a multiple PDA operating system through a menu
US7136994B2 (en) 2003-05-13 2006-11-14 Intel Corporation Recovery images in an operational firmware environment
CN1658185A (zh) 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作系统的计算机系统与其切换方法
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US20070011444A1 (en) * 2005-06-09 2007-01-11 Grobman Steven L Method, apparatus and system for bundling virtualized and non-virtualized components in a single binary
KR100725394B1 (ko) * 2005-07-08 2007-06-07 삼성전자주식회사 복수의 운영체계에서 특정 운영체계를 선택적으로 설치하는컴퓨터 시스템 및 방법
US7818736B2 (en) 2005-09-14 2010-10-19 International Business Machines Corporation Dynamic update mechanisms in operating systems
KR100746025B1 (ko) 2006-01-12 2007-08-06 삼성전자주식회사 운영체제 스위칭 장치 및 방법
KR101121641B1 (ko) 2006-07-03 2012-04-16 엘지전자 주식회사 시스템 동작 제어 장치 및 방법
US7779243B2 (en) 2006-12-29 2010-08-17 Intel Corporation Dual operating system computing system
US9003173B2 (en) 2007-09-28 2015-04-07 Microsoft Technology Licensing, Llc Multi-OS (operating system) boot via mobile device
US8499132B1 (en) * 2008-02-12 2013-07-30 Netapp, Inc. Software module for using flash memory as a secondary permanent storage device
US8868899B2 (en) 2009-07-20 2014-10-21 Motorola Mobility Llc System and method for switching between environments in a multi-environment operating system
US20110066041A1 (en) 2009-09-15 2011-03-17 Texas Instruments Incorporated Motion/activity, heart-rate and respiration from a single chest-worn sensor, circuits, devices, processes and systems
US8762699B1 (en) 2009-12-05 2014-06-24 Cms Products Inc. System, apparatus, and method for initiating a reboot of a personal computer system by pressing a button on an attached storage device and causing the operating system on the attached storage device to be booted
US20120102314A1 (en) 2010-04-01 2012-04-26 Huizhou TCL Mobile Communications Co., Ltd. Smart phone system and booting method thereof
US8799631B2 (en) 2010-11-11 2014-08-05 Lsi Corporation Dynamically select operating system (OS) to boot based on hardware states
US9010641B2 (en) 2010-12-07 2015-04-21 Hand Held Products, Inc. Multiple platform support system and method
CN102045449A (zh) 2010-12-31 2011-05-04 周良勇 一种多操作系统智能手机
TWI528162B (zh) 2011-01-26 2016-04-01 威盛電子股份有限公司 電腦系統及其作業系統切換方法
WO2013067486A1 (en) * 2011-11-04 2013-05-10 Insyde Software Corp. Secure boot administration in a unified extensible firmware interface (uefi)- compliant computing device
CN103136052A (zh) * 2011-11-25 2013-06-05 展讯通信(上海)有限公司 移动终端及安装有多个操作系统的移动终端的控制方法
WO2013142465A1 (en) 2012-03-19 2013-09-26 Sony Mobile Communications Ab Device including a plurality of selectable operating systems
US9342243B2 (en) 2012-11-28 2016-05-17 Lenovo (Beijing) Co., Ltd. Method and electronic apparatus for implementing multi-operating system
US20150277934A1 (en) 2014-03-25 2015-10-01 Microsoft Technology Licensing, Llc One time dual boot mobile phone device
US9766944B2 (en) 2014-03-25 2017-09-19 Microsoft Technology Licensing, Llc Dynamic partition dual boot mobile phone device

Also Published As

Publication number Publication date
US9697010B2 (en) 2017-07-04
AU2015236460A1 (en) 2016-09-08
WO2015148280A1 (en) 2015-10-01
JP2017509085A (ja) 2017-03-30
RU2016137900A (ru) 2018-03-27
EP3123310A1 (en) 2017-02-01
CA2939845A1 (en) 2015-10-01
CN106104473A (zh) 2016-11-09
MX2016012121A (es) 2016-12-09
US20150277929A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
KR20160136441A (ko) 사용자 선택형 운영체제
CN110199271B (zh) 用于现场可编程门阵列虚拟化的方法和设备
KR102385552B1 (ko) 시스템-온-칩 및 이를 포함하는 전자 장치
CN105308612B (zh) 用于安全代码启动的动态加载测量环境
US8850177B2 (en) System and method for validating components during a booting process
KR101928127B1 (ko) 애플리케이션용 선택적 파일 액세스 기법
TWI559167B (zh) 統一可延伸韌體介面(uefi)相容計算裝置和用於在uefi相容計算裝置中管控一安全啓動之方法
JP5983940B2 (ja) 情報処理装置、情報処理方法、プログラム、集積回路
CN101650660B (zh) 从中央存储装置引导计算机系统
JP2020523685A (ja) ハードウェアを使用してオペレーティング・システム構成をセキュアにすること
US10338933B2 (en) Method for generating custom BIOS setup interface and system therefor
KR101748000B1 (ko) 다른 운영 체제로의 부팅의 동적 리디렉션
US20150270960A1 (en) System and method for deriving secrets from a master key bound to an application on a device
TW201227502A (en) Application execution in a restricted application execution environment
US20150277934A1 (en) One time dual boot mobile phone device
KR102227263B1 (ko) 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
US10664598B1 (en) Firmware security patch deployment
CN106462711A (zh) 经验证启动
US9448785B1 (en) System and method updating full disk encryption software
US8255746B2 (en) Computer system and method employing separate storage area for computer program recovery
US9672047B1 (en) Systems and methods for accessing a bootable partition on a serial peripheral interface device
US10691448B2 (en) Method and apparatus to execute BIOS firmware before committing to flash memory
US10467018B2 (en) System and method for booting a host device from a mobile device
US11900128B2 (en) Modularized basic input output system (BIOS) firmware activation
US11340882B2 (en) Systems and methods for enforcing update policies while applying updates from bootable image file