KR20060135757A - 바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상처리 공간에서의 분리된 멀티플렉싱 다차원 처리 - Google Patents

바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상처리 공간에서의 분리된 멀티플렉싱 다차원 처리 Download PDF

Info

Publication number
KR20060135757A
KR20060135757A KR1020067016384A KR20067016384A KR20060135757A KR 20060135757 A KR20060135757 A KR 20060135757A KR 1020067016384 A KR1020067016384 A KR 1020067016384A KR 20067016384 A KR20067016384 A KR 20067016384A KR 20060135757 A KR20060135757 A KR 20060135757A
Authority
KR
South Korea
Prior art keywords
data
processing
processing logic
computing environment
storage device
Prior art date
Application number
KR1020067016384A
Other languages
English (en)
Inventor
케네스 라즈맨
안소니 비. 모어
제프리 블레어
Original Assignee
버2어스, 인코포레이티드
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
Priority claimed from US10/760,131 external-priority patent/US7392541B2/en
Priority claimed from US11/022,290 external-priority patent/US20100005531A1/en
Application filed by 버2어스, 인코포레이티드 filed Critical 버2어스, 인코포레이티드
Publication of KR20060135757A publication Critical patent/KR20060135757A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)

Abstract

정보 장치, 계산 장치, 또는 다른 프로세서 또는 마이크로 프로세서 기반 장치 또는 시스템은 보안성 및 안티-바이러스, 안티-해커, 및 안티-사이버 테러 특징들을 제공하고, 계산 환경들 및 데이터 저장 장치들에 위치된 악성 코드를 파괴하는 프로세스와 결합하여 데이터를 이동 및 복사하는 제한되고 제어된 방법들과 함께 상기 계산 환경들을 사용함으로써 바이러스들, 부적절하거나 다른 컴퓨터 해킹, 컴퓨터 또는 디바이스 오염 및 손상을 방지하는 순차적이거나 동시에 간헐적으로 분리되고 및/또는 제한된 다수의 계산 환경들을 자동으로 생성할 수 있다. 다수의 처리들의 분리를 유지하기 위한 시스템, 장치, 구조 및 방법에 의해 시간 멀티플렉싱된 처리 스트림들은 단일의 물리적인 프로세서에서 실행된다. 가상의 다차원 처리 공간 및 가상 처리 환경들은 단일 CPU내에서 일시적으로 멀티플렉싱 처리된다. 프로세스 분리는 어드레스 제어 및 맵핑을 사용한다. 물리적인 및/또는 가상의 처리 또는 계산 환경들을 생성하기 위해 물리적인 및/또는 가상의 처리 또는 계산 공간들에서 다수의 프로세스들을 선택, 형성, 스위칭 및/또는 멀티플렉싱한다.

Description

바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상 처리 공간에서의 분리된 멀티플렉싱 다차원 처리{ISOLATED MULTIPLEXED MULTI-DIMENSIONAL PROCESSING IN A VIRTUAL PROCESSING SPACE HAVING VIRUS, SPYWARE, AND HACKER PROTECTION FEATURES}
본 발명은 컴퓨터, 정보 기기, 이동 통신 장치, 및 다른 전자 장치에 대한 보안 및 안티-바이어스, 안티-해커, 및 안티-사이버 테러 특성에 관한 것으로서, 특히 장치내에 존재하는 악성 코드가 시스템 또는 다른 사용자 또는 프로그램 데이터에 영향을 미치지 않도록 하는 다수의 동시 또는 순차적인 시간 처리 환경들 및 절차 및 프로그램을 생성하는 안티-바이어스, 안티-해커, 및 안티-사이버 테러 특징을 지원하는 컴퓨터, 정보 장치, 이동 통신 장치, 및 다른 전자 계산 장치에 관한 것이다.
종래 기술에 따르면, 컴퓨터 또는 프로세서 기술을 사용하는 컴퓨터, 셀룰러 전화기, 및 광대역 장치들은 컴퓨터 해커, 바이러스, 사이버 테러리스트, 스파이웨어, 및/또는 다른 악성 컴퓨터 프로그램 코드에 취약하다. 안티-바이러스 소프트웨어가 공지되어 있지만, 이러한 안티-바이러스 소프트웨어는 새로운 바이러스가 침투하면 쓸모가 없어진다. 또한, 초기 배포(release) 단계 동안 일부 컴퓨터들에 대한 적어도 약간의 손상이 가해질 수 있다. 방화벽 및 다른 보호 조치들이 공지되어 있지만, 이러한 방화벽들은 회사 정보 기술(IT) 환경 외부의 공중 네트워크상에서 동작하는 휴대용 컴퓨터에 통합될 수 없고, 이러한 방화벽을 파괴하는 다수의 해킹 기술들이 존재한다. 바이러스, 스파이웨어, 및 해킹으로 인해 초래되는 전 세계적인 비용 손실은 수백억 달러로 추정된다. 비행기, 교통 시스템, 빌딩 환경 제어, 주식시장, 전화 시스템, 핵 발전소, 및 다른 공공 및 사립 시설들의 동작을 제어 및 관리하기 위해서 컴퓨터를 보다 많이 사용하기 때문에, 이러한 악성 코드로 인한 손해는 엄청날 것이다.
따라서, 컴퓨터 해킹, 바이러스, 스파이웨어, 사이버 테러 공격 등과 같은 악성 활동에 대한 보호막을 제공할 수 있는 구조, 시스템 및 동작 방법이 요구된다. 이러한 악성 에이전트에 대항하는 범용 백신이 요구된다. 또한, 기존의 컴퓨터들과는 달리, 파일들 또는 데이터 세트들을 열기 전에 공지된 깨끗한(clean) 저장 환경을 생성하기 위해서, 운영 시스템 및 애플리케이션 프로그램 소프트웨어 및/또는 데이터의 알려진 깨끗한 설치로 복귀함으로써 필요시에 "치료"를 사용자가 개시하고, 사용자가 메모리 및 데이터 저장 장치들을 리셋 및 삭제할 수 있도록 하여주는 컴퓨터가 요구된다.
본 발명은 보안 및 안티-바이러스, 안티-해커, 및 안티-사이버 테러 특성을 제공하고, 계산 환경 및 데이터 저장 장치에 위치하는 악성 코드를 파괴하는 처리와 결합되어, 데이터 이동 및 복사를 제한하고, 이를 제어하는 방법과 함께 이러한 계산 환경들을 사용함으로써 바이러스, 악의적인 또는 다른 컴퓨터 해킹, 컴퓨터 또는 장치 파괴, 및 고장을 방지하기 위해서 다수의 순차적 또는 동시적 및 간헐적으로 분리되고 제한되는 계산 환경들을 자동적으로 생성할 수 있다.
일 실시예에서, 본 발명은 정보 장치 구조, 시스템, 장치, 및 이들을 동작시키는 방법을 제공한다. 이러한 타입의 정보 장치는 프로그램 및 데이터를 위한 제1 저장 장치, 사용자 데이터를 포함하는 임무를 수행하기 위해서 컴퓨터 프로그램 지령들을 실행하는 프로세서 로직을 포함하며; (1) 사용자 데이터에 내장된 임의의 컴퓨터 프로그램 코드 지령들을 실행할 수 있는 컴퓨터 프로그램 코드에 대해 제어 프로세서 로직 환경에서 알려지지 않거나 신뢰되지 않는 컨텐츠를 갖는 사용자 데이터가 노출되지 않도록 하고, (2) 제1 저장 장치로부터 분리되는 경우, 제1 저장 장치와는 상이한 임시 저장 장치의 사용자 프로세서 로직 환경에만 알려지지 않거나 신뢰되지 않는 컨텐츠가 노출되도록 개별 제어 처리 환경들 및 사용자 처리 환경들이 생성 및 유지되는 방식으로 정보 장치가 동작한다.
또다른 실시예에서, 본 발명은 적어도 하나의 지령을 실행하기 위한 적어도 하나의 처리 로직 장치; 적어도 하나의 지령 및 하나의 사용자 데이터를 포함하는, 제1 데이터 및 제1 프로그램 코드를 저장하는 제1 저장 장치; 제2 데이터를 저장하는 제2 저장 장치; 자동화된 제어하에서 상기 제1 저장 장치 및/또는 제2 저장 장치를 상기 처리 로직 장치와 선택적으로 및 독립적으로 결합 및 결합 해제하는 스위칭 시스템으로서, 상기 스위칭 시스템은 스위칭 시스템의 조건을 선택하기 위해 처리 로직 장치로부터 적어도 하나의 제어 신호를 수신하는 스위칭 시스템을 포함하고; 여기서 상기 처리 로직 장치는 다음 조건들에 따라 사용자 데이터 구성 및 제어 구성에서 동작한다; (i) 신뢰되지 않는 컨텐츠를 갖거나 또는 알려진 제어된 환경으로부터 생성되지 않은 데이터 아이템을 실행할 수 없는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제1 저장 장치와 결합됨; (ii) 신뢰되지 않는 컨텐츠를 갖거나 또는 알려진 제어된 환경으로부터 생성되지 않은 데이터 아이템을 실행할 수 있는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제1 저장 장치와 결합되지 않음; (iii) 신뢰되지 않는 컨텐츠를 갖거나 또는 알려진 제어된 환경으로부터 생성되지 않은 데이터 아이템을 실행할 수 있는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제2 저장 장치와 결합됨; (iv) 제 1 저장 장치로부터 제2 저장 장치로 또는 제2 저장 장치로부터 제1 저장 장치로 단지 데이터 아이템을 복사만 할 수 있는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제1 저장 장치 및 제2 저장 장치와 결합됨. 정보 장치를 구현 및 동작시키는 방법이 제공된다.
본 발명의 실시예들은 물리 및/또는 가상 처리 또는 계산 환경들을 생성하기 위해서 물리 및/또는 가상 처리 또는 계산 공간들에서 다수의 처리들에 대한 선택, 구성, 스위칭, 및/또는 멀티플렉싱을 제공한다. 일 실시예에서, 하나의 처리에서의 문제(예를 들면, 프로그램 바이러스 실행)가 다른 처리 또는 저장된 프로그램 또는 데이터에 영향을 주지 않도록 처리들 사이의 분리를 유지하는 방식으로 복수의 처리들에 대한 시간 멀티플렉싱이 제공된다. 분리는 신뢰된 구성 및 프로그램 엘리먼트들을 사용하여 신뢰된 사용자에 의해서 선택적으로 취소될 수 있다.
본 발명의 실시예들은 처리 또는 계산 로직을 포함하는 임의의 장치, 컴퓨터, 노트북 컴퓨터, 개인 휴대 단말기, 개인 데이터 생성기, 셀룰러 전화기, 이동 전화기, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화기, 자동차 장착 컴퓨터, 비행기 장착 컴퓨터, 네비게이션 장치, 가정 기기, 프린터, 스캐너, 카메라, 디지털 카메라, TV 수신기, 방송 제어 시스템, 전자 장치, 의학 모니터, 보안 장치, 환경 제어 시스템, 처리 모니터링 또는 제어 시스템, 및 이들의 조합을 포함하는 다양한 전자 장치들에 적용될 수 있다.
도1은 종래 기술에 따른, 랩톱 컴퓨터 또는 다른 계산 장치를 보여주는 도이다.
도2는 본 발명의 일 실시예를 통합하는 랩톱 컴퓨터 또는 다른 정보 장치를 보여주는 도이다.
도3은 본 발명의 일 실시예에 따라, 다수의 독립적인 계산 환경들을 지원하는 구조 및 시스템에 대한 다이아그램이다.
도4는 본 발명의 일 실시예를 사용하기 위한 일 방법에 대한 흐름도이다.
도5는 계산 환경들을 개시하기 위한 일 방법에 대한 흐름도이다.
도6은 계산 환경들에 대한 하나 이상의 스위치 시스템들을 구현하는 일 방법에 대한 흐름도이다.
도7은 특별한 목적의 서브 시스템 또는 계산 환경 및 범용 제어기를 포함하는 본 발명의 대안적인 실시예를 보여주는 도이다.
도8은 본 발명의 다른 대안적 실시예를 보여주는 도이다.
도9는 독창적인 구조 및 시스템을 갖는 또다른 대안적인 실시예를 보여주는 도이다.
도10은 독창적인 구조 및 시스템을 갖는 또다른 대안적인 실시예를 보여주는 도이다.
도11은 사용자 처리를 위한 적어도 하나의 독립된 계산 환경 및 결합된 제어 계산 환경을 갖는 본 발명의 추가적인 실시예를 보여주는 도이다.
도12는 구성요소들 및 액세스의 시간적으로 분리된 할당 및 간헐적 액세스를 사용하는 복수의 로직 또는 가상 계산 환경들을 지원할 수 할 수 있지만, 단지 하나의 물리적인 계산 환경을 제공하는 독창적인 구조 및 시스템에 대한 실시예를 보여주는 도이다.
도13은 본 발명의 양상들에 따른 독창적인 구조 및 시스템 구현에 대한 다른 실시예를 보여주는 도이다.
도14는 PC 카드와 같은 본 발명의 인터페이스 카드 실시예에 대한 도이다.
도15는 PC 카드 및 주변 버스, 호스트 버스, 및 호스트 프로세서 사이의 연결을 보여주는 도14의 PC 카드 실시예에 대한 도이다.
도16은 본 발명에서 다이나믹한 구성 및 구성요소의 스위칭 및 연결을 보여주는 도이다.
도17은 본 발명의 일 실시예에서 다이나믹한 구성 및 구성요소의 스위칭 및 연결의 다른 대안적인 양상을 보여주는 도이다.
도18은 독창적인 계산 환경이 어떻게 다수의 키보드들 및 마우스들을 연결하고, 다수의 개별적인 레이어(layered) 비디오 세트들을 제공하는지를 포함하는 본 발명의 추가적인 특징을 보여주는 도이다.
도19는 처리 또는 계산 환경들이 프로세서 입력 및 출력들로부터 분리되어 유지되는, 처리 시스템 구성을 보여주는 도이다.
도20은 복수의 가상 및 물리적 처리 또는 계산 환경들을 갖는 N-차원 가상 처리 공간에 대한 실시예를 보여주는 도이다.
도21은 입력들 및 프로세서 사이의 분리를 유지하는 방법에 대한 도이다.
도22는 단지 하나의 프로세서만을 갖는 물리적 또는 가상의 처리 환경에서 복수의 프로세서들에 대한 시간적인 멀티플렉싱을 수행하는 시스템, 장치, 및 구조에 대한 특정 실시예를 보여주는 도이다.
도23은 컴퓨터의 복수의 처리들 사이에서 제어되는 분리도(degree of isolation)를 유지하기 위한 다른 시스템에 대한 실시예를 보여주는 도이다.
본 발명은 일반적으로 컴퓨터, 정보 장치, 이동 통신 장치, 셀룰러 및 이동 전화기, 개인 휴대 단말기(PDA), 음악 저장 장치 및 플레이어, 데이터 조직기, 이러한 기능 엘리먼트들을 통합하는 하이브리드 장치 등에 관한 것이다. 특히 본 발명은 다수의 순차적 또는 동시적 및 간헐적으로 분리 및/또는 제한된 계산 환경을 자동적으로 생성하여, 계산 환경들 및 데이터 저장 장치들에 위치하는 악성 코드들을 파괴하는 처리와 결합되어, 제한되고 제어된 이동 및 복사 데이터 방법과 함께 이러한 계산 환경들을 사용하여 바이러스, 악성 또는 다른 컴퓨터 해킹, 컴퓨터 또는 장치 파괴 및 고장을 방지하는 것과 관련된다.
본 발명에서, 이러한 요구들은 장치들 및 다른 정보 장치들을 계산하기 위한 동작 방법, 시스템, 구조를 제공함으로써 달성된다. 이러한 새로운 방법은 해킹 및 바이러스, 그리고 다른 악성 에이전트 및 코드에 대해 본질적으로 내성을 갖는 컴퓨터 및 정보 장치들을 제공할 수 있게 한다. 또한, 소프트웨어의 이전 백업으로 복귀함으로써 요구에 따라 "수리"를 사용자가 개시할 수 있도록 하는 컴퓨터들과는 달리, 본 발명의 창의적인 구조, 시스템 및 방법들은 각 파일을 열기 전에 메모리 및 데이터 저장 장치를 리셋 또는 삭제하여 알려진 깨끗한 저장 및 처리 환경을 유지한다. 예를 들어, 이러한 새로운 기술을 사용함으로써, 데이터 저장 장치는 자동적으로 재포맷 또는 삭제되고, 계산 환경에서 새로운 파일을 이동하거나 열기에 앞서, 그 계산 환경이 신뢰되지 않거나 알려지지 않은 코드에 노출되거나 노출될 가능성이 있은 후 마다 메모리는 소거 또는 리셋된다.
본 발명의 실시예들이 자동 제어 시스템에 의해 생성, 동작, 및 중단되는, 간헐적으로 순차 분리 및/또는 통신적으로 제한된 계산 환경들을 제공함을, 본 발명의 구조, 시스템, 및 방법을 통해 잘 이해할 수 있을 것이다. 상이한 레벨의 분리(isolation) 및/또는 악성 코드로부터의 보안 또는 면역성 레벨이 계산 환경을 통합 또는 사용하는 장치의 계산 환경의 필요에 따라 구현될 수 있다.
본 섹션은 해킹, 바이러스, 사이버-테러로부터, 그리고 스파이 소프트웨어(스파이-웨어), 키스트로크 기록들 및 해킹, 바이러스, 웜, 트로이 목마, 및 유사한 위협들로부터의 손상으로부터 컴퓨터들 및 계산 장치들을 보호하는 컴퓨터 프로그램 및 컴퓨터 프로그램 제품, 구조, 시스템, 장치, 및 방법을 설명한다. 사이버 테러는 사용자 비밀 데이터에 인가되지 않은 접속 시도에 의해 생성되는 공격과 같이, 계산 시스템을 파괴하는 시도이다. 본 발명은 잠재적인 사이버-테러에 대한 해법을 제시한다.
종래의 컴퓨터 시스템은 일반적으로 프로세서, 메모리, 디스플레이, 디스플레이 제어기, 및 입력/출력 제어기를 포함한다. 본 발명은 컴퓨터 시스템(또는 다른 장치) 하우징 또는 케이스 내에 내장된 복수의 특별한 목적의 서브시스템들(물리적으로 또는 시간적으로 분리됨)을 제공한다. 이러한 특정 용도 서브시스템들은 일반적으로 제한된 기능들을 수행하며, 다른 특정 용도 시스템들과 제한된 상호작용을 갖는다.
범용 또는 특별한 목적의 서브시스템들(또한 일부 실시예들에서 "분리된 처리 유닛", "분리된 계산 환경들", 또는 간단히 "계산 환경들"로 지칭됨)은 정보 저장, 작업 수행, 및 통신 연결을 지원하는 것을 포함하여 다양한 목적들을 위해 설계될 수 있다.
계산 환경들 및 이러한 계산 환경들의 구성요소들은 모듈러(modular)이거나, 계산 환경을 포함하는 결함 구성요소 또는 구성요소들 세트가 작업 부에서 교체되거나 수리될 때까지, CSCE 또는 CCE 계산 환경과 같은 엔티티를 제어함으로써 특정한 결함 구성요소 및/또는 계산 환경이 처리될 수 있도록 동적으로 구현될 수 있다. 첨부 구성요소들(예를 들어 하나 이상의 스위칭들을 통해서)의 선택적인 진단 처리 및 테스트 및 제거 구성요소들이 그 문제를 분리 및 식별하기 위해서 수행될 수 있다.
계산 환경의 양상들이 이제 설명된다. 본 설명은 실현될 수 있는 특정 실시예들 및 물리적 구현들의 넓은 범위로 인해 다소 일반화된다. 계산 환경은 하나 이상의 컴퓨터 프로그램 지령을 실행한다. 하나 이상의 계산 환경들은 컴퓨터 시스템과 결합된다. 계산 환경은 물리적 표현, 논리적 표현, 및/또는 물리 및 논리적 표현들의 조합에 의해 표현될 수 있다. 물리적 표현에서, 계산 환경은 중앙 처리 유닛(CPU), 하나 이상의 메모리, 및 하나 이상의 주변 장치와 같은 물리적 컴퓨터 구성요소들을 포함한다. 논리적 계산 환경 표현에서, 하나 이상의 공통 계산 구성요소들을 이용함으로써, 제1 계산 환경은 다른 계산 환경들과 공존(coexist)할 수 있다. 바이러스, 해커, 또는 다른 악성 코드 또는 데이터와 통신하는 다른 계산 환경과 제1 계산 환경 사이에서 통신이 지원될 수 있도록 하기 위해서, 제1 계산 환경은 다른 계산 환경들과 분리된다. 예를 들어, 일 실시예에서, 제한된 정보 세트의 단지 비직접적(indirect) 통신만이 존재한다. 다른 실시예에서, 직접 통신이 존재하지만, 이러한 통신은 특정 방식으로 제한되어, 윈도우 스크린 조정, 마우스 위치 조정, 또는 여기서 추가적으로 상술되는 다른 임의의 데이터 타입들과 같은 인증된 데이터 타입들만을 허용한다. 필터 및 리미터(limiter)들이 제1 통신 환경 및 제2 또는 다른 계산 환경들 사이의 통신을 제한하기 위해서 사용될 수 있다. 일부 실시예들에서, 이러한 필터들 및/또는 리미터들은 악성 코드에 의해 파괴될 수 없는 하드웨어 회로들이고, 다른 실시예들에서, 소프트웨어 및/또는 펌웨 어가 이러한 필터링 또는 리미팅을 위해 사용되며, 다른 실시예들에서, 하이브리드 하드웨어-소프트웨어/펌웨어 필터 및/또는 리미터들이 사용될 수 있다. 각각의 계산 환경은 일반적으로 I/O 스위치 시스템을 통해 하나 이상의 주변 장치로부터 입력을 수신하고, I/O 스위치 시스템을 통해 하나 이상의 주변 장치로 출력을 전송하는 것을 포함하여, 다양한 처리 동작들을 수행할 수 있다. 하나의 계산 환경에 의해 수행되는 이러한 처리 동작은 일반적으로 다른 계산 환경의 처리 동작들과는 독립적이다. 본 발명의 일 실시예에 따르면, 하나의 계산 환경의 잠재적인 악성 처리 동작은 다른 계산 환경의 처리 동작과는 직접적으로 간섭하지 않는다.
일 실시예에 따르면, 분리된 계산 환경 및 다른 물리적 또는 논리적 계산 환경들은 컴퓨터 시스템에 대응하는 상이한 어드레스 공간들에 존재한다. 결과적으로, 각각의 물리적 또는 논리적 계산 환경은 다른 논리적 계산 환경들 각각의 동작과는 분리된다. 또한, 다양한 구성들이 다수의 논리적 계산 환경들의 생성 및 동작을 관리하기 위해 사용될 수 있다. 또한, 운영 시스템(예를 들면, 리눅스, 메킨토시, 마이크로소프트 윈도우(R), 및/또는 다른 운영 시스템)이 논리적 계산 환경, 물리적 계산 환경, 및/또는 논리적 및 물리적 계산 환경들의 조합에 대응한다.
제어 계산 환경이 데이터 저장 스위칭 시스템 구성 및/또는 I/O 스위칭 시스템 구성을 구현 및/또는 재구현하기 위한 계산 환경들로부터 선택될 수 있다. 데이터 저장 스위칭 시스템 구성은 제어 계산 환경 및 상술한 보호된 데이터 저장 장치 사이의 통신을 지원한다. 일 실시예에 따르면, 초기 부팅 시퀀스는 컴퓨터 CMOS 데이터 내의 초기 구성 정보를 식별하여 제어 계산 환경, 보호된 데이터 저장 장치를 식별하고, 데이터 저장 스위치 구성 및/또는 I/O 스위치 시스템 구성의 구현을 개시한다.
하나 이상의 사용자 계산 환경이 계산 환경들로부터 선택되어 제어 계산 환경들 및 다른 사용자 계산 환경들과 분리되는 컴퓨터 처리를 수행한다. 데이터(예를 들면, 컴퓨터 파일)가 사용자 계산 환경과 통신적으로 결합되는 데이터 저장 장치를 통해 사용자 계산 환경에 의해 수신된다. 일 실시예에 따르면, 제어 계산 환경은 사용자 정보 및 보호된 데이터 저장 장치를 포함하는 제1 데이터 저장 장치와 통신적으로 결합된다. 제어 계산 환경은 보호된 데이터 저장 장치 및 제1 데이터 저장 장치 사이의 정보를 복사하는 것을 지원하도록 구성된다. 제어 계산 환경이 제1 데이터 저장 장치를 초기화한 후에, 제1 데이터 저장 장치는 제어 계산 환경으로부터 통신적으로 떨어지고(de-attached), 다른 계산 환경들과의 독립적인 사용을 위해 사용자 계산 환경에 연결된다. 사용자 계산 환경이 동작(예를 들면, 파일 편집, 이메일 수신 등)을 완료한 후에, 제1 데이터 저장 장치는 사용자 계산 환경으로부터 떨어지고 제어 계산 환경에 연결된다. 다시, 제어 계산 환경은 보호된 데이터 저장 장치 및 제1 데이터 저장 장치 사이의 정보를 복사하는 것을 지원하도록 구성된다. 결과적으로, 데이터는 사용자 계산 환경의 처리 동작들과는 독립적으로 저장될 수 있다. 따라서, 사용자 계산 환경 내에서 처리되는 악성 코드는 보호된 데이터 저장 장치 상에 저장된 데이터 및/또는 다른 파일들을 파괴하지 않는다.
일 실시예에서, 악성 컴퓨터 프로그램 또는 소프트웨어를 실행하는 능력을 제공할 수 있는 처리 능력과 같은 정교한 처리 능력은 단지 복사 동작에서만 선택 적으로 또는 간헐적으로 제거된다. 이러한 정교한 처리 그 자체는 복사 동작 동안 제어 엔티티로부터의 신호에 응답하여 디스에이블되고, 이러한 동작이 완료되면 다시 인에이블된다. 이러한 동작은 예를 들어 파일 저장 동작 동안, 또는 데이터 또는 마스터 템플릿들을 계산 환경에 복사할 때 사용될 수 있다.
일 실시예에서, 저장용 서브 시스템 또는 계산 환경(또는 보호된 저장 계산 환경)이 저장된 데이터에 대한 제한된 접속을 허용하면서, 데이터를 저장하고 데이터를 검색(retrieve)하도록 설계될 수 있다. 작업(working)용 서브 시스템(또는 분리된 처리 유닛 계산 환경으로 지칭됨)은 다양한 애플리케이션을 갖는 범용 컴퓨터와 동일한 결과를 달성하기 위해 정보를 처리하지만, 동시에 전체적으로 시스템을 보호하고, 손실 또는 파괴로부터 사용자 데이터를 보호하도록 설계된다. 통신용 서브 시스템(또는 제어 및 스위칭 계산 환경)은 다른 특정 용도 서브 시스템들 또는 계산 환경들 사이의 통신을 용이하게 하도록 설계된다.
각각의 특정 용도 서브 시스템 또는 계산 환경은 일반적으로, 수행될 처리에 따라, 처리 기능부, 메모리, 로직, 및 다른(내부 또는 외부) 구성요소와의 계산 환경 또는 특정 용도 서브시스템 중 하나, 일부, 또는 모두를 포함할 수 있다. 처리 기능부는 일부 타입의 컴퓨터 처리 유닛(CPU) 또는 ASIC일 수 있다. 처리 기능부는 컴퓨터 시스템 CPU 또는 다수의 특정 용도 서브시스템들에 의해 공유되는 CPU일 수 있다. 따라서, 특정 용도 서브 시스템과 관련되는 처리 기능부는 컴퓨터 시스템 또는 다른 특정 용도 서브시스템들에 의해 사용될 수 있다.
본 발명의 예시적인 특징들 및 양상들은 본 발명의 구조, 특징, 및 장점에 대한 개략적인 이해를 제공하기 위해서 기술된다. 본 섹션에 이어, 수개의 예시적인 구조 및 구조적 토폴로지에 대한 상세한 설명이 이어지며, 이를 통해 본 발명의 영역 및 특별한 구조 및 방법론적 실행이 이해될 수 있을 것이다.
본 발명의 다양한 실시예들은 계산 환경의 처리, 데이터 저장 및 처리, 및 통신에 대한 제한, 및/또는 동시 및/또는 간헐적 그리고 순차적 또는 시간적 분리를 제공한다. 적어도 일부 실시예들에서, 이러한 분리 또는 제한은, 예를 들면 동작을 위해 다른 파일 또는 데이터 셋을 열기 전과 같이, 차후 동작을 위해 계산 또는 처리 환경을 사용하기에 앞서, 이전에 사용된 처리 또는 컴퓨터 환경들의 삭제, 재포맷화, 리셋하는 것과 결합된다.
일 실시예에서, 컴퓨터 시스템 또는 계산 시스템 또는 기능을 통합하는 다른 장치에, 새로운 파일이 열리기 전에 순차적 및 자동적인 마스터 템플릿의 일부 또는 모두에 대한 삭제/리셋 및 복사가 컴퓨터를 수리하거나 또는 고장을 방지하도록 함으로써 새로운 타입의 자가 수리 특징이 제공된다.
일 실시예에서, 사용자 데이터는 하나 이상의 동시 또는 간헐적으로 순차적인 분리 및/또는 제한 데이터 저장 장치 및/또는 간헐적인 분리 및/또는 제한된 보호 계산 환경들에 저장된다. 여기서, 보호된 데이터 저장 장치(들) 또는 보호된 계산 환경(들)은 보호된 데이터 저장 장치(PDS)로 지칭될 수 있다. 보호된 데이터 저장 장치는 사용자 데이터 및 파일, 애플리케이션 프로그램 코드 프로그램들 또는 애플릿, 운영 시스템 또는 이들의 일부, 장치 드라이버, 상태 정보 등과 같은 임의의 데이터를 저장할 수 있다.
보호된 데이터 저장 장치 또는 보다 일반적으로 보호된 저장 장치의 구조, 조직, 및 저장된 컨텐츠는 시스템에 따라 달라질 수 있지만, (일부 선택적인 특징들을 포함하여) 일부 특징들이 일 실시예를 참조하여 설명된다. 보호된 데이터 저장 장치는 데이터(사용자 데이터, 컴퓨터 프로그램 코드, 이메일, 웹 페이지, 지령, 운영 시스템 코드, 또는 이진 비트들의 집합 등을 포함함)가 실행되지 않도록 하는 방식으로 정보를 저장하는데 사용된다. 따라서, 이러한 데이터는 저장 정보의 컨텐츠에 기반한 저장된 데이터 또는 정보에 대한 처리 또는 동작을 일반적으로 수행하는 처리 환경에 노출되지 않는다. 노출로부터의 이러한 분리가 데이터 및 소프트웨어 복사 동작 동안 동일하게 적용되어, 실행에 대한 노출이 기껏해야 그 특정 계산 환경만을 오염시키는 분리 컴퓨터 환경에 존재할 때까지, 그 내부에 포함된 임의의 악성 코드는 실행되지 않는다.
일 실시예에 따르면, 사용자 파일(예를 들면, 사용자 워드 처리 문서, 이메일, 스프레드시트, 마이크로소프트 아웃룩 또는 다른 컨택트 파일, 패스워드, 셀룰러 전화 번호 리스트, PDA 저장 데이터, 또는 다른 사용자 데이터 또는 프로그램)은 보호된 데이터 저장 장치에 저장된다. 일 실시예에서, 이러한 보호는 데이터를 보호된 저장 장치에 저장함으로써 달성되며, 이를 통해 바이러스, 로봇, 해커 코드, 또는 다른 악성 코드에 존재할 수 있는 악성 코드 또는 이진 시퀀스의 실행을 야기할 수 있는 임의의 구조 또는 처리에 의한 액세스가 이뤄지지 않는다. 이상적으로, 대응하는 작업 처리 문서의 편집 또는 이메일 메시지(및 첨부 문서)의 개봉 및 검토와 같은 사용자 동작들은 보호된 데이터 저장 장치에 저장된 문서의 원본과 는 독립적으로, 그리고 컴퓨터(또는 PDA, 셀룰러 전화기, 아날로그 또는 디지털 카메라, 또는 다른 정보 장치)내에 분리된 위치에서 원본 데이터의 복사에 대해 수행된다. 원본 파일 또는 데이터 세트의 보호된 저장 장치 및 파일 또는 데이터 세트의 복사에 대한 저장 및 동작의 구분(분리)은 아래에서 상세히 설명된다. 하나의 데이터 저장 장치에서 다른 데이터 저장 장치로 이동 또는 복사되거나, 데이터 저장 장치에 저장되더라도 문제를 일으키지 않는 "0" 및 "1" 비트들의 단순한 집합과 같은 다른 악성 코드 또는 바이러스를 실행할 수 있는 프로세서로부터의 분리가 이해된다.
하나 이상의 독창적인 데이터 저장 장치들이 보호된 데이터 저장 장치를 정의하기 위해서 사용된다. 다수의 보호된 데이터 저장 장치들이 선택적으로 정의되지만, 일반적으로 필요하지는 않다. 일 실시예에서, 보호된 데이터 저장 장치는 사용자 파일을 수정할 수 있는 처리 환경과는 독립적으로 사용자 데이터 또는 다른 파일들(예를 들면, 컴퓨터 애플리케이션 프로그램, 운영 시스템, 및 다른 비-사용자 코드 또는 데이터)을 저장하는데 사용될 수 있다. 마스터 템플릿은 보호된 저장 장치 형태에 저장될 수 있는 비-사용자 데이터의 일 타입이 될 수 있다. 이것은 보호된 마스터 템플릿 저장 장치로 지칭될 수도 있다.
본 발명의 일 실시예에서, 문서 편집을 위한 사용자 결정은 문서의 원본이 보호된 데이터 저장 장치로부터 제2 데이터 저장 장치로 복사되도록 한다. 원본 문서 편집을 위해 제2 사용자 데이터 저장 장치와 결합될 수 있는 사용자 계산 환경은 문서의 제2 버전을 생성하기 위해서 사용된다. 예를 들어, 문서의 제2 버전 을 저장하는 것과 같은 사용자에 의한 행위는 문서의 제2 버전을 제2 저장 장치로부터 보호된 데이터 저장 장치로 다시 복사하는 일련의 지령들을 생성한다. 문서의 제2 버전을 보호된 데이터 저장 장치로 복사하는 것은 문서의 원본에 겹쳐 쓰는(overwrite) 것일 수 있다.
보호된 데이터 저장 장치 및/또는 보호된 마스터 템플릿 저장 장치로부터 이진 데이터를 저장 및 검색하는 구조 및 과정 및 동일한 저장 장치상에 또는 동일한 컴퓨터 시스템 내에 저장된 악성 코드 또는 데이터를 포함하는 데이터를 처리함이 없이 컴퓨터 시스템 내에서 이러한 보호된 정보가 처리되는 동작에 대한 방법은 아래에서 상세히 설명된다.
본 발명의 시스템에 대해서 살펴보면, 제어 계산 환경은 동시에 또는 간헐적으로 필요에 따라 보호된 데이터 저장 장치와의 통신을 분리 또는 제한하여 알려지지 않은 잠재적인 악성 코드를 발생시킬 수 있는 코드의 실행 또는 처리로부터 보호된 데이터 저장 장치를 보호시키는 것은 스위칭 통신에 의해서 이뤄진다. 보호된 데이터 저장 장치의 디렉토리는 예를 들어 제어 계산 환경 또는 보호된 저장 계산 환경에 의해 생성될 수 있고(본 명세서의 다른 부분을 참조), 이러한 디렉토리는 예를 들면 데스크탑 계산 환경과 같이 (동시에 또는 간헐적으로)분리 및/또는 제한된 계산 환경과 통신한다. 이러한 제어 계산 환경, 보호된 저장 계산 환경, 데스크탑 계산 환경, 및 다른 계산 환경들이 본 명세서 및 도면에서 상세히 설명된다. 일 실시예에서, 이러한 디렉토리는 제한된 처리 능력들을 포함하는 보호된 저장 계산 환경에 의해 만들어짐을 주목하여야 한다. 예를 들어, 이는 ASCII 및 확 장형 ASCII 파일 이름들 및 디렉토리들을 기록 및 판독하는 기능성을 포함할 수 있으며, 데이터를 복사 및 이동시킬 수 있는 능력을 포함할 수 있으며, 파일 디렉토리를 생성할 수 있는 능력을 포함할 수 있지만, 일반적으로 코드를 인식 또는 실행하거나, 시스템, 프로그램, 또는 데이터 무결성에 해로운 다른 기능들을 실행하는데 필요한 다른 기능성 또는 능력들을 포함하지는 않는다. 이러한 정보는 제어 계산 환경에 의해 수집되거나, 보호된 저장 계산 환경에 의해 제어 계산 환경으로 전송된다.
적어도 일 실시예에서, 다음 구조들 및/또는 절차들 중 하나, 또는 그 이상의 조합이 하나의 계산 환경 구성 및/또는 처리로 결합될 수 있고, 이들이 미리 결정되거나, 동적으로 결정 및 구성될 수 있다; (a) 제어 환경, (b) 보호된 저장, (c) 데스크탑 환경, (d) 스위칭, (e) 스위칭 구성, (f) 리-포맷화/삭제 환경, (g) 비디오 제어 환경, (h) 비디오 처리, 및 이들의 서브셋 또는 이들의 조합. 다른 선택적인 구조 및/또는 절차적 엘리먼트들이 대안적으로 또는 이에 부가하여 구현될 수 있다. 따라서, 예를 들어, 일 실시예에서, 본 발명은 2개의 계산 환경을 포함할 수 있으며, 그 하나는 모든 환경들, 스위치, 및 스위치 구성들을 포함하지만, 사용자 계산 환경을 배제한 계산 환경이고, 다른 하나는 사용자 환경만을 포함하는 계산 환경이다.
사용자 데이터를 열기 위해서, 사용자는 데스크탑 계산 환경에서 또는 이에 의해 위치확인 또는 식별되는 파일 이름, "쇼트컷(shortcut)", 또는 "가명(alias)"과 같은 데이터 표현을 선택한다. 실제 파일은 데스크탑 계산 환경에서 열리거나 실행되지 않으며, 그 데스크탑 계산 환경에 실제로 존재하지 않는다. 대신, 이러한 파일 이름 및 위치 정보(포인터 또는 파일 또는 데이터 셋 참조)는 데스크탑 계산 환경으로부터 분리되지 않은 제어 계산 환경으로 전송된다. 이러한 실시예에서, 제어 계산 환경은 사용자(또는 다른 지정된 엔티티)에 의해 선택된 파일 이름에 대응하는 파일을 보호된 데이터 저장 장치로부터 복수의 동시 또는 간헐적인 분리 및/또는 통신적으로 제한된 계산 환경(예를 들면, 사용자 계산 환경 #1)들 중 하나로 복사한다. 이러한 실시예에서, 파일을 열기 위해서 명령이 사용자 계산 환경 #1으로 전송되고, 사용자 계산 환경 #1과의 제한되지 않은 통신을 종료하기 위해서 스위치(들)로 명령이 전송된다. 이러한 동작과 관련된 구조, 시스템, 및 방법은 본 명세서 전반에 걸쳐 상세히 설명된다.
사용자 데이터가 악성 코드에 "감염"되어 실행되면, 원래 감염된 데이터 파일에 대한 손상을 제외하고, 악성 코드를 실행함으로써 보호된 저장 장치 내에 있는 다른 사용자 데이터 또는 정보는 손상되지 않는다. 애플리케이션 프로그램 컴퓨터 코드 또는 운영 시스템 프로그램 코드가 오염되거나 손상되더라도, 이러한 오염 또는 손상은 시스템 또는 장치의 연속된 동작에 영향을 미치지 않는데, 왜냐하면 단지 복사만이 오염 또는 손상되었고, 복사는 재사용되지 않기 때문이다.
이러한 예시적인 실시예에서, 선택적인 제한된 통신 경로는 사용자 계산 환경 #1을 제어 계산 환경으로 연결시키고, 이러한 통신 경로는 임의의 하나 또는 그 이상의 경로들로 제한될 수 있다. 예를 들어, 이러한 통신 경로는 단지 미리 결정된 ASCII 문자들 세트만을 통과시키는 것을 허용하는 것과 같이 매우 제한된 통신 능력들을 갖는 ASCII 리미터 또는 필터에 의해 제한될 수 있고, 이러한 세트 및 명령은 실행가능한 지령들을 지원하지 않는 미리 결정된 높은 확률 또는 정확성을 가지고 알려진다. 이러한 리미터는 예를 들어, 통신이 시도되는 비트들 또는 문자들을 허용된 비트들 또는 문자들 세트와 비교한다. 이러한 실시예에서, 예를 들어, 이는 예를 들어, "파일 저장" 및" 이러한 계산 환경을 삭제/리셋" 하는 것과 같은 개념들을 나타내는 이진 "0" 또는 "1" 비트들의 시퀀스와 같이 제한된 수를 제어 환경으로 통신하는데 필요한 기능성만을 포함하며, 예를 들어 시간 주기에서 또는 이벤트(들)에 응답하여 통신할 수 있는 정보의 양에 대한 제한을 포함한다.
대안적으로 또는 이에 추가하여, 전기 또는 광학 광 펄스 또는 다른 신호가 제어 환경과 연결된 수신기로 통신될 수 있으며, 예를 들어, 하나의 펄스는 "파일 저장"을 의미하고, 2개의 연속적인 펄스들은 "계산 환경 삭제/리셋"을 의미한다. 이러한 것들은 단지 예일 뿐이며, 당업자는 본 명세서를 참조하여 정보의 양 또는 속성을 제한하지만, 다른 요구되는 동작을 제공하는 다른 시그널링 방식이 사용될 수 있음을 잘 이해할 수 있을 것이다.
데이터 저장 장치 및 그 계산 환경이 사용자 문서에 "노출"된 후에, 따라서 잠재적으로 바이러스, 스파이 소프트웨어, 또는 악성 프로그램 코드에 노출된 후에, 데이터 저장 장치는 완전히 재포맷되거나, 소거, 삭제, 및 리셋되어, 예를 들어, 숨겨진 부분들, 드라이버, 부팅 섹션, 숨겨진 코드 등과 같은 모든 데이터를 제거한다. 계산 환경은 다음번에 사용하기 전에 잔여 오염(contamination)이 없도록 보장하는 방식으로 (예를 들어, 사이클링된 전력 또는 그렇지 않으면 소거된 또 는 재로딩된 전력과 같이) "재-설정"될 수 있다.
위에서 (그리고 본 명세서의 다른 부분에 있는 여러가지 대안적인 실시예들에서) 설명된 스위칭 및 복사 프로세스는 데이터를 안전하게 분리된 계산 환경들 및 데이터 저장 장치들 또는 저장 서브시스템으로/으로부터 이동시키기 위해 사용될 수 있다; 이러한 프로세스는 제어 계산 환경, 관련된 소프트웨어 및 연결된 스위치들에 의해 제어되고 편성될 수 있다. (본 발명의 다양한 실시예들에서 보다 상세하게 설명되며, 단순화된 용어로서 깨끗하고 오염되지 않은 실행가능한 코드를 포함하는) 마스터 템플릿들은 필요에 따라 데이터 저장 장치들 사이에서 복사될 수 있다.
여러가지 스위치들, 스위칭 시스템들 및 수단은 여러가지 실시예들과 관련하여 설명된다. 다시, 이러한 설명은 본 발명의 아키텍쳐, 시스템 및 방법이 많은 상이한 물리적 구현들 및 장치 타입들로 광범위하게 적용될 수 있기 때문에 다소 일반화되어 있다. 일 실시예에서, 일반적인 스위치 시스템은, 명명될 수 있는 많은 예들 중에서 단지 두 개만을 명명하기 위해, 예를 들어, 제 1 및 제 2 저장 장치들 사이에서 또는 네트워크 인터페이스 카드(NIC)와 계산 환경 사이에서와 같은 소스와 목적지 사이의 통신을 지원하도록 하나 이상의 소스와 하나 이상의 목적지를 연결하기 위해 사용될 수 있다. 통신은 소스와 목적지 사이에서 양방향 통신 또는 단방향 통신을 지원할 수 있다. 일반적인 스위치 시스템은 어떤 소스들이 어떤 목적지들과 연결되어야 하는지를 결정하기 위해 사용되는 스위치 구성과 연결될 수 있다. 스위치 구성은, 예를 들어, 하나 이상의 로직 회로 또는 회로들, 데이터 화일, 룩-업 테이블 및/또는 소스(들)과 목적지(들) 사이의 접속들 또는 유효하게 인에이블된 통신 경로들을 식별하거나 지정하기 위한 임의의 다른 수단을 포함할 수 있다. 일 실시예에서, 스위치 구성은 유효하지 않거나 또는 인에이블되지 않은 통신 경로들을 식별할 수 있으며, 다른 실시예에서, 스위치 구성은 가능한 소스들과 목적지들 사이에서 유효하지 않은(인에이블되지 않은) 통신 경로와 유효한(인에이블된) 통신 경로 모두를 식별할 수 있다. 일반적인 스위치 시스템은 하드웨어, 소프트웨어 및/또는 이들의 결합으로 구현될 수 있다.
본 발명의 일 실시예에 따르면, 일반적인 스위치 시스템은 물리적 스위치로서 하드웨어로 구현될 수 있다. 소스는 IDE 장치로 표시될 수 있으며, 목적지는 계산 환경으로 표시될 수 있다. 각각의 소스는 IDE 케이블을 사용하여 일반적인 스위치 시스템과 연결될 수 있다. 각각의 목적지는 또한 IDE 케이블을 사용하여 일반적인 스위치 시스템과 연결될 수 있다. 본 발명의 일 실시예에 따르면, 스위치 구성은 스위치의 물리적 기능들에 따라 표현될 수 있으며 IDE 케이블들은 물리적으로 스위치와 연결된다. 물리적 스위치의 물리적 조작 및/또는 트위스팅은 소스와 목적지 사이의 통신을 지원하기 위해 소스에 대응하는 주어진 IDE 케이블과 목적지에 대응하는 주어진 제 2 IDE 케이블을 연결할 수 있다. 소스와 목적지 사이의 통신은 양방향 통신을 지원할 수 있다. 본 발명의 일 실시예에 따르면, 스위치는 수동으로 그리고/또는 하나 이상의 계산 환경의 지시 및/또는 제어에 의해 동작할 수 있다.
본 발명의 일 실시예에 따르면, 일반적인 스위치 시스템은, 예를 들어, 일반 적인 스위치 시스템과 연결된 컴퓨터 시스템의 사용을 통해서 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 컴퓨터 시스템은 하나 이상의 컴퓨터 명령들을 실행할 수 있으며 일반적인 스위치 시스템을 구성하기 위해 사용될 수 있다. 여러가지 예시적인 명령들은 구성 명령들, 통신 명령들 및 액세스 명령들을 포함할 수 있다. 구성 명령들은 주어진 소스와 목적지 사이에서 통신을 인에이블시키거나 디스에이블시키는 기능을 지원하도록 통신을 구성하기 위해 사용될 수 있다. 통신 명령들은 하나 이상의 구성들과 관련된 정보를 수신하고, 전송하고 그리고/또는 검증하기 위해 사용될 수 있다. 예를 들어, 통신 명령들은 구성 명령에 의해 계속해서 이용될 수 있는 정보를 수신하기 위해 사용될 수 있다. 액세스 명령들은 스위치 구성과 관련된 정보를 판독 및/또는 기록하기 위해 사용될 수 있다. 그러나, 다른 명령들 및/또는 명령들의 세트들도 사용될 수 있다는 것을 이해해야 할 것이다.
데이터 저장 스위치 시스템은 일반적인 스위치 시스템의 기능을 포함할 수 있으며, 소스는 데이터 저장 장치를 나타내고 목적지는 계산 환경을 나타낼 수 있다. 어떤 데이터 저장 장치들이 어떤 계산 환경들과 연결되는지를 식별하기 위해 일반적인 구성이 사용될 수 있다. 위에서 설명된 바와 같이, IDE 장치들은 하나 이상의 계산 환경과의 통신을 지원하기 위해 구성될 수 있는 데이터 저장 장치의 일례를 나타낼 수 있다.
본 발명의 일 실시예에 따르면, 데이터 저장 스위치 시스템은 일반적인 구성에 대응하는 특성들의 개수 및/또는 타입을 확장할 수 있는 데이터 저장 스위치 시스템 구성과 연결될 수 있다. 데이터 저장 스위치 시스템 특성들은 또한 소스와 목적지 사이의 통신을 구성하도록 지원할 수 있다.
I/O 및/또는 다른 주변 장치 또는 장치 스위치 시스템은 일반적인 스위치 시스템의 기능을 포함할 수 있으며, 여기서 소스는 주변 장치를 나타내고 목적지는 계산 환경을 나타낼 수 있다. 어떤 데이터 저장 장치들이 어떤 계산 환경들과 연결되는지를 식별하기 위해 일반적인 구성이 사용될 수 있다. 키보드 장치는 하나 이상의 계산 환경과 통신하도록 지원하기 위해 구성될 수 있는 주변 장치의 일 실시예를 나타낼 수 있다.
본 발명의 일 실시예에 따르면, I/O 시스템은 일반적인 구성에 대응하는 특성들의 개수 및/또는 타입을 확장할 수 있는 I/O 시스템 구성과 연결될 수 있다. I/O 스위치 시스템 특성들은 소스와 목적지 사이의 통신을 구성하도록 지원한다. 일 실시예에서, 이러한 스위칭 및 통신 경로들과 관련하여, 데이터 저장 스위치 통신 경로는 데이터 저장 스위치와 계산 환경을 연결하기 위해 사용된다. 데이터 저장 스위치 통신 경로는, 위에서 설명된 바와 같이, 데이터 저장 스위치 구성에 따라 적어도 하나의 데이터 저장 장치와 통신하도록 지원하기 위해 사용된다. 일 실시예에 따르면, 계산 환경과 연결된 데이터 저장 장치들 중 하나는 컴퓨터 부트 장치로서 계산 환경에 의해 사용될 수 있는 운영 시스템을 포함한다.
유사한 방식으로, I/O 스위치 통신 경로는 I/O 스위치 시스템과 계산 환경을 연결하기 위해 사용된다. I/O 스위치 통신 경로는 하나 이상의 주변 장치를 하나 이상의 계산 환경과 연결하기 위해 사용될 수 있다. I/O 스위치 시스템 구성은 하나 이상의 컴퓨터 환경들로부터의 출력을 하나의 출력 장치로 전달하기 위해 사용 될 수 있다. 유사하게, I/O 스위치 시스템 구성은 하나의 주변 계산 장치로부터의 입력을 하나 이상의 계산 환경들로 전달하기 위해 사용될 수 있다.
I/O 스위치 시스템 구성은 대응하는 특성에 기반하여 수신된 입력(또는 출력)을 적어도 하나의 계산 환경으로 전달하도록 구성될 수 있다. 그리고, I/O 스위치 시스템 구성은 대응하는 특성(본 명세서의 다른 부분에 있는 특성들에 대한 설명을 볼 것)에 기반하여 하나 이상의 계산 환경들에 의해 생성된 출력을 입력/출력 장치, 주변 장치 또는 시스템에 있는 몇몇 다른 구성요소로 전달하도록 구성될 수 있다.
다른 타입의 신호에 대하여 주의를 돌리면, 일 실시예에서, 각각의 분리된 계산 환경으로부터의 비디오 신호 출력들은 악성 코드가 더 이상 실행될 수 없을 때(예를 들어, 출력이 그래픽 "프리미티브(primitive) 및 속성"으로 변환되었을 때, 그리고/또는 비디오 신호들은 아날로그 신호들임) 이러한 비디오 신호들을 처리하는 시점에서 결합되거나 또는 혼합될 수 있다. 이것은 분리된 계산 환경들에서 발생하는 프로세스를 나타내는 윈도우 비디오 신호가 상이한 계산 환경들을 크로스 오염시키기 위한 매체로서 사용되지 않도록 방지한다. (특히 특화된 장치들의 몇몇 처리가 계산 환경에서 데이터를 처리할 수 있으나 사용자가 볼 수 있는 비디오 디스플레이 또는 신호를 제공하지 않기 때문에, 모든 계산 환경들이 비디오 출력 신호들을 요구하거나 또는 생성하지 않는다는 것을 유의하도록 한다.)
일 실시예에서, 소위 "분리된 글로벌 툴바(toolbar)"는 또한 미리 결정된 또는 동적(예를 들어, 컨텍스트에 민감한) 명령들 및/또는 다른 동작들 또는 기능들 을 위해 이용될 수 있다. 이러한 분리된 글로벌 툴바는 자신을 악성 코드로부터 보호하기 위해 자신의 분리된 비디오 계층 또는 데스크탑 계산 환경 상에 나타날 수 있다. 바람직하게는, 분리된 글로벌 툴바는 항상 상위에 있거나 또는 몇몇 사용자 명령 또는 동작에 응답하여 디스플레이되며, 그 결과 사용자 또는 다른 신뢰할 수 있는 제어 엔티티는 직접 계산 환경들 중 하나에서 동작을 제어할 수 있다. 예를 들어, 사용자가 디스플레이 스크린의 윈도우 비디오 부분에 표현된 몇몇 의심스러운 출력을 보게 되면, 사용자는 분리된 글로벌 툴바로 액세스하고 계산 환경에서 발생하는 처리를 종결하며, 선택적으로 화일을 저장하기 또는 저장하지 않기와 같은 다양한 옵션들을 취하게 된다. 일 실시예에서, 이것은 사용자 또는 운영자에게 전체 시스템의 운영뿐만 아니라 임의의 계산 환경에서 발생하는 동작들에 대한 행정적인 제어를 제공한다. 글로벌 툴바는 임의의 동작 또는 기능을 허용할 수 있으나, 몇몇 실시예들에서 글로벌 툴바는 행정적인 기능들 또는 동작에 대한 보다 제한된 세트를 가지게 된다. 몇몇 실시예들에서, 글로벌 툴바를 통해 액세스될 수 있는 기능들 및 동작들은 시스템 디폴트들, 행정적 우선 순위들, 사용자 우선 순위들 또는 다른 규칙들 또는 정책들에 따라 설정될 수 있다.
일 실시예에서, 이러한 기능들 및 동작들은 또한 또는 대안적으로 컴퓨터 프로그램 소프트웨어 명령들에서 수행될 수 있다. 다른 실시예들에서, 하드웨어 구성요소가 있을 수 있으며, 또다른 실시예들에서, 하드웨어와 소프트웨어의 결합이 있을 수 있다. 그리하여, 각각의 환경은 소프트웨어에서 분리될 수 있으며, 스위칭 및 복사는 소프트웨어 등에 의해 수행될 수 있다.
선택적인 절차 단계들은 잘리거나 또는 제외될 수 있으며, 여기에 설명된 계산 환경들의 기능들은 원하는 대로 혼합되고 매칭될 수 있다는 것을 유의하도록 한다. 몇몇 예들에서, 선택적인 단계들 또는 절차들을 포함하거나 또는 제외하는 결정은 위협적인 환경, 데이터 및/또는 동작의 민감성, 속도에 대한 요구, 저장 장치 속성들(예를 들어, 자기적 저장 매체 대 전자적 RAM) 및 다른 인자들과 관련하여 이루어질 것이다. 예를 들어, 제어 계산 환경의 기능들은 데스크탑 계산 환경 및/또는 스위치 구성 및/또는 스위치 및/또는 보호되는 저장 매체와 결합될 수 있다.
본 발명의 원리들은 임의의 특정한 컴퓨터 운영 시스템, 애플리케이션 프로그램, 사용자 인터페이스 또는 장치 타입이나 특성에 영향을 받지 않는다. 필수적으로 본 발명의 아키텍쳐, 시스템, 방법 및 절차들은 의도된 로직 또는 산술 연산들을 수행하기 위해 (이진 비트들의 형태와 같은) 정보를 사용할 수 있는 로직 회로를 가지는 임의의 전기적, 전자적 또는 광학적 장치에 적용할 수 있고, 그러므로 상이한 또는 추가적인 정보가 생성되도록 함으로써 변경되거나 또는 손상되기 쉬우며, 그 결과 의도된 연산들이 수행되지 않거나 또는 추가적인 연산들이 수행된다. 컴퓨터들, 정보 어플라이언스들, 셀룰러 또는 다른 모바일 전화기들, 자동차 전자 기기, 홈 어플라이언스들, GPS 수신기들, PDA들 등과 같은 최신 장치들에서, 로직은 제어기, 프로세서, 마이크로프로세서 또는 다른 프로그래밍 가능한 로직 회로들 또는 로직 수단 등이다; 그리고 사용된 정보는 컴퓨터 프로그램 명령들 및 선택적 데이터이다. 미래에는 현재 발전하는 광학적 계산 시스템들이 보다 상업화될 것이고, 본 발명은 광학적 계산 및 정보 처리 시스템들과 광학적 프로세서들에 적용가 능하게 될 것이다.
여기의 설명은 컴퓨터들 및 계산 환경들에 대하여 집중하고 있으나, 본 발명은 명령들 및/또는 데이터를 해석하기 위한 로직을 가지는 모든 방식의 장치들 및 시스템들에 적용가능하며, 그러므로 바이러스들, 해커들, 스파이웨어, 사이버-테러 또는 다른 외부의 에이전트들에 의한 우연한 또는 의도적인 악성 공격에 영향을 받기 쉽다.
이제 기존의 컴퓨터 시스템의 몇몇 특징들과 본 발명의 다양한 실시예들의 비교되는 양상들에 대하여 주의를 돌리도록 한다. 본 발명은 다수의 상이한 물리적 형태로 구현될 수 있기 때문에, 전형적인 시스템들이 어떻게 구현될 수 있는지에 대한 예들로서 다양한 실시예들이 설명된다. 이것들이 단지 이러한 특징들의 몇몇 또는 모두를 구체화하는 본 발명의 추가적인 실시예들이라는 것을 당업자는 이해할 것이다.
도 1은 종래 기술에 따른 전형적인 랩톱 (또는 다른) 컴퓨터 시스템(1900)을 나타낸다. 이러한 컴퓨터 시스템은 기술적으로 알려진 바와 같이 CPU(1508-1), (전형적으로 회전 자기 하드 디스크 드라이브의 형태인) 데이터 저장 장치(1502-1) 및 하나 이상의 주변 장치들(1541-1. 1541-2,...,1541-N)과 같은 전자 기기들과 임의의 기계적 구성요소들이 배치된 케이스 또는 하우징을 포함한다. 하우징 또는 케이스(1904)는 또한 전형적으로 디스플레이 스크린(1904), 키보드, 마우스와 같은 포인팅 장치를 마운트하거나 포함한다. 추가적인 외부 주변 장치들이 전형적으로 제공되는 다양한 접속 포트들을 통해 컴퓨터 시스템(1900)에 부착되거나 또는 연결 될 수 있다. 이러한 기존의 계산 시스템들에서, 데이터 저장 장치(1502-1)와 주변 장치들(1514-N)은, 기술적으로 알려진 바와 같이, 보통 시스템 및 주변 버스들을 통해 고정된 토폴로지로 CPU(1508-1)에 연결된다. 예를 들어, 전형적으로 하드 디스크 드라이브 또는 몇몇 고체 상태 메모리(RAM)인, 데이터 저장 장치(1502-1)는 시스템(1900)으로부터 물리적으로 제거되지 않는다면 항상 CPU에 연결된다. 이와 마찬가지로, CPU 연결 메모리는 제거되지 않는다면 항상 CPU에 연결되며, 대부분의 기존 계산 시스템들에서 (온-칩(on-chip) 캐쉬의 형태와 같은) 이러한 메모리의 특정 부분은 항상 영구적으로 CPU에 연결되어 있다. 유사하게, CDROM, DVD 판독기/기록기들, 네트워크 인터페이스 카드들(NIC), 모뎀들, 플로피-디스크 드라이버들(FDD), 무선 인터페이스 카드들 및 다른 주변 장치들과 같은 주변 장치들은 시스템에 연결되며 고정된 버스들 및 상호 접속들을 통해 CPU에 직접적으로 또는 간접적으로 연결된다. 이러한 상호 접속들은 항상 존재하기 때문에, 이들은 바이러스 또는 다른 악성 코드가 CPU, CPU 관련 메모리, BIOS 또는 데이터 저장 장치에 전달되는 기회를 제공할 수도 있다. 이러한 악성 코드는 즉시 동작하거나 또는 특정한 미래의 시간 또는 이벤트까지 유휴 상태로 대기할 수 있다. 이러한 취약성으로부터 면역 레벨을 달성하기 위한 수단이 추가적으로 본 발명의 실시예들과 관련하여 설명된다.
도 2는 데스크탑 컴퓨터 시스템, 랩톱 컴퓨터 시스템, 노트북 컴퓨터 시스템, PDA, (이동 전화기, 셀룰러폰, 위성 전화기, 무선-주파수 전송기 및/또는 수신기 등과 같은) 고정 또는 이동성 유선 또는 무선 통신 장치와 같은 예시적인 정보 어플라이언스를 나타낸다. 일반적으로 본 발명의 구조들, 방법들, 컴퓨터 프로그램들 및 컴퓨터 프로그램 프로덕트들은 제어기 또는 마이크로제어기, CPU, ASIC, 마이크로프로세서, 로직 회로 또는 임의의 다른 처리 엘리먼트와 같은 적어도 하나의 처리 엘리먼트들을 포함하거나 포함하도록 적응될 수 있는 임의의 전자 장치 또는 시스템에 적용가능하고 사용될 수 있다. (본 발명의 다른 실시예들이 설명되며 이들은 언급된 처리 엘리먼트 타입들의 임의의 결합을 포함하는 두 개 또는 다른 복수개의 이러한 처리 엘리먼트들을 사용할 수 있다.) 이러한 시스템들은, 예를 들어, 몇몇 미리 결정된, 동적으로 결정된 또는 다른 로직, 계산, 워드 처리, 이메일, 네트워크 계산, 음악 처리, 비디오 처리, 인터넷 브라우징, 음성 처리 또는 코딩 또는 디코딩, 디지털 카메라들을 통합하는 모바일 전화기들의 디지털 카메라들에서 그림 또는 이미지 획득 및 처리, GPS 신호 수신 및 처리, 위치 네비게이션, 엔터테인먼트와 같은 다양한 동작들을 수행하도록 구현될 수 있다. 여기에 제공된 설명에 따라 당업자는 많은 전자 장치들과 시스템들이 애플리케이션의 적용가능한 카테고리에 있다는 것을 이해할 것이다. 본 발명은 특정한 장점들을 제공하는데, 여기서 두가지 장점들이 개별적으로 달성될 수 있음에도 불구하고, 안티-바이러스 및 안티-해커 보호가 기대되며 또한 동시에 다수의 애플리케이션들을 처리하도록 기대된다.
하나의 계산 환경을 가지는 도시된 실시예에서, 또는 보다 바람직하게는 본 발명의 시스템 및 방법에 대한 대부분의 실시예들에서, 복수의 다중 독립적 계산 환경들(1508-1, 1508-2,...,1508-N)이 생성된다. 이러한 계산 환경들(1508)은 도 7 및 도 8의 실시예들에 있는 특정한 목적의 서브시스템들(1120)과 유사한 특징들을 가지고 있으며, 유사성은 본 발명의 여러가지 실시예들이 전체적으로 상세하게 설명된 후에 보다 명백해질 것이다. 독립적인 계산 환경들은 예를 들어 가능하면 기술적으로 공지된 마이크로프로세서 메모리, 전력 등과 같은 지원 구성요소들과 함께 임의의 결합된 하드-와이어드(hard-wired) 또는 프로그래밍 가능한 산술 및 로직 회로, 프로그래밍 가능한 마이크로제어기들, 프로세서들, 마이크로프로세서들, CPU들, ASIC들을 사용하여 물리적으로 구현될 수 있다. 적어도 특정 실시예들은 계산 (처리) 환경(1508)을 생성하기 위한 물리적 구조를 제공하기 위해 중앙 처리 유니트들(CPUs), 마이크로프로세서들, 마이크로제어기들, ASIC들 또는 몇몇 결합을 사용할 수 있다. 몇몇 예들에서, 처리 및 계산 태스크들의 복잡도는 원하는 계산 환경을 지원할 물리적 엘리먼트들을 지시할 것이다. 일 실시예에서 계산 환경을 생성하는 엘리먼트들은 동적으로 선택가능하고 구성가능하다. 이러한 선택 및 구성은 사용자 제어하에서, 또는 보다 일반적으로 몇몇 미리 결정되거나 또는 동적으로 결정되는 규칙들 또는 정책들에 따라서 선택적으로는 몇몇 측정된 계산 시스템의 물리적 또는 논리적 상태, 환경 조건들, 처리 요청 및 복잡도, 애플리케이션 프로그램의 크기 및 데이터 세트 크기에 따라서 계산 시스템(2000)의 자동 제어에 의해 이루어질 수 있다. (CPU, 메모리, 저장 매체, 비디오 프로세서, 코-프로세서(co-processor), 모뎀, 네트워크 또는 이더넷 프로세서 등과 같은) 예비적인 구성요소가 실패한 구성요소를 대체하기 위해 스위칭될 수 있도록 예비 구성요소들이 또한 제공될 수 있다. 동적 할당 및 구성은 또한 효율성을 제공하며, 모든 환 경들을 위해 모든 처리 기능들을 제공할 필요는 없기 때문에 여기서 많은 계산 환경들이 존재하여야 한다.
계산 환경들(1508)은 스위칭 명령들 또는 I/O 스위치 구성 데이터 또는 로직(1512)에 따라 선택적인 I/O 스위치 시스템(1510)을 통해 주변 장치들(1514-1,...,1514-N)에 연결되거나 선택적으로 연결가능할 수 있다. 본 발명의 특정 실시예들에서 선택적인 I/O 스위치 시스템(1510)에 대한 임의의 요구들은 특정한 주변 장치들의 특성들 및 보안 및 분리에 대한 요구되거나 원하는 정도와 같은 인자들에 따라 좌우될 수 있다. 몇몇 실시예들에서, 특정한 주변 장치들은 하나 또는 선택된 계산 환경들과 직접 연결되거나, 영구적으로 연결되거나, 영구적으로 연결되지 않거나, 또는 스위칭가능하게 연결될 수 있다. 도 2의 컴퓨터 시스템(2000)은 예를 들어 케이스 또는 프레임(1902)에 부착되고 유지되는 디스플레이 장치(1904)를 포함할 수 있다. 또한 컴퓨터 시스템(2000)은 음성 입력, 터치 스크린, 음성 또는 구두 컴퓨터 생성 음성 등과 같은 입력 및 출력을 위한 많은 대안들이 요구되지 않더라도 일반적으로 키보드와 포인팅 장치와 같은 입력 장치를 포함할 것이다. LCD 디스플레이는 또한 다른 장치들 사이에서 셀룰러폰들, PDA들 및 디지털 카메라들과 같은 장치들에 있는 컴퓨터 스크린들을 대체할 수 있다.
여기에 설명되는 다른 스위치들과 스위칭 시스템들과 같이, 스위칭은 원하는 스위칭을 달성하고 원하거나 또는 요구되는 전압, 전류, 분리, 임피던스, 터미네이션 및/또는 전기적 특성들을 유지하는 임의의 하나, 복수, 또는 다수의 기계적, 전기적, 전자적, 트랜지스터, 다이오드, 마이크로프로세서, 디지털 또는 아날로그일 수 있다. 예를 들어, CPU와 하드 디스크 드라이브를 연결하며 연결을 끊는 스위치는 CPU 또는 하드 디스크 드라이브에 손상을 주지 않고 연결 및 연결을 끊는 동작을 수행할 것이다. 몇몇 장치들을 가지는 몇몇 상황들에서, 스위칭은 기술적으로 알려진 바와 같이 전력 라인을 인터럽트시키거나 동작을 정지시키는 다른 방식들이 아니라, 장치 또는 장치의 일부를 턴오프하거나 그렇지 않으면 동작 전압 및 전류를 제한함으로써, 장치에 대한 클록을 정지시킴으로써, 데이터 라인 또는 통신 경로를 인터럽트시킴으로써 달성될 수 있다. 본 명세서의 다른 부분에서 설명되는 바와 같이, 몇몇 예들에서, 이러한 스위칭 동작들은 계산 시스템의 구성요소들과 다른 계산 환경들(1508-1,...,1508-N) 사이에서 보장된 레벨의 분리도를 제공하도록 의도된다.
(도 7 및 도 8의 실시예에서 특별한 목적의 서브시스템들(1120)로서 지칭되는) 복수의 계산 환경들은 또한 스위칭 명령들 또는 데이터 저장 스위칭 구성 데이터 또는 로직(1506)에 따라 데이터 저장 스위치 시스템(1504)을 경유하여 데이터 저장 스위치 시스템(1504)을 통해 하나 이상의 데이터 저장 장치들(1502)에 선택가능하게 연결되거나 또는 연결이 가능할 수 있다. 데이터 저장 장치는 회전 자기 하드 디스크 드라이브들, 회전 또는 비-회전 광학 저장 미디어, CD들, DVD들, 홀로그래픽 레코딩, 나노기술 기반 저장 장치, 고체 상태 메모리(RAM, ROM, EEPROM, CMOS 등), 분자 및 원자 저장 장치, 화학 메모리 또는 임의의 다른 저장 장치 또는 시스템을 포함하나 이에 한정되지는 않는 기술적으로 알려진 또는 개발될 저장 장치들의 임의의 결합일 수 있다. 개별적인 논리적 저장 엘리먼트들(1502-1, 1502- 2,...,1502-N)은 하나의 물리적 장치 또는 물리적 장치들의 임의의 결합 상에서 또는 이들 내에서 구성되거나 또는 분배될 수 있으며, (예를 들어) 하나의 논리적 저장 장치(1502-2)에 대하여, 다수의 상이한 물리적 장치들이 원하거나 또는 요구되는 저장 용량, 데이터를 장치로 복사하는 속도, 데이터를 저장 장치에 기록하는 속도, 소거 및/또는 삭제 또는 겹쳐쓰기 속도 및 성능 또는 다른 동작 특성들을 얻기 위해 사용될 수 있다. 예를 들어, 노트북 컴퓨터에 대한 일 실시예에서, 몇몇 데이터 저장 장치(1502)는 하나의 물리적 하드 디스크 드라이브의 논리적 파티션들로서 구현된다. 다른 실시예에서, 모든 데이터 저장 장치(1502)는 고속 판독, 기록 및 삭제 속도 성능을 제공하기 위해 고체 상태 메모리 장치들을 통해 구현된다. 다양한 종류의 곱셈-포트 메모리 타입들 및 아키텍쳐들이 사용가능하고 사용될 수 있다. 예를 들어, 보다 기존의 메모리 칩들뿐만 아니라 램버스 메모리가 사용될 수 있다. 또다른 실시예에서, 여러개의 데이터 저장 장치(1502)는 멀티-디스크 하드 자기 디스크 드라이브 상의 개별적인 플래터들 또는 디스크들로서 구현된다. 이러한 드라이브들은 데이터 경로들의 분리되도록 보장하기 위해 하나의 제어기 및 판독/기록 헤드들의 제어된 세트를 가질 수 있거나, 또는 개별적인 제어기들과 선택적으로 독립적으로 동작가능한 액추에이터 암(arm)들 및 판독/기록 헤드들을 가질 수 있으며, 그 결과 (바이러스, 로봇 또는 컴퓨터 해커로부터의) 악성 코드는 하나의 계산 환경으로부터 다른 계산 환경으로 이동할 수 없고 여러가지 계산 환경들에 대한 의도된 분리 및 독립성을 훼손할 수 없다.
(예를 들어, PDA들, 이동 전화기들 또는 다른 통신 장치들과 같은) 물리적으 로 작은 장치들에 대하여, 낮은 에너지 소비, 보다 작은 크기, 보다 낮은 열발생, 보다 빠른 액세스 속도, 기록/판독 속도 및 삭제 속도 때문에, 기계적인 이동 부분들을 가지는 메모리와 비교하여 오직 고체 상태 메모리를 사용하는 것이 바람직하다고 예상된다. 이러한 고체 상태 메모리는 장치(예를 들어, 이동 전화기)의 내부에 있을 수 있고, (마이크로소프트 윈도우 운영 시스템(OS) 및 팜파일롯 OS 기반 PDA; PDA 셀폰 결합; PDA, 셀폰 및 디지털 카메라 결합 장치; 디지털 카메라; 셀폰; 디지털 오디오 및/또는 비디오 리코더 및 플레이어; MP3 플레이어; 및 기술적으로 알려진 다른 장치들 및 메모리 시스템들에 대한 기본적인 또는 추가적인 메모리로서 이용가능한 콤팩트 메모리 카드들 또는 모듈들, 소니 스마트미디어를 사용함으로써) 기계적 또는 전기적 커넥터 또는 결합을 통해 플러깅 가능하도록 외부에 위치할 수 있다. 또한 사용될 수 있는 고체 상태가 아닌 작고 저렴한 저장 장치들 및 서브시스템들이 있다.
도 1의 기존의 컴퓨터 시스템(1900)과 도 2의 본 발명의 실시예(2000) 사이의 비교는 여러가지 차이점들을 보여준다. 기존의 시스템에서, 데이터 저장 장치(1502-1)는 하나 이상의 버스들 또는 내부 접속들을 통해 CPU(1508-1)에 직접적으로 연결되거나 또는 몇몇 고정되고 영구적인 접속들을 통해 CPU(1508-1)에 연결된다. (기계적이고 수동적인 접속 해제는 몇몇 예들에서 몇몇 장치 타입들에 대하여 가능할 수 있으나, 처리 동작에 따른 시간에 특정한 저장 장치, 주변 장치 또는 다른 시스템 구성요소에 대한 필요에 따라 컴퓨터가 동작하는 동안에 프로그램 제어 하에서는 가능하지 않을 수 있다.) 기존 시스템(1900)과 비교하여, 컴퓨터 시스템 (2000)의 여러가지 데이터 저장 장치들(1502-1,...,1502-N)은 (데이터 저장 스위치 시스템(1504)의 상태에 따라) 데이터 저장 스위치 시스템을 통해 계산 환경(예를 들어, CPU와 같이 그러나 이에 한정되지는 않는 몇몇 처리 또는 계산 기능을 포함하는 계산 환경)에 연결된다. 일반적으로 데이터 저장 장치(1502) 중 임의의 하나는 계산 환경들 중 임의의 하나에 연결될 수 있거나, 또는 어떤 계산 환경에도 연결되지 않을 수 있다. 보다 전형적으로, 임의의 주어진 데이터 저장 장치는 결합 또는 접속 및 특정한 데이터 저장과 같은 사항에 대한 필요성이 존재하면 간헐적으로 계산 환경으로 결합되거나 또는 계산 환경에 접속될 수 있으며, 특정한 데이터 저장 장치(1502)는 계산 환경이 존재하는 동안에 변화될 수 있다. 일반적인 디폴트는 액세스가 구체적으로 제어기 또는 제어 계산 환경에 의해 원해지고, 요구되며 허용되지 않는다면 이러한 데이터 저장 장치들과 다른 장치들이 결합되거나 또는 연결되지 않도록 하는 것이다.
또한, 본 발명의 실시예들에서, 특정한 CPU와 특정한 데이터 저장 장치(예를 들어, 하드 디스크 드라이브 또는 고체 상태 메모리 칩)와 같은 물리적 구성요소들 사이의 페어링(paring) 및 스위칭 접속은 상이한 처리 동작들에 대하여 동적으로 변할 수 있다(그러나 동적인 변화가 요구되는 것은 아니다). 마찬가지로, 선택적인 I/O 스위치 시스템(1510) 및 선택적인 I/O 스위치 구성(1512)을 포함하는 적어도 몇몇 실시예들에서, 계산 환경들(1508)은 오직 I/O 스위치 시스템(1510)을 통해서만 주변 장치들(1514)로 결합된다. 스위칭가능한 접속 및 결합은 하나 이상의 전기적 접속을 변경하고, 인터페이스 또는 주변 장치로부터 전력을 제거하고, 주변 장치의 동작을 위해 필요한 클록 신호를 중지하는 과정을 포함하는 방식들과 같은 임의의 다양한 스위칭 방식들과, 주변 장치가 계산 환경에 대하여 존재하거나 액세스 가능하지 않도록 하기 위해 기술적으로 알려진 다른 방식들, 구조들 및 방법들을 포함할 수 있다.
데이터 저장 장치들(1502) 및/또는 주변 장치들(1514)을 인에이블시키거나 디스에이블시키는(또는 접속 및 접속 해제시키는) 동작들은 (인에이블먼트 또는 디스에이블먼트가 컴퓨터 시스템의 사용자에 의한 명령 또는 다른 작업의 결과일 수 있음에도 불구하고) 인간 사용자의 간섭없이 프로그램 제어에 따라 자동적으로 발생할 수 있으며, 인에이블먼트 또는 디스에이블먼트는 본 발명의 컴퓨터 시스템(2000)의 동작을 위해 요구될 때 초당 많은 횟수동안 발생할 수 있다는 것을 이해해야 할 것이다. 예를 들어, 컴퓨터는 100 MHz에서 동작하는 인터페이스들 또는 버스들을 가지며, 데이터 저장 장치들과 주변 장치들은 필요에 따라 인터페이스 또는 버스를 통해 동작들이 개시되고, 실행되며 완료되도록 스위칭 가능하게 결합되거나 결합 해제될 수 있다. 예를 들어, 스위칭은 적어도 1 Hz, 10 Hz, 100 Hz, 1KHz, 1 MHz 및 10 MHz의 레이트들에서 발생할 수 있을 뿐만 아니라, 보다 높은 레이트와 보다 낮은 레이트 및 임의의 중간 레이트에서 발생할 수 있다. 이러한 설명으로부터, 데이터 저장 스위치 시스템(1504) 및 (존재한다면) I/O 스위치 시스템(1510)은 상이한 CPU들을 데이터 저장 장치들 및/또는 주변 장치들로 인에이블 또는 접속시키거나 디스에이블 또는 접속 해제시키기 위해 동시에 스위칭할 수 있다.
전형적인 기존의 컴퓨터 시스템(1900)에서, 주변 장치들(1514)은 CPU(1508) 로 직접 접속되며 컴퓨터 시스템의 동작 동안에 스위칭 가능하게 접속 및 접속 해제(또는 인에이블 및 디스에이블)되지 않는다. 데이터 저장 장치들과 주변 장치들의 접속 해제는 또한 이들이 다른 계산 환경들에서 사용가능하도록 할 수 있다는 것을 이해해야 할 것이다. 몇몇 주변 장치가 핫-플러그(hot-plug) 가능한 기존의 시스템들에서, 주변 장치를 플러깅하는 것은 인간의 사용자 인터랙션을 요구하는 수동 작업이다. 기존의 계산 시스템들 및 방법들과 본 발명의 시스템 및 방법 간의 다른 차이점들은 여기에 설명된 본 발명의 다른 실시예들에 대한 설명에서 보다 용이하게 이해될 것이다.
도 3은 다수의 독립적인 계산 환경들(1508-1,...,1508-N)을 지원하기 위한 아키텍쳐 및 시스템(1500)의 개략적인 다이어그램을 나타내며, 이러한 시스템은 악성 바이러스, 로봇 또는 해킹에 의해 사용자 데이터에 손상을 주는 오염 및 공격을 방지하기 위해 특정한 처리 동작들을 개별화하고 분리하도록 바람직하게 사용될 수 있는 다수의 독립적인 계산 환경들을 지원할 수 있는 컴퓨터 시스템을 포함한다. 이러한 컴퓨터 시스템(1500)은 복수의 데이터 저장 장치들(1502), 데이터 저장 스위치 시스템(1504)(및 선택적인 데이터 저장 스위치 구성 유니트(1506), 선택적인 I/O 스위치 시스템 및 I/O 스위치 구성 유니트를 통해 계산 환경들(1508)에 연결되는 하나 또는 복수의 주변 장치들(1514)을 포함하는 I/O 시스템 및 하나 이상의 계산 환경들(1508)을 포함할 수 있다.
하나 이상의 데이터 저장 장치들(1502)은 컴퓨터 시스템과 연결될 수 있다. 데이터 저장 장치(1502)는 메모리 영역을 나타낸다. 데이터 저장 장치는 자기 하 드 디스크 드라이브, 광학 저장 미디어, 고체 상태 메모리, 다른 형태의 데이터 저장 장치 또는 이러한 데이터 저장 미디어 타입들의 결합과 같은 임의의 타입의 저장 미디어에 의해 구현될 수 있다. 데이터 저장 장치는 디스크 드라이브 및/또는 하나 이상의 디스크 드라이브의 일부분, 및/또는 결합 또는 물리적 디스크 드라이브들에 대응하는 메모리 영역을 나타낼 수 있다. 본 발명의 일 실시예에 따르면, 데이터 저장 장치(1502)는 마스터 템플릿의 사본을 포함할 수 있다. 본 발명의 시스템과 관련하여 이용될 수 있는 방법의 일 실시예는 도 4와 관련하여 설명된다.
다수의 독립적인 계산 환경들을 지원할 수 있는 컴퓨터 시스템을 사용하기 위한 방법의 실시예
도 4, 도 5 및 도 6에서는, 본 발명에 따른 컴퓨터 시스템의 예시적인 실시예들의 셋업, 초기화 및 동작을 위한 방법들 및 동작의 양상에 대한 설명에 대하여 주의를 기울이도록 한다. 예시적인 방법들 및 절차들은 적어도 도 2 및 도 3의 실시예들에서 도시된 아키텍쳐들 및 시스템들에 대하여 적용가능하며, 도 9-17과 관련하여 도시되고 설명된 실시예들과 같은 그러나 이에 한정되지는 않는, 본 발명의 다른 실시예들에 대한 다소 상이한 구조로 인한 적절한 변형들이 이루어진다는 것을 이해해야 할 것이다. 이번 섹션에서 본 발명의 특정한 양상들 및 실시예들이 설명되는 명세서를 통해 제공되는 헤딩들과 서브헤딩들은 독자의 편의를 위한 기준으로서 의도된 것이며, 본 발명의 양상들과 실시예들은 명세서, 도면 및 청구범위를 통해서 설명되며, 명세서, 도면 및 청구범위 전체는 본 발명을 이해하기 위해 고려되어야 한다는 것을 이해해야 할 것이다.
본 발명의 일 실시예에서, 계산 환경(들)의 생성 및 설정, 초기화, 스위치 구성, 처리 제어, 하나 이상의 계산 환경들의 운용, 계산 환경들 내에서 사용자 및/또는 제어 동작들 수행, 사용자 처리의 완료, 화일 저장 및 계산 환경에서의 처리 종료를 위한 본 발명의 방법 및 구성요소 절차들은 바람직하게는 컴퓨터 프로그램 또는 실제 미디어 상에 저장되고 본 발명의 방법 및 시스템의 방법론적인 단계들을 수행하기 위한 컴퓨터 프로그램 명령들을 포함하는 컴퓨터 프로그램 프로덕트로서 구현될 수 있다. 다른 실시예들은 이러한 절차들의 일부 또는 전부를 수행하기 위해 하드웨어 로직, 펌웨어 및/또는 소프트웨어의 결합을 사용할 수 있다.
본 발명의 양상들이 이제 설명된다. 실시예의 특정한 선택적인 절차들 및 단계들을 포함하는, 본 발명의 방법 및 절차들의 이러한 그리고 다른 양상들은 본 명세서를 통해 특정한 실시예들과 관련하여 설명된다.
초기 시스템 스타트업 및 계산 환경 설정
도 4와 관련하여, 본 발명의 방법에 대한 일 실시예에 따르면, 다수의 독립적인 계산 환경들(1508-N)을 사용하는 것은 시스템 스타트업을 개시하는 과정(1602), 1604에서 I/O 스위치 시스템 구성들(1512)과 데이터 저장 스위치 구성들(1506)을 구성하는 과정, 통신을 지원하기 위해 I/O 스위치 시스템(1510)을 구성하는 과정, 통신을 지원하기 위해 데이터 저장 스위치 시스템(1504)을 구성하는 과정, 1623에서 제어 처리를 수행하고 1631에서 사용자 처리를 수행하는 과정을 포함 할 수 있다. 전형적으로 제어 처리는 또한 1615에서의 제어 셋업 처리과 1621에서의 제어 저장 처리를 포함할 수 있다.
1602에서 시스템 셋업을 개시하는 과정은 컴퓨터 시스템의 공지된 부트 시퀀스들과 유사한 초기 부트 시퀀스를 포함할 수 있다. 부트 시퀀스는 또한, 예를 들어, 데이터 저장 스위치 구성 및/또는 I/O 스위치 구성과 같은 하나 이상의 스위치 구성을 1604에서 정의하고 그리고/또는 수정하기 위한 지원을 포함할 수 있다. 각각의 스위칭 시스템의 초기 구성은 대응하는 스위치 구성(1604)에 따라 하나 이상의 소스와 하나 이상의 목적지 사이에서 하나 이상의 통신 경로들을 설정하기 위해 개시될 수 있다. 스위치들의 구성은 또한 도 6에 도시된 바와 같이 계산 환경들을 개시하기 위한 절차와 함께 데이터 저장 스위치(1804)를 구성하고 I/O 시스템 스위치(1806)를 구성하기 위한 절차들을 포함할 수 있다. (본 발명의 다른 실시예들은 초기에 구성할 때나 또는 계산 환경을 재구성할 때 데이터 저장 장치 및 I/O 스위치들을 구성하기 위한 결합된 절차를 제공한다.)
계산 환경을 개시하기 위한 절차의 일 실시예를 나타내는 도 5와 관련하여, 본 발명의 일 실시예에 따르면, 시작 동작(1702) 동안에 시스템 스타트업을 시작하기 위해 물리적 스위치(1704)를 통해 전력이 인가될 수 있다. 시스템 스타트업에서, CMOS 메모리(1708)는 초기 프로세스 및/또는 부트 시퀀스의 하나 이상의 단계를 정의하기 위해 사용될 수 있다. 부트 시퀀스(1706) 또는 몇몇 다른 초기화 시퀀스 또는 절차는 통신적으로 소스들 및 목적지들을 연결하기 위한 구성을 적용 및/또는 수정하도록 스위치 시스템 구성을 설정하고 그 다음에 대응하는 스위치 시스 템을 초기화하기 위해 CMOS(1708) 또는 다른 메모리 저장 장치에 연결된 정보를 이용할 수 있다. 하나 이상의 계산 환경들은 또한 1602에서 시스템 스타트업에 의해 개시될 수 있다.
도 4와 관련하여, 1608 및 1622에서 계산 환경을 설정하는 과정은 I/O 스위치 시스템 구성들 및 데이터 저장 스위치 구성들을 구성하는 과정, 통신을 지원하기 위해 I/O 스위치 시스템을 구성하는 과정 및 통신을 지원하기 위해 데이터 저장 스위치 시스템을 구성하는 과정을 포함할 수 있다.
일 실시예에 따르면, 두 개의 데이터 저장 장치들(예를 들어, 데이터 저장 장치 1502-1, 1502-N)은 계산 환경과 연결될 수 있다. 제 1 데이터 저장 장치는 계산 환경의 처리 작업들을 지원하기 위한 운영 시스템을 포함할 수 있다. 제 2 데이터 저장 장치는 계산 환경에 의해 사용되거나 동작될 수 있는 다양한 정보를 포함할 수 있다. 상기 다양한 정보는, 예를 들어, 특정한 사용자 정보 및/또는 구성 정보를 포함할 수 있다. 특정한 사용자 정보는 사용자에 의해 편집되어야 하는 문서를 포함할 수 있다. 구성 정보는 데이터 저장 스위치 구성 및/또는 I/O 스위치 구성을 구성하기 위해 제어되는 계산 환경에 의해 이용될 수 있다.
전형적으로 제어 계산 환경은 임의의 사용자 계산 환경들이 설정되기 전에 1608에서 설정된다. 몇몇 실시예들에서, 제어 계산 환경 또는 등가물은 초기화를 통해 설정될 수 있다. 제 1 제어 계산 환경은 위에서 설명된 바와 같이 부트 시퀀스에 의해 설정될 수 있다. 제 1 데이터 저장 장치는 컴퓨터 운영 시스템을 지원할 수 있다. 제 2 데이터 저장 장치는 보호되는 데이터 저장 장치를 나타낼 수 있 다. 데이터 저장 장치들이 계산 환경에 연결된 후에, 계산 환경은 사용자가 계산 환경과 상호 작용하도록 허용하기 위해 부팅될 수 있다. 사용자 입력들은 제어 계산 환경의 특성들(예를 들어, 지역 특성 및 계산 환경 식별 특성)에 대응하는 입력들을 제어 계산 환경으로 전달하기 위해 구성된 I/O 스위치 시스템(1510)을 통해 수신될 수 있다. 유사하게, 제어 계산 환경으로부터의 출력들은 제어 계산 환경에 대응하는 특성들에 기반하여 (예를 들어, 주변 장치(1514-1,...,1514-N)와 같은) 주변 장치로 전송될 수 있다. 이에 따라, 제어 계산 환경은 제 1 데이터 저장 장치로부터 부팅되고 보호된 데이터 저장 장치로 액세스할 수 있다. 그 결과, 사용자는 제어 계산 환경과 상호 작용할 수 있다.
이제 본 발명의 아키텍쳐, 시스템 및 방법의 실시예들 내에서 선택적인 "특성들"을 이용하기 위한 옵션에 대하여 주의를 기울이도록 한다. 특성들에 대한 참조들은 본 명세서의 다른 부분들에서 이루어지며 바람직하게는 선택적인 특징들이 사용된다. 일 실시예에서, 적어도 하나의 특성, 속성, 서술자 또는 특징은 (시스템의 다른 구성요소들의 특성들을 나타내기 위해서뿐만 아니라) 각각의 소스 및 목적지를 나타내기 위해 사용될 수 있다. 이러한 특성은 물리적 식별자 및/또는 논리적 식별자를 나타낼 수 있다. 위에서 설명된 바와 같이, 예시적인 IDE 디스크 드라이브 저장 장치에 따르면, 각각의 IDE 케이블은 물리적 스위치와의 물리적 결합에 의해 식별될 수 있다. (예를 들어, 마스터 및/또는 슬레이브 목적지, 드라이브 크기 등과 같은) IDE 드라이브 정보는 드라이브 및/또는 드라이브와 연결된 데이터 저장 장치를 식별하기 위해 이용될 수 있다.
유사하게, 적어도 하나의 특성(trait)은 가령 계산 환경, 즉 CE와 같은 각각의 목적지를 나타내기 위해 사용된다. 계산 환경이 개별적인 물리적 계산 환경을 대표한다면, 계산 환경은 가령 일반적인 스위치와 결합된 유일한 인터페이스와 같은 개별적인 물리적 계산 특징에 의해 구별될 수 있다. 본 발명의 일 실시예에 따라, 계산 환경은 다른 계산 환경과 일치하는 일부 또는 모든 물리적 계산 특성을 공유하는 논리적 계산 환경으로 표현될 수 있다. 논리적 계산 환경은 다양한 방법으로, 예를 들면 유일한 처리 식별자를 통해서 식별될 수 있다.
하나 이상의 특성은 가령 컴퓨터 모니터 및/또는 컴퓨터 그래픽 카드와 같은 출력 장치와 대응한다. 일 실시예에 따르면, 일 특성은 컴퓨터 모니터의 잠재적 관찰 영역과 연관된 디스플레이 영역과 대응한다. 소스로부터의 디스플레이 출력은 디스플레이 영역 특성에 따라 위치되어, 하나의 계산 환경으로부터의 출력은 영역 특성과 연관된 영역 내에 디스플레이용으로 보내진다. 영역 특성은 컴퓨터 모니터의 잠재적 관찰 영역과 연관된 사각 디스플레이 영역을 정의하는 한 쌍의 x, y 축을 포함한다. 따라서, 특정 계산 환경으로부터의 디스플레이 출력은 다른 영역이 아닌 대응하는 영역내의 하나 이상의 특성에 따라 대표된다.
하나 이상의 특성은 입력 장치와 대응한다. 전술한 것처럼, 잠재적 관찰 영역과 연관된 영역 특성은 언제 입력이 특정 계산 환경과 통신하는지를 식별하기 위하여 더 연장된다. 마우스 이동 및 마우스 명령은 또한 사각 디스플레이 영역과 상관되어, 사각 디스플레이 영역과 대응하는 입력이 대응하는 계산 환경에 보내진다. 결과적으로, 영역 내의 마우스 이동은 동일 영역과 일치하는 계산 환경과 통 신된다. 특성의 사용은 일반적으로, 필요로 될 때 또는 간헐적으로 그 시스템과 함께 사용되거나, 이와 연관되거나, 또는 이와 사용을 위해 잠재적으로 이용가능한 임의의 장치, 서브시스템, 또는 주변기기로 연장될 수 있고, 본 시스템이 그와 통신하도록 배치될 수 있는 외부 장치 또는 시스템을 포함할 수 있다.
계산 환경 특성은 하나 이상의 출력을 그 계산 환경으로부터 발생한 것으로 식별하도록 사용될 수 있다. 계산 환경 특성은 하나 이상의 입력과 입력의 지정된 수신처인 대응하는 계산 환경을 식별하도록 사용될 수도 있다. 하나 이상의 계산 환경 특성은 계산 환경을 식별하도록 사용될 수 있다. 계산 환경 특성은 계산 환경을 유일하게 식별하도록사용될 수 있다. 특성은 대응하는 물리적 속성, 논리적 속성, 또는 속성들의 조합을 통해 계산 환경을 식별할 수 있다. 예를 들어, 특성은 하나 이상의 계산 시스템 요소의 물리적 어드레스를 식별할 수 있다. 대안으로, 특성은 논리적 계산 환경에 대응하는 논리적 어드레스를 식별할 수 있다. 또한, 특성은 주어진 계산 환경의 많은 특징을 식별할 수 있고, 대응하는 특성들의 수 및 형태는 본 발명에 따라 변할 수 있음이 이해되어야 한다.
특성은 가령 처리 태스크의 하나 또는 집합을 수행하도록 본 시스템의 요소를 조직화하고 구성하는 데 도움을 주기 위하여 사용될 수 있다. 이렇게 구성하는 것은 저장 장치, 입출력 장치, 및/또는 다른 주변기기와의 원하는 연계를 제공하기 위하여 다양한 스위치, 스위칭 시스템, 및 스위칭 수단을 구성하는 것을 포함한다.
스위치를 구성하기 및 제어환경 내의 사용자 처리를 최소화하기
스위치 시스템을 구성할 수 있는 계산 환경의 일 형태는 제어 계산 환경이다(본 발명의 다른 실시예는 다른 계산 환경을 조합하는 것을 제공하며, 따라서 이에 대한 다른 변형이 본원의 다른 곳에서 기재된 대로 가능하다). 제어 계산 환경은 데이터 저장 스위치 구성 및 입출력 스위치 구성과 같은 스위치 시스템 구성을 재구성할 수 있다. 대응하는 스위치 시스템의 구성은 다양한 방법, 가령 지지 스위치 구성에 대한 임의의 변경이 이루어지거나/지고 결정될 때 스위치를 통해 통신을 구성하거나 재구성하는 것과 같은 다양한 방법으로 활성화될 수 있다. 또한, 제어 계산 환경과 스위치 시스템 및/또는 스위치 시스템 구조 사이의 통신은 코딩되어 제어 계산 환경만이 스위치 시스템을 구성할 수 있음을 보장하는 것을 돕는다.
일 실시예에서, 사용자 데이터 또는 제어 계산 환경 내의 미지의 또는 신뢰되지 않는 데이터의 처리는 디스에이블(disable)되거나 허용되지 않아서, 가령 보호된 데이터 또는 마스터 템플릿(master template)이 저장되는 보호된 데이터 저장 장치에 대응하여, 데이터 또는 다른 정보의 손상(corruption)(가령, 그 제어 계산 환경내에 존재하거나 거주하는 사용자 데이터 파일 또는 컴퓨터 프로그램 코드의 손상)에 대한 잠재성을 제거한다. 본 발명의 일 실시예에 따라, 만약 사용자에 의해 전형적으로 수행될 수 있는 행동과 같은 사용자 동작(가령, 이메일, 워드 처리 등)을 사용자가 시작한다면, 사용자 동작은 별도의 계산 환경에서 처리될 수 있다. 사용자 인터페이스, 제어 동작, 및/또는 보호된 저장을 하나의 계산 환경 또는 서브시스템과 결합하는 본 발명의 실시예들에서, 이 환경의 구성은, 사용자 데이터가 그 제어 환경을 실행하여 제어 환경 또는 시스템을 손상시킬 수 있도록 하는 방식 으로 그러한 환경이 사용자 데이터의 처리를 지원하지 않는다. 복사 동작과 같은 처리 동작은 지원될 수 있으나 그러한 복사 동작은 악의적인 코드에 의한 다른 시스템 파일의 실행 또는 감염을 허용하지 않는 방식으로 실행될 것이다.
제어 계산 환경은 사용자 동작을 개시하기 위하여 사용자 입력을 수신할 수 있다. 컴퓨터 마우스 입력은 입출력 스위치 시스템에 의해 수신되고 입출력 스위치 시스템 구성에 따라 제어 계산 환경으로 보내진다. 다른 주변장치로부터의 다른 입력도 입출력 스위치 시스템을 통해 제어 계산 환경에 의해 수신될 수 있다.
사용자 계산 환경내에서 사용자 동작을 개시하고 실행하기
제어 계산 환경의 사용자는 사용자 동작을 개시할 수 있다. 일 실시예에서, 사용자는 모니터의 영역내에 디스플레이된 특정 아이콘을 더블클릭할 수 있다. 마우스 행동은 제어 계산 환경에 의해 수신되고 개별 계산 환경의 1612에 있는 개시로 귀결되어 가령 워드 처리과 같은 1631에서의 사용자 처리를 실행한다. 제어 계산 환경은 개별 처리 환경의 생성을 시작하여 존재하고/하거나 새로운 문서와 일치하는 워드 처리를 실행할 수 있다. 만약 이것이 존재하는 문서라면, 제어 계산 세션(session)은 사용자 계산 환경에 의한 이후의 사용을 위해 제3 데이터 저장 장치에 문서의 사본을 복사할 필요가 있다. 입출력 스위치 시스템은 주변기기들을 사용자 계산 환경과 결합하도록 구성될 수 있는데, 가령 디스플레이의 영역이 사용자 계산 환경과 결합될 수 있다. 사용자 계산 환경은 하나 이상의 스위치 구성에 대한 변경에 의해 발생된 신호 또는 이벤트에 의해 개시될 수도 있다. 다양한 대안 적인 접근법이 사용자 계산 환경을 개시하기 위해 사용될 수도 있다.
사용자 계산 환경의 1606에서의 시작의 일부로써, 편집된 파일은 사용자 계산 환경이 부팅된 이후에 론칭(launch)되어도 좋다. 다른 실시예에 따라서, 존재하는 사용자 계산 환경은 대응하는 데이터 저장 장치와 결합되어 파일을 사용자 계산 환경내에서의 처리를 위해 이용가능하게 만든다. 본 발명의 일 실시예에 따르면, 편집될 파일(들)은 미리정의된 위치에 거주하여, 대응하는 애플리케이션이 대응하는 파일들을 열거나/열고 사용자 동작을 지원하도록 론칭될 수 있다. 제어 처리는 계산 환경을 제어하는 것에 의해 실행될수 있고, 하나 이상의 스위치 구조를 구성하는 것, 하나 이상의 스위치 시스템의 재구성을 개시하는 것, 하나의 데이터 저장 장치와 다른 데이터 저장 장치 사이에 정보를 복사하는 것, 보호된 데이터 저장 장치와 다른 데이터 저장 장치 사이에 정보를 복사하는 것을 포함한다.
사용자 처리는 제어하고 있는 컴퓨터 환경과 사용자 컴퓨터 환경 사이의 상호작용을 포함한다. 임의의 처리사용자에 의해 실행되는 기능과 일반적으로 연관된 임의의 처리는 독립 사용자 계산 환경에서의 처리를 위해 구성될 수 있다. 따라서, 사용자 처리 활동은 제어중인 계산 환경의 처리 활동 및/또는 다른 사용자 계산 환경의 처리중인 활동과 직접 인터페이스하지 않는다. 정보는 특정한 사용자 처리 활동(가령, 워드 처리 활동)을 지원하기 위해 필요한 컴퓨터 정보가 편집될 사용자 파일로의 액세스를 필요로 하는지에 의존하여 하나의 데이터 저장 장치로부터 다른 데이터 저장 장치로의 컴퓨터 정보의 복사를 통해 사용자 계산 환경으로 접근가능해질 수 있다.
일반적으로, 제어 컴퓨터 프로세스는 1615에서의 제어 설정 처리와 1628에서의 제어 저장 처리를 포함한다. 제어 설정은 워드 처리 행동과 같은 적어도 하나의 처리 행동을 수행하기 위해 사용될 사용자 계산 환경의 수립을 지원하도록 사용된다. 제어 세이브 처리는 보호된 데이터 저장 장치에 사용자 정보를 저장하는 것을 포함한다. 일단 사용자 처리 행동이 완료되면, 그 사용자 처리 행동과 관련된 정보는 사용자 계산 환경이 저장 기능을 보호된 데이터 저장 장치로 직접 실행하도록 허용하는 것 없이 1618에 있는 보호된 데이터 저장 장치에 저장된다.
본 발명의 일 실시예에 따르면, 제어 계산 환경은 하나 이상의 파일을 임시 데이터 저장 장치로 복사한다. 제어 계산 환경은 1616에 있는 데이터 저장 스위치 구성을 업데이트하여, 임시 데이터 저장 장치로의 사용자 계산 환경 액세스를 허용한다. 일 실시예에 따르면, 제어 계산 환경은, 사용자 계산 환경이 임시 데이터 저장 장치와 통신가능하게 결합되었음을 검증할 수 있다. 이후, 제어 계산 환경은 1614에서의 하나 이상의 사용자 계산 환경에 대응하는 처리가 완료되기를 기다린다. 사용자 계산 환경이 완료하기를 기다리는 동안, 제어 컴퓨터 환경은 일반적인 데스크탑 기능성과 일치하는 기능을 수행한다. 데스크탑 기능성은 가령 컴퓨터 바이러스의 하나 이상의 데이터 저장 장치를 제거하기 위한, 데이터 저장 장치의 관리, 데이터 저장 장치를 구성하는 것, 및 데이터 저장 장치들 사이에 계산 정보의 복사에 대응한다. 일반적으로, 데스크탑 기능성에 대응하는 기능성은 보호된 데이터 저장 장치에 저장되어 있는 계산 정보를 손상시킬 가능성을 감소시키는 것에 제한된다.
사용자 처리의 완료
사용자 처리 동작의 완료시에, 제어 컴퓨터 환경은 여러 상이한 고지 접근에 따라 고지될 수 있다. 한 가지 그러한 접근법에 따르면, 사용자 계산 환경은 종결되어 그 종결이 대응하는 스위치 시스템에 의해 감지된다. 스위치 시스템은, 데이터가 보호된 데이터 저장 장치에 배치되어야 하는 사용자 정보를 포함함을 제어 계산 환경에 고지한다.
사용자 동작의 완료에 응답하여 제어 계산 환경은 사용자 데이터 저장 장치를 제어 계산 환경과 결합하여, 사용자 정보 및/또는 파일들은 사용자 계산 환경에 의해 실행되었을 수 있는 임의의 프로세스와는 독립적으로 보호된 데이터 저장 장치에 복사될 수 있다. 따라서, 보호된 데이터 저장 장치에 저장된 다른 파일들은 독립적인 사용자 계산 환경의 동작에 의해 손상되지 않을 것이다.
본 발명의 일 실시예에 따르면, 파일 저장 명령은 제어 계산 환경이 사용자 계산 환경의 상황 내에서 실행되는 다른 동작들과 독립적으로 보호된 데이터 저장 장치로 사용자 파일을 저장하게 하는 개시 이벤트(triggering event)로써 사용될 수 있다. 본 발명의 일 실시예에 따르면, 임시 데이터 저장 장치는 사용자 계산 환경과 제어 계산 환경 모두와 결합되어서, 사용자 계산 환경 제어 계산 환경과 결합된 다른 파일들을 손상시킬 수 없다. 사용자 계산 환경은 파일을 임시 데이터 저장 장치에 저장할 수 있고, 여기서 제어 계산 환경은 파일을 보호된 데이터 저장 장치 및/또는 중간 데이터 저장 장치에 복사하는 능력을 포함한다. 이후에 중간 데이터 저장 장치는, 가령 사용자 애플리케이션이 닫힐 때, 보호된 데이터 저장 장치에 대응하는 파일을 저장하기 위하여 사용된다. 사용자 계산 환경 사이의 통신은 사용자 계산 환경이 보호된 데이터 저장 장치에 저장되어 있는 파일들을 손상할 수 없음을 보장하는 것을 돕도록 수동적으로 실행된다.
사용자 파일은, 파일 저장 명령의 결과로써 임시 데이터저장 장치에 저장된다. 저장 명령의 개시에 이어, 데이터 저장 스위치 시스템은 데이터 저장 장치가 저장된 파일과 결합됨을 검증한다. 상기 파일이 존재했다면, 일련의 명령들이 실행되어 임시 데이터 저장 장치로부터 보호된 데이터 저장 장치로 파일을 복사한다.
본 발명의 일 실시예에 따르면, 제어 계산 환경은 대응하는 사용자 계산 환경이 사용자 동작(예를 들어, 파일을 저장하는 것)을 완료하기를 기다린다. 이후, 데이터 저장 스위치가 사용자 컴퓨터 환경으로부터 임시 데이터 저장 장치를 결합 해제하도록 구성된다. 임시 데이터 저장 장치는 그 후 제어 계산 환경과 결합된다. 보호된 데이터는 또한 제어 계산 환경과 결합된다. 파일은 사용자 계산 환경과 독립적으로 임시 데이터 저장 장치로부터 보호된 데이터 저장 장치로 복사된다. 임시 데이터 저장 장치는 그후 제어 계산 환경으로부터 결합이 해제되고, 사용자 계산 환경과 재결합된다.
본 발명의 대안적인 실시예에 따르면, 저장 프로세스는 제어 계산 환경과 통신된 스위칭 시스템에 대응하는 플래그를 트립(trip) 및/또는 설정한다. 하나 이상의 파일들의 존재가 검증된다. 만약 파일들의 검증이 파일들의 존재를 지시하면, 일련의 컴퓨터 명령들이 하나 이상의 파일들을 임시 데이터 저장 장치로부터 보호된 데이터 저장 장치로 복사하도록 실행된다.
본 발명의 대안적인 실시예에 따르면, 키보드 명령(가령, 콘트롤-S)은 파일을 저장하기 위해 사용된다. 입출력 스위치 시스템은 사용자 계산 환경과 제어 계산 환경 모두와 명령 시퀀스를 통신하도록 구성된다. 결과적으로, 제어 계산 환경은 사용자 계산 환경에 저장된 파일을 보호된 데이터 저장 장치에 복사하는 것을 지원하기 위하여 데이터 저장 스위치 및/또는 입출력 스위치 시스템을 재구성한다.
본 발명의 대안적인 실시예에 따르면, 사용자 계산 환경이 닫히고/닫히거나 차단(shutdown)될 때, 파일이 보호된 데이터 저장 장치로 전송될 수 있다. 하나 이상의 스위치 시스템은 닫힘 및/또는 차단을 감지할 수 있다. 본 발명의 대안적인 실시예에 따르면, 닫힌 사용자 계산 환경은 사용자 계산 환경에 의해 공급되었을 지 모르는 데이터 저장 장치에 대응하는 변경된 전력 상태에 의한 데이터 저장 스위치 시스템에 의해 검증된다.
본 발명의 대안적인 실시예에 따르면, 컴퓨터 디스플레이 모니터와 일치하는 그래픽 영역은 특정 계산 환경과 일치하는 사용자 입력이 수신되었을 때를 식별하기 위해 사용된다. 사용자 입력은 특정 실행에 의존하여 입출력 스위치 시스템 내에서 및/또는 제어 계산 환경 내에서 분석된다. 일 실시예에 따르면, 사용자 계산 환경과 일치하는 저장 명령 및/또는 닫기 명령이 사용되어, 사용자 정보가 보호된 데이터 저장 장치에 저장될 필요가 있음을 식별하고/식별하거나 컴퓨터 정보의 보호된 데이터 저장 장치로의 저장을 개시한다.
사용자 계산 환경을 닫는 것은 전원 스위치를 끄는 것을 포함한다. 스위칭 시스템은 전력소비의 변화 및/또는 중단을 감지할 수 있다. 만약 사용자가 애플리케이션과 대응하는 사용자 계산 환경을 닫는다면, 제어 계산 환경은 전이를 감지하고 임의의 해당하는 사용자 데이터를 보호된 데이터 저장 장치로 저장한다. 데이터 저장 장치를 재구성하기 전에, 대응하는 스위치 시스템이 사용자 데이터를 포함하는 데이터 저장 장치로의 전원이 디스에이블 되고/되거나 오프 상태임을 확인한다. 제어 계산 환경은 그 후 사용자 제어 환경으로부터 사용자 정보를 포함하는 데이터 저장 장치를 결합 해제하고, 전술한 것처럼 사용자 정보를 보호된 데이터 저장 장치로 복사한다.
본 발명의 일 실시예에 따르면, 데이터 저장 장치는 사용자 계산 환경과 결합된 후 소거된다(cleaned). 제어 계산 환경은 사용자 계산 환경이 데이터 소스를 사용한 후에 재포맷 되고/되거나 하나 이상의 데이터 저장 장치를 비운다. 마스터 템플릿 데이터 저장 장치는 데이터 소스를 사용자 계산 환경과 결합하기 이전에 데이터 저장 장치를 개시하기 위하여 사용될 수도 있다. 다른 실시예에 따르면, 제어 계산 환경은 하나 이상의 데이터 저장 장치를 재포맷하는 것 및/또는 소거하는 것을 지원하도록 형성된 다른 사용자 계산 프로세스를 개시한다.
도2 및 도3의 실시예에 관하여 건축학적 토폴로지 및 시스템 구조 뿐만 아니라, 도4, 도5, 및 도6의 방법 및 절차에 관하여 개시(initialization) 및 동작적 측면이 기재되어 왔지만, 이제는 그러한 계산 장치, 정보 응용, 및 처리 기계의 부가적인 건축학적, 구조적 및 방법적인 측면을 주목한다.
도7은 특정 용도 서브시스템 또는 계산 환경(1120)(가령 1120-1 및 1120-2) 과, 디스플레이(1140), 키보드(1150), 및 마우스(1160)를 포함하는 많은 주변기기(1108)와 결합된 컴퓨터 시스템(1110)내의 공통 제어기(1130)를 포함하는 본 발명의 실시예를 도시하고 있다.
비록 2개의 특정 용도 서브시스템만이 도면에 도시되지만, 시스템이 하나의 서브시스템 또는 계산 환경 또는 임의의 복수의 그러한 서브시스템을 포함해도 좋고, 다수의 그러나 다수의 능동적인 사용을 포함하지만 하나의 특정 용도 서브시스템만을 사용해도 좋고, 또는 상이한 구조적 및/또는 동작 특성을 갖는 다수의 특정 용도 서브시스템을 포함해도 좋음이 이해될 것이다. 예를 들어, 다수는 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 32, 50, 64, 100, 또는 그 이상의 특정 용도 처리 시스템이거나, 또는 선행 기술로 공지된 것처럼 물리적 공간, 회로 밀도, 열 발생, 및 다른 팩키징 및 접속 디자인 문제에 따라서 임의의 중간 숫자이어도 좋다.
또한, 적어도 하나의 실시예에서, 본 구조 및 방법은 단일의, 즉 하나의 서브시스템 또는 계산 환경만을 갖는 하드웨어로 구현되어도 좋고, 상기 계산 환경 또는 서브시스템은 상이한 프로세스에 대하여 순차적으로 사용된다. 이 단일 계산 환경 시스템의 일 실시예에서, 개별 로직이 계산 환경 상태의 저장 및 복원을 실행하기 위해 사용되어, 계산 환경은 의도된 처리 동작을 실행하고 초기상태나, 제2 또는 제어 프로세스의 임의의 중간 상태 중 어느 하나를 복원하는 능력을 유지하도록 사용된다.
구조적 특징 및/또는 처리 특징은, 상이한 처리 용량(가령 초당 상이한 수의 동작, 프로세서 관련 메모리의 상이한 양, 상이한 프로세서 아키텍쳐 또는 명령 집합, 또는 상이한 동작 시스템) 또는 물리적 또는 논리적 할당의 형태인 상이한 양의 대량 저장장치 또는 하드 디스크 드라이브, 광 저장 매체, 또는 고체 상태(solid state) 기억장치를 갖는 특정 용도 서브시스템을 포함하나, 이에 제한되지는 않는다.
제어기(1175) 및 이와 연관되고 결합된 메모리 기억장치(1176)는 다수의 특정 용도 서브시스템 중 선택된 것들 또는 모두와 양방향으로 결합(가령, 특정 용도 서브시스템(1120-1 및 1120-2)과 결합)된다. 특정 용도 서브시스템으로의 또는 특정 용도 서브시스템으로부터의 양방향 결합 중 어느 한 방향은 간헐적 이고/이거나 인에이블 및 디스에이블로 절환가능하다. 또한, 제어기(1175)와 메모리 기억장치(1176) 사이의 접속은 인에이블 및 디스에이블로 절환가능하다.
도시된 것처럼, 선택적인 분리된 로직 제어 장치(1180)는 제1 및 제2 특정 용도 서브시스템(1120) 사이에 결합된다. 공통 제어기(1130)는 인터페이스(1170)를 경유하여 특정 용도 서브시스템(1120-1) 및 특정 용도 서브시스템(1120-2)과 결합된다. 본 발명의 실시예는 이들이 동일한 인터페이스 또는 별개의 인터페이스들이 되도록 제공한다. 선택적인 인터페이스(1170)는 특정 용도 서브시스템(1120-1 및 1120-2) 사이에 결합되며, 그러한 결합은 간헐적일 수 있거나, 인에이블 또는 필요하지 않거나 원하지 않을 때는 디스에이블될 수 있다. 이 실시예에서, 인터페이스는 양방향성인 것으로 도시되어 있으나, 어느 하나의 단방향 인터페이스가 개별적으로 사용되거나, 인에이블 되거나, 독립적으로 또는 일 집합으로써 디스에이 블되어도 좋다. 또한, 비록 단일의 라인이 명료성을 위해 도면에 도시되었지만, 인터페이스는 다수의 접속 또는 통신 경로(가령, 인터페이스 멀티-라인 버스 인터페이스; 이에 한정되지는 않음)로써 실행되어도 좋다. 디스플레이 또는 디스플레이 서브시스템(가령, 비디오 프로세서 카드 또는 칩셋, 드라이버, 및 디스플레이 스크린을 포함하는 종래의 디스플레이 서브시스템)이 공통 제어기(1130)로부터 전기 신호의 형태로 데이터를 수신하며, 공통 제어기(1130)는 차례로 그 입력을 하나 또는 모두의 특정 용도 서브시스템(1120-1 및/또는 1120-2)에서 실행하는 프로세스로부터 그리고 상기 프로세스의 결과로써 수신함이 이해될 것이다. 디스플레이 서브시스템(1140), 공통 제어기(1130), 및/또는 특정 용도 서브시스템(1120-1 및 1120-2)내의 산술 및 로직 회로와 같은 하드웨어, 소프트웨어, 및 펌웨어 또는 이들의 조합은 예를 들어 사용자의 계산 환경 데스크탑과, 현재 활성중 및 현재 비활성중인 윈도우를 반영하는 원하는 그래픽 디스플레이를 생성한다.
키보드(1150) 및 마우스 입력(1160)은, 만약 일부 피드백이 전자적 신호 또는 음성, 기계적, 또는 촉각적 피드백으로 제공되지 않는다면, 또한 전형적으로 키보드 또는 마우스로부터 공통 제어기로의 단방향이다. 디스플레이 스크린, 키보드, 및 마우스 디바이스의 단방향 성질은 이들이 일반적으로 로컬 계산 환경 외부로부터의 악성 컴퓨터 공격으로부터 면역성이 있음을 의미한다.
도8은 도7에 도시된 실시예와 유사하고 도7에 대해 상대적으로 기재되는 본 발명의 대안적인 실시예를 도시하고 있다. 이 대안적인 실시예는 특정 용도 서브시스템(1120)과, 디스플레이(1140), 키보드(1150), 및 마우스(1160)를 포함하는 많 은 주변기기(1108)와 결합된 컴퓨터 시스템(1110)내에 공통 제어기(1130)를 포함한다. 도시된 것처럼, 제어기 시스템이 제1 및 제2의 특정 용도 서브시스템(1120-1 및 1120-2) 사이에 결합되거나, 도7의 실시예에서처럼, 임의 복수의 이러한 특정 용도 서브시스템들 사이에 결합되어도 좋다. 이 실시예에서, 제어기(1175) 및 이와 연관되고 결합된 메모리 기억장치(1176)는 제어기 시스템(1177)으로써 동작되는 특정 용도 서브시스템들 중 하나(1120-3)를 이용하여 실행된다. 제어기 시스템(1177; 1120-3)은 다른 특정 용도 서브시스템(1120)의 하나, 하나 이상, 또는 모두에 그리고, 인터페이스(1170)를 경유하여 공통 제어기(1130)에 선택적으로 결합된다. 예시적인 특정 용도 서브시스템의 구조와, 이들이 애플리케이션 실행 및 처리 유닛을 동작하거나, 다양한 마스터 제어 및/또는 모니터링 기능을 취하도록(가령 제어기 시스템(1170)으로써 동작하도록) 구성되는 방법이 도면 중 다른 것에 대하여 본 명세서의 다른 부분에 기재된다.
이제 정보 응용, 컴퓨터, 또는 데이터 처리 장치용의 본 발명의 아키텍쳐, 시스템, 및 방법의 추가적인 실시예에 주목한다. 적어도 하나의 보호된 데이터 저장 장치를 포함하는 다수의 데이터 저장 장치; 적어도 하나의 소스를 다수의 목적지와 통신가능하게 결합(및 결합해제)하는 다수의 스위칭 시스템으로서, 상기 소스가 데이터 저장 소스인 데이터 저장 스위치 시스템과, 상기 소스가 주변장치 소스인 입출력 스위치 시스템을 포함하는 스위칭 시스템; 다른 계산 환경과는 독립적으로 처리 활동을 수행하며, 데이터 저장 스위치 시스템과 입출력 스위치 시스템 사이에 결합된 다수의 계산 환경(때로는 쉘(shell)이라고 함) - 여기서 목적지는 계산 환경이고, 스위칭 시스템은 상기 소스 및 상기 목적지와 통신가능하게 결합한다 -; 처리 활동에 따라 스위치 구성을 구성하는 다수의 계산 환경으로부터 선택되고 보호된 데이터 저장 장치와 통신가능하게 결합된 적어도 하나의 제어 계산 환경; 및 다수의 계산 환경으로부터 선택된 적어도 하나의 사용자 계산 환경 - 처리 활동은 보호된 데이터 저장 장치에서 수행되지 않음 -을 포함하는 본 발명의 정보 응용 또는 컴퓨터 시스템의 다른 실시예가 기재되었음을 상기해 본다.
이 정보 응용 및 계산 시스템의 일 실시예에서, 각각의 계산 환경들은 다수의 특성들로부터 선택된 적어도 하나의 특성에 의해 구별되도록 추가적으로 정의되며, 스위칭 시스템은 특성에 따라서 소스와 목적지를 통신가능하게 결합하며, 적어도 하나의 제어 계산 환경은 처리 활동 및 특성에 따라 스위치 구성을 구성하는 다수의 계산 환경으로부터 선택된다.
도9의 실시예는 본 발명을 이용하여 장치 및 시스템으로 통합되는 부가적인 측면 및 특징을 개시하는 부가적인 구현 및 구조적인 상세를 제공한다. 이 시스템 아키텍쳐와 구조 사이의 유사성은 도2 및 도3에 대해 이미 기재된 것으로부터 명백할 것이다.
이 실시예에서, 비록 임의의 수(M)의 계산 환경이 정적으로 또는 동적으로 제공될 수 있지만, 다섯 개의 계산 환경(2108-1 내지 2108-5)이 구체적으로 도시된다. 적어도 이러한 계산 환경(2108-1 내지 2108-5)의 일부는 다소 상이한 요소 또는 내부 구조를 가지는 것처럼 보임이 이해될 것이다. 사실 본 발명의 일부 실시예에서, 계산 환경의 동작 및 구조는 상이(그리고 아마도 현저하게 상이할 수 있 음)할 수 있지만, 다른 실시예에서는 동일할 수 있고, 또다른 실시예에서는, 하드웨어가 동일하지만 상이한 동작 시스템 또는 애플리케이션 프로그램을 실행할 수 있고, 몇몇 다른 소프트웨어 구조 차이를 가질 수 있다. 이러한 계산 시스템의 일부에 있어서, 다수의 계산 환경의 구성은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 동적으로 구성된다.
도9의 시스템(2100)에서, 두 개의 계산 환경(2108-4 및 2108-5)은 동일한 구조적 구성을 갖고(그러나 이들은 여전히 상이한 소프트웨어 및 데이터를 구비할 수 있다), 다른 세 개의 계산 환경(2108-1, 2108-2 및 2108-5)은 상이한 구조를 갖는다. 이러한 상이한 계산 환경의 구조 및 동작이 이제 기재될 것이며, 이후에 어떻게 이러한 상이한 구조 및 동작이 원하는 효과적인 구조 및 동작을 제공하도록 동적으로 맞춤화될 수 있는 공통의 구조적인 계산 환경 모듈을 이용하여 선택적으로 그러나 유리하게 구현될 수 있는 지를 도10에 대하여 도시할 것이다.
사용자 인터페이스 계산 환경
먼저 통상의 사용자 인터페이스가 아니지만 사용자 인터페이스 동작을 제공하며, 프로세서와 프로세서 결합된 메모리를 일반적으로 포함하는 중앙 처리 장치(CPU)(21)를 포함하는 사용자 인터페이스 계산 환경(UICE)(2108-1)에 주목한다. CPU는 또한 관련 기술분야에서 공지된 일반적으로 프로세서 칩셋이라 불리는 다른 칩 또는 회로를 포함할 수도 있다.
일 실시예에서, 사용자는 컴퓨터 시스템 및 계산 환경의 실제 동작과는 다소 명백하게 독립적인 파일 또는 데이터 집합을 조작할 수 있음에 주의하여야 한다. 예를 들어, 일 실시예에서, 사용자의 관점으로부터 그/그녀는 아이콘 또는 파일 이름 또는 다른 식별 번호를 한 위치(가령 데스크탑, 하드디스크 드라이브 아이콘, 또는 임의의 다른 위치)로부터 임의의 다른 위치로 단지 드래그한다. 실제로, 데스크탑 예에 대해서는, 제어 계산 환경 또는 사용자 인터페이스 환경은 데스크탑의 좌표에 대응하는 영역으로/으로부터 드래그된 (파일과 같은) 그 아이템을 계산하며 데스크탑 환경 또는 다른 목적지에 아이템의 아이콘을 생성하지만, 실제 파일은 보호된 저장 장치에 위치된다.
도시된 실시예에서, 저장 장치(2121)는 두 개의 저장 부분을 갖는 것으로 도시되어 있는데, 이는 마스터 템플릿의 전부 또는 선택된 부분을 저장하는 제2 템플릿 부분(STP; 2122)(본 명세서의 마스터 템플릿의 기재를 참고), 및 사용자 데이터 파일을 저장하지만 본 환경에서 저장 장치를 제공할 필요가 대부분의 실시예에서 최소이기 때문에 제거될 수 있는 선택적 임시 데이터 저장 부분(TDP; 2123)이다. 이 계산 환경(2108-1)의 바람직한 실시예에서, 이 환경에서 어떠한 응용 프로그램이나 실제 파일이 존재하지 않고 단지 이러한 프로그램 또는 실제 파일들에 대한 레퍼런스, 링크, 또는 포인트가 존재한다(다른 계산 환경은 이들의 최소 처리 요건의 결과로써 최소 임시 저장 요건을 가질수도 있음에 주의하여야 한다). 계산 환경(2108-1)은 사용자 인터페이스 계산 환경(UICE)으로써 식별되며 인간 사용자 즉 동작자(2129)와 계산 시스템(2100) 사이에 인터페이스를 제공한다.
통상적으로, 사용자 인터페이스 계산 환경(UICE; 2108-1)은 단지 동작 시스 템 요소들만을 포함하는 제2 템플릿 부분과, 계산 환경에 식별되는 계산 또는 데이터 처리 또는 제어 능력을 제공하는 데 필요로되는 애플리케이션 프로그램(존재한다면)을 구비할 것이다. 가령, UICE는 우선 인간 사용자(2129)로부터 요청 및 명령을 수신하고 이들을 처리하여 제어 및 스위칭 계산 환경으로 신호를 송신할 것이므로, UICE는 그 저장된 제2 템플릿(2122)에 이메일, 네트워크 또는 인터넷 브라우징, 또는 다른 공통적이거나 공통적이지 않은 애플리케이션 프로그램을 구비할 필요가 없다. 또한 다른 계산 환경과는 다른 동작 시스템 또는 그 책임감을 지원하기 위하여 단지 코드, 코드 부분, 라이브러리들, 또는 동작 시스템의 다른 특징만을 포함하는 동작 시스템을 구비해도 좋다. 단지 동작 시스템 요소 및 응용 프로그램 또는 응용프로그램 요소만을 제공하는 이러한 동일한 원리는 또한 다른 계산 환경에 제2 템플릿을 적용하며, 비록 바람직한 접근이라고 생각되지 않지만, 모든 상황에서 마스터 템플릿의 완전한 사본 또는 최소 요구의 동작 시스템 및 애플리케이션 프로그램보다 많은 것이 제공될 수 있다.
다른 실시예에서, 가령 영상 처리 동작을 실행하기 위하여 생성되거나 구성된 계산 환경의 실시예에서, STP(2122)는 마이크로소프트 윈도우 2000 동작 시스템 코드 및 어도브 포토샵 애플리케이션 소프트웨어를 저장하며, TDP(2123)는 하나 이상의 입력 디지털 이미지 파일과, 어도브 포토샵 애플리케이션 소프트웨어의 실행중에 생성되는 중간 파일과, 생성된 임의의 출력 파일을 저장한다. TDP(2123)는 가령 이전의 편집을 실행취소하기 위한 파일 또는 클립보드에 복사된 데이터와 같이, 임의의 다른 사용자 또는 임시 시스템 데이터도 저장할 수 있다.
실제 구현에 있어서, STP와 TDP는 고체 상태 메모리의 부분, 마그네틱 디스크 드라이브, 또는 임의의 다른 저장 매체와 같은 동일한 물리적 저장 장치일 수 있고, 이들은 서로 다른 물리적 장치이거나 심지어는 다른 형태의 장치일 수 있다. 또한, 본원에 기재된 동적 스위칭 구성 방법의 일부를 이용하여, 심지어는 STP 및/또는 TDP가 가령 하드디스크 드라이브 저장 장치 및 고체 상태 RAM, ROM, EEPROM, 등의 조합과 같은 각각 다수의 유사하거나 유사하지 않은 데이터 저장 형태를 포함한다.
저장 장치(2121)는 선택적으로 스위칭 가능하게 CPU(2120)에 결합가능하다. 도9의 실시예에는, CPU(2120)를 STP(2122) 및 TDP(2123)로/로부터 연결하거나 해제하기 위한 개별 제1 스위치(2124) 및 제2 스위치(2125)가 도시된다. 스위치에 대한 간단한 아이콘이 도시되어 있으나, 본원에 제공되는 기재의 관점에서 통상적으로는 그렇지 않지만 연결되거나 해제되는 간단한 와이어일 수 있고, 보다 일반적으로는 인터페이스 버스(buss) 및 그 인터페이스 버스상의 신호를 위한 신호 조건화 회로와 같이 한 쌍의 도체일 수 있음이 이해될 것이다. CPU를 저장 장치에 연결하기 위해 스위칭하는 것은 CPU와 저장 장치 사이의 통신을 인에이블하는 임의의 수단에 의해 성취될 수 있고, CPU를 저장 장치에서 해제하기 위해 스위칭하는 것은 본원 명세서의 다른 부분에서 기재된 것처럼 CPU와 저장 장치 사이의 통신을 디스에이블하는 임의의 수단에 의해 성취될 수 있다. 이러한 STP-CPU 및 TDP -CPU 스위치(224, 225)의 동작 또는 컴퓨터 시스템(2100)의 무결성을 보호하기 위하여 다른 구조 및 절차와 상호 동작하는 CPU 스위치(별도 도시 안함)로의 보다 일반적인 저장 장치(2221)는 시스템(2100)의 다른 요소가 훨씬 상세히 기재된 후에 기재될 것이다.
주변 스위치(2157)는 주변 장치, 입력 장치, 출력 장치 등의 임의의 하나 또는 조합을 연결 및 해제(또는 인에이블링 및 디스에이블링)하기 위하여 제공된다. 예를 들어, 키보드, 마우스, 네트워크 인터페이스 또는 NICs, 마이크로폰, 스피커, 헤드셋, 플로피 디스크 드라이브(FDD), 하드 디스크 드라이브(HDD), PC 카드, 메모리 카드, CD, DVD, 시리얼 또는 패럴렐 인터페이스 장치, GPS 장치, USB 장치, 스캐너, 바이오메트릭 리더, 무선 인터페이스, 또는 장치의 임의의 다른 주변기기가 특정 계산 환경에 할당될 수 있다. 스위치(21517)는 데스크탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1)의 일부인 것으로 도시되어 있지만, 개별 독립 스위치 또는 CSCE나 다른 제어 계산 환경에 의해 제어되는 스위치 서브시스템으로써 생각되어도 좋고 이렇게 실행되어도 좋다. 다른 실시예에서, 스위치는 필요로 될 때 그리고 허용된 기반하에서 제어되며 다른 계산 환경으로 주변기기를 직접 결합한다. 다른 실시예에서, 계산 환경으로부터의 비디오 출력은 주변기기 또는 입출력 스위칭 시스템을 통하여 스위칭 및/또는 처리되어도 좋다. 이러한 주변기기 스위칭 및 접속 능력은 저장 장치용의 다른 스위칭 시스템(2150)과 결합되어도 좋고 본 명세서의 다른 곳에서 기재된 대로 CSCE(2108-2)에 의해 제어되어도 좋다. 계산 환경(2108-1)은 또한 그 때 필요로 되지 않거나 계산 환경의 특수 기능 및 동작에 대하여 비활성되는 부가적인 요소를 포함해도 좋다. 그러한 부가적인 요소는 예를 들면 ROM, RAM, ASIC(s), 및/또는 부가적인 회로 및 로직 요소를 포함한다.
보호된 저장 및 판독/기록 제어 계산 환경
보호된 저장 컴퓨터 환경(PSCE)(2108-3)은 원본의 또는 제1의 마스터 템플릿(PMT; 2148)을 마스터 템플릿 보호된 저장 장치(2142)에 저장하고 제1 사용자 데이터(2149)를 사용자 데이터 보호된 저장 장치(2143)에 저장하도록 구성된다. 일 실시예에서, 보호된 저장 컴퓨터 환경(PSCE)(2108-3)에 의해 실행되는 기능 및 동작은 제어 및 스위칭 계산 환경(2108-2)에 의해 실행되는 기능 및 동작과 결합될 수 있고, 그 역의 경우도 같다.
마스터 템플릿은 다양한 형태 및 내용을 취하며, 예를 들어 컴퓨터 시스템 도는 컴퓨터 시스템의 요소의 이상적인 상태를 나타내는 데이터(명령, 지시, 데이터 요소 등)의 사본일 수 있다. 마스터 템플릿은 예를 들어 동작 컴퓨터 시스템 또는 컴퓨터 시스템의 요소로부터 데이터를 복사함으로써 생성되거나 다른 방법으로 생성될 수 있다. 컴퓨터 시스템은 마스터 템플릿을 생성하기 전에 이상적인 상태에 있다. 컴퓨터 시스템의 이상적인 상태는 그 컴퓨터 시스템에 접속할 수 있는 데이터에 의해 표현될 수 있다. 여기서 상이한 제2 템플릿은 상이한 계산 환경에서 사용되어야 하며, 다른 계산 환경(2108)과 개별적으로 통신될수 있는 부분을 갖는 상이한 마스터 템플릿 부분 또는 단일 마스터 템플릿이 존재할 것이다. 이러한 문맥 내에서 데이터는 운영 시스템(예를 들어, 리눅스, 유닉스, 윈도우즈 98, 윈도우즈 2000, 및 이러한 운영 시스템들에 대한 강화 및 확장), 애플리케이션(예를 들어, 워드퍼펙(WordPerfect), 마이크로소프트 오피스), 사용자 데이터(예를 들어, 운영시스템 프리퍼런스(preference), 배경 화면, 생성된 문서), 및 요소 데이터(예를 들어, BIOS, PRAM, EPROM)를 포함할 수 있다. 일부 실시예에서, 데이타는, 로컬 및 원격 데이타 저장 장치를 포함하는 컴퓨터 시스템과, 본 발명의 보호 조치 및 절차가 이들 다른 데이타 엘리먼트를 유지하는데 준수되는 한, 다른 데이타 베이스의 데이타에 액세스가능한 임의의 정보를 또한 포함하거나 대안적으로(alternatively) 포함할 수 있다. 예를들어, 컴퓨터 시스템용 마스터 템플릿(template)는, 마이크로소프트 윈도우즈(Microsoft Windows) 98 또는 2000 운영체제, 워드퍼펙트(WordPerfect) 애플리케이션, 마이크로소프트 워드(Microsoft Word) 애플리케이션, 및 사용자에 의해 작성된 문서들과 같은 상기 컴퓨터 상에 인스톨(install)된 모든 정보를 포함할 수 있다. 정보들은 위에서 설명된 컴퓨터 시스템에 액세스가능한 한 또는 다중 기억 엘리먼트 전반에 인스톨될 수 있다. 또한, 마스터 템플릿은 BIOS 세팅의 복사 버전 또는 이상적 상태 버전을 포함할 수 있고, 특정 계산 환경에 적합한 다중 BIOS를 제공할 수 있다.
일부 실시예에서, 마스터 템플릿은 새로 구매된 컴퓨터 시스템의 스냅샷(snapshot)을 나타낼 수 있다. 이러한 시스템은 통상적으로 운영체제와 미리 인스톨된 다양한 애플리케이션을 갖는 이상적 상태에 놓일 수 있으며, 이에 의해 사용자가 컴퓨터 시스템을 사용 시작하는 것을 가능케 한다. 특정 사용자를 위해, 마스터 템플릿은, 예를들어 운영 체제, 애플리케이션, 및 사용자 맞춤(customization)을 포함하는 컴퓨터 시스템의 이상적 상태를 나타낼 수 있다. 예롯, 사용자 맞춤은 사용자 애완동물의 사진과 같은 데스크탑 배경용 사진 또는 ".jpg" 이미지의 사용자 우선 선택을 포함할 수 있다.
선택적으로, 마스터 템플릿은 제 1 컴퓨터 시스템으로부터 형성될 수 있고 뒤이어 상이한 컴퓨터 시스템용 마스터 템플릿로서 사용될 수 있다. 제1 컴퓨터 시스템은 제조자(manufacturer) 컴퓨터 시스템일 수 있다. 이에 따라 제 1 컴퓨터 시스템의 이상적인 상태는 제 2 컴퓨터 시스템 또는 임의의 갯수의 컴퓨터 시스템으로 전달 수 있다. 일부 구현예에서, 마스터 템플릿은 하나의 계산 환경에서 만들어질 수 있고 그 다음 적절한 보호수단이 이동되고 마스터 템플릿로서 저장된다. 본 발명의 실시예는 마스터 템플릿의 엘리먼트를 업데이트, 패칭(patching), 재설치(reinstalling), 및 대치하기 위한 지지(support)를 제공하는데 이점이 있어서, 이들 동작이 실질적으로 동일하거나 동일한 사용자 인터랙션(interaction)을 갖고 이에따라 실질적으로 동일하거나 동일한 동작 결과를 갖도록 수행될 수 있다. 마스터 템플릿은 대안적으로 선택적 복사 프로세스에 의해 형성될 수 있다. 예를들어, 사용되는 특정 OS에 따라, 프로그램이 레지스트리(registry)를 질문(interrogate)하고, 어떤 엔트리(entry)가 특정 프로그램 또는 애플리케이션과 관련있는가를 결정하고, 다음, 단지 이들 파일과 특정 프로그램 또는 애플리케이션과 관련있는 엔트리만을 마스터 템플릿에 선택적으로 복사하도록 선택할 수 있다.
도9의 보호 저장 장치 및 읽기/쓰기 계산 환경에 대한 예시된 실시예에서, 마스터 템플릿 보호 저장 장치(2142) 또는 사용자 데이타 보호 저장 장치(2143)에 저장된 이진 정보의 실행을 허용하는 임의의 프로세서에 대한 연결은 존재하지 않는다. 이러한 분리(isolation)는 CPU와 같은 이러한 처리 능력(capability)을 물 리적으로 제공하지 않거나, 보호된 저장 장치로부터 이러한 CPU를 차단하거나 단절시킴으로써 달성될 수 있다. 이러한 차단 또는 단절은 본 명세서의 다른 부분에서 언급된 스위치들 또는 보호된 저장 장치의 이진 데이타 - 컴퓨터 프로그램 코드 지시 또는 데이타 - 를 방지하기 위한 다른 공지된 수단을 이용하여 달성될 수 있다.
본 실시예에서, 마스터 템플릿 보호 저장 장치(2142) 또는 사용자 데이타 보호 저장 장치(2143)에 저장된 이진 정보 상에서 허용된 유일한 처리 동작은 읽기 동작이며, 일부 예(본 명세서의 다른 부분에 설명되어 있음)에서는 쓰기 동작이다. 이들 동작은 편의상 복사(copy) 동작으로 불린다.
본 발명의 구조, 시스템, 방법, 절차 및 컴퓨터 프로그램 제품은 컴퓨터, 계산 장치, 정보 어플라이언스(appliance), PDA, 셀 폰 및 다른 프로세스 결합 장치를 해킹(hacking), 바이러스, 사이버-테러리즘으로부터 보호하고, 스파이 소프트웨어(spy software), 키스트로크 리코더(keystroke recorder)와 같은 잠재적 손상 또는 침입으로부터 보호하고, 해킹, 바이러스, 웜(worm), 트로이 목마(Trojan horse)로부터의 손상과 유사한 위협과, 악의를 가졌는지 또는 의도치 않게 도입되었거나 노출되었는지에 관계없는 취약점(vulnerability)으로부터 보호한다.
본 발명의 일실시예에서, 마스터 템플릿 보호 스토어(2142)는 다른 계산 환경과 통신될 수 있고 상기 계산 환경의 목적된 동작을 위한 동작 능력을 제공하는데 충분한, 하나 이상 세트의 컴퓨터 프로그램 코드를 저장한다. 일부 실시예에서, 상용자 또는 수행될 시스템 자체에 의해 요구된 임의의 동작을 허용하는 컴퓨터 프로그램 코드의 단일 세트가 존재하며, 각 계산 환경은 본 명세서에서 설명된 방식 으로 한번에 이러한 완전한 마스터 템플릿의 복사(copy)를 수신한다. 다른 실시예에서, 마스터 템플릿 보호 스토어(2142)는 다중의 상이한 세트를 수용하며 단지 특정 계산 환경을 요구하는 동작들을 제공하는 세트만이 여기에 세팅된다. 이것은 일반적으로 보다 소형이며 보다 빠른 복사 동작과 보다 낮은 개별 및 전체 저장 장치 요구를 야기한다. 삭제가 요구되는 경우에 추가적인 시간 절약이 보다 소형인 템플릿 크기에 대하여 실현된다. 상이한 2차 템플릿이 필요에 따라 저장되거나 생성될 수 있으나, 2차 템플릿을 복사에 대비한 형태로 저장하는 것은 낮은 안전 리스크와 큰 동작 스피드에 노출시킨다.
본 발명의 일실시예에서, 사용자 데이타 보호 스토어(2143)는 보호 사용자 데이타(2149)로 지칭되는, 오리지날 버전(또는 사본)의 사용자 데이타 또는 파일을 저장한다. 예를들어, 이러한 사용자 데이타는 이메일, 임의 형태의 이메일 첨부물, 워드 처리 문서, TIFF 이미지 파일, JPEG 이미지 파일, MP3 파일, 컴퓨터 프로그램, 저장된 버전의 동작 시스템 도는 동작 시스템 파일, 저장된 버전의 컴퓨터 프로그램 애플리케이션 프로그램, 장치 드라이버, 및 임의의 형태의 컴퓨터 데이타, 파일, 또는 "0" 및/또는 "1" 비트의 조합과 같은 데이타 또는 파일의 세트를 포함하거나 이로부터 선택될 수 있다. 흥미롭게도, 사용자 데이타 보호 스토어는 의식적으로 또는 무의식적으로 컴퓨터 바이러스 또는 컴퓨터 바이러스를 포함하는 파일, 컴퓨터 로봇(robot) 또는 봇(bot), 스파이웨어, 또는 다른 악성 컴퓨터 프로그램 코드를 포함할 수 있다. 보호 저장 장치(2142, 2143) 내의 이러한 바이러스, 봇, 스파이웨어, 또는 다른 악성 컴퓨터 프로그램 코드의 존재 또는 저장은 어떠한 위협도 부가하지 못하며 저장 장치 내에 존재한다는 것 자체로 어떠한 해도 끼칠 수 없다. 본 발명의 일실시예에서, 프로세서는 저장된 데이타 또는 컴퓨터 프로그램 코드에 어떠한 액세스도 요구되지 않는 경우에 보호 저장 장치로부터 결합 해제(decouple)된다. 그러나, 다른 실시예에서, 프로세서는 상기 보호 코드 저장 장치에 결합된 상태가 유지되는데 이는 상기 프로세서가 데이타 또는 컴퓨터 프로그램 파일이을 실행할 수 없도록 구성되었고 보호 저장 장치, 프로세서 도는 보호 저장 장치 계산 환경(2108-3)에 대한 손상을 야기할 수 없기 때문이다. 일부 실시예에서, 보호 저장 장치 계산 환경(2108-3) 내에서 보호 저장 장치와 프로세스 사이의 연속 통신 경로를 유지하는 결정은 상기 보호 저장 장치 계산 환경에서 지지되는 기능 또는 동작 세트에 의존한다. 이들 동일한 고려사항(consideration)이 사용자 인터페이스 계산 환경과 제어 및 스위칭 환경과 같은 다른 계산 환경(사용자 데이타 분리(isolated) 계산 환경은 제외)과 보호 저장 장치 계산 환경을 결합하는 본 발명의 실시예에 적용될 수 있다.
설명된 바와 같이, 본 발명의 일실시예에서, 마스터 템플릿 또는 사용자 데이타, 컴파일(compilation), 바이러스 스캐닝 또는 감지, 검사, 또는 다른 특별 동작들의 초기 로딩 또는 리로딩(reloading)을 위하여 보호 저장 장치 계산 환경(2108-3)은 스위치(2144, 2145)를 경유하여 보호 스토어에 결합되도록 스위치될 수 있는 CPU(2140)와 같은 결합 해제된 또는 금지된(disabled) 프로세서를 포함할 수 있다. 바이러스 또는 다른 악의적인 컴퓨터 프로그램 코드가 존재하고 실행되었다면, CPU와 보호 저장 장치 사이에 연결을 허용하는 것은 주의조치가 보호 저장 장치 내의 다른 데이타의 오염을 방지하기 위해 취해진 경우에만 정상적으로 허용된다. 단지 "단순 복사(dumb copy)" 동작만이 보호 저장 장치 사이에 지지되는 실시예에서, CPU 또는 다른 프로세서는 보호 저장 장치에 결합되거나 연결되도록 유지될 수 있다. 단순 복사는 오염 또는 감염을 야기하는 컴퓨터 프로그램 코드에 복사되는 파일을 오픈하거나 노출시키지 않는 복사이다. 단순 복사는 비트-바이-비트(bit-by-bit), 바이트-바이-바이트(byte-by-bite) 또는, 예를들어 고정 하드웨이 로직 회로 또는 ASIC에 의해 주의사항이 취해지는 경우에 소프트웨어 또는 펌웨어(firmware)를 사용하여, 또는 하드웨어와 소프트웨어/펌웨어의 조합을 이용하여 구현되는 것과 같은 다른 복사 또는 비트 리플리케이션(replication) 동작일 수 있다.
보호 소토리지 계산 환경(2108-3)은 다른 계산 환경(2208-1, 2208-2, 2208-4 및 2208-5)(또는 임의의 M 계산 환경)과, MTPS 인에이블(enable) 스위치(2251)로부터의 복사, UDPS 인에이블 스위치(2252)로부터의 복사, 및 UDPS(2253)으로의 쓰기와 같은 다수의 스위치(2250)를 통하여 연결될 수 있다.
본 발명의 일실시예에서, MTPS 인에이블 스위치(SW1)(2251)로부터의 명령(command)은 예를들어 계산 환경(2108-1)의 STP(2122)와 같은 계산 환경의 제 2 템플릿 부분으로 적절한 마스터 템플릿 부분이 액세스되고 (또는 액세스 거부되거나) 읽기 또는 복사되는 것을 허용(또는 차단)한다. UDPS 인에이블 스위치(SW2)(2252)로부터의 복사는 예를들어 계산 환경(2108-1)의 TDP(2133)와 같은 계산 환경의 사용자 데이타 저장 장치 부분으로 적절한 사용자 데이타 또는 파일이 액세스되고 ( 또는 액세스 거부되거나) 읽기 또는 복사되는 것을 허용(또는 차단)한다. 통상적으로, 보호 저장 장치(2143) 내 사용자 데이타의 전체 세트들 대신에, 하나의 동작을 수행하는데 필요한 단지 하나의 파일 또는 파일들의 세트가 복사된다. 다른 실시예에서는 전체 사용자 데이타가 복사되나 이것은 비효율적이며, 유지, 진단, 및/또는 수리 동작 도중의 임의의 경우를 제외하고는, 통상적으로 명백한 이익을 목적으로 기능하지 않는다.
UDPS(SW3)(2253)에 대한 쓰기는 적절한 사용자 데이타 또는 파일이 이들이 생성되거나 변형되는 다른 계산 환경들중 하나로부터 액세스되고 (또는 액세스 거부되거나) 읽기 또는 복사되는 것을 허용(또는 차단)하고 계산 환경(2108-3)의 UDPS(2143)으로 다시 쓰기되는 것을 허용한다. 일부 실시예에서, 단일 스위치는 양-방향 허용가능성을 제공하여 사용자 데이타 저장 저장 장치(2143)이 읽기 및 쓰기 되도록 하여 단지 하나의 스위치(또는 스위치 세트)가 요구된다. MTPS(2142)로부 복사되고 전송된 제 2 템플릿이 통상 수정되지 않기 때문에, 이를 MTPS(2142)에 다시 쓰기할 필요가 통상적으로 존재하지 않는다. 분리된 양-방향 교환(handshake) 및 제어 신호 또는 레벨이 복사, 복사를 위한 대기, 복사 완료, 데아타 수신 등과 같은 요구되는 이벤트를 위한 시그널링 프로토콜로서 이용될 수 있다. 패리티 또는 다른 에러 감지 및 에러 정정이 전송 에러 없이 일어나는지를 확인하기 위하여 본 기술분야에서 알려진 바대로 본 발명의 양태 및 특징과 일치하도록 구현될 수 있으나, 이점은 선택적인 사항이다.
본 발명의 일실시예에서, 마스터 템플릿의 수정(또는 시스템에서 사용될 수 있는 다른 템플릿)은 (i) 사용자 분리 계산 환경중 하나에 복사하고 로딩하고, 다음 (ii) 임의의 필요한 동작 시스템, 애플리케이션 프로그램, 컴파일러, 디버깅(debugging), 링킹(linking), 또는 이 기술분야에서 알려진 다른 프로그래밍 절차를 이용하여 이를 업데이트하고, (iii) 보호 저장 장치에 새로운 마스터 템플릿로서 이를 다시 복사하고 저장하는 것을 포함한다. 복사되고 저장된 버전의 마스터 템플릿은 원래의 것을 대치하거나 새로운 파일 또는 업데이트된 버전으로서 저장될 수 있다.
이들 스위치 또는 스위치의 세트는 계산 환경(2108-3)의 구성요소 또는 구성요소의 세트, 계산 환경(2108-3)의 외부 구성요소의 세트 또는 분리 구성요소, 또는 이들의 일부 조합일 수 있다. 본 발명의 일실시예에서, 상기 스위치는 하드웨어 로직 회로에 제공되며, 다른 실시예에서, 매우 제한되게 설정된 처리 능력을 갖는 마이크로-제어기에 의해 구현되어, 악성 코드가 실행되는 것을 허용하지 않는 정교한(sophisticated) 다중 구성요소 및 다중 신호 스위칭 구조가 구현될 수 있다. 다른 실시예에서, 상기 스위칭은 응용 주문형 집적회로(ASIC)로서 구현된다. 다른 실시예에서,상기 스위칭은 제 2 템플릿 부분(STP)으로서 설치된 매우 제한된 인스트럭션(instruction) 세트를 갖는 마이크로-프로세서의 제어하에서 실행되어 악성 코드를 실행하거나 그 실행을 허용할 수 없다.
본 명세서에서 설명된 바와 같이, 보호 저장 장치는 임의의 형태 또는 혀애 조합 또는 저장 장치 장치 또는 메모리 상 또는 내부에서 구현될 수 있다. 다른 실시예에서, 외장의 포터블(portable) 보호 저장 장치를 위한 준비가 마련되어, 예 를들어 사용자가 신용카드 크기의 (플래시 메모리 카드, USB 메모리 L장치, 소니 메모리스틱(Sony MemoryStick), PC 카드 기반 메모리, 또는 다른 임의의 형태의 저장 장치와 같은) 저장 장치 장치 상에 보호 저장 장치를 보유할 수 있고, 지지 컴퓨터 또는 장치의 임의의 하나에 플러그인(plug in) 할 수 있다. 본 발명의 일실시예에서, 구조(architecture), 시스템, 및 방법이 선택적인 숨겨진 보호 백업 저장 장치 시스템을 제공한다.
제어 & 스위칭 계산 환경
이제, (사용자 인터페이스 계산 환경(2108-1)과 협조하여) 시스템(2100)의 다른 계산 환경의 동작을 제어하고 조정하는 책임을 갖는 제어 및 스위칭 계산 환경(CSCE)(2108-2)에 대하여 설명하고자 한다. 다소 단순화된 말로, 스위치는 소스(source)를 목적지(destination)에 연결한다. 시스템(2100)에 대한 일부 실시예에서, 데이타 스토어 스위치 시스템 특성은 지지되고 이러한 특성은 선택된 소스와 목적지 사이의 통신 경로를 구성하는 것을 추가로 지지할 수 있다. 적어도 일부 실시예에서, CSCE 또는 다른 제어 계산 환경이 임의의 주변장치를 계산 환경에 스위치하고 결합하는 능력을 가짐이 주지된다.
계산 환경(2108-2)은 사용자 인터페이스 계산 환경(UICE)(2108-1)으로부터의 입력을 수신하고 보호 저장 장치 계산 환경(PSCE)(2108-3)의 스위치(2250)(예를들어 스위치 세트 SW1(2251), SW2(2252), 및 SW3(2253))를 각각의 다른 계산 환경(2108)과 인터랙트(interact)하도록 동작하여 프로세서(예를들어 CPU)와 저장 장치 (예를들어 STP 및 TDP) 사이의 연결 또는 통신을 결합하거나 결합 해제(허용 또는 차단)하도록 스위치를 동작시킨다. 스위치 제어는 전기적 연결 및 신호 또는 전압 레벨을 통하여 어느 정도 직접적이거나; 프로세서, CPU, ASIC, 또는 제어 및 스위칭 계산 환경(2108-2)으로부터의 신호를 수신하는 계산 환경 내의 다른 회로 또는 로직 엘리먼트를 통하여 간접적이거나; 이들 직접적 및 간접적 구조 및 방법들의 조합일 수 있다.
제어 및 스위칭 계산 환경(2108-2)의 실시예에서 예시된 바와 같이, 여기에는, 사용자 입력 및 명령 또는 시스템 활동(activity) 및 이벤트에 응답하여, 이용가능 컴퓨터 자원을 포함하는 컴퓨터 시스템(2100)의 다음 현재 상태와 구성(configuration)을 고려하는, UICE(210801)로부터 명령(command)을 수신하는 시스템 스위칭 제어기 유닛(2138)이 포함된다. 일부 실시예에서, 스케쥴링(scheduling) 및 구성요소 우선순위지정(prioritization) 및 이용 통제(abitration)가 또한 시스템 스위치 제어기(2138)에 의해 제공된다. 스위치 구성 및 상태뿐만 아니라 다른 정보 및 데이타가 하나 이상의 버스, 인터페이스, 또는 통신 회로를 경유하여 시스템 스위치 제어기(2139)와 동작가능하게 결합된 스위치 구성 정보 저장 장치(2139)에 저장될 수 있다.
이 실시예에서, CSCE(2108-2)는 하나, 통상적으로는 그 이상의 신호 세트 (2180)를 UICE(2108-1)로부터 수신한다. 이들 신호는 컴퓨터 시스템(2100)의 다른 엘리먼트가 사용자 요청을 수행하도록 구성되도록 일반적으로 사용자 요청 입력을 UICE(2108-1)과 충분히 통신하는 것이 가능하다. 예를들어, 사용자는 마이크로소 프트 워드(Microsoft Word) 문서-처리 프로그램의 개시 또는 인스턴스(instance)를 예상하고 ICE 데스크탑 상의 마이크로소프트 워드 아이콘을 마우스 클릭할 수 있다. UICE(2108-1)는 외부 인간 사용자(2129)에게 UICE(2108-1)와 그의 구성요소(예를들어, CPU(2120) 및 저장 장치(2121))가 윈도우즈 2000 운영체제, 마이크로소프트 워드 2000, 및 사용자가 편집하고자 하는 문서를 설치하였다는 것을 제시하도록 구성될 수 있으나, 실상은 이들을 구비하고 있지 않을 수 있고, 단지 포인터, 링크, 별명(alias), 또는 이들 운영체제, 애플리케이션 프로그램, 및 다른 계산 시스템 엘리먼트 중의 사용자 데이타 파일에 대한 다른 참조를 제공할 수 있다.
특히, 마이크로소프트 운영체제 및 마이크로소프트 워드 애플리케이션 프로그램은 MT(2128)로서 존재하고 PSCE(2108-3)의 보호 저장 장치 MTPS(2142) 내에 저장된다. 사용자의 워드 처리 문서는 새로 생성된 것이 아니고 존재하는 것이었다면 저장되어 보호 저장 장치 UDPS(2149)로부터 검색될 수 있을 것이다.
시스템 "브레인(brain)"이라 불리는 제어 및 스위칭 계산 환경(CSCE)의 일부 구조 및 동작 특성들에 대해 설명하였고, 이하에서는 CSCE가 참여하는 일부 특정 실시예의 일부 기능 및 동작들의 부분 리스트에 대해 설명하고자 한다. 이들 모든 기능들이 CSCE(또는 다음에 설명될 실시예에서 CCE)에 의해 수행될 필요는 없다. 특정 기능들과 동작들은 전체로서 계산 시스템, CSCE(또는 CCE), 및 다른 계산 환경의 구현에 의존할 것이라는 점이 이해될 수 있을 것이다.
본 발명의 일부 실시예에서, CSCE는 그 자신의 운영체제(OS)를 로딩 후에시스템의 나머지에 의해 허용되고 지지되는 (일부 또는 전체) 기능 또는 동작을 편성 할 스타트업(start-up)(또는 리셋) 상에 로딩한다. 본 발명의 구조, 시스템 및 발명이 중립적인 운영체제로 쓰이거나, 다른 공지의 운영체제가 상이한 계산 환경에 사용되어 원하는 경우 계산 시스템이 상이한 운영체제와 이들 운영체제에 적합한 애플리케이션 프로그램의 수트(suite)를 동작시킬 수 있게 된다. 본 발명의 일부 실시예에서, 계산 시스템 하드웨어가 운영체제와 의도된 동작을 지지할 수 있는 한, 운영체제는 예를들어 계산 환경으로부터 분리된 사용자가 특정 처리 기능 또는 동작을 수행하도록 지정된 경우에 동적으로 결정될 수 있다.
본 발명의 일부 실시예는 상이한 계산 환경에 대하여 상이한 운영체제를 이용할 것이며 이러한 운영체제는 시스템의 필요성에 따라, 사용자 선택 처리 작업, 데이타의 성질, 또는 다른 인자에 따라 시간 또는 작업의 함수로서 동적으로 결정되거나 미리 결정될 수 있다. 예를들어, 공지되거나 발표된 임의의 마이크로소프트 윈도우즈 운영체제(예를들어 윈도우즈 98, 인도우즈 NT, 인도우즈 2000, 인도우즈 XP, 및 이들의 개량, 향상 및 확장), 리눅스(Linux), 유닉스(Unix), 에플(Apple) 운영체제, 상이한 디스크 운영체제(DOS), 또는 다른 특화된 또는 전용 운영체제 또는 제어 프로그램이, 이들이 의도된 동작과 이 동작을 위한 장치를 지지할 수 있는 한, 상이한 계산 환경에서 사용될 수 있다.
본 발명의 전체는 아니나 일부 실시예에서, CSCE 운영체제 또는 애플리케이션 프로그램(또는 이들 두 개의 조합)은 다음의 예시적인 일부 리스트의 (일부 또는 전체) 기능들을 제어하거나 편성하는 역할을 한다: (i) 데이타 저장 장치 장치(DSD) 연결 스위칭; (ii) 선택적인 명령 및/또는 명령된 동작의 완료의 수신 확인 과 함께 계산 환경에 컴퓨터 프로그램 애플리케이션를 시작하도록 명령 전송 (또는 필요한 경우 하드와이어(hardwired) 동작); (iii) 클릭가능한 윈도우즈 및/또는 코드의 좌표를 추적; (iv) 바이러스 또는 다른 악성 코드의 수리 및 감지, 제거, 및/또는 박멸을 실행; (v) 템플릿 및/또는 마스터 템플릿의 스위칭, 리포멧팅(reformatting), 삭제, 복사, 리셋, 리부팅 및 설명된 다른 동작의 수행 및 제어 ; (vi) "분리된(isolated) 범용(global) 태스크바아(taskbar)" 또는 동등한 사용자 접근가능 사용자 인터랙션(interaction) 툴의 생성 및 디스플레이(대안적으로 이 태스크바아 또는 툴은 데스크탑 및 인터페이스 계산 환경에 의해 발생될 수 있음). 이들 또는 다른 실시예는 또한 선택적으로 하나 또는 그 이상의 다음 기능을 제공할 수 있다: (vii) "오픈" 대화 스크린; (viii) "저장(save)" 대화 스크린; (ix) 네트워크 통신(예를들어, "네트워크" 동작에 대한 설명을 참조할 것)의 스위칭 수행; (x) 통신 환경으로부터 보안 신호를 수신; (xi) 통신 환경이 생성되는 순서(order) 및/또는 현재 통신 환경 순서 또는 우선순위를 추적; (xii) 상이한 계산 환경으로 다른 입력/출력 또는 주변 장치의 스위칭을 수행; (xiv) 이메일 액세스 및 처리를 조정(coordinate); 및/또는 이들 기능들의 다른 조합.
본 발명의 일 실시예에서, CSCE는 다양한 컴퓨터 환경에서의 처리 활동과 관련된 비디오 신호의 제어, 조정, 및/또는 처리(CSCE 자체에서의 처리 활동을 포함)에 대한 책임을 또한 갖거나, 분리 계산 환경 또는 비디오 처리 유닛 또는 로직 회로 또는 다른 수단이 이러한 목적으로 사용될 수 있다. 분리 비디오 프로세서 또는 제어기가 사용되는 경우에, CSCE는 다른 시스템 구성요소와 그의 동작을 조정하 고 편성하는 책임을 일반적으로 가지나, 일부 실시예에서, 비디오 프로세서 또는 제어기는 CSCE 또는 다른 시스템이 제어에 참여할 수 있다.
본 상세한 설명을 참조하여 이해되는 바와 같이 제어 계산 환경으로부터 사용자 계산 환경을 분리하는 것이 제공되나, 사용자 인터페이스, 제어 및 스위칭, 보호 저장 장치, 비디오 프로세서 및 분리된 계산 환경으로서 기지의 클린 데이타 또는 컴퓨터 프로그램을 동작시키는 다른 동작 및 기능에 대한 설명은 다소 인위적이며 주로 설명을 위한 목적으로 사용되었다. 본 발명의 실시예는 이러한 제어 기능들이 결합되는 실시예와 다양한 비-사용자(non-user) 데이타 제어 또는 처리 환경의 분리를 제공한다는 점이 주지되어야 한다. 일부 조합들(combinations)이 예를들어 구체적으로 설명되었으나, 상이한 제어 또는 관리 기능들 및 동작들의 임의의 다른 결합이 본 발명의 다른 원리들과 일관되도록 지지될 수 있다는 점이 이해되어야 한다.
상이한 레벨 또는 정도의 분리(isolation)이 특정 또는세트의 처리 또는 계산 환경 내에서 상이한 시간 또는 상이한 계산 또는 처리 환경에 대해 요구되거나 허용된다는 점이 또한 이해되어야 한다. 예를들어, 바이러스 또는 해커(hacker) 코드가 이러한 코드를 실행할 수 있는 프로세서 또는 코드에 노출되는 계산 환경에서 미지의 파일 또는 데이타 세트가 오픈되고 처리되어야 하는 상황에서, 파일 또는 데이타 세트와 "외부 세계" 사이를 분리하는 것은 절대적이며 사용자 분리 계산 환경 내에 국한된다. 이러한 절대적 분리는 특정 사용자 계산 환경과 다른 사용자 계산 환경 및 제어 환경 사이에 존재한다.
다른 상황에서, 분리의 정도 또는 레벨은 어떠한 해악(harm)도 존재치 않거나, 컴퓨터 또는 사용자에 설정된 허용된 정도의 해악이 허용될 수 있도록 제한된다. 이것은 일부 사용자 또는 관리자가 무시(override)되고 보다 허용적인 시스템의 사용을 허용하는 어떠한 정책 또는 규칙이 설정될 수 있음을 나타낸다. 예를들어, 계산 시스템이 현재의 안티-바이러스 소프트웨어, 방화벽, 및 기업 정보통신(IT) 부서에서 제공된 다른 보호를 갖는 인트라넷 상의 기업 계산 환경 내에서 정상적으로 사용되는 경우에, 이것은 이미 제공된 필터링(filtering)으로 인해 특별한 이메일 처리를 금지하는 것을 허용할 것이다. 다른 실시예에서는, 네트워크 또는 계산 환경이 일반적으로 신뢰될 수 있는 경우에 모든 분리가 무시될 수 있을 것이다. 이러한 허용가능 무시(override)가 모든 실시예에서 참조되는 것은 아니나, 이것은 본 발명의 구조, 시스템 및 방법에 의해 허용가능한 유연성(flexibility)을 보여준다. 따라서, 상이한 레벨 또는 정도의 분리가 제공될 수 있고, 본 발명이 일부 정도의 넌-분리(non-isolation) 또는 무시를 허용치 않는 구조, 시스템, 방법 또는 절차에 국한되는 것으로 이해되어서는 안 된다.
상이한 계산 환경으로부터의 처리 비디오(디지탈 또는 아날로그)에 대하여 행해지는 동작들은 예로서 합병(merge) 또는 그렇지 않은 경우에 모니터 또는 디스플레이 장치 상에서 디스플레이하기 위해서 수개의 계산 환경(예를들어, 신호(2187-1, …, 2187-5, …, 2187-N)으로부터의 출력을 결합하거나 포맷화하는 것이 포함되나 이에 국한되는 것은 아니다. 임의의 다양한 초기 또는 디폴트(default) 조건들이 실행될 수 있으나, 본 발명의 일 실시예에서, 부팅상의 디폴트 세팅은 계 산 환경 비디오 신호를 차단하거나 턴오프(turn off)시키며 이는 일부 시스템 또는 사용자 개시 활동이 명령되기까지 비할당된(unallocated) 임의의 계산 환경에 어떠한 활동도 존재해서는 안 되기 때문이다. 대안으로서, CSCE(또는 다른 엔티티(entity))는 비디오 신호를 턴 온/오프하거나 허용/차단한다.
일부 실시예에서, 계산 환경으로부터의 비디오 출력의 "처리"은 예를들어 단일 모니터 상에 "계층화(layering)" 효과를 제공하도록 달성된다. 예를들어, 가장 최근의 활동적인 계산 환경은 "탑(top)" (또는 "프론트(front)") 계층으로 항상 이동되거나 그렇지않은 경우에 미리 결정된 규칙 또는 정책에 따라 처리될 수 있다. CSCE는 이러한 프로세스에 대하여 직접 책임을 갖지 않는 경우에 이러한 프로세스를 제어하고 편성하는데 기여한다. 예를들어, CSCE는 어떤 "계층"을 "프론트"에 놓을지와 어떻게 다양한 계산 환경으로부터의 비디오 출력을 합병할 것인지를 결정하는 것을 돕기 위해 비디오 제어기에 하나 이상의 명령을 전송할 수 있다. CSCE가 이러한 정보를 갖고 있으며, 이는 마우스 클릭과 같은 다른 목적을 위하여, 계층, 활성 계산 환경, 비할당되거나 비활성인 계산 환경, 윈도우 위치, 마우스 또는 포인팅 장치 커소 좌표 및 위치와 스위칭에 속하는 정보의 데이타베이스를 유지하기 때문이다.
비디오 그래픽스(graphics) 카드 또는 비디오 서브시스템이 연속적으로 ("블랙(black)" 또는 빈 화면에 대한 것이라 하더라도) 신호를 전송하는 실시예와 같은 일부 실시예에서, 비디오 신호는 비디오 제어기에서 턴 "온/오프" 또는 "허용/차단"될 수 있다. 대안으로서, 이러한 계산 환경이 비할당되거나 비활성인 경우에, CSCE 또는 비디오 제어기는 특정 계산 환경으로부터의 이러한 신호를 단순히 "무시(ignore)"하도록 지시될 수 있다. 즉, 계산 환경 비디오 카드는 (분리된 카드 또는 칩이거나 또는 프로세서 또는 다른 로직 회로와 통합되었는지와 관계없이) 선택적으로 비디오 신호를 항상 "펌핑 아웃(pumping out)"할 수 있거나, 상기 비디오 카드가 활성 처리 환경에 있는 경우에 CSCE 또는 다른 비디오 제어기가 이러한 비디오 신호를 출력하도록 할 수 있다. 이것은 전력 소모와 열 발생을 감소시키는 이점이 있고, 시스템과 시스템 구성요소의 수명을 증가시키는 효과를 갖는다. CSCE는 또한 계산 환경으로부터의 어떤 비디오 입력을 처리할 지와 각 비디오 입력에 대하여 어떤 정보가 이용될 지와 어떤 정보가 무시될 지를 비디오 제어기 또는 프로세서(존재하는 경우)에게 알리기 위해서 비디오 제어기 또는 프로세서에 신호를 전송할 수 있다. 예를들어, 각 계산 환경에 대한 데스크탑(desktop)의 일부가 중복적(duplicative)이거나 계산 환경에서 실제 활동을 나타내지 못하는 경우에 억제될 수 있다.
분리된 처리 유닛 계산 환경
시스템(2100)은 또한 하나 또는 복수의 다른 비할당 분리 처리 유닛(IPU) 계산 환경(IPUCE), 또는 각각 CPU(2160, 2170), STP(2162,2172) 및 TDP(2163, 2173)을 갖는 저장 장치(2161, 2171), 인터페이스(2169, 2179), 및 저장 장치와 CPU 사이에서 결합 또는 결합 해제(허용 또는 차단 통신)하기 위한 스위치(2164, 2165, 2174, 2175)를 포함하는, 도9의 실시예의 CE(2108-4) 및 CE(2108-5)와 같은 쉘 (shell)을 포함한다.
UICE(2108-1)을 통한 CSCE(2108-2)의 제어하에 운영체제, 애플리케이션 프로그램, 및 사용자 데이타를 지지하고 상호동작하기 위한, 운영체제, 애플리케이션 프로그램, 사용자 데이타 파일, 및 계산 하드웨어의 이러한 조합은 사용자 데이타와 선택된 마이크로소프트 워드 프로그램의 보호되고 분리된 처리를 가능하게 한다.
UICE가 신호(2108)를 통해 CSCE(2108-2)에 임의의 필요한 데이타를 갖는 정보를 전송하는 것이 동작가능하다. CSCE는 시스템(2100) 자원의 현재 할당과 시스템 구성에 대한 다른 규칙 또는 정책을 고려하여 이들 신호들을 수신하고, 계산 환경(2108-4)과 같은 적절한 계산 환경을 선택한다. 본 발명의 다른 실시예는, 컴퓨터 제조시에 물리적으로 연결되지 않고 컴퓨터 시스템(2100) 하드웨어 내에 근접하여 위치하지 않는 경우에도, 계산 엘리먼트로서 어셈블(assemble)될 수 있는 (CPU 및 저장 장치와 같은) 분리 엘리먼트의 동적 할당을 제공한다.
계산 환경(2108-4)이 CSCE(2108-2)에 의해, 보다 상세히는 시스템 스위치 제어기(SSC)(2138) 내의 규칙 또는 정책 또는 알고리즘에 의해 선택되면, SSC는 마이크로소프트 윈도우즈 2000 운영체제 하에서 마이크로소프트 워드 처리 스프로그램을 식별된 사용자 문서 파일로 실행하도록 할당되었다고 통신하기 위하여 CE(2108-4)에게 하나 이상의 신호들(2186-4)을 전송한다. CE(2108-4)는, 통신 프로토콜이 단일 로직 전압 레벨과 같이 단순한 경우라도, 일부 핸드쉐이크 또는 다른 통신 프로토콜 하에서 통신을 수신하였음을 선택적으로 확인응답(acknowledge)한다. 따라 서, 따라서, 신호(들)(2186-4)은 일방향적(unidirectional)이거나 양방향적(bi-directional)일 수 있다. SSC(2138)는 또한 하나 이상의 스위치 제어 신호들(2181)을 스위치(2250)에 통신한다. 예를들어, 스위치 제어 신호(2181-1, 2182-2, 2182-3)는 목적하는 저장 장치 액세스를 허용하기 위하여 하나 이상의 스위치(SW1, SW2, SW3)를 구성한다. 이들 동일한 스위치는 선택적으로 SSC로부터의 통신을 확인응답하는 이점이 있고, 의도하는 협력을 위하여 스위치들이 적절한 구성(예를들어, 열림 또는 폐쇄, 또는 허용/차단)에 있다는 것을 다시 지시하는 상태(status)를 제공할 수 있다. 유사하게, 스위치(2250)는 저장 장치(2161)의 STP(2162) 및/또는 TDP(2162)와 같은 타겟 목적지에 대한 데이타 전송 준비 형태 통신을 전송할 수 있으나, 이들은 바람직하게는 선택적으로 스위치(2250)에 대한 데이타 수신 준비 형태 상태(status) 신호를 다시 지시할 수 있다.
구체적으로 이 워드 처리 실시예에서, SW1(2251)는 모든 또는 선택된 부분의, 마이크로소프트 윈도우즈 2000과 적어도 마이크로소프트 워드 애플리케이션 프로그램을 포함하는 마스터 템플릿의 통신을 허용한다. 일부 실시예에서, 대안적으로, 운영체제 및 애플리케이션 프로그램이 분리된 소스(source)로부터 분리되어 제공될 수 있음이 주지된다. 다른 실시예에서, 운영체제는 계산 환경 내에 제공되어서 STP(2162) 상에, 결합된 ROM 내에, 또는 다른 방식으로 저장되어 각각의 시간에 통신될 필요가 없을 수 있다. 그러나, SPT가 사용 후에 제거되지 않은 경우에 STP가 악성 코드에 의해 쓰여진 것이었다면 오염의 가능성이 존재하나 판독 전용 메모리 또는 ROM으로부터 검색되었다면 이러한 문제점이 존재하지 않을 것이란 점이 주 지된다.
(제공된 통신 경로가 다중 액세스 경로를 지지하는데 충분한 경우에) 병렬로 또는 (통신 경로(2187)가 다중 액세스 경로를 지지하는데 충분치 않은 경우에) 순차적으로, STP(2162)가 필요한 컴퓨터 프로그램 코드를 수신하자마자 SW1(2251)는 MTPS(2142)를 STP(2162)에 연결하도록 구성된다. 유사하게, SW2(2252)는 UDPS(2143)으로부터 식별된 사용자 문서 파일이 TDP(2163)에 복사될 수 있도록 통신 경로를 제공하도록 구성된다. 복사 동작 도중에 액세스 가능한 하드웨어/펌웨어/소프트웨어가 임의의 악성 코드의 실행을 허용하는데 충분치 않다는 점이 상기된다. 예를들어, 소스로부터의 비트를 목적지에 복사하도록 적용된 하드웨어 전용 복사 회로는 바이러스, 해커, 또는 다른 악성 코드에 의해 오염될 수 없고 소스로부터 비트를 단지 포착(또는 읽기)하고 목적지에 복사(또는 쓰기)하도록 할 수 있다. 소스와 목적지 사이의 버퍼는 선택적으로 필터 또는 리미터(limiter)로서 사용될 수 있다. 소프트웨어 및/또는 프로그램가능 하드웨어가 또한 복사 동작을 위해 사용될 수 있으나, 이러한 복사 수단의 능력이 시스템 또는 컴퓨터 환경 내성(immunity)을 손상시키는 의도치 않은 수정(modification)의 오염으로부터 보호되는 이점이 있다. 바람직하게는, 복사 동작은 다른 해석(interpretation) 없이 이진 비트 또는 비트의 세트만을 복사하는 것이다. 그러나, 본 발명은 이러한 조건에 의해 국한될 필요는 없으며 다른 보호 조치가 악성 코드의 가능한 실행을 방지하기 위해서 이용될 수 있다.
본 발명의 일 실시예에서, 데이타 복사 프로세스는 복사된 데이타가 실행될 수 없어서 데이타 저장 장치 장치 상의 데이타가 악성 코드에 의해 손상될 수 없도록 "단순(dumb)"한 것이거나 제한적인 것일 수 있다. 예를들어, 데이타를 이동시키거나 복사하기 위해서, 데이타는 인코딩되거나, 제한된 기능성(functionality)을 갖는 ASIC이 이용되거나, 실행될 비트 시퀀스의 일부 실행가능 코드를 갖는 데이타를 허용할 수 없도록 하는,직접 메모리 전송 또는 데이타를 이동시키거나 복사하는 다른 방법이 이용될 수 있다. 선택적으로, 복사는 분리된 작업 시스템과 분리되거나 보호된 저장 장치 시스템에 대하여 주소지정되거나 액세스를 갖는 제어 시스템에 의해 편성될 수 있다.
저장 장치 시스템에서 오픈하기 위해 파일을 선택하는 것은 프로세스를 개시하여 이에 의해 파일이 저장 장치 시스템 또는 (UDPS와 같은) 소스로부터 (IPUCE(2108-4)의 STP(2166)와 같은) 작업 계산 환경에 파일이 복사될 수 있고, 스위치(2250)를 통하여 UDPS(2143)과 연결을 중단한 후에, 데이타 또는 파일이 오픈되거나 CPU(2160)에 노출되는 것이 허용될 수 있다. 작업 계산 환경에 파일을 저장함에 의해 프로세스가 개시되고 이에 의해 상기 파일이 저장 장치 시스템에 복사된다. 작업 계산 환경에 파일을 퀴팅(quitting)함에 의해 프로세스가 개시되고 이에 의해 새롭거나 업데이트된 파일 또는 데이타 세트가 (UDPS(2143)과 같은)목적지 저장 장치 시스템에 복사되거나 쓰여지고 (TDP(2161))과 같은) 소스 저장 장치 시스템에서 제거(바람직하게는 물리적으로 지워짐)될 수 있다. 용어"복사(copy)" 또는 "복사들(copies)" 또는 "복사(copying)"은 최광의의 의미로 사용되며, 알고리즘, 스냅샷(snapshot), 압축된 데이타, 비트-바이-비트, 코딩, 인코딩 등을 포함할 수 있으나 이로 한정되는 것은 아니다.
분리된 계산 환경은 또한 통신 플래그(flag) 또는 분리된 계산 환경(또는 ICE 내의 일부 구성요소)의 상태(status)와 상태(state)를 식별하는 다른 정보 또는 지시자(2191)를 제어 및 스위칭 계산 환경(2108-2)에 전송하거나 그렇지 않으면 통신할 수 있다. 이러한 상태(status)와 상태(state)는 하나 또는 조합의 동작 준비 상태(status), 처리 완료 상태(status), 파일 복사 또는 저장 준비 상태(status), 리셋 상태(status), 및/또는 제어 환경이 필요하거나 이용할 수 있는 다른 데이타 또는 정보를 포함할 수 있다.
분리된 계산 환경은 또한 윈도우 x-y 좌표와 선택적으로 제어 환경(2108-2) 및/또는 데스크탑 및 사용자 인터페이스 계산 환경(2108-1)(또는 CSCE에 의해 제어되는 분리 비디오 그래픽스 프로세서 또는 비디오 디스플레이 유닛)에 의해 사용되기 위한 윈도우 차원(2192)을 상이한 계산 환경 윈도우를 결합하거나 합병하기 위해서 단일 디스플레이 장치에(이러한 단일 디스플레이 장치가 바람직한 경우에) 전송하거나 그렇지 않으면 통신할 수 있다. 통신 라인 또는 링크(2191, 2192)는 또한 단일 라인 또는 링크 상에서 공유될 수 있다. 또한, 본 명세서의 다른 부분에서 설명된 다양한 특성(trait)이 상기 통신 라인 또는 링크 상에서 통신될 수 있다.
이러한 통신 경로와 다른 통신 경로, 통신 링크, 또는 단일 라인이 본 명세서의 다른 부분에서 설명한 바와 같이, 하나의 계산 환경과 다른 계산 계산 환경 사이의 감염 가능성을 더욱 줄이기 위해서, 형태, 시퀀스, 숫자, 또는 정보의 볼 륨, 데이타, 이진 비트 등을 제한하는 필터 또는 리미터와 고정될 수 있다. 이들 필터와 리미터는 본 발명의 다른 실시예에서 보다 상세히 설명되어 있다.
운영체제, 애플리케이션 프로그램, 및 사용자 데이타의 적절한 조합이 CE(2108-4)에 존재하면, 워드 처리 동작이 개시될 수 있다. 파일이 워드 처리 프로그램이 존재할 때까지 TDP(2163) 내에 저장되거나, 적절하게 구성된 스위치 SW3(2253)에 의해 UDPS(2143)에 대한 쓰기 동작을 갖는 중간 저장을 이용함에 의해 저장될 수 있다.
임의의 읽기 또는 쓰기 동작이 MTDS(2142) 또는 UDPS(2143)과 (STP(2164) 또는 TDP(2163)과 같은) 저장 장치 사이에 수행되는 경우에, CPU(2160)가 저장 장치로부터 결합 해제되거나 차단되어, MTDS(2142) 또는 UDPS(2143)가 악성 코드가 실행되어 보호 저장 장치 MTDS(2142) 또는 UDPS(2143)을 오염시키는 것을 허용하는 방식으로 CPU(2160)에 노출되지 않도록 한다는 점에서 이점이 있다.
워드 처리가 완료되고 새롭고 편집된 파일이 다시 보호 저장 장치에 쓰여지면, 단일 또는 상태 변화 또는 "플래그" 또는 다른 지시자와, CSCE로부터의 다음 명령, STP(2162) 및 TDP(2163)의 내용이 제거되고 지워진다. 이러한 제거 또는 삭제는 저장 장치 미디어를 덮어쓰기하거나 매스터 부트 기록 또는 파티션(partition) 테이블을 포맷화하는 것과 같은 실제 삭제이어서, 저장된 마지막 데이타 세트에 존재할 수 있는 임의의 악성 코드가 다른 파일 또는 데이타 세트에 확산되지 않도록 하는 것이 좋다. 이것은 실제 제거 대신에 제거된 파일에 대한 참조를 제거하도록 디렉토리를 단지 업데이트하는 가장 통상적인 시스템과는 상이한 것 이다. 사용된 저장 장치 스페이스와 바람직하게는 전체 액세스가능 저장 장치 스페이스를 지우는 바람직함에 의해 하드 디스크 드라이브 저장 장치와 같은 느린 전기-기계적 저장 장치보다 빠른 고체 상태 메모리가 보다 선호되게 된다. 이것은 또한 계산 환경 고려에서 액세스 가능한 저장 장치 스페이스의 양을 감소시키게 한다. 또한 다양한 크기의 일부 실시예에서 저장 장치 스페이스를 동적으로 할당하고, 프로세스가 보다 많은 메모리에 대한 필요를 발생시킴에 따라 액세스가능한 메모리를 증가시키고, 고체 상태 메모리와 대형이며 가격이 저렴한 하드 디스크 드라이브 저장 장치 양자를 구성하는 능력을 가능케 한다.
이러한 관점에 대하여 제공된 본 발명의 고려는 바이러스에 의해 오염된 보호 저장 장치 UDPS(2143)에 존재하였던 사용자 데이타가 바이러스와 함께 CE(2108-4)에 이동되고 다음, CPU(2160)와 계산 환경 내에서 바이러스 코드의 실행을 지지할 수 있는 운영체제에 노출되는 상황을 드러낼 것이다.
OF바이러스가 CPU 및 운영체제에 노출되었으나 바이러스가 만족스럽지 않은실행 날짜 조건을 갖는 경우와 같은 어떠한 이유에 의해 바이러스가 실행되지 않는 다면, 바이러스는 바이러스를 갖는 파일과 함께 또는 보호 저장 장치 UDPS(2143)에 대한 새롭고 독립적인 파일로서 복귀될 것이다. 이러한 경우에 특정 계산 환경(2108-4) 및 시스템(2100) 둘다는 바이러스(또는 다른 악성코드)에 의한 노출에 전체적으로 손상되지 않는다.
다른 한편으로, 만일 바이러스(또는 악성 코드)가 계산 환경(2108-4)내에서 잠시동안 실행되어 CPU, CPU 관련 RAM 또는 다른 메모리, 및/또는 STP(2162) 또는 TDP(2163) 저장장치를 손상 또는 오염시키면, 이의 해로운 효과는 분리된 계산 환경(2108-4)에 제한된다. 바이러스 또는 다른 악성코드가 시스템(2100)의 나머지에서 제거되도록 하고 또한 보호 저장장치 MTPS(2142) 또는 UDPS(2143)내의 데이터 및 시스템(2100)에 영향을 미치지 않도록 아키텍처 및 처리 시스템 및 방법에 경로가 제공되지 않는다. 비록 바이러스로 오염된 파일이 보호 저장장치 MTPS(2142) 또는 UDPS(2143)에 복귀될지라도, 다른 연산 시스템, 응용 프로그램, 또는 다른 데이터 파일들은 PSCE(2108-3)가 데이터에 포함된 임의의 비트 패턴을 실행할 수 있는 프로세서를 포함하지 않기 때문에 오염될 수 없고 "0" 및 "1" 비트들을 가지며 계산 환경내에서 프로그램 의미를 가지지 않는다. 비트들이 공개되는 연산만이 필요한 경우에 복사만을 수행할 수 있는 하드웨어, 소프트웨어 및/또는 펌웨어에 의하여 단순 복사 연산인 것을 다시 상기하라. PSCE와 다른 계산 환경(2108)에서 바이러스가 실행되는 경우에, 바이러스는 파일의 사본을 손상시키거나 또는 왜곡시킬 수 있으며, PSCE의 원 데이터 또는 파일은 손상되지 않은채로 유지된다. 명확하게, 일단 바이러스 또는 다른 악성 코드가 존재하는 것으로 발견되면 바이러스를 치료하거나 또는 제거하는 단계들을 취하고 바이러스로 오염된 버전을 치료된 버전으로 대체하는 것이 바람직할 수 있다. 이러한 바이러스 또는 악성 코드 검출 및/또는 치료 동작은 사실상 파일의 치료된 사본이 보호된 저장장치로 복귀되기전에 파일의 사본에 대한 분리된 계산 환경에서 수행되는 프로세스들중 하나일 수 있다. 기록보다 오히려 버전들로서의 파일들의 저장은 대안적인 저장 옵션이다.
악성 오염 파일들을 안전하게 처리하는 구조적 및 동작적 특징들을 기술할 때, 인간 사용자(2129)에게의 그래픽 또는 디스플레이 스크린 프리젠테이션을 기술하는 것을 본론에서 벗어난다. 설명을 위하여, 컴퓨터 시스템(2100)이 각각의 프로세스가 디스플레이 부시스템의 개별 윈도우에서 디스플레이될 수 있는 윈도우 시스템을 제공한다는 것을 가정한다. 마이크로소프트 윈도우즈, 유닛, 리눅스, 애플 매킨토시 OS, 및 다른 공통 연산 시스템과 같은 연산 시스템들은 공통 디스플레이의 개별 윈도우들의 각 프로세스에 대한 디스플레이를 제공하는 윈도윙 및 구조 및 기술들을 지원한다. 따라서, 각각의 계산 환경은 종래의 멀티-태스킹 윈도우 시스템들와 유사한 윈도우 멀티-태스크 처리 시스템을 제공하기 위하여 비디오 디스플레이 서브시스템(2192)에 의하여 처리되는 디스플레이 스크린 또는 그래픽 출력(2187)을 제공한다. 키보드(2190) 및 마우스(2191) 또는 다른 포인팅 장치와 같은 입력/출력은 활성 프로세스 또는 윈도우에 키보드 버튼 누름들 및 마우스를 할당함으로서 유사하게 제공된다. 사용자(2129) 또는 임의의 환경에서 시스템 그 자체는 선택된 또는 활성 윈도우를 식별하며, 키보드 및 마우스 동작들은 추적되어 선택된 프로세스로 식별된다. 본질적으로, 키보드, 마우스 또는 포인팅 장치 및 디스플레이 프로세스는 UICE 2108-1 및 CSCE 2108-2를 통해 활성 윈도우 또는 다른 식별된 활성 프로세스에 할당된다.
유사한 방식으로, 계산 시스템내의 각각의 다른 장치 또는 주변장치는 플로피-디스크 드라이브, USB 포트들 및 이들 포트들을 통해 접속된 임의의 USB 주변장치들, 모뎀들, 네트워크 인터페이스 회로들 또는 카드들(NIC), 모뎀들, SCSI 인터페이스들 및 장치들, PC 카드 슬롯들 및 인터페이스들 및 이들 인터페이스들을 통 해 접속된 장치들, CD 판독기/기록기들, DVD 판독기들/기록기들, 스캐너들, 프린터들, 오디오 시스템들, 마이크로폰, 스피커들, 직렬 또는 병렬 인터페이스들 및 이들 인터페이스들을 통해 접속된 장치들, 카메라들, 레코더들, 및 제한없이 컴퓨터 또는 정보 장비에 접속될 수 있는 임의의 다른 I/O 또는 주변 장치들 또는 시스템들중 하나 이상을 포함한다.
이러한 진보적 구조들로서 시스템 및 방법이 컴퓨터들, PDA들, 이동 통신 장치들 및 전화들, 셀룰라 전화들, 디지털 카메라들, 비디오 기록 장치들, 네비게이션 및 매핑 시스템들, 자동차 엔진 관리 시스템들, 항공기 네비게이션 및 안내 시스템들과 같이(그러나, 이에 제한되지 않음) 프로세서를 가지는 장치들 및 장비들의 다양한 세트에 적용될 수 있으며 또한 프로세서를 통합하고 바이러스, 스파이웨이, 보트들, 컴퓨터 해커들 및 다른 악성 코드에 취약한 다른 전자 장치들 및 시스템들의 모든 방식에 적용될 수 있다. 완전하게 디버깅되지 않는 컴퓨터 코드의 실행과 연관된 비의도적 문제들은 코드가 테스트되거나 또는 디버그되거나 또는 다른 방식으로 분리된 컴퓨터 환경들중 하나에서 이용되는 경우에 시스템의 나머지에 악영향을 미치는 코드들의 임의의 결함을 방지하는 방식으로 조절될 수 있는 것을 상기하라. 따라서, 가능한 입력 장치들, 출력 장치들, 입력/출력 장치들의 세트는 다수의 및 다양한 세트이며, 종래의 데스크탑 또는 이동 노트북 계산과 연관된 장치들에 제한되지 않는다. 주변장치는 예컨대 본 발명의 원리들에 따라 형성된 정보 시스템에 의하여 제어 또는 모니터링되는 자동차 또는 항공기일 수 있다.
비록 이들 다른 주변장치들이 UICE 2108-1의 데스크탑 환경에서 인식될 수 있을지라도, 이들 주변장치들(키보드 및 마우스외에)을 실제로 액세스하는 프로세스는 주변장치에 대한 액세스를 필요로하는 다른 분리 처리 환경들중 하나로부터 유도되거나, 또는 바람직하게 UDPS를 통해 저장 및 공유되는 데이터를 통해 주변장치와 상호작용하는 새로운 프로세스를 초기화하며, 데이터를 제공하거나 또는 주변장치 또는 서브시스템과 상호작용한다.
사용자 인터페이스, 제어 & 스위칭, 및 보호 저장 계산 환경들의 기능들을 결합하는 대안 실시예
제어 & 사용자 인터페이스 계산 환경(2108-1), 스위칭 계산 환경(2108-2) 및 보호 저장 및 판독/기록 계산 환경(2108-3)에 의하여 수행되는 구조 및 동작들을 기술할때, 이들 동작들이 결합되어 도 10의 실시예에서 분리된 계산 환경들(2108-4 또는 2108-5)과 같은 분리된 사용자 계산 환경으로부터 분리된 단일 계산 환경에서 수행될 수 있다는 것이 인식될 수 있다. 특히, 이러한 구조 및 시스템 구성은 결합된 블록이 사용자 데이터 및/또는 비신뢰 코드를 실행하는 능력을 가지지 않고 실행을 위하여 분리된 계산 환경에 데이터 또는 프로그램들을 전송 또는 복사하는 것으로 상기 동작들을 수행하나 이들을 개방 또는 실행할 수 없는 한 진보적 시스템 및 방법의 장점들중 적어도 일부 장점을 제공할 수 있다. 일부 실시예들에서는 제어 엔티티에 단지 신뢰성 있는 액세스만이 허용된다(다수의 계산 환경들 또는 이의 조합들사이에 분배되던지간에). 예컨대, 실행될 수 있는 규칙들 및 정책들에 따르면, 키보드 및 마우스 입력은 신뢰성 있는 입력 또는 상호작용 매체로서 처리 될 수 있다. 패스워드 또는 생체인식과 같이 컴퓨터 또는 장치를 부팅하여 로그인하는 표준 보안 절차들은 시스템 및 가능한 입력 키보드 및 마우스 입력들을 액세스하는 사용자가 신뢰성 있다는 확신을 제공하기 위하여 구현될 수 있다.
동적 구성가능 시스템 구성요소들을 사용하는 대안 실시예
동작, 제어, 인터페이스 및 보호 특징들중 일부를 기술하는 하나의 특정 다중 계산 환경을 기술하면, 계산 환경들의 공통 세트가 사용자 인터페이스 계산 환경(UICE), 제어 및 스위칭 계산 환경(CSCE), 보호 저장 계산 환경(PSCE) 및 워드 처리, 이메일, 인터넷 브라우징 또는 다른 동작들을 수행하도록 구성될 수 있는 다른 계산 환경들(CE)의 특정 세트를 구현하기 위하여 사용되는 다른 대안에 대하여 주의를 집중한다.
도 10에는 데이터 또는 다른 정보를 처리하기 위한 시스템(2200)의 대안 실시예가 도시되어 있다. 도 9와 관련하여 방금 기술된 실시예(2100)에서 처럼, 이러한 시스템 및 구조(2200)는 시스템을 구성하고 이 시스템을 동작시키는 방법들 및 절차들과 함께 하나 이상의 프로세서들, 제어기들, 마이크로프로세서들, 중앙처리장치들(CPU), ASIC들, 로직회로들 또는 전자 데이터를 처리하는 다른 수단에 응용 가능하다.
설명을 편리하게 하기 위하여, 다양한 계산 환경들, 주변장치들, 스위치들 및 제어 라인들 및 다른 신호들과 같은 임의의 엘리먼트들은 동일한 또는 유사한 토폴로지로 도시되고 동일한 도면부호들이 제공된다. 본 발명의 원리들을 구현하기 위한 많은 방식들이 존재하며 이들 상세한 설명들 및 도면들의 각각이(예컨대 도 9 및 도 10의 실시예들 및 시스템 구성들) 본 발명에 따라 시스템을 구현 및 동작시키는 전형적인 방식이라는 것이 인식될 것이다.
시스템(2200)은 데스크탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1) 처리 유닛, 제어 및 스위칭 계산 환경(2108-2) 처리 유닛, 보호 저장 계산 환경(2108-3) 처리 유닛 및 두개의 분리 처리 유닛 계산 환경 IPUCE #1(2108-3) 및 IPUCE #2(2108-5)를 포함한다. 도 9의 실시예에서, 전형적인 처리 유닛 엘리먼트들은 특정 처리 유닛(2108-1,...,2108-5,...,2108-N)의 적정 동작을 달성하기 위하여 기술될 것이다. 도 10의 실시예에서는 다수의 모듈러 유닛들이 시스템(2200)의 초기화, 구성 및 동작을 위하여 필요한 기능들 및 동작들을 동적으로 수행하도록 하는 공통 구성요소 구성이 기술된다. 동일한 또는 공통 구성요소들이 필요하지 않는 반면에, 의도된 동작 및 처리 기능에 따라 소프트웨어, 펌웨어, 및 사용자 또는 시스템 데이터로 커스터마이징되거나 또는 될 수 있는 구성요소들의 공통 세트를 사용하는 장점들이 존재한다.
계산 환경들(2108-1 내지 2108-5)간에 일반적인 일치가 존재하기 때문에 본 설명은 실행 차이들(존재하는 경우) 및/또는 세부사항들에 집중한다.
데스크탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1) 처리 유닛과 관련하여, CPU(2120)는 지금 프로세서(PR) 및 프로세서 결합 RAM 형태의 메모리, 및 공지된 선택적 프로세서 칩 세트 및 BIOS를 포함하는 것으로 도시된다는 것에 유의해야 한다. 임의의 형태의 프로세서, 마이크로-프로세서, 중앙처리장치, ASIC 또는 제어 및 스위칭 계산 환경(2108-2)의 태스크들을 수행할 수 있는 다른 로직회로가 이용될 수 있다는 것이 인식될 것이다. 정교하고 복잡한 데이터 처리를 수행하는데 필요하고 복잡한 컴퓨터 프로그램 명령들을 실행할 수 있는 CPU를 필요로할 수 있는 전체 시스템(2200)에 대하여, 데이터탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1) 처리 유닛의 "프로세서"는 매우 단순한 구성요소일 수 있다.
제어 및 스위칭 계산 환경(2108-2) 및 처리유닛 및 보호 저장 계산 환경(2108-3) 처리유닛에 대하여 유사한 설명이 이루어질 수 있다. 사실상, 일부 실시예에서 제어 및 스위칭 계산 환경(2108-2) 처리유닛 및 보호 저장 계산 환경(2108-3) 처리유닛의 기능은 단일 유닛(2155)에 의하여 수행될 수 있으며, 다른 실시예에서 마스터 템플릿 복사 스위치(2151) 및 보호 저장 복사 스위치(2152)는 단일 유닛(2156)상에서 결합될 수 있다.
UICE(2108-1)는 CSCE(2184A-1)로부터 신호들(2184A)을 수신하고, 보호 마스터 템플릿(2184A-2)으로부터 운영체계(OS) 및/또는 응용 프로그램들을 수신하며, 보호 저장장치(2184A-3)로부터 데이터를 수신하는 것으로 기술된다. 또한, 이는 보호 저장장치(2184A-4)에 데이터를 다시 전송할 수 있다. 신호들의 이들 4세트는 명확화를 위하여 모든 접속 라인들이 도시되지 않을지라도 계산 환경들의 각각에 존재하는 것으로 기술된다. 일부 처리 동작들에 대하여 모든 신호라인들이 요구되거나 또는 사용되지 않는다.
실시예는 또한 처리 동작들에 다른 주변장치들을 연결하여 이용가능하게 만들기 위하여 UICE, CSCE 및 PSCE와 공동으로 사용하는 할당 기능을 도시한다. 적어도 일 실시예에서, 키보드 및 마우스(또는 예컨대 터치 스크린과 같은 다른 포인 팅 또는 선택 장치)는 다른 계산 환경들과 데스크탑 및 사용자 인터페이스 계산 환경 처리 유닛에 직접 이용가능하다.
선택적 ASIC(2126)이 또한 기술된다. 적어도 일부 실시예에서, CPU 또는 ASIC(또는 다른 로직회로)는 요구된 인터페이스 처리 능력을 제공하는데 충분할 수 있으나, 모듈 방식 및 범용성으로 여기에 기술된다.
제어 및 스위칭 계산 환경(2108-2) 처리 유닛과 관련하여, 제어 및 스위칭 계산 환경 처리 유닛(CSCE)은 프로그램들 및 데이터에 대한 저장 콘텐츠들이 계산 환경에 의하여 제공된 기능들 및 동작들에 따라 다르다는 것이 인식될지라도 구성요소들의 유사한 세트로서 도시된다. CSCE(2108-2)의 경우에, 임시 저장장치(2149)는 I/O 스위치 구성 데이터(2158) 및 데이터 전송 또는 판독/기록 구성 데이터(2159)를 포함하는 것으로 지시된다.
보호 저장 계산 환경(2108-3) 처리 유닛과 관련하여 유사한 구성요소들의 세트가 기술된다. 마스터 템플릿 및 사용자 데이터에 대한 보호 저장장치는 이러한 유닛의 일부분으로서 기술된다. 운용체계 및 응용 프로그램 엘리먼트들의 템플릿 복사 또는 일부 실시예들에서 사용자에 의하여 요구될 수 있는 다른 처리 동작들에 적합한 다중 템플릿들의 복사들은 보호 저장장치(2141)에 저장된다. 사용자 및 가능한 시스템 파일들은 보호 데이터 저장 UDPS(2143)에 저장된다. 보호 저장장치는 프로세서 또는 CPU가 제공되는 경우에 프로세서 또는 CPU가 보호 메모리로부터 디스에이블 또는 분리되도록 존재할 수 있는 사용자 데이터(또는 코드 명령들)를 실행할 수 있는 프로세서 또는 CPU에 공개되지 않는다는 것을 상기하라. 따라서, 스 위치들(2144, 2145)은 개방하거나, 또는 동작 전압을 제거하거나 또는 동작에 필요한 동작 클록 신호를 억제하는 것과 같이 프로세스를 디스에이블하기 위하여 취해지는 다른 단계들을 취한다. 이는 일반적으로 소프트웨어 및/또는 펌웨어와 상호작용하는 ASIC 또는 다른 로직 또는 처리회로(2146)와 같은 회로가 보호 메모리들에 기록 및 판독하고 이들의 분리를 보존하기 위한 처리능력을 제공한다는 것을 일반적으로 의미할 것이다. 마스터 템플릿 복사 스위치 및 보호 저장 복사 스위치 또는 스위치들은 PSCE의 일부 또는 개별 스위치일 수 있으나 이와 통신할 수 있다. 복사(판독 및/또는 기록)는 예컨대 ASIC 또는 다른 로직 또는 처리 회로(2146)에 의하여 수행될 수 있다.
두개의 분리 처리 유닛과 관련하여 계산 환경 IPUCE #1(2108-4) 및 IPUCE #2(2108-5)는 이러한 모듈러 계산 환경 구조를 유지한다. 이들 처리 유닛들은 유리하게 워드 처리, 인터넷과의 접속 및 상호작용, 셀룰라 전화 수신 및 음성 코딩 및 디코딩 등과 같이 수행하기 위하여 요청될 수 있는 처리 동작들의 전체 스펙트럼을 지원하는 CPU를 포함할 수 있다.
결합된 제어 & 사용자 분리 계산 환경들과 관련한 실시예
도 11에는 결합된 제어 계산 환경 및 하나(또는 하나 이상의) 분리 계산 환경을 가진 본 발명의 다른 대안 실시예(2300)가 기술되어 있다. 결합된 제어 계산 환경은 전술한 제어 & 사용자 인터페이스 계산 환경(2108-1), 스위칭 계산 환경(2108-2) 및 보호 저장 및 판독/기록 계산 환경(2108-3)의 임의의 필요한 동작들을 제공하기 위하여 계산 시스템(2300)의 동작을 조정한다. 분리된 계산 환경(2304-1)은, ICE가 처리 로직장치와 스위칭가능하게 결합 및 분리될 수 있는 저장장치(2380) 및 ICE를 위하여 의도된 명령들의 세트를 실행하기 위한 처리 로직장치(2381)를 포함한다는 것을 제외하고, 초기의 실시예에 기술된 형식을 취할 수 있으며 여기에서 더 상세히 설명되지 않는다.
임의의 주어진 실시예에서, 일부 특징들 및 절차 단계들은 선택적이며, 실행하기에 적합한 능력들 및/또는 적정 보안 또는 면역성에 따라 요구되지 않을 수 있다. 일부 특징들 및 절차들은 다른 인자들중에서 시스템의 현재 상태 및 의도된 계산 환경 동작에 따라 동적으로 실행될 수 있다. 어느 한 경우에, 이들 제어 동작들이 분리된 사용자 계산 환경으로부터 개별(물리적 또는 시간적으로) 계산 환경에서 수행된다는 것이 인식될 것이다.
이러한 실시예에서, 제어 처리 또는 계산 환경(CCE)(2302)은 하나 이상의 분리된 계산 환경들(2304-N)을 생성, 제어 및 종료하도록 설정 및 동작된다. 이러한 실시예에서, 단지 하나의 분리된 계산 환경(2304-1)은 단순히 설명을 위하여 기술되나, 사용자 처리를 위하여 임의의 수의 분리된 계산 환경들(ICE) 또는 서브시스템들은 융통적 또는 동적으로 구성 및 동작될 수 있다.
CCE(2302)는 임의의 로직 회로 또는 다른 로직 수단(2320)(예컨대 제어기, 마이크로-제어기, 프로세서, 마이크로프로세서, 중앙처리장치 또는 CPU, ASIC, 프로그램 가능 로직장치 등), 및 하나 이상의 스위치들 또는 스위칭 수단(2325) 및 하나 이상의 통신 링크들(2328)을 통해 로직수단(2320)에 스위칭가능하게 접속 및 분리될 수 있는 저장장치(2321)를 포함한다. 스위치 또는 스위칭 수단(2325)은 일반적으로 저장장치(2321) 및 로직수단(2320)사이에서 신호들 및 데이터를 접속 및 분리하기에 적합한 다수의 스위치들 또는 스위칭 엘리먼트들을 포함할 수 있으며, CPU와 같은 로직회로와 저장장치를 접속 및 분리하기 위하여 공지된 신호 컨디셔닝 회로를 포함할 수 있다.
로직 회로 또는 로직 수단(2320)의 타입에 따르면, ROM, RAM, 레지스터 등의 형태와 같은 개별 메모리는 하나 이상의 메모리 스위치들(2326)을 통해 스위칭가능하게 접속 또는 분리할 수 있다(인에이블 또는 디스에이블할 수 있다). 스위칭은 선택적으로 메모리 또는 저장장치로의 어느 한방향(예컨대 기록 또는 판독) 또는 양방향 통신 또는 시그널링을 수행할 수 있다. 이러한 실시예 및 본 발명의 다른 실시예와 관련하여, 스위치, 스위치들, 스위칭 수단 등 용어들은 가능한 가장 넓게 해석될 수 있으며, 또한 신호를 한 위치로부터 다른 위치로 물리적 또는 논리적으로 접속 또는 분리할 수 있거나 또는 전기 또는 광학 접속이 존재하는지의 여부와 무관하게 상기 위치들사이에서 신호를 통신하는 능력을 인에이블 또는 디스에이블할 수 있는 임의의 장치, 하드웨어 또는 소프트웨어일 수 있다.
로직 회로 또는 로직 수단(2320)의 타입 및 능력은 일반적으로 CCE(2302)에 의하여 수행될 로직 또는 다른 처리 동작들에 따를 수 있다. 예컨대, 범용 노트북 컴퓨터에 대한 제어로서 수행될 처리 동작들은 이들 다른 장치들에 의하여 수행될 동작들이 일반적으로 다를 수 있기 때문에 적어도 부분적으로 셀룰라 전화 또는 전자 카메라와 관련하여 수행될 제어 동작들과 다를 수 있다.
일부 실시예들에서, 다양한 스위치들(예컨대, 스위치들(2350, 2360, 2325, 2326), 및 저장장치(2321), 메모리(2322), I/O 또는 주변장치들(예컨대, 키보드(2390), 마우스(2391), 또는 네트워크 NIC(2392)) 및/또는 분리된 계산 환경들(2304)의 저장장치(들)(2380)와의 통신 또는 신호들을 접속 또는 분리하는 스위칭 능력은 로직 회로(2320) 또는 다른 실시예들에서 개별 스위칭 로직장치에 의하여 제공될 수 있으며, 즉 로직 회로 또는 로직수단(2320)에 의하여 모두 또는 부분적으로 제어될 수 있다. 이러한 실시예 또는 다른 실시예들에서, 신호 스위치 또는 스위치들의 세트 또는 다중 개별 스위치들은 적정 스위칭 동작들을 수행하기 위하여 이용될 수 있다.
스위치들의 적어도 일부가 CCE(2320)에 의하여 적어도 부분적으로 제어될 수 있는 반면에, 통신 링크들, 신호 라인들, 버스들 또는 다른 접속부들이 CCE(2320)의 엘리먼트들을 통과하지 않거나 또는 CCE(2320)의 엘리먼트들에 의하여 액세스가능하다. 예컨대, 적어도 일 실시예에서, 네트워크 NIC(2392)는 분리된 계산 환경(2304-1)과 스위칭가능하게 접속 또는 분리될 수 있으나, NIC로부터 수신된 데이터 또는 비트들은 CCE(2320)을 통과하지 않고 단지 ICE(2304-1)를 통과하여 악성 에이전트에의 노출을 방지한다. 적어도 일부 실시예들에서, 개별 모뎀 및/또는 네트워크 NIC 장치들 및 통신 경로들은 면역성 및 시스템 보호에 대한 추가 측정치를 제공하기 위하여 외부 환경으로부터 데이터를 수신하고 외부 한경에 데이터를 송신하기 위하여 제공된다. 수신된 데이터가 송신된 데이터와 분리될때, 이는 오염되거나 또는 악성 에이전트를 포함하는 데이터를 송신할 기회들이 감소 또는 제거되기 때문에 시스템(2300) 외부의 다른 컴퓨터들 또는 장치들에 보호 측정치를 제공한다. 저장장치(2321)는 단일 물리적 장치, 두개 이상의 물리적 장치들의 결합 또는 하나 이상의 물리적 장치들중 하나 또는 일부로서 구현될 수 있다. 예컨대, 저장장치(2321)는 임의의 타입의 자기 메모리, 광 메모리, 고체상태 메모리 또는 공지되거나 또는 개발될 수 있는 다른 메모리 타입들을 가질 수 있다.
기술된 실시예에서, 저장장치(2321)는 마스터 템플릿 보호 저장장치(MTPS)(2322), 사용자 데이터 보호 저장장치(UDPS)(2323), 저장장치 및/또는 I/O 장치들에 대한 스위치 구성 정보 또는 데이터(2324)를 제공할 뿐만아니라 사용자 및 제어부와의 장치 인터페이스를 지원하는데 필요할 수 있는 시스템 엘리먼트들 및 응용 프로그램들(2325)을 동작시키는 동작 부분을 제공한다. 임시 작업 저장장치(2326)가 또한 선택적으로 제공될 수 있다. 일부 실시예들에서, 이들 다른 저장 구성요소들에 대한 저장장치의 타입은 저장장치로부터 구성요소들의 고속 판독 및/또는 기록 액세스 및/또는 소거를 용이하게 하기 위하여 유리하게 선택될 수 있다. 특히, 고체상태 또는 반도체 메모리는 사용자 계산 환경 세션이 완료되고 종료 또는 차단된후에 사용자 계산 환경의 고속 액세스, 준비 및 신뢰성 있는 소거를 용이하게 할 수 있다.
하나 이상의 분리된 계산 환경들(2304-1,...,2304-N)은 융통성있게 또는 동적으로 구성될 수 있다. 다수의 프로세서들 또는 다른 하드웨어가 다수의 물리적(예컨대, 하드웨어) 개별 세션들을 제한하는 경향을 가질 때, 부가적인 분리된 계산 환경들은 선택적으로 시간적 분리를 사용하여 그러나 간헐적으로 본 명세서에 기술 된 바와같이 하드웨어를 액세스함으로서 구현될 수 있다.
각각의 ICE(2304)는 보호 저장장치(예컨대, MTPS(2322) 및/또는 UDPS(2323)) 또는 저장장치(2321)의 다른 부분들에 대하여 판독 및/또는 기록하기 위한 액세스가 요구될 수 있도록 CCE 제어 스위치(2350)를 통해 저장장치(또는 저장장치의 일부분들)(2321)에 스위칭가능하게 유리하게 접속가능하다. 도 11에 기술된 실시예에서는 데이터-인(2351), 데이터-아웃(2352), 및 OS-Apps(운영체계 및 응용 프로그램들)(2352) 통신 또는 신호 경로가 기술되어 있다. 다른 실시예들에서, 단일 통신 또는 신호들 경로(예컨대, 와이어, 멀티-와이어 버스 또는 광학 링크)는 단일 링크를 통해 통신을 할당하여 제어하기 위하여 경로 할당 및 중재 회로 또는 다른 로직 수단과 함께 사용될 수 있다. 게다가, ICE(2304)내에서 임의의 운영체계 및/또는 응용 프로그램들을 위하여 제공할 수 있는 시스템들에서는 CCE내의 저장장치(2321) 및 ICE(2304)의 저장장치(2280)간에 경로를 제공할 필요가 없다.
이러한 또는 이들 동일한 통신 링크들(2351, 2352, 2353)은 임의의 플래그들(2355), 윈도우 x-y 좌표들(2356), ICE 비디오 출력(2357)을 통신하고 및/또는 전용 또는 일시적으로 공유된 간헐적 방식으로 주변장치들을 접속하기 위하여 사용될 수 있다. 선택적으로, 개별 전용 또는 공유된 통신 링크들은 이들 신호들 또는 데이터를 위하여 이용될 수 있다.
플래그들(2355)은 "마스터 템플릿을 판독하려고 하는 ICE", 사용자 보호 데이터를 판독하려고 하는 ICE", "완료된 ICE 처리", "발생한 ICE 처리 에러, "보호 저장장치에 파일을 저장하기 위한 요구", "파일 저장 동작 완료", "ICE를 리셋 및 소거하기 위한 CCE 명령", 및 적절한 동작을 지원하기 위한 다른 명령들 및 상태와 같은(그러나, 이에 제한되지 않음) CCE(2320) 및 ICE(2304)간에 상태 및/또는 명령 및 제어를 제공한다. 본 발명의 일부 실시예들에서, 플래그들의 성질 및 복잡성은 상태 또는 명령 및 제어 플래그들이 ICE 및 CCE간에 바이러스 또는 악성 코드를 실수로 통신 또는 전송할 수 있는 임의의 가능성을 감소 또는 제거하기 위하여 단순하고 짧게(예컨대, 소수의 비트들 또는 바이트) 고의로 유지된다.
다른 실시예들과 관련하여 이미 기술된 바와같이, 비디오 또는 그래픽 관련 출력 신호 또는 데이터(2357)는 ICE 사용자 환경의 연출 또는 표현(예컨대, 워드 처리 스크린)이 디스플레이 스크린 또는 다른 장치(2393)상에 포착되어 디스플레이될 수 있다. 대부분의 실시예들에서, 단일 디스플레이 장치가 이용될 것이나 본 발명은 다중 디스플레이 장치들 또는 사실상 다중 비디오 또는 그래픽 프로세서들을 배제하지 않는다. 윈도윙 환경에서 동작할때, 윈도우 x-y 또는 라인-샘플 좌표들 및 윈도우 크기들 또는 ICE 윈도우에 대한 다른 기술자들은 다른 ICE들로부터의 다중 윈도우들이 CCE(2302) 또는 비디오 디스플레이(2393)에 의하여 생성된 데이크탑(예컨대, 마이크로소프트2000 데스크탑) 디스플레이와 서로 그리고 선택적으로 그러나 적절하게 결합될 수 있도록 CCE에 의하여 제어되는 CCE(또는 비디오 프로세서(2392)에 통신된다.
통신 경로를 통해 통신되는 데이터량 및/또는 데이터 타입을 제한하는 필터들 또는 리미터들은 CCE 저장장치(2321) 및 ICE(2304)사이, 및/또는 ICE(2304) 및 비디오 디스플레이 제어 유닛(2392)사이, 및/또는 플래그들, 윈도우 좌표들 및 차 원들, 또는 다른 상태 또는 명령 및 제어 신호들에 대한 CCE 및/또는 ICE(2304)사이에 선택적으로 그러나 유리하게 제공될 수 있다.
예컨대, 저장 액세스 리미터(2370)는 저장장치(2321) 및 ICE 저장장치(2380)사이에 제공될 수 있다. 유사한 방식으로, 리미터(2371)는 각각의 ICE 및 CCE 또는 비디오 디스플레이 제어 유닛(2392)사이의 비디오 신호 경로에 배치될 수 있다.
일 실시예에서 리미터는 스위치들(예컨대 스위치들(2350, 2360))과 결합되는 반면에, 다른 실시예들에서 스위치들은 개별 스위치이다. 이러한 필터 또는 리미터 기능은 CCE 로직장치의 부분 또는 ICE 로직장치의 부분 또는 이들 둘다의 부분으로서 구현될 수 있다. ICE 및 CCE 엘리먼트들간의 일부 검증과 관련한 리던던시가 선택적으로 제공될 수 있다. 일반적으로, 이러한 실시예에서, 이들 필터링 또는 리미팅 동작들중 일부는 시도된 통신 및 허가된 통신 세트간의 비교를 포함할 것이다. 만일 시도된 통신이 허용되면, 시도된 통신은 통과될 것이며 만일 허용되지 않으면 통과되지 않을 것이다. 다양한 에러 메시지들 및/또는 통지들은 규칙들 또는 정책들에 따라 선택적으로 그러나 적절하게 구현될 수 있다.
제어 및 분리된 사용자 처리를 위하여 일시적으로 분리된 단일 계산 환경을 가진 실시예
도 12를 참조하면, 도 12에는 물리적 단일 계산 환경만을 제공하나 간헐적 액세스 및 일시적 또는 시간적 분리된 액세스를 사용하여 다수의 논리적 또는 가상적 계산 환경들을 지원할 수 있는 실시예가 기술되어 있다. 이러한 단일 물리적 계산 환경은 이전 실시예에서 기술된 CCE의 제어 및 하나 이상의 사용자 처리 세션 들의 분리된 처리 계산 환경을 지원할 수 있다. 시간적 간격을 가진 이러한 타입의 간헐적 액세스는 다중 물리적 계산 환경들을 가지거나 또는 지원할 수 있는 본 발명의 다른 실시예들과 함께 이용될 수 있다.
기술된 실시예에서, 단일 처리 로직 엘리먼트(2404)(예컨대, 프로세서, 마이크로프로세서, ASIC, 제어기, 마이크로제어기 또는 다른 로직 또는 처리 회로 수단과 같은)는 스위치 또는 스위칭 수단(2412)을 통해 저장장치(2406)에 통신가능하게 접속될 수 있다.
일 실시예에서, 저장장치(2406)는 분리된 계산 환경 저장장치(2410) 및 제어 계산 환경(2408)간에 분리를 제공하도록 물리적 또는 논리적으로 분할 또는 분리될 수 있으며, 여기서 예컨대 마스터 템플릿 및 보호 사용자 데이터 뿐만아니라 임의의 운영체계 및 응용 프로그램은 오염을 걱정하지 않고 저장될 수 있다. 분리된 계산 환경 저장장치는 ICE 실행동안 사용자 데이터, 운영체계 및 응용 프로그램 구성요소들, 임시 저장의 작업 사본들을 저장하기 위하여 제공된다. 공통 물리적 저장장치를 공유하면, ICE 모드에서 동작하는 동안 악성 코드의 실행이 마스터 템플릿, 오리지날 보호 사용자 데이터 파일 등의 손상과 같이 보호 데이터 저장장치에 도달하거나 또는 상기 저장장치를 오염시키거나 또는 감염시키지 않도록 하는 제어 루틴들 또는 절차들이 유리하게 수반된다.
본 발명의 다른 실시예들은 물리적인 개별 저장장치를 이용하거나, 또는 해커들이 할당된 메모리 어드레스 범위를 오버플로우하도록 시도할 수 있는 액세스와 같은 의도치 않은 액세스가 발생할 수 없도록 메모리 어드레스 또는 액세스 제어를 위하여 제공한다. 계산 환경 작업 저장장치의 분리와 관련하여 제어 및 보호 저장을 위하여 물리적인 개별 저장장치를 제공하면 이것이 완전한 물리적 분리의 가능성을 제공하기 때문에 부가적인 분리 레벨을 제공하며, 여기서 통신 라인들 또는 버스들은 오염이 발생하지 않는 두개(또는 이들은 물리적 또는 논리적으로 스위칭되거나 또는 디에이블될 수 있다)를 상호 접속하지 않는다. 다른 물리적 저장장치의 사용은 또한 제어 환경 저장 부분들용 ROM 또는 EEPROM, ICE용 RAM과 같은 다른 저장장치들, 및 임의의 큰 데이터 또는 프로그램 저장을 위한 하드 디스크와 같은 자기 저장장치를 사용할 수 있는 장점들을 선택적으로 그러나 유리하게 제공한다. 저장을 위한 ICE 또는 CCE 요건들중 하나는 다수의 다른 물리적 메모리들 및/또는 메모리 타입들을 사용할 수 있도록 한다.
스위치 또는 스위칭 수단(2412)은 계산 환경들중 선택된 환경과 입력/출력 또는 다른 주변 장치들(키보드(2418) 및 마우스(2418)와 같은(그러나, 이에 제한되지 않음))를 결합 및 분리하는 역할을 할 수 있다. 동일한 처리 하드웨어가 다른 계산 환경들에 시간적으로 할당되는 실시예들에서, 스위칭은 적정 분리도가 유지되도록 입력, 출력 또는 다른 주변장치의 사용을 인에이블하거나 또는 디스에이블하기에 바람직할 수 있다. 예컨대, 비록 키보드 및 마우스가 워드 처리 애플리케이션을 수행하는 제어 및 분리 계산 환경과 결합될 수 있을지라도, 네트워크 NIC 카드는 제어 환경이 아니라, 인터넷 네트워크 브라우징 세션을 수행하는 분리 계산 환경과 결합되거나 또는 이 분리 계산 환경으로 인에이블될 수 있다.
일 실시예에서, 리셋 모드는 부트를 초기화하거나 또는 공지된 초기 상태로 재시작되도록 제공된다. 이러한 초기 상태에 대한 운영체계 및 응용 프로그램들은 리셋 및 재로드가 용이하게 수행될 수 있는 형태로 제어 환경 저장장치(2408)의 비휘발성 메모리에 저장된다. 일 실시예에서, 이는 고속 ROM에 저장된다. 이러한 모드는 하나 이상의 새로운 파일들 또는 데이터 세트들의 생성 또는 이러한 파일들 또는 데이터 세트들의 수정된 또는 새로운 버전 또는 버전들의 생성시에 분리 계산 환경이 정상적으로 완료하는 처리 동작을 수행하도록 한다. 일 실시예에서, 리셋 모드 절차는 임의의 이러한 새로운 또는 수정된 파일들 또는 데이터 세트들에 대한 특정 저장 범위로 보이거나 또는 규정된 규칙들 또는 정책들에 따라 보호 저장장치에 파일들을 추가하거나 또는 보호 저장장치의 파일들을 교체하도록 보호 저장장치에 복사한다. 리셋 모드 절차가 단순하게 파일들 또는 데이터 세트들을 복사하나 이들을 개방 또는 실행하지 않기 때문에, 기술된 다른 실시예들에서 보호가 유지된다.
다른 실시예에서, 하드웨어 자원들이 공유되는 시간 분리는 중간 로직장치 또는 프로세서(2402) 상태를 저장 및 복원함으로서 수행된다. 프로세서(2404) 및 임의의 다른 필요한 상태 정보 또는 데이터를 저장함으로서, 제어 프로세스와 같은 하나의 프로세스는 인터럽트되어 새로이 분리된 계산 프로세스가 (완전히 또는 부분적으로) 수행될 수 있으며, 제어 프로세서 상태는 인터럽트 및 재시작될때 저장 및 복원된다. 다중 처리 세션들은 최소 물리적 하드웨어 세트를 사용하여 상기와 같은 방식으로 수행될 수 있다. 다중 프로세스들이 규정된 기간동안 조절될 수 있도록 프로세서 상태를 저장 및 복원하는 구조들 및 방법들은 때때로 동시 처리 또 는 다중 작업(multi-tasking)으로 언급된다. 이들 공지된 구조들 또는 방법들은 더 상세히 설명하지 않을 것이다. 그러나, 본 발명과 관련하여, 레지스터들 또는 다른 메모리 저장 장치는 분리가 유지되고 악성 코드가 분리를 회피할 수 없도록 다수의 계산 환경들에 대한 프로세서(2404) 상태를 개별적으로 저장하기 위하여 제공될 수 있다는 것에 유의해야 한다. 따라서, 프로세서의 시간적으로 할당된 각각의 개별 세그먼트(예컨대 칩들, RAM, 저장장치, 또는 이들 또는 다른 구성요소들 또는 세그먼트들의 일부 결합과 같은)는 리셋되거나 또는 개별적으로 , 일부 그룹으로 또는 집합적으로 치료될 수 있다.
일 실시예에서, 개별 리셋 로직장치(2450)는 다른 계산 환경들사이를 전이시키고 하나의 프로세스가 인터럽트될때 상태를 저장하며 프로세스가 재시작될때 상기 상태를 복원하는데 필요한 분리 제어를 제공하는 하드웨어 또는 소프트웨어 리셋 버튼 또는 스위치(2451)와 결합된다. 리셋 로직장치는 하드-와이어링되거나 또는 프로그램가능할 수 있으며, 다른 장치(2400)의 세팅 및 상태를 저장 및 복원하기 위하여 프로세서(2404) 및 스위치(2412)에 신호들을 생성한다. 장치 구성요소들에 대한 제어 라인들은 필요에 따라 상태 저장 레지스터들(2453), 저장장치(2406), 프로세서(2404), 스위치(2412)사이에 제공된다. 일부 실시예에서, 분리 계산 환경에서의 프로세스는 일반적으로 단지 제어 프로세스만 중지될 수 있도록 완료될 수 있다. 다른 실시예들에서, 임의의 프로세스가 중지되어 재시작될 수 있다.
이러한 타입의 일부 실시예들이 셀룰라 전화 등과 같은 소위 박형 계산 장치 에 특별하게 적용할 수 있다는 것이 인식될 것이다. 이러한 장치들에서는 장치의 단일 사용동안 전화 통화와 연관된 음성 처리를 조절하고 전자 이미지 또는 화상을 수신하거나 또는 달력 항목 또는 전화번호를 찾을 필요성이 존재할 수 있다. 최소 하드웨어를 사용하여 이러한 타입의 다중 프로세스들을 용이하게 수행함으로서, 장치의 비용이 감소될 수 있을 뿐만아니라 장치를 소형화시킬 수 있고 전력 소모 및 열 발생을 감소시킬 수 있다.
제어 및 분리 사용자 처리를 위한 시간적으로 공유된 단일 계산 환경을 가진 대안 실시예
도 13에는 본 발명의 양상들에 따른 아키텍처 및 시스템(2500)에 대한 일반화된 구성이 기술되어 있다. 이러한 실시예에서, 제 1계산 환경(2501)은 데스크탑 환경, 제어환경, 기능들 및/또는 환경들의 소거/재포맷화, 스위치 또는 스위치들, 스위치 구성(들), 보호 저장장치(들), 네트워크 인터페이스들 및 접속부들 또는 카드들, 분리 레벨을 제공하거나 또는 보존하기 위하여 미리 결정되거나 또는 동적으로 결정된 능력 제한 통신 기능을 가진 ASIC들, 비디오 처리 및/또는 비디오 제어, 마우스 및 키보드 입력, 입력/출력 접속부들, 주변장치 접속 및 제어, 및 필요한 경우에 이들의 결합의 기능들을 포함하거나 또는 지원하도록 구성될 수 있다. 이러한 제 1 계산 환경(2501)은 스위치(2503)(그 자체가 제 1 계산 환경내에서 선택적으로 구성 또는 구현될 수 있음)를 통해 제 2 또는 사용자 계산 환경(2502)에 접속된다. 이러한 제 2 사용자 계산 환경은 본 발명의 용이한 실시예들에 기술된 것과 동일한 분리를 가지며, 이에 따라 바이러스, 해커, 사이버-테러, 및 우발적 또 는 의도적 공격들 또는 악성 컴퓨터 프로그램 코드에 의한 오염에 동일한 면역성을 제공한다.
전형적으로, 사용자 계산 환경(2502)은 사용자 계산에 의하여 또는 제 1 제어 계산 환경(2501)을 통해 처리되어 디스플레이 장치에 의하여 디스플레이될 수 있는 비디오 출력 신호를 생성할 것이다. 그러나, 본 발명의 일부 실시예들에서 모든 계산 환경들은 개별 계산 환경이 생성되어야 하는 사용자의 인식 또는 비디오 출력 신호를 필요로하지 않는다는 것이 인식될 것이다. 예컨대, 임의의 셀룰라 전화들에서, 음성 신호들을 처리 또는 코딩 및 디코딩하기 위하여 생성된 계산 환경은 임의의 비디오 출력을 필요로하지 않고 단순히 필요한 신호들을 생성할 수 있다. 이는 단순히 출력이 데이터 세트인 상황의 일예이며, 이러한 예에서 데이터 세트는 생성되어 실시간 또는 거의 실시간으로 사용되고 저장되지 않는다. 임의의 계산 환경의 입력들 및 출력이 처리 작업에 따라 다르다는 것이 본 명세서에 기술된 상세한 설명으로부터 명백할 것이다.
스위치 또는 스위칭 수단(2503)은 제어, 인터페이스, 보호 저장, 스위칭 및 시스템(2500)을 동작시키기 위한 다른 기능들을 조절하는 제 1 계산 환경(2501) 및 사용자 계산 환경(2502)사이에서 데이터(2506)(예컨대 사용자 파일 또는 문서의 사본과 같은)를 결합 또는 분리할 수 있다. 통신 라인 및 선택적 ASIC 또는 다른 로직(logic) 회로 또는 로직 수단을 포함할 수 있는 추가의 선택적 제한 통신 링크(2508)는 본 명세서 전반에 개시된 파일 저장, 계산 환경(computing environment) 소거, 메모리 소거, 저장 소거, 윈도우 및/또는 오브젯트(object) 좌표 및 식별 통 신, 마우스 좌표 통신 등과 같은 동작들을 지지하도록 제공될 수 있다. 이들 스위칭은 선택적이며 통신 경로는 지시될 수 있고 신호들(명령, 데이터, 등)의 임의의 조합이 결합 및 멀티플렉싱되거나 또는 제한된 세트의 통신 링크에 대해 통신될 수 있다. 이러한 통신 링크는 와이어들, 버스들, 광학 링크들, 또는 업계에 공지된 다른 접속 수단일 수 있다.
본 명세서에 개시되는 또다른 실시예로서, 통신 경로를 통과하는 데이터 또는 비트의 형태, 패턴, 또는 개수 또는 양을 필터링 또는 제한하기 위해 임의의 통신 경로에 필터들 또는 리미터들(2510)이 제공될 수 있다. 또다른 선택적으로 특정화된 전용 통신 경로 또는 링크(2526)가 다른 보편화된 공유가능 통신 경로 또는 링크로서 제공될 수 있다.
PC 카드버스 또는 인터페이스 카드 실시예 및 종래의 컴퓨터
본 발명의 시스템, 아키텍쳐, 및 방법에 대해 개시된 몇가지 실시예로, 본 발명자들은 ISA 버스, PCI, 버스, USB 버스, SCSI 버스, PC 카드 버스 또는 다른 버스, 또는 요구되는 성능 레벨에 적합한 대역폭(bandwidth)을 제공하는 인터페이스를 통해 부착된 카드 또는 다른 회로에 적합한 본 발명의 시스템, 아키텍쳐, 및 방법에 대해 논의 했다. 유사한 방식으로 본 발명은 예를 들어, ISA, PCI, SCSI, 파이어웨어(Firewire), USB 또는 다른 버스들 또는 접속으로, 시스템 또는 주변 버스에 개조가능하게(retrofittable) 플러깅될 수 있는 임의의 카드, 칩 또는 칩 세트와 함께 사용될 수 있다.
PC 카드 구현은 노트북 컴퓨터 및 노트북 컴퓨터를 완전히 교체하지 않고 보안 레벨 및 안티-바이러스 및 안티-핵커(hacker) 성능을 제공하도록 개조될 수 있는 PC 카드 슬롯 또는 케이블을 갖춘 다른 정보 장치(appliance)를 허용함으로써 특히 유용한다.
도 14를 참조로, 호스트 컴퓨터 프로세서 및 메인 프로세서 메모리와 결합되는 PC 카드의 엘리먼트가 설명된다. 전형적인 PC 카드 인터페이스에서, PC 카드는 업계에 공지된 바와 같이 카드버스 브리지에 PCI를 통해 컴퓨터의 PCI 로컬 버스를 결합시킨다. 결국 PCI 로컬 버스는 호스트-대-PCI 브리지를 통해 호스트 컴퓨터 버스에 결합된다. 이러한 호스트 버스는 호스트 컴퓨터 프로세서 또는 CPU와 결합되는 동일한 버스이다. 호스트 컴퓨터의 모든 주변부 및 호스트 프로세서로의 액세스는 본 발명의 시스템, 아키텍쳐 및 방법의 장점을 가지는 PC 카드 기반 보조 처리 시스템을 개조하는(retrofit) 방안을 제공한다.
도 14를 참조로, 본 발명의 PC 카드 버전의 개략도가 도시된다. PC 카드가 바람직하게 사용되지만, 본 발명은 다른 상이한 디바이스에서 구현될 수 있으며 노트북 컴퓨터 또는 현존하는 또는 개발될 다른 인터페이스에 의한 다른 정보 장치와 접속 또는 결합될 수 있다.
PC 카드버스는 노트북 컴퓨터와 본 발명의 시스템의 회로를 결합시키는데 요구되는 모든 신호를 제공한다. 일 실시예에서, 호스트 컴퓨터의 회로는 유저(User) 인터페이스 계산 환경을 제공하는데 사용되나, 또다른 실시예에서는, 처리를 위해 PC 카드의 프로세서만이 이용된다. 일 실시예에서 호스트 컴퓨터의 하드 디스크 드라이브가 이용되지만 또다른 실시예에서는 케이블에 의해 PC 카드와 결합된 또는 PC 카드 상의 고체 상태 메모리가 이용된다. 바람직하게 컴퓨터가 다중 PC 카드 슬롯 또는 커넥터들(connectors)을 갖는 경우, 하나의 슬롯이 본 발명의 프로세서 시스템을 보유한 PC 카드에 장착 및 접속될 수 있고, 제 2 카드는 하드 디스크, 광학적, 고체 상태를 포함하는 메모리 스토어 또는 다른 메모리 저장 장치 또는 이들의 조합을 보유할 수 있다. 또한 프로세서 PC 카드 및 PC 기반 저장 디바이스 상에 저장 장치(storage)가 제공될 수 있다.
도 15는 브리지 회로가 PC 로컬 버스(2605)에 결합됨으로써 PC 카드(2602)를 PC-대-카드버스 브리지(2604)를 결합시키는 일반화된 아키텍쳐(2600)를 나타낸다. 이러한 PCI 로컬 버스는 차례로 호스트 버스(2612) 및 호스트 프로세서(2614)에 액세스를 제공하는 호스트-PCI 브리지(2610)에 결합된다. 또한 DRAM과 같은 메인 메모리(2616)가 포스트-PCI 브리지(2610)를 경유하여 호스트 버스(2612)와 PCI 로컬 버스(2605)에 결합된다. 본 실시예에서 PC 카드는 본 발명의 계산 시스템을 포함하는 반면 호스트 프로세서(2614)는 종래의 노트북 또는 데스크탑 컴퓨터에 장착된 프로세서이다. ISA 또는 PCI 카드에 대해, 이들은 업계에 공지된 것처럼 ISA 로컬 버스 또는 ISA 버스에 직접 접속될 수 있다. PC 카드(2602)는 바람직하게, 저장 장치(storage), 네트워크 상호접속 카드(NIC), 모뎀, 그래픽 프로세서, 무선 통신, 및 전체 컴퓨터 시스템의 다른 장치 및 주변장치의 연산 특성을 포함할 수 있다.
선택적으로 또는 부가적으로, PC 카드(2602)는 카드에 이러한 장치들을 결합시키는 커넥터(connector)를 포함할 수 있다. 또다른 실시예에서, 제 2 PC 카드 (2602)는 저장 장치, 통신, 비디오 처리, 또는 다른 특징들을 강화시키기 위해 제공되며 본 발명의 처리 및 계산 환경을 포함하는 PC 카드(또는 데스트탑 형태 컴퓨터에 있는 카드내의 또다른 플러그)와 상호작용할 수 있다. 개조가능한(retrofittable) 또는 플러깅가능한 패키지에 본 발명의 계산 및 처리 환경을 제공하는 능력은 핸드폰, 오가나이저, 개인 휴대용 정보 단말기(Personal Data Assistant), 위성 전화기, 장치(appliance), 엔터테인먼트 시스템, 또는 플러그-인 카드와 같은 다양한 핸드-헬드(hand-held) 및 휴대용 장치, 또는 외부 인터페이스 능력이 있는 다른 장치 또는 시스템으로 확장될 수 있다.
도 16은 제한되지는 않지만, 메모리 엘리먼트(RAM 또는 ROM)(2702), 임의의 형태의 저장 장치(마그네틱 하드 디스크 드라이브 또는 다른 저장 시스템 또는 장치(2706), 고체 상태 메모리(2708), 광학 저장 장치(2709) 등), 비디오 처리 엘리먼트(2704), 신호 처리 엘리먼트(2711), 이더넷(Ethernet) 인터페이스(2712), 네트워크 인터페이스 카드(2713) 또는 성능, 모뎀(2714), 무선 인터페이스(2715), 프로세서(2705), 스위치 또는 스위칭 엘리먼트(2730), 통신 경로, 와이어 및/또는 버스(2720), ASICS(2717) 또는 본 발명과 관련되어 개시된 다른 부품들과 같이, 개별적으로 동적으로 구성가능한 시스템 부품들을 제공하는 본 발명의 실시예(2700)를 나타낸다. 상호접속 성능만이 상기 도면에 도시되며 추가의 아키텍쳐, 토포로지, 시스템 및 방법적 설명을 제공하는 앞서 개시되고 설명된 임의의 형태의 한 실시예에 적용될 수 있다. 다이나믹 구성 또는 재구성은 동작하는 동안(다른 처리 동작이 진행중일 경우에도)의 초기화, 또는 시스템 리셋에 따라 이루어진다. 일부 실 시예에서, 할당(allocation) 테이블 또는 데이터 구조(2725)는 상이한 계산 환경에 대한 상이한 부품 및 엘리먼트의 할당을 식별하여 저장한다.
일부 또는 이들 부품들 모두의 다이나믹한 구성가능성(configurability)은 본 발명의 아키텍쳐, 시스템 및 방법의 다른 실시예들과 관련하여 이미 개시되었다. 예를 들어, 계산 환경 및 상기 계산의 부품들은 모듈러일 수 있으며, 결함 부품 또는 계산 환경을 포함하는 부품 세트가 작업 부품으로 교체 또는 수리될 때까지, 특정 결함 부품 및/또는 CSCE 또는 CCE 계산 환경과 같은 계산 환경이 제어 엔티티(entity)에 의한 서비스를 채택할 수 있도록, 동적으로 구성된다. 또한, 본 발명의 일부 실시예들은 동적으로 할당가능하고 구성가능한 중앙 처리 장치(CPU), 마이크로프로세서, 마이크로-제어기, ASIC, 또는 앞서 개시된 형태의 계산 또는 처리 환경을 형성하는 물리적 구조를 제공하는 소정의 조합을 이용할 수 있다. 또한 이러한 다이나믹 구성은 상이한 특성을 가지는 부품 또는 엘리먼트가 시스템내에서 물리적으로 이용가능할 경우 특정 처리 업무에 맞게 부품 또는 엘리먼트의 특성을 선택하는데 있어 유연성(flexibility)을 제공한다. 일부 예에서 처리 또는 계산 업무의 복잡성은 매우 빠른 프로세서 또는 대형 메모리에 대한 요구조건 또는 다른 예에서 적은 처리 전력 또는 속도 및 최소량의 메모리를 요구하는 적절한 모니터링 업무에 대한 전력 소모를 최소화시키는 요구조건과 같이 원하는 계산 환경을 지지하는 물리적 엘리먼트에서 나타난다. 이러한 선택 및 구성은 유저 제어하에서, 특히 소정의 예정된 또는 동적으로 결정된 룰 또는 원칙에 따른 계산 시스템의 자동 제어하에서 그리고 선택적이나 소정의 측정된 계산 시스템의 물리적 또는 논리적 상태에 따른, 환경 조건, 처리 리퀘스트 및 복잡성, 애플리케이션 프로그램 크기 및 데이터 설정 크기에 따라 바람직할 수 있게 호출된다. 본 발명의 또다른 실시예는 컴퓨터의 제조 시기에는 물리적으로 접속되지 않고 심지어 컴퓨터 시스템 하드웨어내에 근접하게 위치되지 않는 계산 엘리먼트로서 조립될 수 있는 개별 엘리먼트(CPU 및 저장 장치와 같은)의 다이나믹 할당을 제공한다. 일부 실시예에서, 다이나믹 하당 및 구성은 앞서 개시된 스위칭 시스템을 통해 외부 포트를 경유하여 구성되는 것처럼 외부 부품 또는 엘리먼트를 수반하고 이용한다. 일부 실시예에서, 제어 계산 환경(CSCE, CCE 또는 본 명세서에 개시된 다른 제어 계산 환경)은 주변 디바이스, 입/출력 디바이스, 및/또는 저장 디바이스에 대해 설명된 것처럼 스위치 또는 스위칭 시스템과 상호작용 및/또는 제어할 수 있어 경로 통신, 계산 시스템 엘리먼트 스위치, 및 의도된 동작을 제공하는 링크 및 접속부를 장착할 수 있다.
도 16은 각각의 부품이 와이어, 와이어 세트, 버스, 또는 적절한 전기적(또는 광학적) 특성 및 의도된 통신을 지지하는 시그널링 프로토콜을 가지는 다른 통신 링크에 의해 다른 부품들과 접속되는, 단일의 개략적 "라인들"에 접속되는 상이한 형태의 부품들을 나타낸다. 이러한 적절한 특성은 종래 기술에 공지되어 있으며 본 명세서에서는 상세히 설명하지 않는다. 본 발명의 일부 실시예들은 앞서 개시된 모든 부품 및 엘리먼트들의 다이나믹 구성을 제공하지만(다른것들은 특정하게 나열되지 않음), 다른 실시예는 동적으로 또는 고정적으로 구성된 계산 환경에 상이한 데이터 저장 장치를 동적으로 구성하는 능력과 같은 보다 제한된 다이나믹한 구성가능성을 제공한다.
도 17은 다수의 계산 환경을 나타내는 실시예를 도시하며, 각각의 계산 환경은 스위치 "X"를 통해 상이한 신호 라인 또는 버스에 계산 환경 부품을 접속하는 소정 세트의 와이어 부품, 버스 또는 다른 인터페이스를 포함한다. 또한 다수의 데이터 저장 서브시스템들은 상이한 계산 환경에 의해 사용되는 전체 계산 시스템에 동적으로 할당될 수 있는 것으로 도시된다(다수의 물리적 디바이스 자체에 포함되거나 또는 상이한 로직 부분을 가질 수 있다). 일부 실시예에서, 각각의 계산 환경은 소정의 데이터 저장 부품들을 포함할 수 있고 동적으로 할당가능하거나 또는 스위칭가능한 데이터 저장 장치는 저장 장치 또는 처리 업무(예를 들어 일시적 저장 포함)에 대해 요구되는 저장 능력이 한정된 계산 환경내에서 이용가능한 저장량을 초과할 때 추가의 저장 능력을 나타낸다.
도 18은 본 발명의 계산 환경(2801)이 본 발명의 계산 시스템 또는 전체 계산 환경(2801) 내에서 분리된 계산 환경의(ICE's) 분리된 "세트들", 및 비디오 통신 신호 링크(2806)을 통해 레이어드(layered) 비디오의 조합된 다중 개별 "세트들"과 키보드 통신 라인 또는 링크(2807)(전기적 케이블 또는 무선 링크) 및 마우스 통신 라인 또는 링크(2808)을 통해 다수의 키보드들(2803) 및 마우스들(2804)(또는 다른 입력 또는 포인팅 디바이스)을 어떻게 결합시킬 수 있는지를 나타낸다. 출력은 단일 제어기 또는 제어 환경의 제어하에서 보다는, 서로 분리되고 독립적으로 수행되는 독립적 '노드들'(2802-1, .... 2802-N)을 형성하기 위해 단일 모니터 또는 개별 모니터(2805)로 전송될 수 있다.
동적으로 구성된 다수의 가상 계산 또는 처리 환경을 포함하는 실시예
(ⅰ) 유저 인터페이스, 제어 & 스위칭, 및 보호된 저장 장치 계산 환경의 펑크션이 조합되고(도 9 및 도 10의 실시예 및 이들에 대한 설명 참조); (ⅱ) 시스템 부품들이 동적으로 구성가능하고(도 10 의 실시예 및 이들에 대한 설명 참조); (ⅲ) 제어 및 분리된(isolated) 유저 처리에 대한 단일의 일시적 분리된 계산 환경이 있고(도 12의 실시예 및 이들에 대한 설명 참조); (ⅳ) 제어 및 분리된 유저 처리에 대한 단일의 일시적 공유된 계산 환경이 있고(도 13의 실시예 및 이들에 대한 설명 참조); (ⅴ) PC 카드버스 또는 다른 인터페이스 카드 실시예 및 종래의 컴퓨터가 있고(도 14 및 도 15 및 이들에 대한 설명 참조); (ⅵ) 시스템이 계산 업무 또는 다른 베이시스(basis)에 따라 계산 환경을 한정하는 개별적으로 동적으로 구성가능한 시스템 부품을 포함하며; (ⅶ) 각각 소정 세트의 부품 및 와이어, 버스 또는 스위치 또는 멀티플렉서(즉, 조절된 스위치 세트)를 경유하여 상이한 신호 라인 또는 버스와 계산 환경 부품을 접속하는 다른 인터페이스를 가지는 다수의 계산 환경이 한정되거나 구성되는, 실시예들을 포함하는, 본 발명의 다양한 실시예들이 개시된다. 본 발명의 다른 실시예들 또한 개시되며 이들 리스트는 본 명세서에서 모든 실시예를 식별하기 위한 것이기 보다는 다른 실시예들을 구별하는 베이시스를 설정하기 위한 것으로, 가상 처리 공간 및 가상 처리 환경으로 간주된다.
하기 개시되는 것처럼, 본 실시예는 다중-치수의 가상 처리 공간에서 임의의 치수 세트로 일시적 멀티플렉싱(시간 또는 일시적 치수)의 확대와 함께 (선택, 할 당 및 스위칭의 면들을 포함하는) 물리적 시스템 부품의 다이나믹 구성을 통합한다. 또한 실시예들은 PCI 카드 슬롯 도터 보드(card slot daughter boards)와 같이 다른 플러그-인 카드 또는 모듈을 포함하는 실시예들로 PC 카드 버스 또는 다른 인터페이스의 개념 및 다이나믹 구성가능성, 마더-보드 칩 세트 교체 또는 추가, 및 (인텔, 어드밴스드 마이크로 디바이스, 모토롤라 등의 형태와 같은) 종래의 마이크로프로세서의 프로세서 및 머더보드로 플러깅(또는 정합)될 수 있는 본 발명의 인터페이스와 같은 종래의 부품들 사이에 삽입될 수 있는 인터페이스의 개념으로 확대될 수도 있다. 또한, 플러그-인 카드 및 인터페이스의 개념이 조합될 수 있다. 가상 처리 또는 계산 공간 및 가상 처리 또는 계산 환경의 실시예가 보다 상세히 설명된다.
다수의 멀티플렉시블 가상 처리 환경들(VPEs)을 포함하는 다중-치수 가상 처리 공간(VPS)의 실시예
본 실시예 및 앞서 개시된 실시예들은 바이러스, 핵커 및 각각의 프로세스가 가상 처리 공간이 존재하거나 또는 존재할 수 있는 프로세스를 서로 분리상태로 유지되는 다른 악성 코드 유해 환경을 제공한다. 외부 및 잠재적으로 오염된 소스로부터의 프로세스 입력은 이전의 프로세스에 의해 유도될 수 있는 임의의 오염이 제거될 수 있도록, 새로운 프로세스를 허용하기 이전에 인지하고 신뢰하고 있는 상태로 정화, 해체, 또는 리셋되는 가상 처리 공간 내에서 분리된 처리 환경으로 입력 분리기(input isolator)를 통해 처리된다. 다음 처리 환경은 수신된 외부 프로세 스를 처리 또는 실행하고 완료시 출력 분리기를 통해, 상기 결과를 수신하도록 구성된 다른 프로세서 또는 요청 프로세서와 같은 외부 세계로 프로세스 결과 또는 출력을 보낸다. 입력 및 출력 분리기는 동일한 물리적 분리기이거나 또는 상이할 수 있으며, 상이한 분리기 사용의 장점은 이들을 조절할 수 있고 진입하는 프로세스가 출력(outgoing) 프로세스와 부분적으로 일시적 중첩된다는 것이다. 처리 환경이 바이러스 또는 다른 유해 또는 손상 코드(심지어 데이터로 위장된 코드)의 실행 또는 실행 시도와 같은 처리 동안 문제점을 검출하는 경우, 프로세스는 외부 세계와 통신하지 않고 외부 프로세스 결과를 플러쉬(flush)할 수 있다. 그러나, 바이러스 또는 다른 유해 코드가 실행될 경우라도, 처리 환경은 정화, 제거, 리셋 또는 인지하고 신뢰된 상태로 다시 복구된다. 일 실시예에서, 인지하고 신뢰된 상태는 신뢰된 템플릿(template) 또는 처리 업무 동안 처리 환경으로부터 분리 상태를 유지하는 다른 보호된 저장 장치로로부터 선택적으로 재저장된다(내장형 템플릿을 포함하는 본 발명의 실시예는 상기 제거 또는 재저장이 필요없다). 신뢰된 템플릿은 동작 시스템, 애플리케이션 프로그램, 시스템 파라미터 등을 재장착하는 소스이다. 일 실시예에서, 분리(isolation)는 판독 전용 메모리에서 신뢰된 템플릿을 제공함으로써 제공된다. 일 실시예에서, 입력으로부터 프로세서로 그리고 프로세서로부터 출력으로의 분리상태는 단지 비트 또는 비트 스트림 복사 또는 전송 동작만을 수행하며 바이러스성 또는 다른 유해 코드를 실행할 수 없거나 또는 다른 동작을 수행하도록 변형될 수 없는 하드웨어 회로에 의해 제공된다. 2개의 처리 환경 및 2개의 외부 프로세스에 대한 처리 환경 분리상태 방식의 실시예가 도 19에 도시된다.
멀티-처리 환경 분리의 양상들이 개시되며, 단일 처리 또는 계산 환경, 멀티-계산 환경, 및 일시적으로 멀티플렉싱된 계산 환경에 대한 또다른 실시예의 설명은 이미 개시되었다. 분리상태를 어떻게 유지하는지에 대한 설명은 본 실시예에서 적용가능하며, 적어도 이들 특징 중 일부를 통합하는 다중-치수 처리 공간에 대해 논의된다.
도 20을 참조로, 적어도 하나, 그러나 통상적으로 다수의 또는 다중의 프로세스를 실행하거나 처리하는 다차원 가상 처리 공간의 실시예가 도시된다. 따라서 가상 처리 공간은 1차원, 2차원, 3차원, 4차원 또는 N-차원일 수 있으며, 여기서 N은 임의의 양의 정수이다. 원칙적으로 N은 제한되지 않고 임의의 양의 정수일 수 있지만, 하나 또는 다수의 물리적 하드웨어 엘리먼트(예를 들어 로직 회로, 마이크로프로세서, 마이크로제어기, 메모리 엘리먼트 및 처리 또는 계산 하드웨어 등)상에서 제한된 시간 주기(또는 다른 동작적 제한) 내에서 다수의 가상 처리 환경을 구성하고, 할당하고, 제어하고 및/또는 작동시키는 실행가능성으로 인해, 실제로, 가상 처리 환경의 수는 예를 들어 1 내지 10000 사이의 임의의 특정한 정수와 같이 1000 미만의 수, 또는 100 미만, 또는 10 미만, 또는 2, 3, 4, 5, 6, 7, 8, 9 또는 10 이하의 수로 제한될 수 있다.
3차원 이상의 가상 처리 공간의 구조 및 동작을 설명하는데 관련된 복잡성 때문에, 본 명세서에서는 3차원의 예시적인 처리 공간에 대해 설명한다. 본 명세서에서 사용되는 "가상(virtual)"이란 용어는 다중-치수 처리 공간이 그 각각에 따 라 1차원 또는 3차원 중 하나로 논의되는 단일의 물리적 프로세서내에서 형성될 수 있기 때문에, 적어도 부분적으로 사용된다. 심지어 프로세서 이벤트의 시간-기준 또는 일시적 시퀀스가 고려되는 경우라도, 차원(dimensionality)은 2차원(프로세서 공간 치스 플러스 시간) 또는 4 차원(3개의 프로세서 공간 치수 플러스 시간)중 하나로서 고려될 수 있다. 다수의 프로세서가 구성될 때, 차원 추가로 연장 또는 멀티플렉싱될 수 있다. 사실 본 발명의 구조, 디바이스 및 방법은 N-차원 가상 처리 공간이 물리적 프로세서의 N 수 및 시간 보다 작게 생성되도록 보다 큰 차원을 제공한다.
도 20의 실시예는 "프로세서 수"(또는 프로세서 수), "처리 시간 세그먼트"(하나 또는 프로세서 클록 사이클 또는 다른 시간 간격의 수집으로 해석될 수 있다), 및 "프로세스 타입"(일 실시예에서 물리적 프로세서 중 하나 내에서 자원 또는 자원 세트와 관련되어 해석될 수 있다)의 치수들을 포함한다. 도 20에 개시된 프로세서 타입은 제한되지 않지만, 예를 들어, 제한, 플로핑-포인트 동작, 그래픽 렌더링 동작, 통신 동작, 및 계산, 정보 처리, 신호 처리, 통신, 게임(gaming), 애니메이션, 음성 처리, 디지털 신호 처리, 및 임의의 다른 명령, 코드, 또는 계산 또는 정보 처리 기술에서 공지된 동작 형태와 관련된 상이한 동작 형태의 임의의 다른 미레드(mired)를 포함한다.
특정화된 프로세서들은 통합되는 종래의 프로세서의 엘리먼트들을 구별하는 본 발명에 따라 제공되거나 또는 특정화된 프로세서들은 하나의 형태의 처리 동작을 위해 사용되지 않는 엘리먼트들이 공통 또는 부분적으로 중첩되는 시간 주기 동 안 다른 동작들에 대해 이용가능하도록, 프로세서 엘리먼트들을 개별적으로 액세스하거나 어드레스가능하게 제공될 수 있다. 또한 본 발명은 프로세서 엘리먼트의 복사 또는 다수의 인스턴시에이션(instantiation)이 프로세서내의 모든 구조무롸 중복되지 않도록 단일 프로세서내에 제공되도록 제공된다. 도 20의 실시예에서, 5개의 가상 처리 환경은 예시적인 가상 처리 환경 및 멀티플렉싱된 분리상태 또는 개별 파라미터를 나타내는 하기의 표 1에 개시된 것처럼 가상 제품 공간내에 한정된다.
가상 처리 공간에 의해 제공되는 예는 로직 회로가 전기적 시스템내의 순차적 회로에 제공되도록 입력 신호를 선택할 경우처럼, 멀티플렉서의 단일 출력으로서 멀티플렉서의 다수의 입력중 하나를 선택하는데 사용되는 멀티플렉싱 동작으로 분석될 수 있다.
표 1. 예시적인 가상 처리 환경들 및 멀티플렉싱된 분리 또는 분리 파라미터
프로세스 다른 프로세스들과의 분리 및 분리를 제공하는 멀티플렉싱된 파라미터
프로세스 또는 수 프로세스/명령 타입 시간 세그먼트 기타
1 1 플로팅 포인트 동작 50 ...
2 1 플로팅 포인트 동작 70 ...
3 1 통신 동작 50 ...
4 2 플로팅 포인트 동작 50 ...
5 1 그래픽 렌더링 동작 100 ...
본 발명의 시스템, 디바이스 및 방법에서, 외부 프로세서(또는 그를 한정하는 지시, 명령, 및 데이터)는 가상 프로세서 공간 내에서 (가상 처리 환경으로 간주되는) 특정 자원 세트로 선택적으로 라우팅 또는 멀티프렉싱된다. 가상 처리 환경은 물리적 또는 논리적 스위치, 스위칭 엘리먼트 세트, 또는 스위치들 똔 스위칭 엘리먼트 세트(예를 들어, 멀티플렉서 또는 멀티플렉싱 세트)로 한정될 수 있다.
도 20은 N-차원 가상 처리 공간(2950)이 VPE1(2951), VPE2(2952), VPE3(2953) 및 VPE4(2954)를 포함하는 다수의 가상 처리 또는 계산 환경을 한정하는 실시예를 나타낸다. 이들 가상 처리 또는 계산 환경의 일부는 물리적 처리 또는 계산 환경에 대응할 수도 있다. 가상 처리 공간(VPS) 및 가상 프로세서 환경(VPE) 구성, 할당, 및 제어 유니트(CACU)(2960)는 예를 들어, 프로세서(들), 메모리, 캐쉬, I/O 비다이스, 키보드, 디스플레이, CD ROM, 및 요구되는 임의의 다른 부품들 또는 주변기기와 같은 물리적 처리 자원을 구성할 수 있다. 본 실시예에서, VPS(2950)는 물리적 프로세서 식별 치수 축(2955), 처리 시간 세그먼트 치수 축(2956), 및 명령 또는 프로세스 타입 치수 축(2957)에 따라 한정된다. 본 실시예에서, 식별된 명령 또는 프로세스 타입은 플로팅-포인트 타입, 그래픽 렌더링 타입, 및 통신 타입이다. 다른 타입들도 식별될 수 있다. 일 실시예에서, 명령 또는 프로세스 타입이 식별되고 처리 시스템 자원의 다양한 면들에 이용될 수 있다. 또한, 도 16 및 도 17에서 동적으로 구성가능하고 스위치가능한 부품들과 관련하여 개시된 것처럼, 처리 시스템은 요구되는 구성가능한 자원 세트를 제공할 수 있으며, 이들 물리적 엘리먼트들은 특정 프로세스에 할당될 수 있다. 특정 가상 처리 실시예를 한정하는 능력은 물리적 처리 자원에 따라 제한될 수 있으며, 원하는 가상(또는 물리적) 처리 또는 계산 환경을 지지하는 물리적 처리 공간을 제한하는 능력은 물리적 자원 존재와 관련될 수 있다. 물리적 자원 확장과 같은 변형은 VPS의 차수의 확장을 허용한다. 리던던트 자원이 특정 구성에 제공되는 경우, VPS(2950) 는 특정 VPE의 복사 또는 다수의 인스턴시에이션을 제공할 수 있다.
또한 CACU(2960)이 인식된 정화 및 펑크션 버전 및 임의의 동작 시스템, 프로그램 애플리케이션, 드라이버 소프트웨어, 시스템 또는 프로그램 파라미터 및 데이터, 또는 특정 처리 동작을 조절하는데 요구되거나 요구될 수 있는 다른 소프트웨어 엘리먼트를 저장 또는 생성하는 신뢰된 템플릿 소스(2958)와 통신되어 제어된다. 템플릿을 변경 또는 오염으로부터 보호하고 처리 코드의 신뢰된 소스로서 사용하는 방식 및 명령은 본 명세서 및 참조 문헌으로서 통합된 관련 특허 출원의 명세서 전반에 개시되어 여기서는 반복하지 않는다.
분리된 저장 장치 할당 제어 로직(2962)은 특정 분리된 저장 장치 고정(isolated storage lock)(ISL)(2943)(예를 들어, ISL1(2944-1), ISL2(2944-2),..., PK(2942-K))를 프로세스 유니트(2941)(프로세서 입력 P1(2942-1), P2(2942-2),....,PK(2942-K))에 접속시킬 수 있다. 분리된 저장 장치 할당 제어기(2962)는 가능 접속부의 웨브(web) 또는 패브릭의 접속을 전환시키도록 동작하여, 특정 프로세스는 이용가능한 ISL(2943)에 배타적으로 라우팅되고 접속된다. 이들 ISL은 물리적 자원와 접속되는 적절한 가상 처리 환경에 접속된다. 입력 분리(또는 입력 ISL)을 통한 프로세서(VPE의 물리적 표현과 같은)와 프로세스 입력 접속 출력 분리(또는 출력 ISL)을 통한 프로세서 출력과 관련된 동작이 도 21의 방법을 참조로 개시된다. 또한 다이나믹한 스위칭 및 구성을 위한 동작이 개시되며 여기서는 반복되지 않는다. 입력 프로세스들중에서 ISL의 다이나믹 할당은 요구되지 않으며 고 정될 수 있으나, 이러한 다이나믹 구성 및 할당은 상기 다이나믹 구성 및 할당 제공과 같은 추가의 유연성(flexibility)에 있어 바람직하다.
3차원 가상 처리 스페이스는 도 20의 실시예에서의 프로세서 수, 시간 세그먼트 및 프로세스 타입에 대해 개시되었지만, 차수는 3차원만으로 제한되지 않는다. 예를 들어, 적절하게 구성된 물리적 구조, 명령 세트 및 포맷, 데이터 세트 및 포맷, 차수는 다른 처리 파라미터, 변수, 조건 등으로 확장될 수 있다. 또한, 지금까지의 설명은 퍼스널 컴퓨터, 노트북 컴퓨터, 서버, 루터, 퍼스널 정보 디바이스, 개인 정보 단말기, 정보 장치, 셀률러 텔레폰, 텔레비젼, 홈 장치, 자동차 전기, 산업적 제어 및 자동화, 로봇, 항공 제어 및 다른 계산 및 정보 처리 시스템 및 디바이스에 현재 공통적으로 사용되는 디지털 계산에 관련되었지만, 본 발명은 이에 제한되지 않는다. 예를 들어, 본 발명은 아날로그 계산 및 신호 처리 뿐만 아니라 디지털 계산 및 데이터 처리, 및 하이브리드 디지털-아날로그 디바이스 및 시스템에도 적용될 수 있다. 또한 본 발명은 주파수, 파장, 전파 모드, 및 다른 광학적 디바이스 및 시스템 파라미터와 같은 추가의 치수들이 선택되고 멀티플렉싱될 수 있는 광학 계산에도 적용될 수 있다. 광학, 디지털, 및/또는 아날로그 엘리먼트는 그내부에 한정된 다수의 가상 처리 환경 및 가상 처리 공간의 제어 및 구성 및 할당이 가능하도록 임의로 조합될 수 있다. 구성, 할당 및 제어는 동작 방식에 따른 동작 동안 제어 엘리먼트에 의한 다이나믹 설정 또는 프로그래밍 동작에 의해 제조, 설정될 때 고정될 수 있다.
본 발명의 시스템, 디바이스 및 방법의 실시예들은 임의의 다양한 형태의 스 위칭, 상호접속, 멀티플렉싱, 선택, 구성 및/또는 멀티플렉싱을 사용하여, 처리될 업무에 대해 요구되는 구조를 달성할 수 있고, 단일 처리 시스템내에 구조 및 과정에 적합하게 동시적으로 상이한 형태가 사용될 수 있다. 다양한 스위치, 및 스위칭 및 제어 방식(scheme) 및 방법이 또다른 실시예와 관련하여 사용될 수 있고, 이들 방식 및 방법은 상기 실시예들에도 사용될 수 있다.
다양한 형태 또는 타입의 멀티플렉싱은 업계에 공지되어 있으며 다른 형태 및 타입은 앞으로 개발될 것이며, 임의의 또는 이들 모두는 본 발명의 시스템, 디바이스, 및 방법과 관련하여 사용될 수 있을 것이다. 하기의 리스트는 제한되지 않지만, 예시적인 방법들을 나타낸다: 어드레스 멀티플렉싱, 버스트 시간 분할 멀티플렉싱, 코드-분할 멀티플렉싱, 디멀티플렉싱, 차동(differential) 멀티플렉싱, 분리된 멀티플렉싱, 멀티-유저 멀티플렉싱, 멀티-유저 공간 멀티플렉싱, 직교 주파수 분할 멀티플렉싱, 분극 분할 멀티플렉싱, 공간-분할 멀티플렉싱, 공간 멀티플렉싱, 서브캐리어 멀티플렉싱, 통계적 멀티플렉싱, 시간 분할 멀티플렉싱, 파장 분할 멀티플렉싱, 보안 가상화(virtualization), 개별 또는 보안 처리 또는 계산 환경 방법, 및/또는 임의의 다른 기술, 과정, 또는 정보 분할 또는 멀티플렉싱, 데이터 또는 컴퓨터 처리 방법. 또한 상기 멀티플렉싱 방식, 가상화 방식, 또는 분할 방식중 임의의 하나 또는 임의의 조합이 이용될 수도 있다.
가상 처리 공간(VPS) 및 다수의 가상 처리 또는 계산 환경의 실시예가 개시되며, 이제 가상 처리 공간내에서 각각의 가상 처리 환경을 동작시키는 프로세스 및 방법에 대해 논의한다. 단계 순서는 예시적인 것이며 등가 또는 유사한 결과를 달성하기 위해 상이한 순서가 사용될 수도 있으며 소정의 단계들은 자원와 관련하여 충돌이 발생하지 않게 독립적으로(in parallel) 수행될 수 있다. 프로세스(2970)에서 각각의 주요 단계가 열거되며 각각의 주요 단계내의 예시적인 하위 단계들은 문자로 표시된다. 방법 실시예들은 도 21의 흐름도에 도시된다.
1. 외부 프로세스 식별 및 식별된 외부 프로세스를 실행하기 위해 신뢰된 가상 처리 또는 계산 환경(및 선택적으로 분리된 저장 장치 고정) 생성, 구성 또는 할당(단계 2971)
(a) 다수의 가능성있는 외부 프로세스 입력들(EP1in, EP2in,..., EPKin)중에서 실행될 제 1 외부 프로세스 입력(EP1in) 식별, 여기서 K는 양수(positive number) 범위에 대한 정수 (단계 2971a). 간단한 설명 및 명명을 위해, 외부 프로세스 입력(EP1in) 및 외부 프로세스 출력(EP1out)은 각각 입력 및 출력 프로세스로 간주될 뿐만 아니라 이러한 프로세스 실행 결과로서 발생되는 프로세스를 실행하는데 요구되는 컨텐츠(동작 시스템 요구조건 및/또는 파라미터, 애플리케이션 프로그램 및/또는 파라미터, 지시, 명령, 데이터, 또는 프로세스를 한정 또는 실행하는데 요구되는 다른 엘리먼트들)로 간주된다.
(b) N-차원 가상 처리 공간(VPS) 내에서 가능한 다수의 가상 처리 환경(VPE1, VPE2, VPE3,...,VPEM)중에서 제 1 인식되고 신뢰된 가상 처리 환경(VPE1) 설정, 여기서 N은 양수 범위의 정수 (단계 2971b). 또한 가상 처리 환경은 수행된 프로세스가 계산 프로세스, 또는 보다 단순한 계산 환경인 경우 가상 계산 환경인 것으로 간주될 수 있다. 이들 처리 또는 계산 환경이 서로 그리고 외부 프로세스와 분리되고 가상 또는 물리적 서브시스템 또는 유니트중 하나이기 때문에, 이들은 또한 유저 애플리케이션 처리, 시스템 제어, 또는 임의의 다른 동작 또는 처리 태스크이든지, 임의의 목적을 위해 사용될 수 있는 분리된 처리 유니트 계산 환경으로 간주될 수도 있다. 예를 들어, 이들 가상 처리 환경은 제어 & 스위칭 계산 환경, 보호된 저장 장치 계산 환경, 판독/기록 제어 계산 환경, 유저 인터페이스 계산 환경, 유저 계산 환경, 제어 계산 환경, 분리된 처리 유니트 계산 환경, 유저 인터페이스 계산 환경, 또는 다른 계산 또는 처리 환경으로 동작가능하게 구성될 수 있다. 이들 가상 계산또는 처리 환경은 정적으로 결정될 수 있으나 바람직하게는 동적으로 한정되며 존재하는 시스템 부품들로 구성가능하다. 이러한 시스템 부품들은 로컬 또는 지역적으로 분포될 수 있다.
(c) 선택적으로, 이 단계에서 분리된 저장 장치 고정(하기 ISL1in 및 ISL1out 참조)이 식별, 구성 및/또는 할당되어, 이들은 하기 개시된 것처럼 요구되는 경우 이용가능하다(단계 2971c). 분리된 저장 장치 고정은 지시, 데이터, 또는 다른 정보 또는 컨텐츠를 저장할 수 있으나 바이러스성 또는 다른 악성 코드일 수 있는 임의의 비트 수집은 실행할 수 없다. 분리된 저장 장치 고정에서 "록(Lock)"이란 용어는 우주선 및 에어록의 한쪽 측면상의 환경이 에어록의 다른쪽 측면상의 환경과 직접 접속하거나 영향받는 것을 방지하는 환경 또는 다른 압력 또는 오염방지 챔버에서의 "에어 록(air lock)"으로 사용되는 용어 록(lock)과 유사하게 사용된다.
2. 신뢰된 가상 처리 환경으로 외부 프로세스 입력 안정하게 장착(단계 2972)
(a) EP1in을 실행하는데 필요한 입력 성분을 저장하기 위해 제 1 인식되고 신뢰된(제거된) 분리된 저장 장치 고정(ISL1in) 설정 (단계 2972a).
(b) ISL1in과 EP1in 접속(결합) (단계 2972b). (결합 및 해체는 동적으로 결정 또는 고정될 수 있고 물리적 또는 논리적 또는 가상적일 수 있다).
(c) ISL1in에 EP1in 장착. (임의의 소스 및 임의의 데스티네이션 사이의 장착 또는 이동은 복사됨에 따라 복사된(예를 들어 EP1in 또는 EP1out) 임의의 콘탠츠 비트의 실행을 할 수 없는 하드웨어 또는 복사 디바이스 및 복사 동작을 사용하여 바람직하게 수행된다)(단계 2972c). 또한, 분리 분리된 저장 장치 고정(ISL1in 및 ISL1out)은 바람직하게 이들 내부에 저장된 임의의 다수의 콘탠츠 비트 실행을 할 수 없다. 또한 외부 프로세스와 가상 처리 환경 사이의 결합은 결코 바람직하지 않고, (i) 외부 프로세스 입력 복사는 입력 분리된 저장 장치 고정을 통해 가상 처리 환경과 통신되며, (ii) 외부 프로세스 출력의 복사는 가상 처리 환경으로부터 외부 분리된 저장 장치 고정을 통해 외부 프로세스(또는 다른 지정된 프로세스)로 통신된다.
(d) EP1in과 ISL1in 분리(논리적으로 또는 물리적 해체) (단계 2972d).
(e) VPE1과 ISL1in 접속 (단계 2972e).
(f) ISL1in으로부터 VPE1으로 EP1in 이송/장착/복사 (단계 2972f).
(g) VPE1으로부터 ISL1in 분리(해체) (단계 2972g).
3. 분리된 가상 처리 환경내에서 외부 프로세스 실행 (단계 2973)
(a) EP1out 출력 결과를 발생시키기 위해 VPE1을 이용하여 EP1in 입력 처리 (단계 2973a).
4. 초기 외부 프로세스로 외부 프로세스 결과를 안정하게 해체(단계 2974)
(a) VPE1에 의해 EL1in의 실행으로 야기되는 출력 성분을 저장하기 위해 제 1 인식되고 신뢰된(제거된) 분리된 저장 장치 고정(ISL1out) 설정(일부 실시예에서, ISL1in은 ISL1out과 동일한 반면 다른 실시예에서는 상이하다) (단계 2974a).
(b) VPE1과 ISL1out 접속(결합) (단계 2974b).
(c) ISL1out에 EP1out 이송/장착/복사 (단계 2974c).
(d) ISL1out으로부터 VPE1 분리(해체) (단계 2974d).
(e) ISL1out과 EP1out 접속(결합) (출력 결과 EP1out은 입력 프로세스 EP1in과 상이한 프로세스 또는 동일한 프로세스이거나 또는 상이한 프로세스 또는 동일한 프로세스일 수 있다) (단계 2974e).
(f) EP1에 EP1out 이송/장착/복사 (단계 2974f).
(g) ISL1out으로부터 VPE1 분리(해체) (단계 2974g).
5. 신뢰된 가상 처리 환경의 할당 하제 (de-allocate) 및 할당된 가상 처리 공간 자원의 제거(free)(단계 2975).
(a) VPE1in 또는 VPE1out에 할당된 가상 처리 환경 또는 가상 프로세스 공간 자우너을 해제하고 할당 해제한다.(단계 2975) 자원들은 선택적으로 처리에 더이상 필요하지 않게 되면 언제든지 해제되고 할당 해제될 수 있다.(단계 2975a) 예컨대, 자원들은 프로세스에 식별된 후 프로세스에 의해 사용되도록 계획되지만 필요할 때까지 기타 외부 또는 내부 프로세스를 위한 이용가능한 자원의 풀(pool)로부터 배제될 필요는 없다.
설명된 프로세스는 단순히 필요하거나 요구된 정도의 분리(isolation)를 수행하기 위한 일 실시예일 뿐이다. 분리를 달성하기 위한 다른 방법과 과정이 이용될 수 있으며, 설명된 실시예의 단계들의 순서는 바뀔 수 있고 동일한 결과를 얻을 수 있다.
단일 컴퓨터 내에서의 다중 프로세스 스트림의 일시적인 멀티플렉싱에 대한 실시예
본 발명의 일 실시예에서, 개별 프로세스 또는 처리 스트림은 다른 제어 로직의 제어 회로에 의해 별개로 유지되고 분리된다. 복잡한 또는 멀티-파트(multi-part) 프로세스의 완료가 하나 이상의 프로세스 수행을 필요로 하는 처리 스트림이 이용될 수 있다. 이러한 내용의 분리는 (필요한 경우) 컴퓨터 작동 시스템 및/또는 애플리케이션 프로그램 명령의 실행이 처리 로직 내에서 다른 프로세스로부터의 분리에 수행될 수 있다는 것을 의미한다. 처리 로직은 마이크로프로세서, 프로세 서, 제어기, 마이크로-제어기, 특정 목적의 코프로세서, 디지털 신호 프로세서, 광학 컴퓨터, 아날로그 컴퓨터, 또는 처리 동작을 수행하는 기타 장치 또는 시스템일 수 있다. 이러한 설명은 단일 프로세서 코어(core)를 갖는 단일 프로세서에 관해 이루어졌지만, 이러한 아키텍쳐와 방법은 다중 프로세서 시스템의 각각에 또는 선택된 것에 적용되거나 단일 프로세서의 다중 코어에 적용될 수 있다. 또한 본 발명은 상이한 보드 또는 상이한 머신 사이에 분배되지만 서로 통신을 위해 결합되거나 일부 다른 마스터 제어 로직에 결합된 단일 보드 및/또는 다중 프로세서들 상의 다중 프로세서를 갖는 컴퓨터에 적용될 수 있다.
다중 프로세스는 본 명세서에서 설명한 다차원 가상 처리 공간에 기초하거나 물리적 처리 공간 변수 중 임의의 하나 또는 조합에 기초하여 구별되거나 분리될 수 있다. 일부 특수하게 이용가능한 변수는 일시적인 또는 시간 기반 스위칭 또는 처리 자원의 적어도 부분적인 공유 세트 내의 멀티플렉싱 또는 시간 분배 처리 작업을 포함한다. 이러한 처리 상황의 예는 다중 프로세스가 프로세서 로직과 메모리 서브시스템 간의 하나 이상의 캐시 또는 기타 매우 빠른 중간 메모리가 구비된 단일 프로세서를 갖는 컴퓨터에서 일시적인 멀티플렉싱된 방식으로 처리된다. 일부 임시 컴퓨터에서, 빠른 중간 메모리는 하나 이상의 소위 레벨 1(L1) 및/또는 레벨 2(L2) 캐시 메모리이고 메모리 서브시스템은 랜덤 액세스 메모리(RAM)이지만; 본 ㅂ라명은 이들 구성에만 제한되지 않으며 캐시 메모리와 같은 중간 메모리를 필요로 하지 않을 수 있다. 또한 이러한 컴퓨터는 작동 시스템, 애플리케이션 프로그램, 및 작동 시스템, 애플리케이션 프로그램 및 사용자 데이터를 저장하기 위해 하드 디스크 드라이브와 같은 통상적으로 하나의 (또는 하나 이상의) 대용량 저장 장치를 포함할 수 있다. 미래에는, 다른 대용량 저장 비휘발성 저장 시스템이 이들 하드 디스크의 일부를 대체하거나 증가시킬 것으로 예견된다.
통상적으로 하나의 프로세스로부터 또다른 프로세스의 분리는 예컨대 또다른 프로세스 또는 처리 스트림에 대한 충격이 하나의 프로세스 또는 프로세스 스트림에 발생하거나, 작동 시스템, 어플레케이션 프로그램, 시스템 또는 프로그램 데이터, 또는 사용자 데이터가 또다른 프로세스로 인해 변형되는 것을 방지하는데 바람직하다. 이러한 문제드은 컴퓨터 바이러스, 컴퓨터 해커 코드, 컴퓨터 스파이웨어 또는 로봇(소위 "스파이-보츠"), 또는 기타 악성 코드로 인해 발생된다. 또한 이들은 컴퓨터 작동 시스템 또는 애플리케이션 프로그램의 버그 또는 코딩 에러 또는 일부 일치하지 않는 계산 머신 설정, 장치 에러, 또는 장치 드라이버 문제를 발생시킬 수 있다. 예컨대 하나의 프로그램 프로세스와 또다른 프로그램 프로세스 사이의 캐시 또는 기타 중간 메모리(예컨대 레벨 1 및/또는 레벨 2 캐시 메모리) 또는 메모리 서브시스템(예컨대, 프로세서 관련 RAM 메모리 등)에서돠 같은 메모리 또는 메모리 서브시스템의 메모리 오버플로우는 종종 프로그램 고장 또는 오염을 발생시킨다.
사용자 데이터 및/또는 프로그램 또는 작동 시스템 구성요소(component)의 분리는 논리적 분리, 메모리 어드레스 관리 기반 분리, 장치 또는 서브시스템의 작동이 가능한 통신 또는 전원 경로의 모두 또는 일부를 스위칭적으로 단락시킴으로써 작동을 사용할 수 없게 하는 것과 같은 물리적 분리, 또는 특정 장치, 시스템, 또는 서브시스템이 하나 이상의 프로세스에 공개되지 않게 하는 작동과 같은 다양한 방식으로 달성될 수 있으며, 반드시 이러한 것들에 제한되는 것은 아니다. 분리를 위한 상기 방법과 수단은 짧은 기간 동안을 위해 또는 오랜 기간 동안을 위해 일시적일 수 있다. 일부 프로세스들은 장치 또는 서브시스템을 참조하지 않거나 액세스하지 않을 수 있다.
메모리 관리는 하나의 물리적 프로세서와 공유된 물리적 메모리만을 갖는 단일 컴퓨터에서와 같이 임의의 공유된 처리 자원의 다중 프로세스 또는 프로세스 스트림을 처리할 때 매우 중요하다. 또한 프로세서 실행 및 대용량 저장 장치 관리는 계산 또는 처리 시스템의 악의적인 활동을 방지하기 위한 소중한 도구이다. 예컨대, 만약 다른 프로그램 아이템, 데이터 아이템, 파일, 사용자 데이터 등의 존재가 다른 프로세스로부터 감춰질 수 있다면 일부 실시예에서 컴퓨터 또는 계산 또는 처리 환경에 존재하는 다른 프로세스 또는 데이터에 대한 정보를 스파잉(spy)하거나 얻기 위한 하나의 프로세스의 능력을 제거할 가능성은 거의 없다.
한편, 일부 경우에 충분한 인증(authorization)과 보안(safeguard)을 갖는 인증자(administrator)와 같은 신뢰된 사용자가 처리 시스템의 작동 상태를 결정하고, 시스템의 활동을 모니터링하고, 및/또는 교정 작업의 수행 또는 시스템 동작의 유지 및 관리를 할 수 있도록 신뢰된 프로그램을 실행하는 것이 바람직할 수 있다. 따라서 본 발명의 실시예들은 프로세스-대-프로세스 상에서 선택된 분리 또는 비분리를 위해 제공된다.
이러한 문제들 중 일부를 다루기 위해 소프트웨어 기반 분리의 등급(dgree) 을 제공하는 시도가 있었지만, 필요하고(desire) 가능할(enable) 때 분리를 보장할 수 없었고, 그로 인해 진입점(entry point), 아킬레스-힐(Achilles-Heal), 또는 박식하고 정교한 해커와 바이러스에 의한 불법이용의 기회가 가능하였다. 특히 여러 버전의 마이크로소프트 윈도우즈(Windows 98, 98SE, NT, 2000, XP 등)와 같은 작동 시스템은 이러한 작동 시스템을 위한 애플리케이션 프로그램을 갖기 때문에 표적이 되었다. 애플 컴퓨터 제품, 여러 퍼스널 데이터 어시스턴트, 셀룰라 전화기, 및 기타 정보 기기들을 위한 작동 시스템과 같은 다른 작동 시스템도 표적이 되었고 공격받기 쉬웠다.
본 명세서에서 설명한 본 발명의 일시적인 멀티플렉싱은 단일 물리적 계산 머신, 다중 프로세서 계산 머신, 소위 듀얼-코어 또는 다중-코어 프로세서를 갖는 단일 프로세서, 또는 (반드시 이에 한정되지 않지만 본 명세서에서 설명한 가상 계산 머신 및 가상 계산 공간과 같은) 임의의 가상 계산 머신과 함께 사용될 수 있으며, 이러한 구성에서 시간에 부가하여 추가의 멀티플렉싱 또는 처리 차원(dimension)이 존재할 수 있으며, 및/또는 프로세스와 관련한 실제 시간 또는 일시적인 시퀀스가 존재하거나 존재하지 않을 수 있다. 본 발명의 시스템, 장치, 아키텍쳐, 및 방법은 예컨대, 광학 계산 머신, 디지털 계산 머신, 아날로그 계산 머신, 생물학 또는 신경생물학 기반 계산 머신 또는 시스템, 및/또는 하이브리드 계산 머신, 및 이들의 조합을 포함하고, 이들 기술과 무관한 계산 머신에 적용될 수 있다. 또한 본 발명은 텔레비젼, 환경 시스템 및 장치, 비디오 프로세서, 자동차 및 항공기 시뮬레이션 및/또는 제어 시스템 및/또는 프로세서 또는 처리 로직을 갖는 기타 장치 또는 시스템과 같은 계산 부품을 포함하는 여러 비-계산 머신에 적용될 수 있다.
개별 프로세스들이 독립적으로 유지되는 방식이 불명료하게 하지 않도록 하기 설명은 단일 프로세서를 갖는 계산 머신에 한정되며, 세 개의 입력 처리 스트림은 A1..Al, B1...BJ, 및 C1...CK의 멤버들을 갖는 A,B,C로 불리며, I,J,K는 양의 정수이다. 이러한 실시예와 관련하여 설명한 본 발명은 타입 또는 애플리케이션과 무관한 다른 물리적 및 가상의 계산 및 처리 시스템으로 용이하게 확장될 수 있다.
가상 처리 또는 계산 환경에서와 같은 물리적 또는 노리적 또는 가상 계산 머신에서 처리 자원 또는 장치 또는 회로의 일시적인 공유를 가능하게 하는 것에 부가하여, 본 발명의 시스템과 방법은 분리를 유지시켜 계산 환경에 존재하는 상이한 프로세스들이 오염으로부터 보호되게 한다. 이는 메모리 가시성(visibility) 및/또는 각각의 프로세스에 의한 액세스의 개별적인 제어에 의해 보거나 액세스할 권리를 갖는 메모리의 일부분 및 처리 환경의 기타 부품에 보거나 애세스만 할 수 있게 함으로써 적어도 부분적으로 달성된다. 또한, 가능한 경우 가시성 및/또는 액세스는 부분적으로 또는 완전한 판독 및/또는 부분적인 또는 완전한 기록 동작 모두를 가능하게하거나 액세스만을 판독할 수 있다. 마지막으로, 장치 또는 회로가 가시적인 경우라도, 가시성은 장치, 장치 피쳐, 또는 기타 장치의 능력 중 일부만이 관찰되도록 제한될 수 있다. 일 예에서, 메모리 장치의 상이한 배타 부분들은 두 개의 상이한 프로세스에 대해 판독/기록 액세스를 보거나 수행할 수 있으며, 관리 프로세스는 전체 메모리를 판독만 할 수 있다.
컴퓨터 해커 또는 바이러스가 컴퓨터의 동작을 방해하여 메모리 또는 버퍼의 오버플로우를 유발한다는 것은 잘 알려져 있다. 이러한 머신의 메모리 제어는 소프트웨어 제어 하에서 중요하며, 이러한 소프트웨어는 BIOS, 작동 시스템, 애플리케이션 프로그램, 또는 일들의 일부 조합에 존재한다. 이들은 모두 통상적으로 해커 또는 바이러스성 또는 기타 악성 코드에 액세스되기 때문에, 사용자 인지 또는 허용없이 액세스되고 수정될 수 있다.
본 발명은 원래 환경에서 메모리 구성 및 제어를 포함한 처리 환경 구성 및 제어를 유지시켜 원치않는 악성 또는 악의적인 해커 또는 바이러스성 코드가 이러한 구성 또는 제어에 액세스하고 변형시켜 계산 시스템 또는 데이터 또는 계산 시스템 내의 기타 정보를 손상시키는 것을 못하게 한다. 따라서 이러한 프로세스들에 속하는 기타 프로세스 또는 데이터의 오염이 보호된다. 일반적으로 악성 코드가 계산 시스템 내에 존재하더라도, (중앙 처리 장치 또는 CPU 또는 기타 로직 처리 장치 또는 회로와 같은 프로세서 내의 모든 회로 또는 일부 회로와 같은) 실행 에이전트 및 오염될 또다른 프로그램 및/또는 데이터에 액세스해야 한다. 실행 에이전트만이 존재하는 경우, 악성 코드는 실행될 수 있지만 또다른 데이터 또는 프로그램 요소를 오염시킬 수 없다. 만약 악성 코드가 단순히 분리되지 않고 (공통 하드 디스크 드라이브와 같은) 또다른 프로그램 또는 데이터와 함께 저장되어 프로그램 실행 에이전트에 동시에 액세스하더라도, 악성 코드는 이러한 기타 프로그램 또는 데이터 아이템을 오염시킬 수 없다. 또한 데이터는 실행가능한 코드와 같은 프로그램 정보이거나 이를 포함하며, 이는 파일 타입의 확장으로부터 단순히 실행불가능한 코드로 나타난 파일들이 의심되는 이유이다. 분리는 물리적, 논리적, 가상적이거나 기탄 다른 수단 또는 이들 수단의 조합일 수 있다.
본 발명의 실시예들은 이들 특징들 모두를 제공한다. 한가지 특정 실시예에서, 메모리 구성과 제어는 실행중인 프로그램에 의해 수정되거나 기록될 수 없는 신뢰된 판독 전용 메모리(ROM)에서 유지된다. 특정한 신뢰된 절치(procedure)는 안전하고 신뢰된 방식으로 필요한 변화가 이뤄지도록 제공된다. 또다른 실시예에서, 메모리 구성 및 제어는 하드웨어 ASIC을 이용하여 유지된다. 또다른 실시예에서, 메모리 구성 및 제어는 수정되지만 컴퓨터 프로세서에서 실행중인 프로세스와 같은 신뢰되지 않은 소스로부터 기원한 임의의 프로세스가 아닌 펌웨어를 갖는 하드웨어 ASIC을 사용하여 유지된다. 메모리 구성 및 제어는 특정 프로세스에 할당된 단일 물리적 메모리의 고정된 크기로 설정되거나, 통계적인 모니터링의 사용 또는 동시에 처리되는 환경의 수와 실행될 것으로 기대되는 프로세스들의 메모리 또는 기타 자원 조건을 제안하는 사용자 프로파일을 통하는 것처럼 동적으로 결정될 수 있다.
본 발명의 실시예들은 예컨대 원래 존재하고 신뢰되며 안정적인 내장된 마스터 템플릿을 이용함으로써 처리 또는 계산 작업을 (성공적으로 또는 실패적으로) 경쟁시킨 후 계산 환경 수리 프로세스를 제거하거나 간략화시킨다. 이러한 예에서, 플러쉬(flush) 또는 삭제(clear)를 모두 필요하지 않고 처리 환경을 복구할 수 있다. 예컨대, 본 발명의 실시예들은 마이크로소프트 윈도우즈 XP 작동 시스템(또 는 기타 다른 작동 시스템 소프트웨어) 및 처리 환경에 필요한 다른 애플리케이션 프로그램을 저장하는 판독 전용 메모리를 포함할 수 있다. 상이한 처리 환경은 상이한 내장된 또는 저장된 작동 시스템 및/또는 애플리케이션 프로그램을 제공할 수 있다. 또한, 일부 방법은 속도와 수율을 증가시키면서 융통성이 필요한 경우 일부 부품을 내장하고 그외 부품을 로딩할 수 있다. 예컨대, 일 실시예에서 작동 시스템을 내장하고 애플리케이션프로그램을 기록 가능 메모리로 로딩할 수 있다. 이러한 실시예에서, 내장된 작동 시스템은 플러싱 및 복구를 필요로 하지 않지만, 오염되었을 수 있는 애플리케이션 프로그램을 저장하는 메모리는 플러싱되고 처리 작업이 완료된 후 공지된 원래 상태로 복구된다.
도 22를 참조하면, 세 개의 프로세스(A,B,C)의 일시적인 멀티플렉스 동작을 위한 아키텍쳐 및 작도 시나리오가 단일 프로세서 및 메모리에 대해 설명된다. 설명의 편의를 위해, 세 개의 프로세스("A", "B", "C")는 프로세서 이용가능성을 위해 대기하고 동시에 시작하는 것으로 가정한다. 당업자에 공지된 컴퓨터 시스템, 프로세서, 메모리 등의 종래 부재들은 본 발명을 명료하게 하기 위해 도시하지 않았다.
계산 시스템(3002)은 레벨1(L1) 캐시(3006)를 갖는 프로세서(3004), 입력 소스(3010)로부터 하나 이상의 입력 스트림을 수신하기 위한 하나 이상의 입력 버스 포트(3008), 하나 이상의 출력 스트림을 리시버(3014)와 통신하기 위한 하나 이상의 출력 버스 포트(3012), 및 스테이터스(status)(30116) 및 콘트롤(3018)과 통신하기 위한 포트 또는 핀을 포함한다. 또한 프로세서는 네렙2(L2) 캐시(3020) 및 랜덤 액세스 메모리(RAM)(3022)과 같은 온-칩, 온-보드, 또는 기타 메모리와 통신하기 위한 버스 또는 다른 수단을 포함한다. 프로세서는 종래의 프로세서 또는 마이크로프로세서 또는 특수하게 설계된 프로세서일 수 있다. 본 발명의 아키텍쳐는 입력 또는 입력 세트(3036)를 수신하기 위한 입력 버스 포트(3032) 및 출력 또는 출력 세트(3038)와 통신하기 위한 출력 버스 포트(3034)를 포함하는 타이밍, 어드레스 콘트롤 및 스위칭(TACS) 로직(3030)을 제공한다. 이러한 실시예에서, TACS 로직(3030)은 입력(3040)과 같이 프로세서(3004)를 위한 입력(3036)을 수신하고 프로세서 출력(3042)을 수신하며 이들을 처리하여 출력(3038)을 발생시키도록 접속되어 있다.
TACS 로직은 입력 스트림(3036) 직렬화기(seriallizer) 로직 또는 (본 실시예에서 세개의 입력 프로세스(A,B,C)인) 입력 프로세스 스트림(3036)을 수신하고 이들을 선택적으로 해석하거나 처리될 이들 내부의 성분을 식별하는 기타 입력 프로세스 스트림 시리얼라이징 수단(3044)을 포함한다. 직렬화기라는 용어는 가능한 넓은 의미를 가지며 비트-대-비트, 바이트-대-바이트, 워드-대-워드 또는 기타 특별한 방식으로 입력 스트림을 처리하는 것으로 제한하지 않으며, 오히려 하나의 입력 스트림 특성(characteristic) 또는 그 조합을 갖는 입력 스트림(들)의 하나 이상의 조합을 수용하고, 출력을 발생시키는 한정된 세트의 규정(policy) 또는 로직에 따라 각각의 스트림을 처리한다. (비직렬화기는 유사하게 출력을 발생시키는 하나의 입력 또는 그 조합을 수신하고 디시얼라이징한다.) 선택적으로 비록 프로세서의 다른 엘리먼트들이 하나의 프로세스 또는 또다른 프로세스에 개별적으로 할 당될 때 큰 장점을 갖지만, 특정 처리 사이클 동안 각각의 프로세스에 의해 사용될 프로세서의 성분들을 식별할 수 있다. 예컨대 이들 성분들은 통상적인 계산 머신 및 방법들에 존재하는 것과 같은 단일 지시(instruction), 데이터를 갖는 단일 지시, 여러 지시 또는 명령(command), 지시들, 데이터 등의 다른 세트일 수 있다. 본 예에서, 직렬화기(3044)는 각각이 종료될 때까지 A의 하나의 성분(예컨대, A1)을 취하고 그 다음에 B의 한 성분(예컨대 B1)을 취하며, 그 다음에 C의 한 성분(예컨대 C1)을 취하며, 그 다음에 각각이 종료될 때까지 A(예컨대 A1),B(예컨대 B1),C(예컨대 C1)을 반복하며, 그 후에 추가의 프로세스 스트림을 처리한다. 다른 예는 미리설정되거나 동적으로 결정된 규정에 따라 입력(3032)에서의 대기 처리 스트림으로부터 선택될 수 있다. 입력 스트림의 수는 제한이 없지만 본 실시예에서는 TACS 로직(3030)과 프로세서(3004)가 처리를 위해 이들을 용이하게 수용할 때까지 대기시킨다. 일반적으로 A,B,C 중 하나는 길이가 다르고 먼저 종료되지만,다음 프로세스 스트림(D)을 해석하고 시리얼라이징하기 전에 다른 것들의 종료를 대기할 이유가 없다. 실제로, 프로세스들은 서로 완전히 독립적으로 실행된다. 다른 방식(scheme)이 구현될 수 있으며, 예컨대 프로세서 스트림(B)이 높은 우선권을 갖는다면, B의 다수 성분들은 예컨대 직렬화된 스트림 "A1B1B2B3C1"과 같이 A 및 C의 단일 성분들 간에 산재될 수 있다.
L1(3006) 또는 L2(3020) 캐시 메모리와 같은 프로세서 메모리 또는 프로세서 칩(3004) 상의 기타 버퍼 메모리 또는 RAM(3022)와 같은 외부 메모리가 프로세스들의 절대 독립을 유지하도록 제어되는 프로세스의 실시예가 이제 설명된다. 내부 메모리 분리를 제공하는 대안은 기타 빠른 중간 메모리를 캐시하기 위한 또는 RAM 메모리와 같은 기타 메모리 서브시스템을 위한 독립된 물리적 메모리 칩을 제공하는 것이지만, 이는 비용, 상호접속 및 기타 고려사항들로 인해 바람직하지 않을 수 있다. 독립된 물리적 메모리 장치 또는 칩들을 갖는 다중 프로세서들 또는 다중 프로세서 코어들이 구형되는 경우, 보다 편리할 수 있다. 또한, 일부 실시예들은 다중 프로세서 코어들 및 각각의 코어와 관련한 빠른 메모리를 제공하여 (예컨대 외부 RAM과 같은) 독립된 메모리 서브시스템이 필요하지 않을 수 있다.
그러나, 모든 실시예가 프로세스의 절대 독립 또는 분리를 필요로 하거나 그 장점을 갖는 것은 아니며, 일부 실시예에서 인증되고 신뢰된 관리자가 컴퓨터의 동작을 모닝터링하게 하는 신뢰된 모니터링 프로세스가 제공될 수 있다. 또한 다른 프로세서는 이들간에 한정된 신뢰 레벨이 존재하는 절대 분리없이 동작할 수 있다. 또한, 다수의 프로세스들은 다수의 입력 및 출력들이 함께 그룹화되고 설명한 분리 레벨로 처리되는 한 신뢰가 없더라도 함께 처리될 수 있다. 예컨대, 처리 환경은 두 개의 상이한 애플리케이션 프로그램을 이용하여 워드 처리 동작 및 사진 편집 프로세스를 수행하도록 생성될 수 있다. 이러한 처리 환경의 입력 및 출력은 텍스트 문서 및 사진 파일일 수 있지만, 본 발명은 처리 또는 계산 환경으로부터의 입력 또는 출력의 문자 또는 내용이 무엇인지를 주의할 필요가 없기 때문에 작동가능하다.
이러한 실시예에서, 직렬화된 스트림(3050)은 신뢰된 TACS 로직(3030)에 의해 생성되며 TACS 로직은 처리되는 프로세스 성분에 따라 (간단한 용어로서 컴퓨터의 물리적 또는 논리적 구성인) 명백한 프로세스 환경 구성을 수정한다. 스트림(A,B,C)의 성분들이 설명한 방식으로 직렬화된 실시예에서, 타이밍 제어 회로는 수신되는 각각의 성분에 대한 상이한 구성을 판독하고 적용하도록 동작한다. TACS 로직은 시간적으로 매 순간 (신뢰된 ROM으로부터의 BIOS 구성과 같은) 상이한 구성 기록(record)을 유효하게 판독하여 프로세스(A)에 전용된 각각의 시간 조각(slice)에 대해 A에 할당되고 프로세스"A"에 부여된 메모리(어드레스) 범위 외부의 다른 메모리를 부주의하게 액세싱할 수 없는 것을 포함한, 프로세스(A)로 식별된 메모리 또는 기타 컴퓨터 환경 엘리먼트들만을 본다.
일 실시예에서, 이러한 메모리 관리 및 제어는 L1 및 L2 캐시 및 RAM의 어드레스 범위(또는 다른 식별된 부분)로 기록 및 판독하는 프로세서(3004)를 가짐으로써 달성된다. 이는 예컨대 각각의 메모리(예컨대, L1,L2,RAM, 및 대용량 저장 디스크 드라이브)의 하나의 영역만이 프로세서에 가시적이고 이들 영역이 각각의 메모리의 상이한 어드레스 범위로 맵핑되거나 식별되는 어드레스 리맵핑 방식(remapping scheme)을 이용하여 달성될 수 있다. 즉, 프로세서는 처리 프로세스"A"가 실제로 프로세스"A"와 관련한 어드레스 범위(ADDR2)(3062)에 기록하거나 판독할 때, 처리 프로세스"B"가 실제로 프로세스"B"와 관련한 어드레스 범위(ADDR3)(3063)에 기록하거나 판독할 때, 그리고 처리 프로세스"C"가 실제로 프로세스"C"와 관련한 어드레스 범위(ADDR4)(3064)에 기록하거나 판독할 때, 제 1 L1 캐 시 어드레스 범위(ADDR1)(3061)을 본다. 유사한 맵핑 또는 식별이 하드 디스크 드라이브 저장 장치, 레벨 2 캐시, 및 RAM과 같은 기타 저장 장치에서 발생한다. 유사한 방식으로, 기타 장치는 독립을 유지하기 위해 특정 프로세스에 맵핑되거나 배타적으로 식별될 수 있다. 즉, 본 발명의 실시예에서, 맵핑 또는 배타적인 식별 또는 할당은 단순한 작동 시스템 또는 소프트웨어 재할당이 아니라, 하나의 프로세스가 다른 프로세스를 보거나 인식하지 못하도록 계산 시스템의 구성 또는 성분을 다시 한정하는 신뢰된 제어를 포함한다.
예시된 실시예에서, TACS(3030)는 L1 캐시(3065)로의 신호, L2 캐시(3066)로의 신호, RAM(3066)으로의 신호, 및 선택적으로 대용량 저장 장치 또는 기타 장치(3068)로의 신호의 제어(및 선택적 스테이터스(status))를 통해 메모리 어드레스 제어를 제어해야 한다.
만약 프로세스(A,B,C) 중 하나가 바이러스 또는 기타 악성 코드를 포함하고 실행하는지는 문제가 되지 않는다. 오염될 수 있는 공통 프로세스 환경 엘리먼트는 또다른 프로세스에 의해 사용되기 전에 삭제되고, 리셋되거나, 복구되며, 보유될 필요가 있는 프로세스 환경의 엘리먼트는 공유되지 않는다. 따라서 프로세스(B)가 바이러스를 실행하는 경우에, 이러한 실행의 효과는 프로세스(B)에 할당된 메모리에서만 보이게 된다. 일단 B 프로세스가 완료 또는 에러에 의해 종료되면, 메모리에 할당된 B는 리셋되고 오염은 다른 프로세스들로 진행하지 않는다. 그러나 일반적으로 (예컨대 캐시 메모리에 저장된 내용을 제외한) 프로세서의 내부 성분들은 (지시 또는 관련 데이터의 지시와 같은) 다음 프로세스로서 또다른 프로세 스의 잔류 엘리먼트를 보유하지 않거나 이러한 잔류 엘리먼트는 그 자체로 해를 끼치지 않거나 오염을 도입하도록 동작하지 않는다. 코드가 (레지스터 등과 같은) 프로세서 엘리먼트로 전이하는 경우 이러한 코드는 보유하지 않는 것처럼 관련되지 않으며 다음 코드는 잔류 엘리먼트를 유효하게 소제하지 않지만, 저장 장치가 존재하는 경우 엘리먼트는 플러싱되거나 리셋되거나 고지되고 신뢰된 원래의 상태로 된다. 본 발명의 특징과 함께 사용되고 해로운 잔류 피쳐를 갖는 종래 프로세서 아키텍쳐 및 장치의 경우에, 엘리먼트는 제거되거나 리셋될 수 있다. 이는 타이밍 어드레스 제어 및 스위칭 로직을 고려할 수 있다. 예컨대, 제거 지시 또는 코드는 잠재적으로 해로운 지시 또는 프로세스 이후에 도입될 수 있으며, 이러한 해가 이전에 예견되지 않는 경우, 삭제 또는 리셋 프로세스가 또다른 프로세스에 의해 지배된 모든 프로세스들 사이에 도입될 수 있다. 미래에 개발될 프로세서 아키텍쳐를 위해, 삭제 또는 리셋 피쳐는 프로세서 아키텍쳐 내부에 구성되어 입력 스트림 내에 제거 또는 리셋 프로세스를 삽입할 필요없이 프로세스의 수율을 향상시킨다.
일단 프로세서(3004)가 출력(3052)을 발생시키면, 이들은 프로세서 옆의 입력 포트(3070)에 의해 수신되고 TACS 로직에 의해 처리되어 조합된 출력 스트림(3052)을 비직렬화 하고 적절한 출력 명령을 제공한다. 비록 출력 스트림(3038)이 입력 스트림(3036)의 명령을 매칭시키는 명령을 갖는 것으로 예시되었지만, 매칭 명령은 태그 또는 다른 프로세스 식별기가 식별하도록 활용되어 특정 출력이 유지되게 처리된다.
특정 타이밍, 어드레스 제어 및 스위칭 로직(TACS 로직)(3030)이 사용되는 방식에 대한 특정 실시예가 설명되었지만, 당업자는 대안적인 구조와 방법이 본 발명의 대안적인 실시예를 구현하는데 사용될 수 있다는 것을 알 것이다. 이러한 대안예는 어드레스 범위 제어를 이용한 컴퓨터 내의 다수의 처리들 간의 분리의 제어 정도를 유지하기 위한 시스템의 대안적인 실시예를 도시하는 도 23에 도시되어 있다. 프로세서, 제어기 또는 중앙 처리 장치와 같은 컴퓨터 프로그램 명령 또는 기타 명령을 처리하기 위한 로직일 수 있는 프로세서 로직(3080)은 일부 내부 어드레스 제어로직(3081)을 포함한다. 프로세서 어드레스 제어 로직의 다양한 형태가 공지되어 있으며 본 명세서에서 상세히 설명하지는 않는다. 독립 어드레스 제어 및 분리 로직(3082)이 제공되거나 본 발명의 어드레스 분리 및 제어 로직의 피쳐들이 프로세서의 어드레스 제어 로직에 포함되거나 프로세서(3080) 내에 제공된다. 어드레스 분리 및 제어 로직(AICL)(3082)은 어드레스 제어 로직(3081) 및 필요에 따라 프로세서 및 어드레싱 가능 메모리/캐시/저장 서브시스템(들)에 의해 제어 및 상태 신호를 통과한다. 어드레싱 가능 메모리/캐시/저장 장치(3085)는 제한되지 않은 예로서 RAM, ROM, 캐시 메모리, 하드 디스크 드라이브, 또는 임의의 다른 저장 장치 또는 메모리 맵핑된 입/출력 장치일 수 있다. 입력은 AICL(3082)에 의해 수신되고 어드레스 제어 로직(3081) 및 어드레싱 가능 메모리(3085)와 통신할 수 있는 소정의 제어 신호(3083)를 생성하도록 처리된다. 선택적으로, AICL(3082)은 어드레스 제어 로직(3081)과 통신할 수 있는 소정의 제어 신호(3083)를 발생시키며 어드레스 제어 로직은 추가의 제어신호(3089)를 (선택적으로 상태 신호를 수신하여) 어드레싱 가능 메모리(3085)와 통신시킨다. AICL(3082)의 구조는 대체로 처리 될 입력(3086)의 특성에 의존하고 입력에 기초하여 통계적으로 한정되거나 동적으로 결정될 수 있다. 출력(3087)은 바이러스 또는 기타 악성 코드의 실행과 같은 비정상적인 처리 상황이 선택적으로 억제되고 발생된 에러 또는 예외 조건(또는 시스템 고장)이 발생하지 않는 경우를 제외하고, 종래 프로세서의 대응 입력을 위해 생성된 동일한 출력일 수 있다.
도 22의 실시예를 다시 참조하면, 일시적인 멀티플렉싱에 대해 강조되었고, 독립 프로세스 또는 처리 스트림이 다른 제어 로직의 제어 회로에 의해 독립되고 분리되게 유지되었다. 다수의 프로세스들이 물리적 처리 공간 변수 및 그 조합에 기초하거나 본 명세서에서 설명한 다차원 가상 처리 공간에 기초하여 구분되거나 분리될 수 있다. 완전한 분리 또는 제어된 분리 정도에 대한 장점 및 이유는 본 명세서에서 설명되었지만 독립 변수 또는 파라미터 세트에 대해 한정될 수 있는 다차원 처리 공간이 되었던 것처럼 반복되지 않는다.
일 실시예에서, 하나의 시간 슬라이스 또는 기간 동안 실행되는 제어 환경은 이전의 시간 슬라이스 또는 기간 동안 제어되지 않은 프로세스에 의해 파일링되거나 남겨진 동작을 위한 요청을 수신한다. 요청은 비록 또다른 프로세스와 공유되더라도 프로세스를 오염시킬 수 없는 방식으로 이루어지거나 파일링된다. 예컨대, 실행가능한 코드를 수행할 수 없는 단일 비트 또는 적은 수의 비트들은 프로세서 또는 다른 로직 내의 하나 또는 여러 레지스터 내에 저장된다. 제어 환경은 이들 레지스터를 보거나 질문하며 요청이 또다른 프로세스에 의해 이루어졌다는 것을 인식할 때 (레지스터의 하나의 비트 또는 적은 수의 비트와 같이) 플래그 또는 다른 지시기(indicator)를 이용하여 동작 또는 능력을 위한 액세스 또는 허용을 부정하거나 인정하여 동작 또는 능력이 다음 요청 프로세스가 계산 환경을 사용할 때 이용할 수 있게 한다. 동작 또는 능력은 대체로 계산 환경이 제어 환경이 다른 프로세스 또는 데이터가 오염에 노출될 수 있는 동작 또는 조건을 허용하지 않는 단서를 제공할 수 있는 동작 또는 능력일 수 있다. 허용된 동작 또는 능력은 예컨대 세트 또는 규칙, 규정, 테이블, 로직 또는 기타 방식으로 정의될 수 있다. 일부 실시예에서, 허용 또는 액세스의 인정은 명백한 계산 환경 구성을 하드 디스크 드라이브 또는 기타 대용량 저장 장치와 같은 저장 장치, 랜덤 액세스 메모리와 같은 모든 또는 일부 프로세서 관련 메모리 서브시스템, 캐시 메모리와 같이 하나 이상의 프로세서 관련 빠른 중간 메모리의 일부 또는 모두를 가시적이고 액세스가능하게 하도록 바꾸며, 입력 또는 출력 포트를 이용하거나 감추며, 네트워크 인터페이스를 이용하거나 감추며, 및/또는 장치, 회로, 로직, 작동, 하드웨어 또는 요청 프로세스에 이용가능하거나 이용가능하지 않은 소프트웨어 세트의 엘리먼트를 감추고, 제한하고, 개방하고, 폐쇄하거나 만든다. 하나의 엘리먼트 또는 능력에 대한 허용 또는 액세스의 인정은 제어 프로세스가 다른 프로세스들에 대한 허용 또는 액세스를 제한하거나 거부하여 적절한 등급의 분리가 유지되게 할 것을 반드시 요구할 수 있다. 허용 또는 액세스에 대한 인정 또는 거부는 예컨대 폐쇄와 같은 물리적 변화 또는 물리적 경로를 생성하거나 장치 또는 회로에 전원을 공급하는 스위치 또는 스위치 세트, 계산 환경 내의 물리적 하드웨어 로직 또는 소프트웨어 또는 펌웨어를 바꾸는 논리적 변화를 형성하거나, 상이한 가상, 논리적 또는 물리적 처리 또는 계산 환경을 수정하거나 생성하는 임의의 다른 방식으로 이루어진다. 이들 결합은 규칙, 규정, 테이블, 로직 또는 임의의 다른 방식에 따라 설정될 수 있지만, 제어되지 않은 프로세스에 의한 수정으로부터 보호되도록 설정되며 일부 실시예에서는 특정 관리자 특권을 요구할 수 있다. 본 명세서에서 설명한 바와 같이, 계산 환경에 대한 이러한 수정 중 일부는 다이내믹 스위칭 및 구성 스트럭쳐의 특징 및 본 명세서에 개시된 방법들을 이용하거나 다른 스트럭쳐와 방법들을 이용하여 설정될 수 있다.
공유될 필요가 있는 장치들은 메모리 서브시스템(통상적으로 RAM) 및 프로세서와 메모리 서브시스템 사이의 (통상적으로 프로세서 칩 또는 칩 세트 상의 하나 이상의 캐시 메모리인) 중간의 고속 메모리이다. 이들 메모리의 상이한 부분은 어드레스 제어 로직 및 상기 개시된 방법뿐만 아니라 어드레스 할당, 마스터, 데이터 및 지시 버스 이용가능성, 서술 테이블 등을 구성하고 제어하기 위한 공지된 기술을 이용하여 상이한 프로세스들에 가시적으로 될 수 있다. 본 발명의 일 실시예에서, 메모리 또는 레지스터 내의 데이터 구조에 저장될 수 있는 것과 같은 서술 테이블은 일반적으로 다른 프로세스들로부터 감춰지며 제어 프로세스에만 가시적이다. 또다른 실시예에서, 서술 테이블의 일부는 감춰진 채 유지되지만 다른 부분은 선택적으로 하나 이상의 프로세스들에 가시적이며, 다른 실시예에서 독립 서술 테이블이 유지되고 제어는 가시적인 경우 가시성이 프로세스의 특정 지시 또는 일부에만 전이되는 프로세스들에 선택적으로 이용가능하게 활동한다. 통상적으로, 이러한 서술 테이블은 모든 프로세스들에 가시적이고 액세스가능하며 이러한 가시성 과 접근성은 악성 코드가 이러한 서술 테이블의 내용을 바꿔 계산 환경을 바꾸고 손상시킬 수 있게 하는 기회를 제공한다. 제어 프로세스를 제외한 계산 환경의 기타 성분들 또는 메모리 어드레스와 관련한 서술 테이블에 대한 액세스의 분리, 감춤 또는 거부는 계산 또는 처리 환경이 보호될 수 있는 또다른 방식이다. 적어도 하나의 환경에서, 구성 정보는 판독 전용 메모리에서 유지되고 (제어 프로세스의 일부 실시예에서) 제어되지 않은 프로세스에 제공된 작동 시스템 또는 애플리케이션 프로그램은 이러한 저장된 구성 정보를 조작할 수 없다.
본 발명의 이들 및/또는 기타 실시예들은 처리 환경 내의 다양한 버스, 입/출력 포트 또는 장치, 환경 내로 로딩된 애플리케이션 프로그램 소프트웨어, 처리 환경 내의 작동 시스템 또는 작동 시스템 엘리먼트, 또는 이들 또는 다른 조합에 대한 제어 가시성 및/또는 액세스일 수 있다. 적어도 일부 실시예들에서, 선택된 하드웨어 또는 소프트웨어 성분의 존재(및 이로 인한 액세스의 거부)는 작업 시스템에 검출될 수없게 보장된다. 일부 실시예에서, 이는 (작업 시스템의 신뢰된 판독 전용 버전의 내장을 포함한) 작업 시스템의 수정 및/또는 하드웨어 및/또는 펌웨어 레벨에서의 구성 제어에 의해 보장되는 것이 바람직하다. 일부 실시예에서, 다이내믹 기반 상에 각각의 처리 환경을 구성하거나 재구성하는 물리적 또는 논리적 독립 BIOS가 제공된다. 다른 실시예에서, 기본적인 BIOS 구성이 설정되고 구성을 변화시켜 동적으로 설정된 특정 능력을 추가한다.
예컨대, 특정 실시예에서, 어드레스 위치 또는 범위들은 작동 시스템 층 아래의 소정의 레벨 또는 층으로 통계적으로 또는 동적으로 한정되어 (마이크로소프 트 윈도우즈, 리눅스, 애플 컴퓨터, 또는 기타 작동 시스템과 같은) 작동 시스템이 정의(definition)를 바꾸거나 어떠한 영향도 못미치게 하고 정의가 작동 시스템이 무엇을 보는지를 작동 시스템만이 볼 수 있게 한다. 예컨대, 낮은 레벨 프로그램 또는 프로세스는 작동 시스템, 애플리케이션 프로그램 같은 것에 의해 액세스될 수 없고 잠재적으로 악성 코드를 포함할 수 있는 데이터에 액세스할 수 없는 프로그램 또는 프로세스일 수 있다. 일부 실시예에서, 낮은 레벨 정의는 (감춰진 엘리먼트가 메모리 어드레스 위치인 경우) 어드레스 제어 로직에 의해, TACS 제어에 의해, 심지어 메인 프로세서 자체에 의해, 또는 프로세스에 포함되거나 프로세서와 통신하며 독립 로직 엘리먼트로서 동작하는 기타 로직에 의해 보호된 BIOS를 이용하여 달성될 수 있다. TACS 제어가 포함된 경우, 예컨대 시간 분리 멀티플렉싱된 이벤트에 배타적으로 이용될 수 있는 특정 어드레스 범위를 정의하는 전체 서술을 생성할 수 있다. 대안적인 제어기는 기타 N-차원 가상 처리 공간에 이용할 수 있는 비-일시적으로 정의된 분리 등에 기반한 어드레스 분리를 정의할 수 있다.
일 실시예에서, 테이블은 각각의 상이한 프로세스에 대한 메모리 어드레스 범위 이용가능성을 정의하고 이러한 정의는 논리적이거나 물리적일 수 있다. 일 실시예에서, BIOS는 테이블 형태의 맵핑을 보유한다. 예컨대, 만약 계산 또는 처리 시스템의 하드웨어에 이용할 수 있는 전체 RAM 메모리의 1 기가바이트가 존재한다면, 보다 낮은 레벨 제어 프로세스는 작동 시스템이 미리 설정되거나 동적으로 설정된 예컨대 256 메가바이트와 같은 메모리 양만을 보게 한다. 낮은 레벨 프로그램 또는 제어는 제 1 프로세스와 관련한 제 1 마이크로소프트 윈도우즈 작동 시 스템 및 제 2 프로세스와 관련한 제 2 마이크로소프트 윈도우즈 작동 시스템과 같은 작동 시스템의 상이한 실증(instantiation)에 이용할 수 있는 상이한 양 및 상이한 메모리 어드레스 범위를 가질 수 있다.
종래 시스템 및 방법은 통상적으로 모든 프로세스가 상호작용하지만 프로그램 코드가 적절히 설계된 경우가 아니면 상호작용하지 않고 악성, 해커, 또는 바이러스성 코드가 유입된 경우 상이한 프로세스와 데이터를 오염에 노출시키는 단일 "모래 상자(sand box)" 또는 "비누 그릇(bowl of soup)"를 사용한다. 본 발명의 시스템과 방법의 한가지 장점은 각각의 프로세스가 자체 모래 박스 또는 빈 삭제 박스(clean empty bowl)를 사용하고 이로써 처리 또는 계산 환경에서 실행되거나 실행되도록 시도된 악성, 해커, 또는 바이러스성 코드에 존재하는 경우라도 오염이 발생할 수 없다는 것이다.
제어 프로세스와 또다른 프로세스 사이에 통과하는 제한된 메시지를 포함하는 상기 설명한 기술을 사용하여 (프로세서에 남겨진 조건, 상태, 플래그 또는 기타 지시기(indicator)를 제외하고) 제어프로세스가 프로세스에 존재하지 않지만 다른 프로세스가 실행되더라도 제어 프로세스가 다른 프로세스를 유효하게 제어할 수 있다. 제어 프로세스는 다른 프로세스가 액세스가 허용된 처리 자원을 사용한 후 원래 처리 환경을 삭제, 플러싱, 리셋 또는 재설정할 수 있다.
설명한 것처럼 메모리 어드레스 범위를 제어함으로써 메모리의 부분들을 선택적으로 감추는 능력은 계산 또는 처리 환경 내에 또는 외부의 메모리 맵핑된 장치 또는 서브시스템에 적용될 수 있다. 본 발명의 시스템 및 방법은 기타 장치, 회로, 소 프트웨어 및 기타 장점을 발휘할 수 있는 것들을 선택적으로 유사하게 감출 수 있다. 예를 들어, 본 발명의 실시예는, 데이터(또는 프로그램)에 숨겨진 소정의 악성 코드가 실행되게 하고 계산 및 처리 환경의 오염을 유발할 수도 있는 소정의 처리 소자에 대한 데이터를 노출시키기 전에 사용자 데이터를 (하드디스크 드라이브 비휘발성 저장 수단과 같은) 제1 저장 위치에서 다른 분리된 저장 위치(종종 폭발 룸으로 언급됨)로 사용자 데이터를 이동시키기 위한 필요 또는 요구를 설명하였다. 그러나 메모리, 저장 장치 또는 로직의 일부의 보장된 제어 분리를 제공하는 본 발명의 실시예에서, 이러한 분리된 저장 장치로의 데이터의 복사 또는 이동은 요구되지 않으며, 그로 인해, 시간 소모 단계를 제거하는 것을 이해해야 한다. 필수적으로, 본 발명의 이러한 실시예는 처리 환경을 구성하여 데이터 아이템 그 자체는 제 위치에 분리되고, 선택적으로 소정의 부가 메모리 또는 다른 저장 장치가 일시적인 작업 저장을 위해 또는 특정 프로세스에 대해 요구되거나 필요할 수도 있는 다른 목적을 위해 한정될 수도 있다. 처리 전 안전한 저장을 위한 복사 및 안전한 저장으로부터의 재복사 단계가 결론적으로 제거된다. 데이터의 복사는 실행 전에 행해질 수도 있어서 프로세스에 문제가 있는 경우, 원래의 데이터 항목이 유지되고 추가로 오염되지 않게 보장할 수도 있다. 이러한 사본을 유지하는 것은 예를 들어, 항목이 제거가 가능한 오염 또는 바이러스의 조사 및/또는 제거되게 한다.
본 발명의 다른 실시예는 계산 환경으로 및 그로부터, 또는 계산 환경의 특정예로 및 그로부터 동적으로 스위칭될 수도 있는 메모리 또는 저장 장치를 제공할 수도 있다. 이는 복사의 필요성을 제거하며, 및/또는 택일적 메카니즘을 제공하여 다수의 소거된 메모리 중 하나가 교환될 수 있게 하는 반면 앞선 프로세스에 대한 노출로부터 오염될 수도 있는 다른 메모리가 개별 프로세스에 의해 소거 또는 플러싱되는 동안 일시적으로 교환될 수 있게 한다. 본 발명의 다른 실시예는 논리적으로 브레이킹 또는 세그먼팅 메모리를 다른 부분들에 제공할 수도 있는데, 각각은 상이한 마스터 템플릿을 가지고 있어서 상이한 메모리 어드레스 범위가 처리 또는 계산 환경에서 임무를 처리하기 위해 저장된 완전히 새로운 본래의 마스터 템플릿을 갖게 한다.
다른 실시예에서, 계산 환경은 상이한 물리적 장치의 동일한 영역 내의 하나의 어드레스 범위에서 동작 시스템 또는 템플릿을, 그리고 다른 어드레스 영역에서 사용자 데이터를 발생 또는 생성함으로써 생성될 수도 있다. 사실, 마스터 또는 다른 템플릿 및 데이터를 갖는 다수의 계산 환경이 이러한 상태에서 생성될 수도 있다. 각각은 완전한 논리적으로 분리된 환경인데, 이는 낮은 레벨의 구성 또는 다른 제어가 정의된 메모리 어드레스 영역 밖에서 어떠한 상호 작용도 보장하지 않기 때문이다. 하드웨어, 펌웨어, 소프트웨어 또는 이들의 소정 조합에서 한정된 수퍼바이저 제어는 어떠한 오염도 발생할 수 없도록 각각의 처리 환경을 제어하고, 외부 컴포넌트에 스위칭하고, 및 다수의 처리 환경을 관리하도록 하이퍼-바이저를 제공할 수도 있다. 일 실시예에서, 이러한 수퍼바이저 제어 또는 하이퍼-바이저가 오염을 방지하는 낮은 레벨의 구성을 무시하거나 변경할 수 없다. 외부 관리 프로세스가 소정의 소프트웨어 또는 펌웨어 컴포넌트가 로딩되고, 업데이트되거나 필요에 따라 소거되도록 제공될 수도 있다.
다양한 방법이 메모리, 저장 장치 또는 프로세서로 소프트웨어 또는 코드의 신뢰 부분을 생성 또는 복사하는데 사용될 수도 있음을 본 설명에서 이해해야 할 것이다. 본 발명의 일 실시예에서, 이는 템플릿 및 마스터 템플릿으로 언급된다. 다양한 보호된 복사 방식이 본 명세서에 설명된 대로 사용될 수도 있다. 프로세스로부터 및/또는 휘발성 RAM 메모리로부터 (하드디스크 같은) 비휘발성 메모리로 시스템 상태를 저장하는 에너지 보존 대기, 동면, 재저장, 웨이크업 특성 중 일부를 지원하는 시스템 및 프로세서를 동작하기 위해, 이러한 특성은 템플릿을 생성하도록 사용될 수도 있는데, 템플릿은 저장 장치로부터 메모리 또는 프로세서로 신뢰된 템플릿을 기록하기 위해 사전 저장된다. 이러한 방식에서, 템플릿은 이러한 특성을 지원하는 현재의 동작 시스템 및 하드웨어의 형태 및 이와 호환가능한 형태이다.
시스템 구성 및 동작 시나리오의 다양한 실시예가 본 명세서에 설명된다. 예를 들어, 실시예들이 설명되며, 여기서 각각이 할당된 계산 또는 처리 환경을 갖는 다수의 물리적 프로세서가 존재한다. 도9와 관련하여 설명된 실시예는 사용자 인터페이스 계산 환경, 제어 및 스위칭 계산 환경, 보호된 저장 계산 환경, 및 적어도 하나의 사용자 계산 환경을 확인하였다. 도10의 실시예에서, 시스템은 데스크탑 및 사용자 인터페이스 계산 환경 처리 유닛, 제어 및 스위칭 계산 환경 처리 유닛, 분리된 처리 유닛 계산 환경, 보호된 저장 장치 계산 환경, 및 분리된 처리 유닛 계산 환경을 포함하였다. 단일(또는 작은 세트의) 프로세서가 다중화 방식으로 사용되어, 더 많은 세트의 프로세서가 물리적 하드웨어 및/또는 소프트웨어 컴 포넌트의 더 작은 세트를 사용하여 실행될 수 있게 한다. 소정의 프로세스에 대한 본 발명의 시스템 및 방법의 융통성 및 적응성, 그리고 특정하게 설명된 프로세스가 실례라는 것이 강조되었지만, 요구되는 분리를 유지하면서, 특정하게 거론되거나 식별된 프로세스의 일부의 기능 및 동작이 동일한 프로세스에서 실행되도록 그룹화될 수도 있음을 강조할 가치가 있다. 프로세스의 조합 또는 그룹화는 데스크탑 및 사용자 인터페이스 처리 환경, 비디오 처리 환경, 및 제어 및 스위칭 환경과 같은 소정의 신뢰된 제어 또는 수퍼바이저 연산에 대한 특정한 유틸리티를 가질 수도 있지만, 하나 이상의 사용자 데이터 처리 환경으로부터 이러한 수퍼 또는 그룹화된 처리 환경의 분리를 유지한다.
이러한 프로세스 정의 또는 그룹화의 이점은 본 발명의 다중화된 실시예, 그리고 비록 일시적인 다중화 실시예에 대해 배타적이지 않은 소정의 효율을 제공한다. 개별 프로세스의 수가 감소함에 따라, 상이한 프로세스들 사이의 스위칭의 복잡성이 감소되며, 상태를 저장 및 리로딩함으로써 및/또는 로딩 템플릿 및/또는 처리 환경의 제거에 의해 소비될 수도 있는 시간이 감소될 수도 있다. 일 실시예에서, 모든 비 사용자 데이터 프로세스들이 한정되며 단일 제어 처리에서 한정되며, 사용자 데이터 관련 처리 환경은 제어 환경으로부터 개별적으로 실행 및 유지된다.
모든 다른 다중화된 처리 시나리오 및 이러한 실시예에 대해, (특정 포트, 디지털 신호 프로세서(DSP), 또는 소정의 다른 자원와 같은) 특정한 처리 자원, 또는 프로세스에 대해 할당된 시간의 양(프로세서 클록 사이클 또는 명령 사이클)에 대한 액세스를 위한 우선 순위가 조절될 수 있도록 상이한 프로세스에 대해 실행의 우선 순위가 할당될 수도 있음이 명백하다. 조절은 정적으로 또는 동적으로 설정될 수도 있다. 디폴트가 설정될 수도 있으며, 이어 높은 우선 순위 프로세스가 실행될 경우 변경될 수도 있다. 높은 우선 순위 프로세스는 예를 들어, 비디오 이미지 캡쳐, 컴퓨터 게임, 및 다른 프로세스와 같은 실시간 또는 의사 실시간 처리 애플리케이션을 포함할 수도 있으며, 여기서 검출가능한 지연은 사용자에게 거부될 수도 있다. 표준 또는 더 낮은 우선 순위 처리 애플리케이션은 워드 처리 애플리케이션을 포함할 수도 있으며, 여기서 매우 낮은 처리 파워가 사용자 타이핑 텍스트를 유지하는데 요구된다. 명백하게, 상이한 시스템이 계산 시스템이 전개된 사용자 및 환경의 목표에 따라 상이한 처리 우선권으로 설정될 수도 있다.
이미 앞서 설명된 방식은 다중 프로세스가 더 크거나 더 복잡한 프로세스로 그룹화, 합성 또는 통합될 수도 있는 방식을 강조하였다. 다른 방식은 단일 프로세스로 고려된 것을 취할 수도 있으며 실행을 위해 다중 시스템 자원을 사용할 수도 있다. 예를 들어, 다중 물리적 프로세서, 이러한 프로세서와 커플가능한 다중 메모리, 및/또는 이용가능한 자원의 다른 다수의 사본을 제공하는 시스템 구성에서, 단일 프로세스의 처리 요구는 이들 사이에서 분포될 수도 있어서, 프로세스가 원하는 출력으로 더욱 신속하게 실행되게 한다. 통상적으로, 다중 프로세서가 사용되는 프로세스는, 최종 결과를 생성하기 위해 소정의 방식으로 결합된 상이한 프로세서 및 이들의 결과 사이에서 분포될 수 있는 용이하게 한정 가능한 서브 태스크, 또는 많은 데이터 또는 많은 병렬 처리를 갖는 단순한 처리 태스크를 갖는 상대적으로 복잡한 처리 태스크일 수도 있어서, 사용하는 다중 프로세서가 전체 태스 크를 더 빠르게 완결하게 한다. 비록 근본적으로 통상적인 처리가 본 명세서에 설명된 처리과 상이하지만, SETI 처리 태스크는 다중 프로세서들 사이에서 분할된 단일의 더 큰 처리 태스크의 현저한 일예이다.
소정의 처리 태스크가 이러한 방식으로 분할되고, 재정의되고, 및/또는 분배될 수도 있다. 도16의 실시예 및 본 명세서의 다른 부분 및/또는 전술한 가상 처리 공간 및 일시적 또는 다른 비 일시적 다중화 실시예와 관련하여 설명된 플렉서블 스위칭 및 시스템 구성의 관점에서, 본 발명은 다수의 시스템 자원이 단일 프로세서 구성을 넘어 연장하는 정적으로 또는 동적으로 구성 및 해체되는 시스템 및 방법을 제공한다. 예를 들어, 일시적으로 다중화된 실시예에서, 상이한 프로세스가 단지 프로세서의 일부(프로세서는 소정의 방식으로 할당됨), 프로세스의 전용, 다중 프로세서의 전용, 또는 다중 프로세서에 대한 부분 액세스를 갖도록 구성될 수도 있다. 할당된 프로세서 액세스가 구현되는 경우, 이러한 할당은 본 발명에 대해 이미 설명된 보안 및 보호 특징과 일치를 허용한다. 프로세스에 대한 프로세서, CPU, 또는 다른 처리 또는 계산 로직의 이러한 스위칭가능한 배정은 소정의 다른 시스템 자원에 적용될 수도 있다.
본 발명의 이러한 특징은 그리드 계산, 클러스터링, 병렬 처리, 고도 병렬 처리, 대칭형 처리, 및/또는 다른 처리 시나리오에 적용될 때 특정 장점 및 유틸리티를 가질 수도 있으며, 여기서 소정 정도의 병렬, 분포 또는 협동 처리가 유리하다.
적어도 부분적으로, 다중 시스템 자원이 논리적으로 또는 물리적으로 다중화 된 또는 병렬 계산 구성에 결합 또는 사용될 수도 있기 때문에, 다중 프로세서 또는 CPU, 다중 메모리, 또는 심지어 다중 시스템 온 침(SOC)과 같이, 한정된 룰, 정책 또는 로직에 따라 소정의 최적 방식으로 하나 또는 세트의 처리 태스크를 실행하기 위해 필요한 현재 세트의 처리에 따라 자동으로(또는 수동으로) 그리고 동적으로 구성될 수 있는 다수 또는 다중 처리 자원 물리적 계산 시스템이 구축될 수도 있다. 최적화 파라미터는 예를 들어 최대 출력, 가장 신속한 실행, 최소의 전력 소모, 가장 큰 에러 감소, 최소 열 발생 또는 소정의 다른 데이터 또는 동작 우선권 또는 요구를 포함할 수도 있다. 이러한 특징을 포함하는 본 발명의 실시예는 하드웨어 비용을 최소화하기 위해 선택적으로 상대적으로 낮은 실행 프로세서 또는 CPU 또는 다른 시스템 구성을 이용할 수도 있지만, 이러한 자원을 동적으로 결합하는 능력으로 인해 성능에 영향을 주지 않는다.
여기에 설명된 관점에서, 본 발명의 실시예는 (이미 설명된 다중화 방식 중 하나의 사용을 통해) 정적 방식 또는 동적 방식으로, 이용할 수 있는 소정의 자원을 포함(또는 제거)하기 위해 물리적 또는 가상의 계산 시스템 또는 환경을 교환적으로 구성할 수도 있다. 예를 들어, 프로세서, 메모리 엘리먼트, 하드디스크 드라이브 또는 다른 저장 장치 서브 시스템에 부가하여, 시스템의 실시예는 모뎀, 네트워크 인터페이스 카드(NIC) 또는 다른 네트워크 인터페이스, 스니퍼 또는 판독 전용 NIC, 비디오 디스플레이 또는 처리 카드 또는 논리 회로, 그래픽 카드 또는 처리 로직 회로, 범용 시리얼 버스(USB) 포트 및 인터페이스, 방화벽 또는 IEEE 1394 인터페이스 및 포트, 시리얼 포트, 병렬 포트, PC 카드 포트 및 인터페이스, PCI 인터페이스, 메모리 인터페이스, 마이크로폰 및 스피커 입력 및 출력 포트, 디지털 신호 프로세서 및 로직, 프린터 포트, CD 및 DVD 인터페이스, 오디오 및 비디오 프로세서 로직, 무선 인터페이스 및 소정의 다른 하드웨어, 하드웨어 실행 소프트웨어 또는 펌웨어를 포함할 수도 있으며, 외부 장치에 대해 인터페이싱하는 포트가 외부 장치 및 시스템을 이네이블 또는 디스에이블할 수도 있는 정도까지 포함할 수도 있다.
일 실시예에서, 실행된 프로세스 중 하나는 네트워크 인터페이스 카드(NIC) 타입 프로세스와 같은 네트워크 인터페이스이다. NIC는 외부 소스 또는 프로세스로부터 수신된 데이터를 저장하기 위해 버퍼 또는 다른 저장 수단을 갖는다. 일단 수신 및 저장되면, 다중화된 처리 시나리오는 버퍼를 판독하고 다른 보호된 처리 방식과 유사한 방식으로 수신된 데이터를 조절할 수도 있다. 다시 말해, 외부 자원이 내부 데이터 세트에 비해 (e메일, 스팸, 바이러스, 스파이보트 또는 스파이웨어 적재 웹 사이트 등과 같은) 오염에 관련하여 더 많이 관련성을 나타내는 반면, 본 발명의 시스템 및 발명에 의해 제공된 보호 수단은 다른 사용자 데이터 세트와 같은 동일한 높은 레벨의 보호를 제공한다. 이러한 동일한 이익은 외부 접속이 모뎀, 플로피 디스크, USB 메모리 장치, 입/출력 포트, 무선 접속, 또는 소정의 다른 인터페이스를 통한 것인지에 무관하게 제공된다. 입력 데이터가 다른 사용자 데이터 또는 저장된 신뢰 버젼의 애플리케이션 프로그램 및 동작 시스템을 오염시킬 수 없도록 입력 데이터를 분리시키기 위한 수단이 제공된다.
본 발명의 스위칭 및 제어 특성의 사용은 소정의 내장된 연산 시스템, 애플 리케이션 프로그램 소프트웨어 코드, 또는 내장된 데이터를 포함하는 처리 또는 계산 시스템에 존재할 수도 있는 소정의 버퍼, 캐시, 데이터 저장 장치, 및/또는 메모리 시스템 및 서브 시스템에 적용가능하지만, 이에 한정되지 않는다. 하드디스크 저장 장치와 관련하여 설명된 바와 같이, 스위치 또는 스위칭 로직은 정적, 동적 또는 일시적 또는 다중화된 방식으로 컴퓨터 시스템으로부터 소정의 식별된 버퍼, 캐시, 데이터 저장 장치, 및/또는 메모리 시스템 또는 서브 시스템을 물리적으로 또는 논리적으로 부가 및/또는 제거하는데 사용될 수도 있다. 게다가, 본 발명의 스위칭 및 제어 특성은 비디오 또는 그래픽 제어기 또는 프로세서, 프린터, 사운드 카드, 또는 소정의 다른 시스템 또는 컴퓨터 자원와 같은 데이터 저장 기능과 통상적으로 관련되지 않은 시스템 자원에 적용가능하다. 메모리 어드레스 범위 맵핑, 파워 온/오프, BIOS 기반 구조 및 구조해체, 및 이러한 시스템 자원을 숨기거나 가시적으로 하는 다른 수단은 본 명세서 전체에서 설명되고 있으며, 여기에서는 구체적으로 반복하지 않는다.
연산 시스템, 애플리케이션 프로그램, 및/또는 내부에 저장된 다른 실행가능하거나 비실행가능한 코드 또는 데이터를 갖는 저장 장치 또는 메모리를 갖는 시스템에 대한 특정 참조에서, 이러한 내장된 엘리먼트는 처리 환경으로 스위칭(예를 들어, 부가)되거나, 처리 환경으로부터 스위칭(예를 들어, 삭제)될 수도 있어서 요구되거나 필요한 연산 시스템, 애플리케이션 프로그램, 또는 처리 작업을 실행하는데 필요한 다른 코드 및 데이터를 제공할 수 있다. 예를 들어, 마이크로 윈도우 XP(또는 소정의 다른 연산 시스템), 마이크로 아웃룩, 애도브 포토샵, 및/또는 내 장된 스크린 이미지 그래픽과 같은 데이터의 내장된 저장 버전은 상이한 물리적 또는 논리적으로 별개의 메모리 또는 저장 수단에 내장될 수도 있다. 이들은 예를 들어, 상이한 메모리 칩, 전술한 어드레스 맵핑 및 제어에 의해 또는 다른 수단을 통해 분리된 공통 물리적 장치의 논리적으로 분리된 부분일 수도 있다. 이어 이들은 필요성이 식별된 때 처리 환경으로 부가되고 필요성이 더이상 존재하지 않는 때, 처리 환경으로부터 제거되며, 그로 인해 다른 프로세스에 대한 자원을 자유롭게 한다. 시스템 내의 제어 환경 또는 다른 제어 엘리먼트는 특정 내장 (및 비내장) 코드 또는 데이터를 예상 또는 검색하고 내장된 엘리먼트를 본 발명의 전술한 스위칭 및 구성 특성을 이용하는 처리 환경에 구성한다. 검색은 요청 또는 프로그램 호와 같은 소정의 다른 검색 수단일 수도 있다. 제어 환경 또는 다른 제어 엘리먼트는 또한 내장된 엘리먼트에 대한 요구가 종료되고 상기 엘리먼트를 처리 환경의 구성으로부터 제거되고 이를 다른 처리 요구 요청에 대해 이용가능하게 될 때, 예상 또는 검색에 책임이 있다.
(선택적으로 소정의 소프트웨어 및/또는 펌웨어를 포함하는) 제어 환경 및/또는 하드웨어 스위칭 환경은 액세스의 특성이 제어되거나 제한되도록 소정의 어드레싱 가능한 메모리, 내장형 저장 장치 등이 판독 전용, 기록 전용, 또는 판독-기록 메모리로서 액세스 가능하게 할 수도 있다. 이러한 액세스 타입 제어(판독 전용, 기록 전용, 판독-기록)는 통상적으로 수동으로 처리 작업에 의존하는데 유용할 수도 있다. 템플릿이 기록 동작에 의해 오염되거나 위태롭게 되지 않지만, 템플릿이 충분한 액세스 특권을 갖는 사용자 또는 프로세스에 의해 (새로운 버전으로) 업 데이트 되도록 하기 위해 표준 액세스를 위한 판독 전용 모드에서 템플릿을 홀딩하는 특정 메모리 또는 저장 장치를 유지하기 위한 절차를 제공한다.
저장 장치의 물리적 또는 논리적 분리를 유지하기 위한 문맥에서, 다수의 플래터 또는 표면을 갖는 하드디스크 드라이브 또는 다른 회전 저장 매체는 각각의 플래터 표면에 대해 분리된 판독/기록 헤드를 동작시킴으로써 분리될 수도 있다. 통상적으로, 두 개의 플래터 및 네 개의 표면을 갖는 하드 디스크 드라이브는 단일 디스크 드라이브 제어기에 의해, 그리고 조화된 다수의 판독/기록 헤드를 움직이는 액추에이터에 의해 동작될 것이다. 본 발명의 실시예는 하나의 제어기가 자신의 단일(또는 세트의) 표면 및 판독/기록 헤드를 인식하지만, 동일한 하드 디스크 드라이브 내의 다른 표면 또는 헤드를 인식하지 않도록 독립된 방식으로 판독/기록 헤드에 대한 액세스를 최소한 제어하는 개별 제어기를 제공한다. 다른 실시예에서, 개별 액추에이터가 액추에이터 암 및 판독/기록 헤드가 각각의 표면 또는 표면의 세트에 대해 독립적으로 동작하도록 제공될 수도 있다. 본 발명의 다이나믹 구성 특성은 이용가능한 다소의 표면을 만들고, 이들을 판독 전용, 기록 전용 또는 판독-기록이 가능하게 하도록 하드디스크 드라이브에 적용될 수도 있다.
본 발명의 일 실시예에서, 본 발명의 특성은 하드디스크 드라이브 내에 또는 부착된 또는 디스크 드라이브 제어기 내의 로직 보드에 제공된다. 논리적 또는 물리적으로 분리된 하드디스크 드라이브 플래터 표면은 분리된 저장 장치에 대해 사용될 수도 있다. 일 실시예에서, 이러한 엘리먼트 및 특성은 제어 특성을 갖는 하드 디스크 드라이브가 개별 컴퓨터 또는 외부 프로세서에 대한 필요성 없이 본 발 명의 보호 및 보안 특성을 갖는 네트워크 애플리케이션을 제공하도록 결합된다. 따라서, 본 발명은 또한 본 발명의 보호 및 보안 특성을 갖는 네트워크 또는 네트워크 장치를 제공한다.
본 발명의 실시예에 사용될 수 있는 다른 선택적 특성들
컴퓨터 및 정보 응용 구조, 시스템 구조, 및 컴퓨터, 정보 응용 장치 및 다른 장치를 생성 및 동작시키는 방법 및 절차의 몇몇 상이한 실시예를 설명하였지만, 이제 소정의 실시예에 제공될 수도 있는 다른 특성(소정의 선택적 특성을 포함함)을 설명할 것이다. 이러한 설명은 또한 다양한 계산 환경에서 조절될 수도 있는 애플리케이션의 타입의 소정의 지표를 제공하며, 바이러스, 해커 코드, 트로이안 목마, 및 다른 악성 코드에 대한 어떠한 특정 민감도가 보안 또는 면역 이슈를 제공할 수도 있는지, 어떻게 이러한 이슈가 본 발명의 구조, 시스템, 방법 및 절차를 이용하여 해결되는지에 대한 소정의 지표가 제공된다. 이러한 설명의 문맥에서, CE라는 계산 환경은 소정의 다양한 계산 환경, 분리된 계산 환경, 또는 본 명세서에 설명된 바와 같은 계산 또는 분리된 서브시스템, 및 관련된 응용 및 참조로 포함되어 설명된 바와 같은 계산 환경 및 서브 시스템을 포함하도록 의도된다.
데이터는 직접 메모리 액세스를 이용하는 ASIC 또는 로직 제어 장치와 같은 개별 로직 제어 장치를 이용하여 특정 목적 서브 시스템들 또는 계산 환경들 사이에서 이동될 수도 있다. 데이터를 유리하게 이동시키는 프로세스는 데이터가 실행되게 하지는 않으며, 이는 해킹, 바이러스, 다른 악성 코드 등이 늦춰지게 할 수 있다. 게다가, 데이터는 부호화되고, 압축되거나 엔코딩되어 데이터의 실행을 방 지할 수도 있다.
계산 환경의 수리 및 회복은 필요한 경우 행해질 수도 있다. 계산 환경(CE)은 자동화된 수리 프로세스를 이용하여 아이들 상태로 수리 또는 복귀될 수도 있다. 이러한 수리는 "온 더 플라이"로 행해지거나, 각각의 거래 이후 또는 재부팅 없이 행해질 수도 있다. 마스터 템플릿은 통상적으로 특정 목적 서브 시스템의 아이들 상태를 나타내며, 저장 시스템에 저장될 수도 있다. 거래는 e 메일을 읽는 것을 포함할 수도 있으며, 각각의 개별 e 메일 메시지는 개별 거래를 나타낸다. 선택적으로, 하나 이상의 아이템은 수리 프로세스 동안 무시될 수 있다. 예를 들어, 만일 e 메일이 열려지면, 수리 프로세스는 열려진 e 메일을 무시하고, 문제를 검색 및 수리할 수도 있으며, 이어 사용자는 이를 중지하지 않고 e 메일에 응답할 수도 있다. 다른 실시예에서, 모든 다운로드 및 e 메일은 작업 서브 시스템에서 다운로드 또는 e 메일을 열기 전에 저장 시스템에 즉각적으로 저장될 수 있다.
일 실시예에서, CE의 로직은 수리 프로세스와 관련한 이벤트를 트리거할 수도 있다. 수리 프로세스는 작업 시스템의 마스터 템플릿과 현재의 작업 시스템의 상태 사이의 비교를 실행할 수도 있다. 이들 사이의 소정의 차이는 상이한 일부 또는 모든 데이터가 작업 시스템으로부터 검색되는 연속한 수리 프로세스를 트리거할 수 있다. 게다가, 데이터는 필요할 때 수리 프로세스에 의해 마스터 템플릿으로부터 복사될 수도 있다. 일 실시예에서, 수리 프로세스는 작업 시스템이 마스터 템플릿에 일치하게 할 수도 있다.
일 실시예에서, 수리 프로세스는 예를 들어, 하나 이상의 전자 상거래 이후 또는 하나 이상의 웹 페이지를 서핑한 후 실행될 수 있다. 따라서 모든 공지된 그리고 공지되지 않은 바이러스 및 트로이 목마는 다른 거래 이전에 무기력하게 될 수 있다. 이러한 프로세스는 컴퓨터로부터 바이러스, 웜 및 트로이 목마를 제거하지 않지만(이들은 저장 시스템에 저장될 수도 있음), 이들을 비활성 상태로 유지시킨다. 수리 프로세스는 휘발성 및 비휘발성 메모리를 수리하거나, 휘발성 메모리를 소거하거나, 휘발성 메모리를 아이들 상태로 설정할 수 있다.
일 실시예에서, 만일 사용자가 열려질 하나 이상의 e 메일을 선택하면, 두 개 이상의 e 메일이 작업 시스템으로 복사되고 동시에 열려질 수 있다. 선택적으로, 각각의 e 메일은 자신 고유의 개별 분리된 작업 시스템으로 복사되고, 열려지고, 뷰잉되고 개별적으로 작업될 수 있다. 만일 사용자가 하나의 분리된 e 메일로부터 데이터를 다른 분리된 e 메일로 복사할 필요가 있을 경우, 코드가 실행되지 않게 하는 복사 프로세스가 사용될 수 있다.
일 실시예에서, 웹 상거래 소프트웨어, 또는 e 메일 소프트웨어, 또는 소정의 소프트웨어는 변경되어, 거래를 위해 특정하게 필요한 개별 기록 또는 기록의 사본이 저장 시스템에 복사되고 사용되어 저장 시스템의 데이터 베이스로 재복사되게 하고, 각각의 이러한 거래 후 수리가 행해질 수 있게 한다. 선택적으로, 예를 들어, 데이터가 하나 이상의 데이터 베이스 또는 CGI와 작용하는 거래에서, 거래는 필요한 경우, 개별 세그먼트, 분리된 저장 시스템으로 그리고 그로부터 복사된 데이터 또는 작업 시스템으로 분할되며, 거래의 각각의 세그먼트 사이에서, 또는 거래의 소정 세그먼트 사이에서 실행될 수 있다. 선택적으로, 소프트웨어는 어떤 타 입의 데이터가 소정의 기준을 충족시키는 복사 전용 데이터에 대해 복사 프로세스를 제한하는 거래를 포함하는 지를 한정하는 명령을 포함할 수 있다.
일 실시예에서, 수리 프로세스를 가속시키기 위해, 작업 시스템의 마스트 템플릿 및 작업 시스템의 소프트웨어는 수리 프로세스의 속도를 증진시키기 위해 자신 고유의 개별 분리된 휘발성 메모리 영역 또는 셀에 각각 로딩될 수도 있다. 따라서, 만일 작업 시스템의 데이터가 휘발성 메모리에 있고 마스터 템플릿이 휘발성 메모리에 있다면, 수리는 더 높은 속도로 행해질 수 있다. 택일적으로, 새로운 작업 시스템이 사용될 수 있으며, 수리를 위한 필요성을 제거한다. 예를 들어, 사용자는 e 메일을 열 수 있으며, 하나의 셀을 이용하여 e 메일을 읽으며, 만일 e 메일에 응답하기를 원하면 제2의 셀이 응답을 위해 사용될 수 있다. 선택적으로 제1 셀 또는 계산 환경은 바이러스를 체크할 수 있지만, 사용자는 제2 셀을 이용하여 e 메일에 대한 응답을 기록하며, 추가의 셀 또는 계산 환경은 사용을 위해 준비될 수 있다.
다른 실시예에서, 데이터는 데이터의 실행을 방지하는 코딩 또는 압축 또는 다른 복사 방법을 이용하여 저장 시스템에 직접 다운로드될 수 있다. 선택적으로, 분리된 숨겨진 백업 또는 보존 시스템은 본 발명과 함께 사용될 수도 있으며, 이는 숨겨진 백업 또는 보존 시스템 또는 작업 시스템을 필요에 따라 휘발성 또는 비휘발성 메모리/메모리들 또는 데이터로 만들 수도 있으며, 이는 타임 스탬핑된다. 이러한 백업 또는 보존 시스템으로 데이터를 복사하는 것은 백업 시스템상의 데이터에 파일의 실행 및 손상을 방지하기 위해 설명된 기술을 또한 사용할 수 있다.
파일 저장 동작과 관련하여, 일 실시예에서, 저장이 작업 시스템에서 행해질 때마다, 복사는 저장 시스템에 대해 행해질 수 있다. 선택적으로, 바이러스 또는 트로이 목마가 저장 시스템에 저장된 수백만의 저장을 실행함으로써 파괴를 방지하기 위해, 선택적으로 파일이 저장될 수 있는 빈도에 대한 제한을 부과할 수도 있으며, 또는 다른 제한이 작업 시스템에 대한 저장 데이터의 프로세스에 대해 행해질 수도 있다. 선택적으로, 이는 ROM 또는 복사, 보관, 저장 또는 다른 프로그램의 일부일 수 있다.
제한된 기능을 갖는 개별 프로세서는 분리된 작업 시스템에서 프로세스 데이터에 사용될 수도 있으며, 또는 메인 프로세서에 제한된 기능이 주어질 수 있다. 이는 다수의 데이터 저장 장치, 또는 분리된 부분을 갖는 하나의 데이터 저장 장치로 행해질 수 있다.
본 발명의 시스템 및 방법의 일 실시예에서, 데이터는 악성 코드를 전달할 가능성을 제거하는 방식으로 하나 이상의 계산 환경 사이에서 전달되며, 또는 하나 이상의 제2 계산 환경 사이에서 전달된다. 일 실시예에서, 이러한 방법론적 절차는 예를 들어, 제2 계산 환경에 안내하는 데이터 라인에 접속된 ASCII 또는 확장형 ASCII를 송신 및/또는 수신할 능력을 갖는 ASIC 또는 다른 로직 회로 또는 로직 수단의 제1 계산 환경에서의 사용을 포함한다. 소정의 실시예에서, ASIC 또는 로직 수단의 성능은 어떠한 부가의 처리가 발생할 수 없도록 특정하게 제한된다. 선택적으로 제2 계산 환경은 ASCII 데이터를 직접 수신할 수도 있으며, 또는 그 대신 데이터는 ASCII 또는 확장 ASCII 데이터를 수신 및/또는 전송하는 능력을 갖는 제2 ASIC에 의해 수신될 수도 있다. 이러한 ASICS는 예를 들어, 버퍼 오버런을 방지하기 위해 (예를 들어, 시간 주기내에) 행해질 수도 있는 데이터의 양, ASCII 특성, 및/또는 요청을 제한할 수도 있다.
일 실시예에서, ASCII 필터링된 또는 스트립된 파일 또는 콘텐츠에 대한 소정의 선택적 조절이 제공될 수도 있다. 예를 들어, 만일 파일, 데이터 세트, 또는 인터넷 또는 월드 와이드 웹 콘텐츠가 ASCII 스트립된 또는 필터링되지 않았다면, 외부 세계로부터의 파일 및 그로부터 전달된(자신의 자손 또는 자식으로부터 전달된) 파일은 "불안전"으로 마킹 또는 식별되는 반면, 단지 소정의 허가된 ASCII 특성을 포함하기 위해 필터링 또는 스트립된 파일 또는 콘텐츠가 "안전"으로 식별될 수도 있다. 이러한 타입의 마킹은 ASCII가 아닌 예정된 다른 파일 또는 콘텐츠에 대해 사용될 수 있다. 따라서, 통상적으로, 파일은 선택적으로 문제를 일으킬 수도 있는 감염, 악성, 또는 단순히 비공지된 코드에 노출되지 않은 것이 공지되면 안전한 것으로 처리되며; 이렇게 노출되지 않은 것으로 공지되면 안전한 것으로 마킹될 수도 있다.
일 실시예에서, 예를 들어 하나 이상의 다음 단계로 구성되거나 이를 포함하는 수리 프로세스가 행해질 수도 있다: (a) 마스터 템플릿의 모두 또는 일부와 일치 및/또는 부분적으로 일치하는 CE에 소프트웨어를 생성 (b) 계산 환경 또는 계산 환경 저장 장치("폭발 룸")와 같은 계산 환경의 일부를 소거 및/또는 수리, 및/또는 2차 CE로 스위칭 (c) 하나 이상의 데이터 저장 장치, 마스터 부트 레코드, 파티션 테이블 등을 재포맷 및/또는 수리 (d) 하나 및/또는 그 이상의 다른 수리 프로 세스를 실행 또는 (e) 이들의 소정 조합을 실행. 수리 프로세스는 예를 들어, 사용자가 문서를 "종료"할 때마다 실행될 수도 있다(및/또는 다른 기준이 문서가 실행될 때를 위해 사용될 수도 있다). 따라서, 각각의 새로운 문서가 소거 환경에서 열려질 수도 있으며, 이는 어떠한 바이러스 및/또는 해커 소프트웨어 또는 다른 악성 코드를 포함하지 않는다.
일 실시예에서, 마스터 템플릿은 선택적으로 숨겨질 수도 있는 데이터 저장 장치상에 저장될 수도 있으며, 및/또는 사용자에게 통상적으로 보여지지 않을 수도 있으며, 보호된 마스터 템플릿, 및/또는 마스터 템플릿으로 언급될 수도 있다. 선택적으로, 마스터 템플릿은 필요시까지 "판독 전용", 및/또는 로킹, 및/또는 턴오프, 및/또는 디스에이블되며, 및/또는 디스커넥트되며, 및/또는 비활성되며, 및/또는 마스터 템플릿과의 통신은 종료 및/또는 비활성될 수 있다. 이러한(및 다른) 기술은 보호된 마스터 템플릿을 악성 코드로부터 보호하기 위해 사용될 수 있다.
일 실시예에서, 데이터 저장 장치 및/또는 부분은 사용자의 개인적 데이터(사용자에 의해 행해진 문서, e 메일, 어드레스 북, 북 마커, 즐겨찾기, 데이터 베이스 컴포넌트 등)를 일시적으로 저장하는데 사용될 수도 있다. 이러한 데이터 저장 영역은 일시적 저장 장치로서 언급될 수도 있다. 예를 들어, 사용자가 문서를 저장할 때, 일시적 저장 장치에 저장될 수도 있다. 사용자가 데이터 베이스를 저장할 때, 예를 들어, 데이터 베이스(및 아마도 관련된 문서)는 일시 저장 장치에 저장될 수도 있다. 사용자가 e 메일을 다운로드할 때, 이는 일시 저장 장치에 저장될 수도 있다. 북마크 및 즐겨찾기와 같이 아이템이 생성될 때, 아이템들은 이 들이 생성되고, 및/또는 애플리케이션이 중지할 때 일시 저장 장치로 저장될 수도 있다. 문서가 보호된 저장 장치(명세서의 다른 부분에서 설명됨)로부터 요청된 때, 이는 일단 일시 저장 장치에 복사될 수도 있다. 예를 들어, 만일 사용자가 인터넷 브라우저를 열기를 원하면, 즐겨찾기/북마크, 및 다른 사용자 정보가 보호된 저장 장치로부터 일시 저장 장치로 복사될 수도 있다. 이는 이러한 프로세스에 필수적이지 않은 선택적 단계이지만 소정의 실시예에서는 필요하다는 것을 이해해야 한다.
수리 프로세스는 일시 저장 장치를 수리하고, 또는 이를 앞서 준비된 새로운 사본으로 대체한다. 예를 들어, 일 실시예에서, 다수의 일시적 저장 영역은 분리되어 준비될 수도 있다. 이어, 이들이 필요한 만큼, 오래된 일시 저장 장치 장치는 삭제되고 하나 이상의 새로운 장치로 교체되며, 이는 예를 들어 RAM, RAM 디스크, 셀 등을 사용하여 생성될 수도 있다.
일 실시예에서, 예를 들어, 보호된 저장 장치는 사용자의 개인 데이터가 수리 이후를 제외하거나, 폭발 프로세스가 중지된 경우, 폭발 룸으로부터 분리된 저장 영역일 수도 있다. 일시적 저장 장치는 데이터가 보호된 저장 장치로부터 일시적 저장 장치로, 그리고 문서가 작업된 후 다시 일시적 저장 장치로부터 보호된 저장 장치로 "왕복된" 경우, (선택적으로) 사용될 수도 있는 데이터 저장 영역일 수도 있다. 일시적 저장 장치는 일 실시예에서 계산 환경(본 애플리케이션 및 소정의 앞선 애플리케이션에서 폭발 룸으로 언급됨)에 대해 언제나 액세스 가능할 수도 있다. 이러한 예에서, 사용자는 데이터를 작업 동안 일시적 저장 장치로 보관할 수도 있지만, 중지시, 문서(또는 다른 파일 또는 데이터 세트)는 일시적 저장 장치로부터 보호된 저장 장치로 복사된다.
파일 및 백업과 관련하여, 선택적으로 일 실시예에서, 백업 시스템 또는 보존은 예를 들어, 문서, E 메일, 즐겨찾기 등의 사용자의 모든 개인적 데이트의 연속적 백업을 유지하는데 사용될 수도 있다. 선택적으로, 만일 파일이 바이러스 또는 손상에 의해 훼손되면, 사용자는 백업 시스템으로부터 최근 버젼을 복사할 수 있다. 연속한 백업 및/또는 보존은 시간/데이터 스탬핑되어, 사용자가 용이하게 백업이 언제 행해졌는지를 결정할 수 있다. 백업의 빈도는 제조자에 의해 디폴트로서 예정될 수도 있지만 사용자에 의해 변경가능할 수도 있다. 선택적으로, 백업 시스템은 사용자로부터 일반적으로 숨겨질 수도 있다. 일 실시예에서, 백업 시스템이 사용자에게 이용가능하면, "판독 전용" 모드로 유지되어, 사용자에 의해 유연히 변경될 수 없도록 한다. 선택적으로 백업은 개별 데이터 저장 장치(소정의 실시예에서는 파티션)에 존재하며, 및/또는 다른 경우, 예를 들어, 네트워크 상에 위치된다. 이는 본 프로세스에 필수적이지 않은 선택적 단계이지만 일부 실시예에서는 필요할 수도 있다.
문제 또는 에러가 계산 환경에서 발생되었다는 지표와 관련하여, 복귀 및 수리의 다양한 단계가 행해질 수도 있다. 일 실시예에서, 프로세서는 처리를 완료하기 위해 허락될 수도 있으며, 및/또는 "소거"되거나 리셋될 수도 있으며, RAM이 소거되거나 리셋될 수도 있으며, (선택적으로, 선택적으로 이용불가능 및/또는 비활성화될 수도 있는 제2의 분리된 RAM은 이용가능하게 될 수도 있는데, 예를 들어 RAM과의 통신이 구축, 및/또는 성취 및 이용될 수도 있는 반면, 제1 RAM은 소거되지만, 제2 RAM의 사용은 요구되지 않음) 프로세스 및/또는 RAM은 수리 프로세스에서 사용될 수도 있다. 많은 택일적 프로세스 및/또는 상이한 프로세스 및/또는 RAM 또는 다른 메모리 또는 저장 장치가 이용될 수도 있지만, 폭발 룸 또는 분리된 처리 환경에 대한 수리 프로세스의 일 실시예가 설명된다. 일 실시예에서, CE의 수리는 CE를 다른 CE로 대체함으로써 또한 한정될 수도 있다. 이를 보존하는 한 방법은 제1 CE를 삭제하는 것이며, 제2 CE와의 통신을 보존하는 것이다. 택일적으로, 제1 폭발 룸은 제2 CE가 사용중인 동안 수리될 수 있다.
인박스 및 아웃박스의 전자 메일 또는 E 메일은 통상적으로 많은 개별 메시지를 포함하는 큰 파일로 통상적으로 저장된다. 예를 들어, 하나의 "인박스"는 사용자에게 전송된 모든 메시지를 포함할 수도 있다. 따라서, 하나의 E 메일이 읽혀지거나 전송된 경우, 전체 E메일 파일은 바이러스 또는 해커로부터 위험해질 수도 있다. 본 발명의 일 실시예에 따라, E 메일 소프트웨어는 변경될 수도 있어서, 한 번에 하나의 E 메일이 임시 저장 장치 또는 사용을 위해 열려질 분리된 계산 환경에 복사될 수도 있다. 이는 다른 E 메일을 오염으로부터 보호할 것이다. 수리는 다른 E 메일을 열기 전에 실행될 수도 있다. 일 실시예에서, 어드레스 북 및/또는 다른 E 메일 컴포넌트는 보호된 저장 장치 및 특정 어드레스에 저장될 수도 있으며, 사용자 선택은 보호된 저장 장치로부터 사용할 작업 영역으로 복사될 수도 있다. 따라서, 바이러스는 사용자 전체 어드레스 북에 액세스하지 않을 것이다. 선택적으로, 어드레스 북을 업데이트하는 것은 제한되어서, 수리 프로세스가 우선 행 해지게 하며, 결국 어드레스 북을 오염으로부터 보호한다.
선택적으로, 데이터 베이스 및 다른 소프트웨어는 대부분의 E 메일 프로그램이 개별 E 메일을 하나의 파일로 처리하는 것처럼 다수의 파일을 하나의 큰 파일 또는 데이터 베이스로 저장할 수도 있다. 이러한 소프트웨어는 변경되어서 개별 파일 및/또는 이산 기록들이 일시 저장 장치로 복사될 수 있게 하며, 사용자에 의해 한 번에 하나씩 작업되게 하여, 그 결과 전체 데이터 베이스가 위험에 처하지 않게 한다. 이어 수리는 다음 파일 또는 기록을 열기 전에 행해질 수도 있다. 예를 들어, 박스 내의 E 메일에서 각각의 E 메일은 개별 파일로 저장될 수 있다. 택일적으로, 데이터의 위치는 디렉토리 및/또는 데이터 베이스에 진입될 수 있으며, 해당 데이터만이 보호된 저장 장치의 소정의 파일을 열지 않고 임시 보관소에 복사될 수 있다. 일 실시예에서, 컴퓨터 프로그램 코드는 사용자 데이터가 보호된 저장 장치에서 열려지는 것을 방지할 수도 있다. 일 실시예에서 E 메일 및/또는 데이터 베이스는 보호된 저장 장치 영역으로부터 CE 및/또는 다른 저장 장치 장치로 복사될 수도 있으며, 하나(소정의 경우 그 이상)의 E 메일 또는 파일은 작업을 위해 열려질 수 있다. 단지 하나의 E 메일(또는 데이터 베이스 파일)이 열려지고 작업될 수 있으며, 나머지 E 메일 및/또는 데이터 베이스는 (여전히 보호된 저장 수단에 상주하기 때문에) 삭제될 수 있다. 일 실시예에서, 사용자 및 웹 사이트는 본 발명의 기술 및 방법을 이용한다. 예를 들어, 일 실시예에서, 시스템 또는 장치 사용자는 웹 사이트에서 전자 상거래를 실시할 것을 결정한다. 통상의 방식으로 웹사이트 상에서 데이터를 입력하는 대신, 사용자는 자신이 전자 상거래를 하기 를 원한다는 것은 표시하며, 이는 웹 사이트 소프트웨어가 사용자 공용 코딩 키를 픽업하게 한다(또는 사용자 소프트웨어가 자동으로 제공하게 함). 웹 사이트는 사용자 키를 분리된 계산 환경으로 이동시키며, 사용자는 자신의 거래 또는 데이터 베이스 정보로 진입하기 위해 사용할 수 있는 표준 단독 애플리케이션 프로그램 또는 절차를 사용하여 코딩한다. 이어 코딩된 파일은 접속되거나, 인터넷과 같은 네트워크에 접속 또는 결합될 수도 있는 분리된 컴퓨터 환경으로 이동될 수도 있으며, 또는 네트워크는 분리된 계산 환경으로 접속될 수 있는데, 여기서 표준 단독 애플리케이션은 코딩된다. 코딩된 애플리케이션은 이어 사용자에게 전송된다. 사용자의 컴퓨터는 애플리케이션을 수신하고, 이를 분리된 컴퓨터 환경으로 이동시키며, 애플리케이션을 분리된 계산 환경에서 디코딩한다. 이어 사용자는 자신의 사용자 데이터를 애플리케이션에 입력한다. 애플리케이션은 사용자가 입력한 것의 데이터 베이스를 생성할 수도 있으며, 이어 상기 데이터 베이스는 코딩되며, 이어 네트워크 접속이 분리된 계산 환경, 또는 새로운 분리된 계산 환경으로 이동된 코딩된 데이터 베이스로 구축되며, 이어 코딩된 데이터는 상거래 사이트로 역전송되어 새로운 분리된 계산 환경으로 이동되어 디코딩된다. 이러한 방식으로 디코딩된 데이터 베이스 및 전자 상거래는 네트워크에 결코 노출되지 않는다.
일 실시예에서, 이더넷 케이블(또는 다른 네트워크 접속 통신 링크)는 양 방향이 아닌 단방향으로 통신할 수도 있으며, 수신 및 송신 케이블 각각은 계산 환경 각각과 통신하도록 스위칭된다. 이러한 실시예에서, 이더넷의 각각의 라인 또는 방향(또는 다른 네트워크 접속 통신 링크)이 개별적으로 분리된 계산 환경과 결합 된 각각의 통신 링크와 개별적으로 스위칭된다. 하나의 계산 환경이 전송하고 다른 계산 환경이 수신하며, 이들의 활동이 CSCE 또는 CCE와 같은 제어 계산 환경에 의해 제어된다. 다른 실시예에서, 한 쌍 또는 네트워크 인터페이스 카드 또는 능력(NIC) 또는 모뎀은 전송/수신 능력을 제공하는 쌍으로 송신 전용 또는 수신 전용으로 구성된다. 하나의 계산 환경에서 수신 전용 능력만을 제공하고 다른 계산 환경에서 송신 전용 능력만을 제공함으로써, 심지어 해커 또는 바이러스가 수신 계산 환경에 액세스한 경우도, 해커 또는 바이러스는 전송 전용 계산 환경으로부터 획득하거나 다른 곳에 통신할 수 없다.
일 실시예에서, 내부 DHCP 라우터 또는 다른 라우터가 선택적으로 제공되어, 계산 환경이 다중 네트워크 거래, 다중 NIC 카드, 또는 다중 I/O 장치를 가질 수 있다. 일 실시예에서, 소정 수의 주변 장치가 분리된 방식으로 소정 수의 계산 환경과 배타적으로 결합된다. 이러한 장치들은 예를 들어, USB 장치, 방화벽 장치, SCSI 장치, 직렬 장치, 또는 기술 분야에서 알려진 바와 같은 소정의 다른 장치 타입일 수도 있다.
일 실시예에서, 앞서 저장된 버젼의 파일을 대체하는 대신, 더 오래된 파일이 유지된다. 예를 들어, 업데이트된 넷스케이프 북마크 및 사용자 데이터가 보호된 저장 장치로 복사된 경우, 이들은 넷스케이프 북 마크 및 히스토리의 앞선 버젼을 대체하지 않을 수도 있다. 따라서, 데이터가 사용된 이후, 만일 데이터가 훼손되고 적절하게 동작하지 않으면, 제어 방법 및/또는 사용자는 수리를 실행할 수도 있으며, 데이터의 이전 버젼을 이용하여 스위칭백할 수도 있다.
일 실시예에서, 선택적으로 두 개 이상의 CE가 생성될 수 있는데, 이들은 예를 들어, 완전한 마스터 템플릿을 갖는 하나 및 예를 들어 종종 사용된 애플리케이션 및 동작 시스템의 축약된 세트만을 포함하는 다른 하나이다. 선택적으로, 소프트웨어가 요구된 때, 만일 CE가 소프트웨어를 포함하지 않으면, 요구된 소프트웨어는, 사용자 소프트웨어의 전체 세트를 포함하고 선택적으로 동작 시스템을 포함할 수도 있는 마스터 템플릿으로부터 이를 복사함으로써 CE에 포함될 수 있다.
일 실시예에서, 선택적으로 네트워크 통신을 활성화하기 이전에, 전송될 일부 또는 모든 E 메일은 전송에 앞서 분리된 계산 환경에서 코딩를 실행함으로써 E 메일을 보호하는 방법을 사용하여 코딩될 수 있으며, 이어 E 메일을 제2의 분리된 계산 환경으로 복사하며, 여기서 메일이 전송된다(그리고 잠재 해커에 노출된다). 수신 후, 코딩된 E 메일은 디코딩되기 전에 분리된 계산 환경으로 이동된다. 따라서, 이메일은 코딩되지 않은 형태로 인터넷에 결코 노출되지 않는다. 우리의 소프트웨어는 자동으로 코딩 및/또는 디코딩 프로세스를 사용자의 개입없이 트리거링한다. 선택적으로, 사용자 공용 키가 각각의 이메일에 자동으로 제공될 수 있다.
선택적으로, 일 실시예에서, 보호된 저장 장치는, CSCE 또는 CCE 또는 다른 제어 환경이 데이터를 CE로 이동시키는 명령을 수신할 때까지 판독 전용 및/또는 로킹될 수 있다. 따라서, 이러한 예에서, 만일 사용자가 열기 위해 보호된 저장 장치의 문서를 선택하면, (예를 들어, ROM 및/또는 동작 시스템의 명령일 수도 있는) 코드는 CSCE가 수리를 실행하도록 명령할 수 있다. 이어 수리 이후에, CSCE는 보호된 저장 장치를 판독-기록 및/또는 언로킹으로 스위칭할 수 있다. 데이터는 보호된 저장 장치로부터 임시 저장 장치 및/또는 폭발 룸으로 복사될 수 있다. 이러한 이벤트는 다른 순서로 발생될 수도 있으며, 추가의 및/또는 다른 단계를 포함할 수도 있으며, 및/또는 이러한 단계의 일부를 포함할 수도 있다.
선택적으로, 다수의 CE는 동시에 동작할 수 있어, 어떤 CE가 "충돌"하고 그리고/또는 고장 및/또는 차단되고/또는 더 이상 불필요한 경우, 다른 CE가 사용중이던 CE를 대신할 준비를 한다. 예를 들어, CSCE는 제 2 CE로 전환될 수 있고, 그리고/또는 제 2 CE와의 통신을 활성화할 수 있다.
일 실시예에서, 보호 저장 장치에 관련된 코드는 데이터의 실행을 허용하지 않을 수도 있고 그리고/또는 보호 저장 장치에서 데이터의 실행을 지원하지 않을 수도 있다. 따라서 이 실시예에서는, 어떤 사용자 데이터도 보호 저장 장치에서 실행될 수 없다. 선택적으로, 수리 전에, 그리고 CE와의 새로운 네트워크 접속 전에, 그리고/또는 임의의 사용자 문서를 열기 전에는 CE에 의해 보호 저장 장치와의 통신이 결코 이루어질 수 없다. 따라서 보호 저장 장치는 해킹 및 바이러스의 실행에 손상되지 않는다.
일 실시예에서, (x-룸 또는 폭발실이라고도 하는) 계산 환경들은 각각 서로 동일할 수도 있고, 그리고/또는 서로 차이점을 가질 수도 있으며, 그리고/또는 "시간 지연" 미러 역할을 한다. 일 실시예에서, 제 2 CE는 동일할 수도 있지만, 키 누름 및/또는 입력은 지연 방식으로 다수의 CE에 전송될 수도 있다. 따라서 어떤 CE들은 시간 지연될 수 있으므로, CE가 충돌한다면 제어 시스템이 시간 지연된 CE로 전환할 수 있다. 일 실시예에서, 제어 방법은 프로세스 감시자 및/또는 충돌 검출 시스템을 이용하여 제 2 시스템 CE로의 전환 여부를 판단할 수 있고, 선택적으로 문제점을 분석하여 연속적인 이전 CE로의 전환시 문제점을 피할 수 있다.
일 실시예에서, 휘발성 메모리의 데이터는 명령의 실행 전에 복사될 수도 있고, 그리고/또는 저장될 수도 있고, 그리고/또는 다른 메모리 영역 및/또는 논리 장치에 백업될 수도 있다. 명령의 실행 이전 데이터의 연속적인 백업이 저장될 수 있다. 그리고 명령이 실행될 때 정지와 같은 문제가 발생하면, 새로운 제 2 메모리 시스템 및/또는 제 2 자체 수리 사용자 작업 영역이 사용될 수 있으며, 그리고/또는 선택적으로 휘발성 메모리의 백업이 휘발성 메모리에 로딩될 수 있다. 이는 사용을 위한 비활성 메모리의 양호한 사본을 제공할 수 있다. 문제나 정지가 또 발생했다면, 저장된 비활성 메모리의 이전 버전이 이용될 수 있다. 선택적으로, 사용자(들)는 문제를 통보받고 이들이 입력한 것 및/또는 이들이 어떻게 데이터를 입력하는지 그리고/또는 다른 행동을 변경할 것을 요청받을 수 있다. 선택적으로, 프로세스 감시자 및/또는 에러 검출 시스템은 문제를 인식하는데 사용될 수 있다. 선택적으로, 제 2 CE가 사용될 때, 충돌을 피하기 위해 비활성 메모리의 이전 백업을 이용하고 그리고/또는 제 2 시스템에 데이터를 다르게 처리할 것을 명령하도록 제어 방법이 선택될 수 있다.
수리를 행하는 다른 방법은 예를 들어 다수의 CE를 분리하여 준비하는 것이다. 이들 CE는 RAM 디스크, RAM, 쉘, 휘발성 메모리 또는 다른 데이터 저장소 형태일 수 있으며, 관련 RAM, 및/또는 처리, 및/또는 연산을 가질 수도 있으며, 하나 이상의 마스터 템플릿 전부 또는 일부의 사본을 포함할 수 있다. 예를 들어, CE를 분리된 백업에서 현재 CE로 전환하도록 통신을 활성화 및/또는 비활성화함으로써 분리가 형성될 수 있다.
선택적으로, 일 실시예에서 하나 이상의 비참여 및/또는 비확인 파일이 임시 저장 영역에 나타나는 경우에(예를 들어, 데이터가 임시 저장 영역에 있어야 하는 것에 관여하는 정보는 보호된 데이터베이스에 나타나지 않는 하나 이상의 파일), 예를 들어 제어 방법 및/또는 운영 시스템, 및/또는 ROM의 코드는 이러한 파일에 사용자의 주의를 끌어들일 수 있다. 사용자에게는 파일(들)의 파기 및/또는 저장, 및/또는 파일(들)이 의심스러운 어떤 방식임을 지시하는 표시를 하는 옵션이 부여될 수 있으며, 그리고/또는 추가 검사 및/또는 확인을 필요로 할 수도 있다. 다른 실시예에서, 미확인 파일은 삭제되고 그리고/또는 데이터 저장 장치에 저장되며 그리고/또는 추가 검사를 위해 표시될 수도 있고, 그리고/또는 추가 조사를 위해 어딘가에, 예를 들어 네트워크 관리자 및/또는 바이러스 검사 엔티티에 자동 및/또는 수동으로 전송될 수도 있다.
일 실시예에서, 하나 이상의 데이터 자장 장치(들)는 읽기 전용과 읽기/쓰기 모드 및/또는 잠금 및/또는 해제 모드, 및/또는 액세스 가능 및/또는 액세스 불가 모드 사이에 전환되는 하드웨어 및/또는 소프트웨어일 수 있다. 일례로, 사용자는 읽기 전용 데이터 저장 장치로부터 파일을 열고, 그 파일에 대해 작업하며, 사용자가 파일을 저장할 때는 임시 저장 영역에 저장된다. 선택적으로, 일부 또는 모든 파일을 닫을 때, 제어 로직 및/또는 방법은 다음 단계들 중 하나 이상을 수행할 수도 있고, RAM을 소거 및/또는 리셋할 수도 있고, 프로세서를 소거/리셋할 수도 있 으며, 그리고/또는 하나 이상의 데이터 저장 장치를 해제 및/또는 잠금, 및/또는 읽기/쓰기 및/또는 읽기 전용으로 만들 수 있으며, 임시 저장소에서 데이터 저장 장치로 데이터를 이동시킬 수도 있고, 하나 이상의 데이터 저장 장치(들)를 닫고/잠그고/읽기 전용으로 만들 수도 있고, 선택적으로 임시 저장 영역을 소거/리셋할 수도 있고, (선택적으로 수리 프로세스를 실행하며), 다음 사용자 명령을 기다릴 수 있다. 일 실시예에서, 임시 저장소는 휘발성 및/또는 비휘발성 메모리로 구성될 수 있다. 일례로, 랜덤 액세스 메모리 및/또는 플래시 ROM, 및/또는 다른 데이터 저장소가 사용될 수 있다. 일 실시예에서, 문서 간 데이터 복사를 위해, 복사할 데이터가 RAM 및/또는 휘발성 메모리의 하나 이상의 특정 주소(들)로 로딩될 수도 있다. 붙이기 명령 수신시, 데이터가 실행될 수 없게 하는 복사 프로세스를 이용하여 데이터가 전달될 수 있다. 예를 들어, 데이터는 실행될 수 없는 ASCII 텍스트만을 전송하도록 간소화될 수 있다.
일 실시예에서, 파일은 보호 저장 장치에서 열릴 수 없지만, 제어 환경과 같은 "보안" 인터페이스로부터 수행되는 한, 예를 들어 이에 한정되는 것은 아니지만 복사, 이동, 삭제, 플래그, 백업, 아카이브 및 다른 기능을 할 수도 있다.
일 실시예에서, 우선권을 변경하고, 마스터 템플릿을 수정하고, 백업을 삭제하거나 제어 환경에 다른 관리 이벤트를 제공하는 등의 명령을 실행하기 위해, 예를 들어 자체 사용자 인터페이스 소프트웨어를 가질 수 있는 제어 환경과 같은 보안 환경에서 관리가 일어나야 한다. 여기서 분리라는 용어는 설명하고 있는 시점에는 분리되고, 여기서 설명한 다른 특정 시점에는 분리되지 않는다는 개념을 전달 하는데 사용될 수 있다. 예를 들어, CE는 사용자 데이터가 실행되고 있을 때 수리 프로세스가 실행될 때까지 분리될 수 있다. 그 다음, 수리 프로세스를 실행하기 위해, 예를 들어 읽기 전용 마스터 템플릿과의 통신이 확립될 수 있으며, 수리가 이루어진 다음, 네트워크와의 통신과 같이 CE와의 통신이 확립될 수 있다. 분리는 필요에 따라 이용되며 해킹 및 바이러스 확산을 방지할 필요가 있을 때 이용된다.
마스터 템플릿을 참조하면, CE에 사용되는 마스터 템플릿의 "일회용 사본"이 여러 방식으로 다양한 기준을 이용하여 생성될 수 있다. 일 실시예에서, CE의 다양한 마스터 템플릿이 생성될 수 있다. 마스터 템플릿의 생성 기준이 확립될 수 있다. 예를 들어, 한 가지 기준은 컴퓨터/연산 장치에 공통으로 사용되는 프로그램의 선택을 기초로 할 수 있다. 예를 들어, 컴퓨터 사용자가 (1) 워드 처리 프로그램, (2) 이메일 프로그램, (3) 2개의 인터넷 브라우저 및 팝업 방지 유틸리티 및 온라인 경매 추적 프로그램을 가장 일반적으로 사용하며, 보다 적은 범위까지는 다양한 다른 애플리케이션, 게임, 유틸리티 및/또는 다른 프로그램들을 사용하는 것으로 가정한다. 이러한 예를 이용하여, 마스터 템플릿(들)은 기준으로서 필요로 하는 것들 각각을 이용하여 생성될 수 있다. 따라서 어떤 마스터 템플릿은 운영 시스템 및 워드 처리 프로그램을 포함할 수 있고, 다른 마스터 템플릿은 운영 시스템 및 이메일 프로그램을 포함할 수 있다. 다른 마스터 템플릿은 운영 시스템, 2개의 인터넷 브라우저 및 팝업 차단 유틸리티, 온라인 경매 추적 프로그램을 포함할 수 있고, 또 다른 마스터 템플릿은 사용자 소프트웨어 전부를 포함할 수 있다.
다른 실시예에서, 하나의(또는 그 이상의) 마스터 템플릿이 생성될 수 있으 며, 기준을 충족시키는데 필요한 마스터 템플릿의 일부만이 복사되어 하나 이상의 CE(들)를 생성할 수 있다. 예를 들어, 하나의 마스터 템플릿이 있을 수 있지만, 이는 하나 이상의 CE에 마스터 템플릿의 일부를 생성하는데 사용될 수 있다. 예를 들어, 상술한 기준을 이용하여, 어떤 마스터 템플릿은 사용자에 의해 가능한 용도로 준비된 CE를 생성하는데 사용될 수 있다.
일 실시예에서, 사용자는 이용/오픈할 CE(들)를 선택할 수도 있고, CE(들)에 데이터를 복사할 수도 있다. 선택적으로, CE의 선택 및/또는 사용할 마스터 템플릿의 사본은 자동으로 일어날 수도 있고, 코드에 의해 조직화될 수도 있다. 예를 들어, 사용자가 오픈할 워드 처리 문서를 선택한다면, 문서가 선택될 때 코드가 적절한 워드 처리 소프트웨어를 포함하는 CE의 검색을 실행할 수도 있고, 그리고/또는 적절한 소프트웨어의 위치를 확인할 데이터베이스 및/또는 디렉터리를 검사할 수도 있으며, 그리고/또는 다른 수단을 이용하여 정확한 소프트웨어 및/또는 사용할 CE를 식별할 수도 있다.
본 발명의 일부 실시예에서는, 하나, 여러 또는 모든 계산 환경으로부터의 데이터가 단일 디스플레이 장치(또는 운영중인 계산 환경에 있는 것보다 적은 디스플레이 장치 세트에 디스플레이되어, 디스플레이 장치 및 서브 시스템을 오염 없이 공유하는 바람직함이 있다.
일 실시예에서, 제어 환경은 다수의 동작 모드를 이용할 수 있다. 예를 들어, 제 1 동작 모드에서 제어 환경은 ASCII 및 확장된 ASCII에 대해서는 제외하고 사용자 계산 환경들 사이의 복사를 허용하지 않으며, 그리고/또는 네트워크상에서 의 파일 공유를 허용하지 않는다. 제 2 동작 모드에서, 제어 환경은 미지의 실행 가능한 코드의 복사를 허용할 수 있으며, 그리고/또는 네트워크상에서의 파일 공유를 허용하게 된다. 제 1 모드는 "해킹 및 바이러스에 대한 면역체"로서 분류될 수 있는 반면, 제 2 동작 모드는 "해킹 및 바이러스에 대한 저항체" 또는 "비보안(non-secure)"으로서 분류될 수도 있다. 제 2 동작 모드로 생성된 문서들은 예를 들어 "비보안" 문서 라벨이 붙을 수 있다. 추가 동작 모드가 이용될 수도 있다. 예를 들어 제어 환경 및/또는 사용자 및/또는 관리자에 의해 전환 모드가 이루어질 수 있다. 전환은 자동일 수도 있고, 그리고/또는 수동 전환 프로세스에 의해 또는 검출된 어떤 상태에 의해 트리거될 수도 있다.
발명의 실시예에 의해 구현될 수 있는 많은 다른 가능한 모드가 있다. 예를 들어, 다양한 관리 모드가 있을 수 있다. 관리 모드의 일례로, 사용자는 보호 저장 장치 또는 제어 환경과 같은 하나 이상의 계산 환경에 대해 수리 및/또는 유지를 수행하기 위해 키 또는 패스워드, 또는 신원 또는 승인을 검증하는 임의의 수단을 이용해야 할 수도 있다. 관리 모드 및/또는 수리 모드의 제 2 예에서, 보호 저장 장치(들), 제어 환경(들)이 하나 이상의 데이터 저장 장치에 자동으로 저장될 수도 있고, 재포맷화/리셋/삭제될 수도 있으며, 필요에 따라 재로딩되어 상태를 원래 방식으로 재생성할 수도 있다. 제어 환경과 같은 다양한 환경의 마스터 템플릿이 이용될 수 있으며, 적당한 승인 및 전환에 의해 유지 프로세스 동안 다른 환경이 제어 환경에 대한 수리를 수행할 수도 있다. 일 실시예에서, 이러한 전환은 예정대로 일어날 수도 있고, 그리고/또는 사용자에 의해 트리거될 수도 있다.
다른 환경에서, 제어 환경은 보조 저장 장치에 저장된 각 파일을 라벨링할 수도 있다. 파일이 알려지지 않은 것이거나 신뢰할 수 없는 것이라면, 파일은 예를 들어 "신뢰할 수 없다"라고 라벨링될 수 있는 반면, 파일이 원래의 환경에서 생성될 수 있었다면, 제어 환경은 파일을 "신뢰"로 라벨링할 수 있다. 일례로, "해킹 및 바이러스에 대한 면역체" 모드에서, 제어 환경은 신뢰성 있는 데이터를 제 1 사용자 계산 환경에서 제 2 사용자 계산 환경으로의 복사를 가능하게 할 수 있지만, 제 2 사용자 계산 환경으로의 "신뢰성 없는" 데이터의 복사를 불가능하게 할 수 있다. "보안이 덜 된" 모드로의 전환은 제어 환경이 신뢰성 없는 코드가 제 1 사용자 계산 환경에서 제 2 사용자 계산 환경으로 복사되게 할 수 있으며, 결과적인 파일은 "신뢰성 없음"이라고 라벨링될 수도 있다.
다른 실시예에서는, 어떤 모드에서 2개 이상의 계산 환경에 링크된 데이터가 이들 환경 사이에 직접 복사될 수 있다. 다른 실시예에서는, 신뢰성 있는 링크된 데이터 그룹이 사용자 환경으로 복사 또는 이동될 수도 있고, 이들 사이에 데이터 복사될 수도 있으며, 그리고/또는 모든 데이터가 신뢰성 있다면 크로스 링크될 수 있다. 따라서 링크된 데이터의 전체 데이터베이스 및 세트가 사용자 계산 환경으로 이동 또는 복사될 수도 있고, 다양한 문서 및/도는 데이터베이스 간 데이터의 크로스 복사 및 링크에 의해 조작될 수도 있다. 모든 데이터가 신뢰성 있다면, 데이터는 모드 하나의 사용자 계산 환경에서 함께 조작될 수 있다. (혹은 제 2, 제 3 환경 등 하나 이상의 환경에서) 사용자 계산 환경은 제 1 계산 환경과 직접 통신할 수 있는데, 이는 모든 코드가 신뢰성 있기 때문이다. 다른 신뢰성 없는 동작 모드에서, 신뢰성 없는 데이터는 신뢰성 있는 또는 신뢰성 없는 데이터와 합병하여 신뢰성 없는 데이터가 될 수도 있고, 그와 같이 라벨링된다. 이러한 방식으로 링크된 데이터 및 데이터베이스들의 전체 데이터베이스가 신뢰성 있는 환경에서 유지 및 공유될 수 있다.
다른 실시예에서, 이러한 새로운 기술을 이용한 컴퓨터로 구성된 네트워크가 신뢰성 있는/보안 통신 라인을 통해 전달되는 신뢰성 있는 데이터, 데이터베이스 및 링크된 데이터 문서들을 공유 및 혼합할 수 있다.
일 실시예에서, 제어 계산 환경은 예를 들어 신뢰성 있는 파일과 신뢰성 없는 것으로 라벨링된 파일과의 혼합을 결코 가능하게 할 수 없다. 이 방법은 신뢰성 있는/보안 네트워크 접속에 의해 부여된 전체 컴퓨터 네트워크가 신뢰성 있는 파일, 데이터베이스 및 링크된 데이터를 유리하게 공유 및 함께 혼합할 수 있게 하는 동시에, 컴퓨터상에 신뢰성 없는 파일을 가지며 그 신뢰성 없는 파일들을 위험하게 하지 않고 이러한 신뢰성 없는 파일들을 사용하는 능력을 가질 수 있다.
일 실시예에서, 서버는 여기서 설명한 기술에 있으며, 클라이언트 노드들은 보안/신뢰성 있는 네트워크 접속에 의해 접속될 수 있고, 클라이언트 노드들은 종래 기술의 컴퓨터로 구성될 수 있다. 이러한 예에서, 서버는 다음 단계들: (1) 클라이언트 컴퓨터 하드 드라이브를 재포맷하고 메모리를 소거하는 단계; (2) 사용자가 데스크탑 환경에서 파일을 선택한 후 사용자 컴퓨터에 데스크탑 환경에 대한 액세스를 제공하는 단계; (3) 요청받은 파일을 사용자 환경에 제공하고, 데스크탑 환경과의 통신을 예를 들어 파일 "저장"을 의미하는 1비트 및 1비트 이상으로 제한하 여, 파일을 저장하고 계산 환경을 제거하는 단계를 수행할 수 있다. 또한, (4) 위험한 상태로 제어 환경에 놓이지 않는 방식으로 파일을 저장하기 위해, 사용자 파일이 사용자 계산 환경에 의해 클라이언트 컴퓨터로부터 서버상에 복사된 다음, 사용자 계산 환경에 위치하는 데이터를 저장하는 일반적인 방식으로 저장될 수 있는 단계가 있다. 그 다음, (5) 클라이언트가 그와 같이 할 때, 클라이언트 컴퓨터는 서버에 의해 재포맷화 및 리셋될 수 있다. 선택적으로, 클라이언트는 "씬 클라이언트"로서 동작할 수 있어 클라이언트 컴퓨터에 데이터가 거의 또는 전혀 다시 복사될 필요가 없다.
일 실시예에서, 신뢰성 없다고 표시된 파일들은 예를 들어 워드 처리 문서로부터 임의의 잠재적으로 실행 가능한 코드를 제거하는 "스트리핑" 프로세스에 의해 신뢰성 있게 될 수도 있다. 예를 들어, 신뢰성 없는 파일 데이터는 보안 환경에 ASCII 문자로 복사될 수도 있고, 신뢰성 있는 것으로 분류될 수 있다. 일 실시예에서, 보호 저장 장치는 외부 및/또는 휴대형 및/또는 무정지(hot-swappable) 및/또는 휴대형 미디어일 수 있다. 일 실시예에서, 소프트웨어 및/또는 물리적 버튼 및/또는 스위치 및/또는 조합이 사용되어 계산 환경의 리셋/수리와 같은 이벤트를 트리거할 수 있다.
은닉될 수도 있고 은닉되지 않을 수도 있는 내부 또는 외부 백업 시스템은 예를 들어 제어 환경에 의해 전환되어, 보호 저장 장치, 마스터 템플릿, 제어 환경의 복사 등을 백업할 수 있다.
이제 임의의 선택된 하나의 계산 환경 또는 계산 환경 세트로부터의 데이터 가 어떻게 디스플레이되고 사용될 수 있는지에 관한 설명에 주목한다. 이러한 데이터는 이에 한정되는 것은 아니지만, 계산 환경에서 일어나는 데이터 또는 활성화의 비디오 출력 및 표현뿐 아니라, 처리 에피소드 동안 계산 환경에 의해 또는 계산 환경 내에서 사용되거나 생성되는 실제 입력, 출력 및 중간 데이터 세트 또는 파일을 포함할 수 있다.
윈도우 기반 사용자 인터페이스를 포함하는 일 실시예에서, 모든(또는 선택된) 윈도우, 아이콘 (및 이러한 아이콘이 나타내는 데이터나 애플리케이션 프로그램의 명칭)에 대한 모든(또는 선택된) 크기, 형태 및 위치 좌표, 및 다른 관련 데이터 및/또는 식별 수단이 (임의의 코드 폭발이 포함되고 외부적으로는 해롭지 않기 때문에 어떤 실시예에서는 "폭발실" 또는 "x-룸")이라고도 하는) 계산 환경으로부터 시스템 내의 제어 엔티티, 일반적으로는 이미 설명한 CSCE나 CCE 계산 환경과 같은 (어떤 실시예에서는 "브레인"이라고도 하는) 제어 계산 환경으로 전송된다. 이러한 정보는 예를 들어 다양한 계산 환경 중 하나 이상에서 실행하는 컴퓨터 프로그램 소프트웨어 명령을 이용하는 발명의 절차를 이용하여 또는 단일 동시 발생 계산 환경 동작이 지원될 때 일시적으로 분리되는 방식으로 제어 계산 환경에 제공될 수 있다. 대안으로, 이들 전부 또는 일부는 제어 계산 환경에 의해 또는 제어 계산 환경 내에서 생성될 수 있다.
제어 계산 환경에 의해 저장 및 추적된 이러한 데이터는 여기서 "계산 환경 데이터" 또는 "x-룸 데이터"라 한다.
추가로, 제어 계산 환경 또한 또는 대안으로, 예를 들어 각 "레이어"나 "프 로세스"가 생성된 순서 및 각 윈도우가 생성된 순서를 나타내는 데이터와 같은 제어 데이터나 "브레인 데이터"라 하는 다른 데이터를 추적할 수도 있다. 선택적 또는 활성화 윈도우 또는 프로세스에 대해 정보를 유지할 수도 있다.
일부 실시예에서 설명한 그리고 다른 실시예에 관련하여 시스템 "브레인"이라고도 하는 CSCE나 CCE와 같은 제어 계산 환경은 마우스 커서의 또는 다른 포인팅 장치 위치 및/또는 키보드나 다른 사용자 입력 활동을 추적할 수 있다. 이와 같이 제어 계산 환경이 각 계산 환경에 의해 생성된 오픈 윈도우, 아이콘 등의 위치에 대한 마우스 커서의 위치(마우스 또는 포인팅 장치 클릭 발생시)를 판단할 수 있다. 본 명세서는 주로 키보드 및 마우스 명령을 이용하는 인간 사용자 상호 작용을 개시하고 있지만, 사실 발명의 시스템 및 방법은 이에 한정되는 것은 아니지만, 터치 스크린 상호 작용 및 명령, 음성 상호 작용 및 명령, 드롭다운 메뉴, 핫 스폿 선택 상호 작용 및 명령, 기능 버튼 누름, 펜 스타일러스 상호 작용 및 명령, 및 다양한 다른 사용자 입력 및 상호 작용 방법 및 장치와 같이 공지된 다양한 사용자 상호 작용에 적용될 수 있으며, 또는 개발이 예상될 수 있는 것으로 인식된다.
따라서 마우스 위치 "클릭"(또는 다른 "선택")을 계산하고 할당된 계산 환경의 윈도우 위치 (및 어떤 윈도우가 "앞으로" 또는 "활성화"되는지)를 비교함으로써, CSCE가 구체적으로 어떤 윈도우(또는 아이콘, 또는 아이템 또는 계산 환경 프로세스)가 선택될 것이며 그 "클릭" 입력을 수신하는지를 판단할 수 있다.
따라서 마우스 버튼이 클릭되면, 제어 계산 환경이 제어 계산 환경에 의해 수집된 정보를 기초로, 예를 들어 어떤 레이어가 종래의 윈도우 항에서 "활성화 및 앞으로" 상태가 되는지, 또는 어떤 애플리케이션이 개시되는지, 또는 어느 방향으로 마우스 및 키보드 신호가 재전달되는지를 결정할 수 있다.
("CE의") 계산 환경에서 CSCE로의 직접 접속은 이에 한정되는 것은 아니지만 예로서 CSCE(또는 필터)에서 계산 환경으로부터 제 2 (가능하면 전용) ASIC로 제 1(가능하면 전용) ASIC를 사용하여 의도하지 않은 활동 또는 경과를 방지할 수 있다. 이러한 의도하지 않은 결과는 예를 들어 부당한 코드의 배치 또는 확산을 위해 의도된 버퍼 또는 메모리 오버런을 야기하는 어떤 코드 실행일 수 있다. ASIC는 미리 결정된 허가된 처리만이 일어날 수 있도록 필터링 또는 제한 동작을 제공하는 로직 회로의 일례일 뿐이다. 예를 들어, ASIC 형태 또는 다르게 구현되어 "수신기"로서 동작하는 로직이 "x, y" 또는 "라인, 샘플" 상태로서 수신된 통신을 단지 이해하거나 해석할 수 있다. 어떤 실시예에서는, 계산 환경과 CSCE 사이의 통신로에 배치된 단일 ASIC 또는 다른 로직이 의도된 통신에서 원하는 제한 또는 필터링 동작을 제공하기에 충분할 수 있다는 점에 유의한다. (선택적으로 소프트웨어 및/또는 펌웨어를 이용하는) 이러한 ASIC 또는 논리 회로는 가능한 허용된 기능 또는 동작들의 유효한 세트로부터 하나의 기능을 안전하게 무사히 선택하도록 제어될 수도 있고, 또는 이러한 선택을 달성하도록 (보호 또는 다른 보안 저장 장치로부터 코드를 다운로드하거나 제어 신호 또는 신호들을 전송함으로써) 동적으로 프로그래밍될 수도 있다.
제어 계산 환경에 제공되는 데이터에 포함될 수 있는 "x-룸 데이터"나 사용자 계산 환경 데이터의 예는 이에 한정되는 것은 아니지만, 윈도우 위치 및 크기( 와이어-프레임형); 아이콘 및 이들이 나타내는 것의 명칭; 파일 크기, 파일 위치 및 파일 또는 데이터 세트 레퍼런스나 식별자 중 임의의 하나 이상을 포함할 수도 있고 어느 것도 포함하지 않을 수도 있다. 추가 예로서, 이들은 B-트리, 마스터 디렉터리, 데스크탑 데이터베이스 등을 포함할 수 있다. 또한, 혹은 대안으로, 애플리케이션 프로그램, 드라이버 또는 운영 시스템 구성요소가 파일이나 파일 타입 또는 장치나 장치 타입을 갖는 처리 용량을 상호 동작시키거나 오픈 또는 갖도록 "관련되거나" 의도되는 리스트 또는 다른 데이터 구조나 인덱스를 포함할 수 있다.
제어 데이터나 "브레인 데이터"의 예는 레이어, 윈도우 및/또는 프로세서가 생성되는 순서, 이러한 레이어, 윈도우 및/또는 프로세스의 현재 순서 또는 우선순위를 식별하는 데이터; 마우스 또는 포인팅 장치 절대, 스크린 상대, 윈도우 상대 커서 위치 및/또는 이들 또는 다른 데이터의 조합 중 임의의 하나 이상을 포함할 수도 있고 포함하지 않을 수도 있다. 어떤 실시예에서는, 다수의 계산 환경이 비슷한 또는 동일한 속성을 가질 수도 있고, 이러한 데이터 또는 정보 중 일부는 한번 생성된 다음, 각 계산 환경에 관련된 변경이 있으면 그때, 이어지는 업데이트에 대해 각 계산 환경에 대해 수정 또는 개조될 필요가 있을 수 있다.
다수의 선택적 특징을 포함하는 발명의 여러 실시예를 설명하였지만, 본 발명의 다른 형태 및 특징이 조합되어 함께 사용될 수도 있고 개별적으로 사용될 수도 있음이 명백하다. 이 섹션에서는, 특징들의 특정 조합을 갖는 특정 예시적인 실시예에 주목한다. 이 설명은 예시일 뿐 발명의 범위 또는 진의를 어떤 식으로도 한정하는 것이 아니다. 명세서에서 설명한 발명의 다수의 형태 및 특징은 다음 단 락에서 설명하지 않는다.
한 형태에서, 발명은 정보 수단을 제공한다. 정보 수단의 일 실시예에서, 정보 수단은 프로그램 및 데이터의 제 1 저장 장치 및 프로세서 로직을 가지며, 사용자 데이터를 포함하는 작업을 수행하기 위한 컴퓨터 프로그램 명령을 실행하는 타입이며, 정보 수단은 개별 제어 처리 환경 및 사용자 처리 환경이 생성되고 유지되어 (1) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 제어 프로세서 로직 환경에서 사용자 데이터에 삽입된 임의의 컴퓨터 프로그램 코드 명령을 실행할 수 있는 컴퓨터 프로그램 코드에 노출되지 않고, (2) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 사용자 프로세서 로직 환경에서 제 1 저장 장치와 분리될 때 제 1 저장 장치와 다른 임시 저장 장치에만 노출되는 것을 특징으로 한다. 정보 수단의 다른 실시예에서, 정보 수단은 개인 데이터 보조 수단일 수도 있고 이를 포함할 수도 있다. 정보 수단의 다른 실시예에서, 정보 수단은 컴퓨터를 포함하거나 컴퓨터이다.
다른 형태에서, 본 발명은 적어도 하나의 명령을 실행하는 적어도 하나의 처리 로직 장치; 적어도 하나의 명령을 포함하며 사용자 데이터를 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하는 제 1 저장 장치; 제 2 데이터를 저장하는 제 2 저장 장치; 자동 제어 하에서 제 1 저장 장치 및/또는 제 2 저장 장치에 처리 로직 장치를 선택 가능하게 그리고 독립적으로 결합 및 분리하며, 처리 로직 장치로부터 스위치 시스템의 상태를 선택하는 적어도 하나의 제어 신호를 수신하는 스위치 시스템을 포함하는 정보 수단을 제공하며, 처리 로직 장치는 다음 조건에 따 라 제어 구조 및 사용자 데이터 구조로 동작한다: (ⅰ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치와 결합할 수 있고; (ⅱ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 있는 프로그램 명령에 의해 로딩될 때 알려진 정보를 전달하도록 제 1 저장 장치와 결합하지 않거나 제한적으로만 결합할 수 있으며; (ⅲ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 2 저장 장치와 결합할 수 있고; (ⅵ) 처리 로직 장치는 처리 로직이 단지 제 1 저장 장치에서 제 2 저장 장치로 또는 제 2 저장 장치에서 제 1 저장 장치로 데이터 항목을 복사할 수 있는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치 및 제 2 저장 장치와 결합할 수 있다.
상술한 정보 수단의 일 실시예에서, 스위치 시스템은 처리 로직 장치를 적어도 다음 방식으로 제 1 저장 장치 및 제 2 저장 장치와 결합 또는 분리할 수 있다: (ⅰ) 처리 로직 장치가 제 1 저장 장치에만 결합하고, (ⅱ), 처리 로직 장치가 제 2 저장 장치에만 결합하고, (ⅲ) 처리 로직 장치가 제 1 및 제 2 저장 장치에 공동으로 결합하고, (ⅵ) 처리 로직 장치가 제 1 저장 장치에도 제 2 저장 장치에도 결합하지 않는다. 상술한 정보 수단의 다른 실시예에서, 처리 로직 장치는 마이크로프로세서를 포함한다. 상술한 정보 수단의 다른 실시예에서, 처리 로직 장치는 마이크로프로세서, 중앙 처리 유닛(CPU), 제어기, 마이크로제어기, ASIC, 로직 회로, 프로그래밍 가능 로직 회로 및 이들의 조합으로 구성된 처리 로직 회로 세트로부터 선택된다. 상술한 정보 수단의 다른 실시예에서, 정보 수단은 컴퓨터, 노트북 컴퓨터, 개인 데이터 보조 수단, 개인 데이터 오거나이저, 셀룰러폰, 휴대 전화, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화, 자동 내장 컴퓨터, 항공기 내장 컴퓨터, 네비게이션 장치, 가전, 인쇄 장치, 스캐닝 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의학 모니터링 장치, 보안 장치, 환경 제어 시스템, 전자 장치 및 이들의 조합으로 구성된 정보 수단 세트로부터 선택된다. 상술한 정보 수단의 다른 실시예에서, 제 1 데이터 저장 장치 및 제 2 데이터 저장 장치는 회전 자기 하드 디스크 드라이브, 회전 자기 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로 드라이브, 플래시 메모리, 소형 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합으로 구성된 저장 장치 세트로부터 개별적으로 선택 가능하며 선택된다.
상술한 정보 수단의 다른 실시예에서, 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치를 포함한다. 이 정보 수단의 다른 실시예에서, 다수의 처리 로직 장치 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하며, 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트를 포함하며, 스위치 시스템은 제 1 및 제 2 저장 장치에 마이크로프로세서를 선택 가능하게 결합 및 분리하는 전환 구성을 변경하기 위한 스위치 제어 명령을 수신하는 마이크 로프로세서에 결합할 수 있다. 이러한 정보 수단의 다른 실시예에서, 다수의 처리 로직 장치는 처리 로직 장치들 중 하나를 실행하는 자동 제어 시스템에 의해 간헐적으로 차례로 분리되고 통신에 의해 제한된다. 정보 수단의 다른 실시예에서, 제 2 저장 장치는 처리 로직 장치에 연결될 때 처리 동작 도중 임시 저장 장치로서 수행하도록 구성되며, 처리가 에러 상태로 또는 에러 상태 없이 완료되면 각 처리가 개별적으로 발생한 후 자동으로 삭제되고, 에러 상태는 바이러스 또는 다른 부당한 코드 실행의 검출을 포함할 수 있다. 정보 수단의 다른 실시예에서, 다수의 처리 로직 장치 및 적어도 제 1 및 제 2 저장 장치는 특징을 결정한 계산 환경을 생성하도록 동적으로 구성될 수 있다. 정보 수단의 다른 실시예에서, 제 1 저장 장치는 운영 시스템 및 프로그램 구성요소를 갖는 마스터 템플릿 파일 및 사용자 데이터의 보호 사본을 저장한다.
다른 형태에서, 본 발명은 적어도 하나의 명령을 실행하는 적어도 하나의 처리 로직 장치, 적어도 하나의 명령을 포함하며 사용자 데이터를 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하는 제 1 저장 장치, 및 제 2 데이터를 저장하는 제 2 저장 장치를 갖는 타입의 정보 수단을 동작시키는 방법을 제공하며, 상기 방법은 스위치 시스템의 상태를 선택하기 위한 처리 로직 장치로부터의 적어도 하나의 제어 신호 수신시 자동 제어 하에서 제 1 저장 장치 및/또는 제 2 저장 장치에 처리 로직 장치를 결합 및 분리하도록 선택적으로 그리고 독립적으로 전환하는 단계; 다음 조건에 따라 처리 로직 장치를 제어 구조 및 사용자 데이터 구조로 동작시키는 단계: (ⅰ) 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 처리 로직 장치와 제 1 저장 장치와의 결합을 허용하고; (ⅱ) 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 있는 프로그램 명령에 의해 로딩될 때 알려진 정보를 전달하도록 처리 로직 장치와 제 1 저장 장치와의 결합을 허용하지 않거나 제한적으로만 허용하며; (ⅲ) 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 처리 로직 장치와 제 2 저장 장치와의 결합을 허용하고; (ⅵ) 처리 로직이 단지 제 1 저장 장치에서 제 2 저장 장치로 또는 제 2 저장 장치에서 제 1 저장 장치로 데이터 항목을 복사할 수 있는 프로그램 명령에 의해 로딩될 때 처리 로직 장치와 제 1 저장 장치 및 제 2 저장 장치와의 결합을 허용한다.
정보 수단 동작 방법의 다른 실시예에서, 상기 방법은 임의의 처리 로직 장치가 제 2 저장 장치를 사용하여 사용자 데이터를 처리한 후 제 2 저장 장치를 삭제하는 단계를 더 포함한다.
정보 수단 동작 방법의 다른 실시예에서, 정보 수단은 컴퓨터, 노트북 컴퓨터, 개인 데이터 보조 수단, 개인 데이터 오거나이저, 셀룰러폰, 휴대 전화, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화, 자동 내장 컴퓨터, 항공기 내장 컴퓨터, 네비게이션 장치, 가전, 인쇄 장치, 스캐닝 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의료용 모니터링 장치, 보안 장치, 환경 제어 시스템, 전자 장치 및 이들의 조합으로 구성된 정보 수단 세트로부터 선 택된다.
정보 수단 동작 방법의 다른 실시예에서, 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치를 포함한다. 정보 수단 동작 방법의 다른 실시예에서, 다수의 처리 로직 장치 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하며, 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트를 포함하며, 스위치 시스템은 제 1 및 제 2 저장 장치에 마이크로프로세서를 선택 가능하게 결합 및 분리하는 전환 구성을 변경하기 위한 스위치 제어 명령을 수신하는 마이크로프로세서에 결합할 수 있다.
다른 형태에서, 본 발명은 컴퓨터 PC 카드의 폼 팩터 및 다수의 PCCardBus 인터페이스 접속을 갖는 하우징, 상기 하우징 내에 배치된 다수의 프로세서; 상기 하우징 내에 배치되거나 상기 하우징에 연결된 다수의 데이터 저장 장치; 적어도 사용자 데이터를 저장하기 위해 다수의 데이터 저장 장치로부터 선택된 보호 데이터 저장 장치; 다수의 데이터 저장 장치에 연결되며, 상기 하우징 내에 배치된 하나 이상의 데이터 저장 장치와의 통신을 구성하기 위해 데이터 저장 스위치 구성에 연결된 데이터 저장 스위치 시스템; 적어도 하나의 주변 장치에 연결되며, 상기 하우징 내에 배치된 주변 장치와의 통신을 구성하기 위한 다수의 특징을 포함하는 I/O 시스템에 연결된 I/O 스위치 시스템; 및 다수의 계산 환경을 포함하는 정보 처리 장치를 제공하며, 각각의 계산 환경은 적어도 하나의 프로세서를 포함하고, 다음을 포함하는 다수의 특징으로부터 선택된 적어도 하나의 특징에 의해 식별된다: 데이터 저장 스위치에 연결되며, 데이터 저장 스위치 구성에 따라 적어도 하나의 데이터 저장 장치를 계산 환경에 결합하는 데이터 저장 스위치 통신로; I/O 스위치 시스템에 연결되며, I/O 스위치 시스템 구성에 따라 주변 장치를 계산 환경에 결합하는 I/O 스위치 통신로; 계산 환경은 I/O 스위치 시스템으로부터의 입력 수신 및 I/O 스위치 시스템으로의 출력 전송을 포함하는 처리 활동을 수행할 수 있으며, 처리 활동은 다른 계산 환경의 처리 활동과 개별적으로 수행되고; 데이터 저장 스위치 구조를 구성하고, I/O 스위치 시스템 구조를 구성하는 다수의 계산 환경으로부터 제어 계산 환경이 선택되고, 데이터 저장 스위치 구성은 제어 계산 환경과 보호 데이터 저장 장치와의 통신을 지원하며, 적어도 하나의 사용자가 다수의 계산 환경으로부터 선택된 계산 환경에서 분리되며; I/O 스위치 시스템 구성은 계산 환경의 적어도 하나에 수신 입력을 전달하도록 구성되고, I/O 스위치 시스템 구성은 다수의 계산 환경 중 하나 이상에 의해 생성된 출력을 주변 장치에 전달하도록 구성된다.
정보 처리 장치의 다른 실시예에서, 다수의 프로세서는 마이크로프로세서, 중앙 처리 유닛(CPU), 제어기, 마이크로제어기, ASIC, 로직 회로, 프로그래밍 가능 로직 회로 및 이들의 조합으로 구성된 처리 로직 회로 세트로부터 개별적으로 선택되고, 다수의 데이터 저장 장치는 회전 자기 하드 디스크 드라이브, 회전 자기 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로 드라이브, 플래시 메모리, 콤팩트 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합으로 구성된 저장 장치 세트 로부터 개별적으로 선택 가능하며 선택된다.
다른 형태에서, 본 발명은 프로그램 및 데이터의 제 1 저장 장치 및 프로세서 로직을 가지며, 사용자 데이터를 포함하는 작업을 수행하기 위한 컴퓨터 프로그램 명령을 실행하는 타입의 컴퓨터를 제공하고, 상기 컴퓨터는 개별 제어 처리 환경 및 사용자 처리 환경이 생성되고 유지되어 (1) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 제어 프로세서 로직 환경에서 사용자 데이터에 삽입된 임의의 컴퓨터 프로그램 코드 명령을 실행할 수 있는 컴퓨터 프로그램 코드에 노출되지 않고, (2) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 사용자 프로세서 로직 환경에서 제 1 저장 장치와 분리될 때 제 1 저장 장치와 다른 임시 저장 장치에만 노출되는 것을 특징으로 한다.
다른 형태에서, 본 발명은 적어도 하나의 명령을 실행하는 적어도 하나의 처리 로직 장치; 적어도 하나의 명령을 포함하며 사용자 데이터를 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하는 제 1 저장 장치; 제 2 데이터를 저장하는 제 2 저장 장치; 자동 제어 하에서 제 1 저장 장치 및/또는 제 2 저장 장치에 처리 로직 장치를 선택 가능하게 그리고 독립적으로 결합 및 분리하며, 처리 로직 장치로부터 스위치 시스템의 상태를 선택하는 적어도 하나의 제어 신호를 수신하는 스위치 시스템을 포함하는 컴퓨터 시스템을 제공하며, 상기 처리 로직 장치는 다음 조건에 따라 제어 구조 및 사용자 데이터 구조로 동작한다: (ⅰ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치와 결합할 수 있고; (ⅱ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 있는 프로그램 명령에 의해 로딩될 때 알려진 정보를 전달하도록 제 1 저장 장치와 결합하지 않거나 제한적으로만 결합할 수 있으며; (ⅲ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 2 저장 장치와 결합할 수 있고; (ⅵ) 처리 로직 장치는 처리 로직이 단지 제 1 저장 장치에서 제 2 저장 장치로 또는 제 2 저장 장치에서 제 1 저장 장치로 데이터 항목을 복사할 수 있는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치 및 제 2 저장 장치와 결합할 수 있다.
다른 형태에서, 본 발명은 제 1 저장 장치 및 적어도 하나의 프로세서를 갖는 타입의 컴퓨터 시스템을 제공하고, 상기 컴퓨터 시스템은 적어도 하나의 저장 장치 및 프로세서 내에 개별 제어 처리 환경 및 사용자 처리 환경이 생성되고 유지되어 (1) 식별된 데이터가 그 데이터에 삽입된 명령을 실행할 수 있는 프로세서에 노출되지 않고, (2) 식별된 데이터가 제 1 저장 장치와 분리될 때 제 1 저장 장치와 다른 임시 저장 장치에서 프로세서에만 노출되는 것을 특징으로 한다.
상기 본 발명의 특정 실시예들 및 최상의 모드의 설명은 예시 및 설명을 위해 제시되었다. 이들은 발명을 개시된 정확한 형태에 철저히 한정하는 것이 아니며, 상기 교지의 관점에서 많은 개조 및 변형이 명백히 가능하다. 발명의 원리 및 실제 응용을 가장 잘 설명하기 위해 실시예들이 선택되어 설명되었으며, 이로써 당업자들은 예상되는 특정 용도에 적합한 다양한 변형에 의해 발명 및 다양한 실시예 들을 최상으로 이용할 수 있다. 발명의 범위는 첨부된 청구항 및 그 등가물에 의해 정의되는 것이다.

Claims (30)

  1. 제 2 데이터의 실행에 의해 제 1 데이터의 오염을 방지하는 방법으로서,
    소스와 처리 로직 사이에 제 1 분리 장치 및 상기 처리 로직과 수신기 사이에 제 2 분리 장치를 삽입하는 단계를 포함하며, 상기 제 1 및 제 2 분리 장치들은 각각 상기 소스, 상기 수신기, 또는 상기 처리 로직으로부터 상기 분리 장치로 입력되는 임의의 명령을 실행할 수 없고, 상기 처리 로직으로의 접속 및 상기 처리 로직에 의한 상기 소스 또는 상기 수신기 측에서의 임의의 명령들의 실행을 방지할 수 없으며,
    상기 제 1 분리 장치를 통해 상기 소스로부터 상기 처리 로직으로 상기 제 2 데이터를 통신하는 단계;
    상기 처리 로직 내에서 상기 제 2 데이터를 처리하여 제 1 결과를 발생하는 단계; 및
    상기 제 2 분리 장치를 통해 상기 처리 로직으로부터 상기 수신기로 상기 제 1 결과를 통신하는 단계를 포함하는 방법.
  2. 제 1항에 있어서, 상기 제 1 및 제 2 분리 장치들은 2진 비트들 또는 다수의 2진 비트들에 복사 연산을 수행하기 때문에 상기 임의의 명령들을 실행할 수 없는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서, 상기 복사 연산은 상기 처리 로직 외부에서 수행되는 것을 특징으로 하는 방법.
  4. 제 2항에 있어서, 상기 제 1 및 제 2 분리 장치들은 동일한 장치인 것을 특징으로 하는 방법.
  5. 제 2항에 있어서, 상기 제 1 및 제 2 분리 장치들은 서로 상이한 장치인 것을 특징으로 하는 방법.
  6. 제 2 데이터의 실행에 의해 제 1 데이터의 오염을 방지하는 방법으로서,
    소스를 처리 로직과 수신기로부터 분리하는 단계를 포함하며, 상기 분리된 소스 및 분리된 수신기는 상기 수신기 또는 상기 처리 로직으로부터 상기 분리된 소스로 입력되는 임의의 명령을 실행할 수 없고, 상기 처리 로직으로의 접속 및 상기 처리 로직에 의한 상기 소스 또는 상기 수신기 측에서의 임의의 명령들의 실행을 방지할 수 없으며,
    분리 모드에서 상기 소스로부터 상기 처리 로직으로 상기 제 2 데이터를 통신하는 단계;
    상기 처리 로직 내에서 상기 제 2 데이터를 처리하여 제 1 결과를 발생하는 단계; 및
    상기 분리 모드에서 상기 처리 로직으로부터 상기 수신기로 상기 제 1 결과 를 통신하는 단계를 포함하는 방법.
  7. 제 6항에 있어서, 상기 분리는 논리적인 분리인 것을 특징으로 하는 방법.
  8. 제 6항에 있어서, 상기 분리는 물리적인 분리인 것을 특징으로 하는 방법.
  9. 제 6항에 있어서, 상기 소스 및 수신기는 저장 위치들이고, 상기 분리는 어드레스 제어 절차를 사용하여 수행되는 것을 특징으로 하는 방법.
  10. 제 9항에 있어서, 상기 어드레스 제어 절차는 특정 메모리 위치들을 숨기고 프로세스에 사용할 수 있는 다른 메모리 위치들을 실행하는 운영 시스템의 컴퓨터내에서 일정 레벨의 제어를 수행하는 것을 포함하는 것을 특징으로 하는 방법.
  11. 프로그램들과 데이터를 위한 제 1 저장 장치 및 처리 로직을 구비하며, 사용자 데이터를 포함하는 작업을 수행하기 위해 컴퓨터 프로그램 명령들을 실행하는 형태의 정보 장치로서,
    (1) 공지되지 않거나 신뢰되지 않는 컨텐츠를 가지는 사용자 데이터가 제어 처리 로직 환경에서 상기 사용자 데이터 내에 포함된 임의의 컴퓨터 프로그램 코드 명령들을 실행할 수 있는 컴퓨터 프로그램 코드로 노출되지 않고, (2) 공지되지 않거나 신뢰되지 않는 컨텐츠를 가지는 사용자 데이터가 사용자 처리 로직 환경에서 상기 제 1 저장 장치로부터 분리될 때 상기 제 1 저장 장치와는 다른 임시 저장 장치로 노출되도록 개별 제어 처리 환경들 및 사용자 처리 환경들이 생성되고 저장되는 정보 장치.
  12. 적어도 하나의 명령을 실행하기 위한 적어도 하나의 처리 로직 장치;
    상기 적어도 하나의 명령을 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하고, 사용자 데이터를 포함하는 제 1 저장 장치;
    제 2 데이터를 저장하기 위한 제 2 저장 장치; 및
    자동 제어 하에 상기 제 1 저장 장치 및/또는 상기 제 2 저장 장치와 상기 처리 로직 장치를 선택적이고 독립적으로 결합 및 결합 해제하기 위한 스위칭 시스템을 포함하며, 상기 스위칭 시스템은 상기 스위칭 시스템의 조건을 선택하기 위해 상기 처리 로직 장치로부터 적어도 하나의 제어 신호를 수신하고;
    상기 처리 로직 장치는 하기의 조건들에 따라 사용자 데이터 구성 및 제어 구성에서 동작하는데, 상기 조건들은,
    (i) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 없는 프로그램 명령이 로딩될 때, 상기 처리 로직 장치가 상기 제 1 저장 장치와 결합될 수 있고,
    (ii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때 상기 처리 로직 장치가 상기 제 1 저장 장치와 공지된 정보를 통신할 수 있도록 결 합 해제되거나 제한적으로 결합될 수 있으며,
    (iii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때 상기 처리 로직 장치가 상기 제 2 저장 장치와 결합될 수 있으며, 및
    (iv) 상기 처리 로직에 상기 제 1 장치로부터 상기 제 2 장치로 또는 상기 제 2 장치로부터 상기 제 1 장치로 데이터 아이템을 복사할 수 있는 프로그램이 로딩될 때 상기 처리 로직 장치가 상기 제 1 저장 장치 및 상기 제 2 저장 장치에 결합될 수 있는 것을 포함하는 정보 장치.
  13. 제 12항에 있어서, 상기 스위칭 시스템은 적어도 하기의 방식들로 상기 처리 로직 장치를 상기 제 1 저장 장치 및 상기 제 2 저장 장치와 결합 또는 결합 해제할 수 있는데, 상기 방식들은 (i) 상기 처리 로직 장치가 상기 제 1 저장 장치와만 결합되고, (ii) 상기 처리 로직 장치가 상기 제 2 저장 장치와만 결합되고, (iii)상기 처리 로직 장치가 상기 제 1 및 제 2 저장 장치와 동시에 결합되고, (iv) 상기 처리 로직 장치가 상기 제 1 저장 장치 또는 상기 제 2 저장 장치 중 어느 것과도 결합되지 않는 것을 포함하는 것을 특징으로 하는 정보 장치.
  14. 제 12항에 있어서, 상기 처리 로직 장치는 마이크로프로세서를 포함하는 것을 특징으로 하는 정보 장치.
  15. 제 12항에 있어서, 상기 처리 로직 장치는 마이크로 프로세서, 중앙 처리 유니트(CPU), 제어기, 마이크로-제어기, ASIC, 로직 회로, 프로그램가능한 로직 회로, 및 이들의 조합을 포함하는 처리 로직 회로들의 세트로부터 선택되는 것을 특징으로 하는 정보 장치.
  16. 제 12항에 있어서, 상기 정보 장치는 컴퓨터, 노트북 컴퓨터, 개인 디지털 보조장치, 개인 데이터 정리장치, 셀룰러 전화기, 이동 전화기, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화기, 차량 탑재형 컴퓨터, 항공기 탑재형 컴퓨터, 네비게이션 장치, 가정용 장치, 인쇄 장치, 스캔 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의료용 모니터 장치, 보안 장치, 환경 제어 시스템, 전자 장치, 네트워크 장치 및 이들의 조합을 포함하는 정보 장치들의 세트로부터 선택되는 것을 특징으로 하는 정보 장치.
  17. 제 12항에 있어서, 상기 제 1 데이터 저장 장치 및 제 2 데이터 저장 장치는 독립적으로 선택가능하고, 자기 회전 하드 디스크 드라이브, 자기 회전 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태(solid state) 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로-드라이브, 플래시 메모리, 소형 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합을 포함하는 저장 장치 세트로부터 선택되는 것을 특징으로 하는 정보 장치.
  18. 제 12항에 있어서, 상기 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치들을 포함하는 것을 특징으로 하는 정보 장치.
  19. 제 18항에 있어서, 상기 다수의 처리 로직 장치들 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하고, 상기 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들을 포함하며, 상기 스위칭 시스템은 상기 마이크로프로세서를 상기 제 1 및 제 2 저장 장치와 선택적으로 결합 및 결합 해제하기 위해 상기 스위칭 구성을 변경하기 위한 스위치 제어 명령들을 수신하기 위해 상기 마이크로프로세서에 결합가능한 것을 특징으로 하는 정보 장치.
  20. 제 19항에 있어서, 상기 다수의 처리 로직 장치들은 상기 처리 로직 장치들 중 하나를 실행하는 자동 제어 시스템에 의해 간헐적으로 순차적으로 분리되고 통신이 제한되는 것을 특징으로 하는 정보 장치.
  21. 제 19항에 있어서, 상기 제 2 저장 장치는 상기 처리 로직 장치에 접속될 때 처리 연산 동안 임시 저장 장치로서 수행하도록 구성되고, 각각의 처리가 상기 처리가 에러 조건에 의해 또는 에러 조건 없이 완료되는 경우와 상관없이 발생된 후에 자동으로 제거되며, 상기 에러 조건은 바이러스 검출 또는 다른 악성 코드 실행을 포함할 수 있는 것을 특징으로 하는 정보 장치.
  22. 제 20항에 있어서, 상기 다수의 처리 로직 장치들 및 적어도 상기 제 1 및 제 2 저장 장치는 결정된 특성들을 가지는 계산 환경들을 발생하도록 동적으로 구성가능한 것을 특징으로 하는 정보 장치.
  23. 제 11항에 있어서, 상기 제 1 저장 장치는 운영 시스템 및 애플리케이션 프로그램 구성요소들을 구비한 마스터 템플릿 파일 및 사용자 데이터의 보호되는 사본을 포함하는 것을 특징으로 하는 정보 장치.
  24. 적어도 하나의 명령을 실행하기 위한 적어도 하나의 처리 로직 장치, 상기 적어도 하나의 명령을 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하고 사용자 데이터를 포함하는 제 1 저장 장치, 및 제 2 데이터를 저장하는 제 2 저장 장치를 포함하는 형태의 정보 장치를 동작하는 방법으로서,
    스위칭 시스템의 조건을 선택하기 위해 상기 처리 로직 장치로부터 적어도 하나의 제어 신호의 수신시 자동 제어 하에 상기 제 1 저장 장치 및/또는 상기 제 2 저장 장치와 상기 처리 로직 장치를 선택적이고 독립적으로 접속 및 접속 해제하도록 스위칭하는 단계;
    하기의 조건들에 따라 사용자 데이터 구성 및 제어 구성에서 상기 처리 로직 장치를 동작시키는 단계를 포함하는데, 상기 조건들은,
    (i) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 없는 프로그램 명령이 로딩될 때, 상기 처리 로직 장치를 상기 제 1 저장 장치와 접속하는 것을 허용하고,
    (ii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때, 공지된 정보를 통신하도록 상기 처리 로직 장치를 상기 제 1 저장 장치와 접속하는 것을 허용하지 않거나 상기 처리 로직 장치를 상기 제 1 저장 장치와 접속하는 것을 제한적으로 허용하며,
    (iii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때, 상기 처리 로직 장치를 상기 제 2 저장 장치와 접속하는 것을 허용하고, 및
    (iv) 상기 처리 로직에 상기 제 1 장치로부터 상기 제 2 장치로 또는 상기 제 2 장치로부터 상기 제 1 장치로 데이터 아이템을 복사할 수 있는 프로그램이 로딩될 때, 상기 처리 로직 장치를 상기 제 1 저장 장치 및 상기 제 2 저장 장치에 접속하는 것을 허용하는 것을 포함하는 방법.
  25. 제 24항에 있어서, 사용자 데이터를 처리하기 위해 임의의 처리 로직 장치가 상기 제 2 저장 장치를 사용한 후에 상기 제 2 저장 장치를 제거하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  26. 제 24항에 있어서, 상기 정보 장치는 컴퓨터, 노트북 컴퓨터, 개인 디지털 보조장치, 개인 데이터 정리장치, 셀룰러 전화기, 이동 전화기, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화기, 차량 탑재형 컴퓨터, 항공기 탑재형 컴퓨터, 네비게이션 장치, 가정용 장치, 인쇄 장치, 스캔 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의료용 모니터 장치, 보안 장치, 환경 제어 시스템, 전자 장치, 네트워크 장치 및 이들의 조합을 포함하는 정보 장치들의 세트로부터 선택되는 것을 특징으로 하는 방법.
  27. 제 24항에 있어서, 상기 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치들을 포함하는 것을 특징으로 하는 방법.
  28. 제 27항에 있어서, 상기 다수의 처리 로직 장치들 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하고, 상기 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들을 포함하며, 상기 스위칭 시스템은 상기 마이크로프로세서를 상기 제 1 및 제 2 저장 장치와 선택적으로 결합 및 결합 해제하기 위해 상기 스위칭 구성을 변경하기 위한 스위치 제어 명령들을 수신하기 위해 상기 마이크로프로세서에 결합가능한 것을 특징으로 하는 방법.
  29. 컴퓨터 PC 카드 및 다수의 PC 카드 버스 인터페이스 접속들의 형태를 가지는 하우징;
    상기 하우징 내에 배치된 다수의 프로세서들;
    상기 하우징 내에 배치되거나, 상기 하우징에 결합된 다수의 데이터 저장 장치들;
    적어도 하나의 사용자 데이터를 저장하기 위해 상기 다수의 데이터 저장 장치들로부터 선택된 보호되는 데이터 저장 장치 부분;
    상기 다수의 데이터 저장 장치들과 결합되고, 데이터 저장 스위치 구성과 결합되어 상기 하우징 내에 배치된 하나 또는 그이상의 데이터 저장 장치와의 통신을 형성하기 위한 데이터 저장 장치 스위치 시스템;
    적어도 하나의 주변 장치와 결합되고, 다수의 특성들을 가지는 I/O 시스템 구성과 결합되어 상기 하우징 내에 배치된 상기 주변 장치와의 통신을 형성하기 위한 I/O 스위치 시스템;
    각각 적어도 하나의 프로세서를 구비하고 상기 다수의 특성들로부터 선택된 적어도 하나의 특성에 의해 식별되는 다수의 계산 환경들을 포함하는데, 상기 계산 환경은,
    상기 데이터 저장 장치 스위치와 결합되어 상기 데이터 저장 장치 스위치 구성에 따라 적어도 하나의 데이터 저장 장치를 상기 계산 환경과 결합하는 데이터 저장 장치 스위치 통신 경로, 및
    상기 I/O 스위치 시스템과 결합되어 상기 I/O 스위칭 시스템 구성에 따라 상기 주변 장치를 상기 계산 환경과 결합하기 위한 I/O 스위치 통신 경로를 포함하고, 상기 계산 환경은 상기 I/O 스위치 시스템으로부터 입력을 수신하여 상 기 I/O 스위치 시스템으로 출력을 전송하는 것을 포함하는 처리 활동을 수행할 수 있고, 상기 처리 활동은 또다른 계산 환경의 처리 활동과는 독립적으로 수행되며;
    상기 데이터 저장 장치 스위치 구성을 형성하고, 상기 I/O 스위치 시스템 구성을 형성하기 위해 상기 다수의 계산 환경들로부터 선택된 제어 계산 환경을 포함하며, 상기 데이터 저장 장치 스위치 구성은 상기 제어 계산 환경과 상기 보호되는 데이터 저장 장치 사이의 통신을 지원하며; 및
    상기 다수의 계산 환경들로부터 선택된 적어도 하나의 사용자 분리 계산 환경을 포함하며,
    상기 I/O 스위치 시스템 구성은 수신된 입력을 상기 계산 환경 중 적어도 하나로 전송하도록 구성되며, 상기 다수의 계산 환경들 중 하나 또는 그 이상에 의해 발생된 출력을 상기 주변 장치로 전송하도록 구성되는 정보 처리 장치.
  30. 제 29항에 있어서,
    상기 다수의 프로세서들은 마이크로 프로세서, 중앙 처리 유니트(CPU), 제어기, 마이크로-제어기, ASIC, 로직 회로, 프로그램가능한 로직 회로, 및 이들의 조합을 포함하는 처리 로직 회로들의 세트로부터 독립적으로 선택되고,
    상기 다수의 데이터 저장 장치는 독립적으로 선택가능하고, 자기 회전 하드 디스크 드라이브, 자기 회전 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태(solid state) 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로-드라이브, 플래시 메모리, 소형 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합을 포함하는 저장 장치 세트로부터 선택되는 것을 특징으로 하는 정보 처리 장치.
KR1020067016384A 2004-01-15 2005-01-14 바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상처리 공간에서의 분리된 멀티플렉싱 다차원 처리 KR20060135757A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US10/760,131 US7392541B2 (en) 2001-05-17 2004-01-15 Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US10/760,131 2004-01-15
US43395504A 2004-10-13 2004-10-13
USPCT/US04/33955 2004-10-13
US11/022,290 US20100005531A1 (en) 2004-12-23 2004-12-23 Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US11/022,290 2004-12-23

Publications (1)

Publication Number Publication Date
KR20060135757A true KR20060135757A (ko) 2006-12-29

Family

ID=37813506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016384A KR20060135757A (ko) 2004-01-15 2005-01-14 바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상처리 공간에서의 분리된 멀티플렉싱 다차원 처리

Country Status (1)

Country Link
KR (1) KR20060135757A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008939B1 (ko) * 2010-08-09 2011-01-18 올플러스주식회사 펌웨어기반 데이터 삭제 방지 시스템 및 방법
US10135866B2 (en) 2015-11-27 2018-11-20 Hyundai Motor Company Method of preventing drive-by hacking, and apparatus and system therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008939B1 (ko) * 2010-08-09 2011-01-18 올플러스주식회사 펌웨어기반 데이터 삭제 방지 시스템 및 방법
US10135866B2 (en) 2015-11-27 2018-11-20 Hyundai Motor Company Method of preventing drive-by hacking, and apparatus and system therefor

Similar Documents

Publication Publication Date Title
US7392541B2 (en) Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US20100005531A1 (en) Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
JP2007524161A (ja) ウイルス、スパイウェア及びハッカー保護特徴を有する仮想処理空間における分離マルチプレクス型多次元処理
US7536598B2 (en) Computer system capable of supporting a plurality of independent computing environments
US8166314B1 (en) Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US9292222B2 (en) Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface
US7698704B2 (en) Method for installing operating system on remote storage: flash deploy and install zone
US7519809B2 (en) Operating system-wide sandboxing via switchable user skins
JP2004508633A (ja) 切り換え可能な構成要素を有するコンピュータ
US20070234337A1 (en) System and method for sanitizing a computer program
MXPA06002447A (es) Sistema de seguridad en internet para computadora personal.
US20080155216A1 (en) Protection and Recovery System for Automatic Disk Recovery
US20040070920A1 (en) Personal computer
WO2003048944A1 (en) Virtual data storage (vds) system
WO2002088958A1 (en) Apparatus and method for protecting a computer system against computer viruses and unauthorized access
US9182982B1 (en) Techniques for creating an encrypted virtual hard disk
JP2008535042A5 (ko)
JP2001318797A (ja) 自動データ処理装置
WO2014091535A1 (ja) 計算機システム及び記憶部の暗号化方法
KR20060135757A (ko) 바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상처리 공간에서의 분리된 멀티플렉싱 다차원 처리
US11461490B1 (en) Systems, methods, and devices for conditionally allowing processes to alter data on a storage device
EP1193586A2 (en) Security system for data processing applications
CN113302598A (zh) 电子数据管理装置、电子数据管理***、其所用的程序及记录介质
JP2005535003A (ja) 複数の独立コンピューティング環境をサポートすることができるコンピュータシステム
WO2006087695A2 (en) Protection and recovery system for automatic disk drive recovery

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination