KR20100016174A - 데이터-스머글링을 위한 저장 장치와 방법 - Google Patents
데이터-스머글링을 위한 저장 장치와 방법 Download PDFInfo
- Publication number
- KR20100016174A KR20100016174A KR1020097022968A KR20097022968A KR20100016174A KR 20100016174 A KR20100016174 A KR 20100016174A KR 1020097022968 A KR1020097022968 A KR 1020097022968A KR 20097022968 A KR20097022968 A KR 20097022968A KR 20100016174 A KR20100016174 A KR 20100016174A
- Authority
- KR
- South Korea
- Prior art keywords
- area
- storage device
- data
- file
- sector
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
컴퓨터 판독 가능 코드가 구현된 컴퓨터 판독 가능 저장 매체 및 이의 사용을 위한 방법으로서, 매체는 호스트 시스템에서 실행되는 파일 시스템에 의해서, 저장 장치의 저장 영역의 제약 영역에 대한 액세스를 제약하기 위한 프로그램 코드; 및 파일 시스템을 통해서 제약 영역에 적어도 하나의 애플리케이션이 액세스할 수 있게 하기 위한 프로그램 코드를 포함한다. 바람직하게, 컴퓨터 판독 가능 코드는 (c) 비제약 영역으로부터 데이터를 저장 장치가 제약 영역에 카피할 수 있게 하기 위한 프로그램 코드를 더 포함한다. 바람직하게, 컴퓨터 판독 가능 코드는 (c) 제약 영역에 어드레스에 보내지는 호스트-시스템 판독-요청을 비제약 영역에 어드레스에 보낼 것을 저장 장치에 지시하기 위한 프로그램 코드를 더 포함한다. 바람직하게, 컴퓨터 판독 가능 코드는 (c) 비제약 영역에 어드레스된 비제약 데이터에 대한 액세스를 호스트 시스템이 요청할 때 제약 영역에 있는 제약된 데이터에 상기 호스트 시스템의 액세스 명령들을 적용하기 위한 프로그램 코드를 더 포함한다.
Description
본 발명은, 파일-시스템 애플리케이션-인터페이스(FSAPI)만을 사용하여 제약된 저장 영역에 데이터를 권한 있는 애플리케이션이 액세스할 수 있도록 하기 위한 시스템에 관한 것이다.
호스트 시스템의 동작을 가능하게 하는 비휘발성 메모리(NVM) 저장 장치들은 컴퓨터 엔지니어링 기술에서 잘 알려져 있다. 단순 안전성 고찰들은 보통의 파일 시스템에 의해 "부트 파티션"이 액세스되지 못하게 호스트 시스템의 개발자들에 논리적으로 동기를 부여한다.
부트 파티션 및 시스템 데이터(예를 들면 보안 키들)와 같은, 제약된 부(sub)-영역들에 대한 액세스는 제약되는데, 이들 부-영역들은 FSAPI만을 사용하여 애플리케이션들에 의해 액세스될 수 없다. 애플리케이션들 및 사용자들에게 사용할 수 있게 한 그외 다른 저장 부-영역들은 FSAPI를 사용하여 파일 시스템에 의해 액세스된다. 이 제약은 전형적으로, 제약된 부-영역들의 어드레스들을 제외하고, 파일 시스템에 액세스될 수 있는 어드레스들의 범위를 제약시킴으로써 구현된다.
그러나, 호스트 시스템의 사용 기간 중에, 종종 제약된 부-영역들에 데이터에 액세스하는 것이(예를 들면, 부트 이미지를 업데이트하고, 시스템 키들을 판독하기 위해서) 필요하다. 부트 파티션을 업데이트할 필요성은 다양한 이유로 일어날 수 있다(예를 들면, 소프트웨어 버그를 고치거나, 새로이 사용 가능한 부가 기능을 설치하기 위해서).
제약된 영역은 FSAPI를 사용하여 운영시스템(OS)에 의해 수정될 수 없기 때문에, 이러한 업데이트는 복잡하고, 제약들을 우회하여 특권 영역들에 액세스할 수 있는, 장치 특정의, 호스트 특정의, OS 특정의 애플리케이션들을 요구한다.
이러한 해결책(예를 들면, Microsoft™ 사로부터 입수될 수 있는 UpdateXIP)은 RAM 플래깅, 파워 다운 없이 호스트 시스템 리부팅, 부트 코드에 의한 플래그 체크, 부트 파티션에 액세스할 수 있는 부트 파티션으로부터 특별한 코드 로딩을 수반한다. 이 절차는 연루 성분들(예를 들면, 저장 장치, 호스트 시스템, 및 OS)간에 비균일성이 있을 것임을 내포한다. 이러한 상황은 저장 장치에 제약된 영역(예를 들면, 부트 파티션)의 업데이트를 매우 고가의 부가 기능이 되게 한다.
여기서 전부 개시된 것처럼 한 참조로 여기 포함시키는 Moran의 미국특허출원번호 20060031632(이하 Moran '632라 함)에 의해 개시된 것과 같은, 종래 기술의 시스템은 데이터가 호스트 시스템의 파일 시스템에 의해 직접 기록됨이 없이 데이터를 저장하기 위한 시스템을 개시한다. 그러나, Moran '632은 호스트 시스템에 의해 기록된 데이터를 저장 장치가 유실하지 않게 하는(파워 업 되었을 때 자동으로 복구함으로써) 내부 백업 메커니즘만을 개시하는데, 데이터가 기록되었던 어드레스 와는 다른 논리 어드레스로부터 어떻게 데이터가 판독될 수 있는가는 개시하지 못하고 있다. 그러므로, Moran '632에 따른 시스템들은 제약된 영역들에 데이터에 액세스할 수 있게 하는데 유용할 수 없다.
FSAPI만을 사용하여 제약된 저장 영역들에 데이터에 권한 있는 애플리케이션이 액세스할 수 있게 하는 시스템들을 갖추는 것이 바람직할 것이다.
본 발명의 목적은, FSAPI만을 사용하여 제약된 저장 영역들에 데이터에 권한 있는 애플리케이션이 액세스할 수 있게 하는 시스템들을 제공하는 것이다.
명확성의 목적을 위해서, 다음의 몇 가지 용어들은 여기에서 사용하기 위해 구체적으로 정의된다. "파일-시스템 애플리케이션-인터페이스", "FSAPI", 및 "파일-시스템 API"라는 용어들은 파일 시스템이 저장 장치에 대해 수행할 수 있는 한 세트의 표준 동작들, 즉, 파일/디렉토리 오픈/생성; 파일/디렉토리 판독/기록; 파일/디렉토리 삭제, 파일/디렉토리 리네임; 및 파일/디렉토리 클로즈를 언급하는데 사용된다. "저장 영역"이라는 용어는 여기에서는 저장 장치의 순차적 논리적(물리적인 아닌) 어드레스 범위를 지칭하는데 사용된다.
"FAT32"라는 용어는 마이크로소프트 FAT32 명세에서 정의된 파일 시스템을 지칭하는데 사용된다. "클러스터"라는 용어는 마이크로소프트 FAT32 명세에서 정의된 데이터 구조를 지칭하는데 사용된다. "FAT 엔트리"라는 용어는 마이크로소프트 FAT32 명세에서 정의된 데이터 구조를 지칭하는데 사용된다. "파일 할당 테이블" 및 "FAT"라는 용어들은 마이크로소프트 FAT32 명세에서 정의된 데이터 구조를 지칭하는데 사용된다. "DirEntry"이라는 용어는 마이크로소프트 FAT32 명세에서 정의된 데이터 구조를 지칭하는데 사용된다.
"마지막 업데이트-시간 필드" 및 "LUT 필드"라는 용어들은 마이크로소프트 FAT32 명세에서 정의된 바와 같이, 파일이 업데이트되었던 마지막 시간을 명시하는, DirEntry에 파라미터를 지칭하는데 사용된다. "파일-길이 파라미터"라는 용어는 마이크로소프트 FAT32 명세에서 정의된 바와 같이, 바이트들로 파일의 길이를 명시하는, DirEntry에 파라미터를 지칭하는데 사용된다.
"섹터"라는 용어는 데이터 패킷의 논리적 순차적 어드레스를 지칭하는데 사용된다. 데이터 패킷들은 논리 순차적 512 바이트들이거나, 논리-순차적 FAT32 섹터들이거나, 논리 순차적 FAT32 클러스터들일 수 있다. "파일"이라는 용어는 FSAPI에 의해 취급될 수 있는 임의의 데이터 객체를 지칭한다(예를 들면, 데이터 파일, 데이터 파일의 부분, 디렉토리, 및 플레이 리스트). "FAT32 섹터"라는 용어는 512 바이트의 섹터를 지칭하는데 사용된다.
"논리 파티션"이라는 용어는 논리 순차적 범위의 섹터들을 지칭하는데 사용된다. 논리 파티션들은 한번에 한 호스트-소프트웨어 모듈에 의해서만 관리될 수 있다. 호스트-소프트웨어 모듈들의 예들은 파일 시스템 및 칩셋 부트 ROM을 포함한다. "제약된 영역"이라는 용어는 호스트 파일-시스템에 의해서가 아니라 다른 모듈들에 의해서 액세스되어야 하는 논리 파티션을 지칭하는데 사용된다. "비제약 영역"이라는 용어는 호스트 파일-시스템에 의해 액세스될 수 있는 논리 파티션을 지칭하는데 사용된다. "제약된 섹터"라는 용어는 한 범위의 제약된 영역에 있는 섹터를 지칭하는데 사용된다. "비제약 섹터"라는 용어는 한 범위의 비제약 영역에 있는 섹터를 지칭하는데 사용된다.
"스머글(smuggling)"이라는 용어는 호스트 파일-시스템이 데이터를 한 논리 어드레스에 기록하고 저장 장치가 내부적으로 다른 논리 어드레스에 데이터에 액세스할 수 있게 하는 내부 저장 동작을 지칭하는데 사용된다. 특별한 경우에, 스머글은 호스트 파일-시스템이 제약된 영역에 데이터 판독 및 기록할 수 있게 하는데 사용될 수 있다. "스머글된 데이터"라는 용어는 스머글 동작이 수행된 데이터를 지칭하는데 사용된다. "낭비된 섹터"라는 용어는 스머글 동작에 기인하여 저장 장치가 데이터 저장을 위해 사용하지 않는 논리 섹터를 지칭하는데 사용된다. "공간 릴리즈"이라는 용어는 낭비된 섹터들을 데이터를 저장하는 섹터들로의 전환을 지칭하는데 사용된다.
본 발명은 FSAPI만을 사용하는 저장 장치에서 제약된 영역들에 액세스하는 방법을 교시한다. 설명의 목적을 위해서, 저장 장치 액세스에서 가장 문제가 되는 동작, 즉 업데이트 동작이 다루어진다. 그럼에도 불구하고, 본 발명은, 후술하는 바와 같이, 오픈, 생성, 판독, 및 삭제 동작들에 적용한다.
본 발명의 바람직한 실시예들은 3개의 단계들을 갖는 간접 프로세스를 사용하여 구현된다. 제 1 단계는 제약된 영역에 스머글될 파일을 비제약 영역에 저장하는 것이다. 파일은 FSAPI에 부합하는 속성과 함께 저장되나, "스머글 표시"로서 저장 장치에 의해 인식될 수 있다. 저장 장치에 의해 수행되는 제 2 단계는 새로이 저장된 파일에서 "스머글 표시"를 탐색하는 것이다. 스머글 표시가 검출된 경우에만 행해지는 제 3 단계는 저장 장치에 의해 내부에서 수행되는 것으로 파일을 지정된 제약된 영역에 스머글하는 것이다.
검출
본 발명의 바람직한 실시예에서, 스머글 표시는 파일의 이름이다. 본 발명의 또 다른 실시예에서, 스머글링 표시는 파일의 본체에 특별한 컨텐트(예를 들면, 헤더, 푸터, 또는 파일에 이외 어떤 다른 사전에 정의된 오프셋)이다.
스머글링(
smuggling
)
본 발명의 바람직한 실시예에서, 비제약 영역으로부터 제약 영역으로 파일의 스머글링은 비제약 영역으로부터 제약 영역으로 데이터를 물리적으로 카피함으로써 수행된다. 이것은 "카피" 모드라고 한다.
본 발명의 바람직한 실시예에서, 스머글링은 제약 영역에 비제약 영역을 논리적으로 맵핑함으로써 수행되고, 따라서 제약 영역으로부터 데이터를 판독할 필요가 있는 장치는 비제약 영역으로 재지향된다. 이것은 "맵아웃" 모드라고 한다.
본 발명의 또 다른 바람직한 실시예에서, 스머글링은 파일에 스머글된 데이터의 논리 오프셋을 제약 영역에 대응하는 오프셋으로 변환하고, 그럼으로써 판독을 위해 비제약 영역을 제약 영역에 맵핑함으로써 수행된다. 비제약 영역에 기록된 스머글된 파일로부터 데이터를 파일 시스템이 판독하기를 시도할 때, 저장 장치는 "스머글된 데이터 판독"과 같은 동작을 검출한다. 데이터는 제약 영역에 오프셋을 스머글된 파일에 오프셋에 매칭함으로써 제약 영역에 대응위치로부터 불러내어질 것이다. 이것은 "맵인" 모드라고 한다.
본 발명의 다른 바람직한 실시예에서, 카피, 또는 맵아웃, 또는 맵인 모드에서, 스머글링은 비제역 영역에 기록이 완료되고 파일이 클로즈된 후에 수행된다. 본 발명의 다른 바람직한 실시예들에서, 맵아웃 또는 맵인 모드에서, 스머글링은 파일이 기록되고 있는 중에 수행된다.
공간 릴리즈(
releasing
space
)
본 발명의 바람직한 실시예에서, 저장 장치는 저장 장치의 용량을 넘어선 가상 부-영역을 추가하고 유실된 한 범위의 어드레스에 가상 부-영역을 맵핑함으로써, 제약된 영역 어드레스에 맵핑되고 유실된 비제약 영역들의 논리 어드레스들을 재사용한다.
본 발명의 바람직한 실시예에서, 애플리케이션은 스머글링 동작이 발생할 적합한 기간을 기다린 후에 기록된 파일을 삭제한다. 이 절차는 사용을 위해 비제약 영역을 해제한다. 이것은 "카피-삭제" 모드라고 한다.
일반
본 발명의 다른 바람직한 실시예에서, 검출, 스머글링, 공간 릴리즈 단계들은 후술하는 바와 같이, 파일의 일부에 수행될 수 있다.
본 발명의 다른 바람직한 실시예에서, 검출, 스머글링, 공간 릴리즈 단계들은 저장 장치에 스머글링의 목적지를 표시하기 위해 각각의 제약 영역이 그 자신의 특정의 포인터를 갖는 복수의 파일들에 수행될 수 있다.
따라서, 본 발명에 따라, 컴퓨터 시스템에서는, (a) (i) 호스트 시스템에서 실행하기 위한 파일 시스템 및 블록 장치 드라이버; 및 (ii) 상기 호스트 시스템에서 실행하기 위한 적어도 하나의 애플리케이션을 구비하는 것인, 호스트 시스템; 및 (b) (i) 저장 장치를 제어하기 위한 제어기; 및 (ii) 상기 저장 장치에 정보를 저장하기 위한 저장 영역을 구비하는 것인, 저장 장치; 및 (c) 상기 파일 시스템에 의해서, 상기 저장 영역의 제약 영역에 대한 액세스를 제약하기 위한 제 1 메커니즘; 및 (d) 상기 적어도 하나의 애플리케이션이 상기 파일 시스템을 통해 상기 제약 영역에 액세스할 수 있게 하기 위해, 상기 저장 장치에 있는, 제 2 메커니즘을 포함하는, 컴퓨터 시스템이 제공된다.
바람직하게, 상기 제 2 메커니즘은 상기 저장 장치가 상기 저장 영역의 비제약 영역으로부터 데이터를 상기 제약 영역에 카피할 수 있게 구성된다.
바람직하게, 상기 제 2 메커니즘은 상기 제약 영역에 어드레스에 보내지는 호스트-시스템 판독-요청을 상기 저장 영역의 비제약 영역에 어드레스에 보낼 것을 상기 저장 장치에 지시하게 동작한다.
바람직하게, 상기 제 2 메커니즘은 상기 호스트 시스템이 상기 저장 영역의 비제약 영역에 어드레스된 비제약 데이터에 대한 액세스를 요청할 때 상기 제약 영역에 있는 제약된 데이터에 상기 호스트 시스템의 액세스 명령들을 적용하게 동작한다.
본 발명에 따라서, 처음으로, 컴퓨터 판독 가능 저장 매체에 구현된 컴퓨터 판독 가능 코드를 갖는 컴퓨터 판독 가능 저장 매체에 있어서, 상기 컴퓨터 판독 가능 코드는, (a) 호스트 시스템에서 실행되는 파일 시스템에 의해서, 저장 장치의 저장 영역의 제약 영역에 대한 액세스를 제약하기 위한 프로그램 코드; 및 (b) 상기 파일 시스템을 통해서 상기 제약 영역에 적어도 하나의 애플리케이션이 액세스할 수 있게 하기 위한 프로그램 코드를 포함하는, 저장 매체가 제공된다.
바람직하게, 상기 컴퓨터 판독 가능 코드는 (c) 상기 저장 영역의 비제약 영역으로부터 상기 제약 영역에 데이터를 상기 저장 장치가 카피할 수 있게 하기 위한 프로그램 코드를 더 포함한다.
바람직하게, 상기 컴퓨터 판독 가능 코드는, (c) 상기 제약 영역에 어드레스에 보내지는 호스트-시스템 판독-요청을 상기 저장 영역의 비제약 영역에 어드레스에 보낼 것을 상기 저장 장치에 지시하기 위한 프로그램 코드를 더 포함한다.
바람직하게, 상기 컴퓨터 판독 가능 코드는, (c) 상기 저장 영역의 비제약 영역에 어드레스된 비제약 데이터에 대한 액세스를 상기 호스트 시스템이 요청할 때 상기 제약 영역에 있는 제약된 데이터에 상기 호스트 시스템의 액세스 명령들을 적용하기 위한 프로그램 코드를 더 포함한다.
이들 및 다른 실시예들은 다음의 상세한 설명 및 예들로부터 명백해질 것이다.
본 발명은 단지 예로서, 첨부한 도면을 참조하여 기술된다.
도 1은, 본 발명의 바람직한 실시예들에 따라, 데이터를 스머글하고 저장 장치의 공간을 릴리즈하는 계산 시스템의 간략화된 개략적 블록도.
도 2a는, 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 보이는 것으로 데이터를 스머글하고 공간을 릴리즈하기 위한 카피-삭제 모드의 간이화된 블록도.
도 2b는, 스머글된 데이터를 위한 FAT32로부터 기록 요청을 수신한 후에 도 2a의 파티션들을 도시한 도면.
도 2c는, 저장 장치가 제약된 영역에 스머글된 데이터를 내부적으로 카피한 후에 도 2b의 파티션들을 도시한 도면.
도 2d는, 비제약 영역에 저장되었던 스머글된 데이터가 삭제된 후에 도 2c의 파티션들을 도시한 도면.
도 3a는, 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 도시한 것으로 데이터를 스머글하는 맵인 모드의 간략화된 블록도.
도 3b는, 비제약 섹터에 데이터 섹터를 기록하라는 FAT32으로부터 기록 요청을 수신한 후에 도 3a의 파티션들을 도시한 도면.
도 3c는, 제약된 섹터에 저장 장치에 의해 내부적으로 데이터 섹터가 저장된 후에 도 3b의 파티션들을 도시한 도면.
도 4a는, 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 보이는 것으로 데이터를 스머글하는 맵아웃 모드의 간략화된 블록도.
도 4b는, 비제약 섹터에 데이터 섹터를 기록하라는 FAT32로부터의 기록 요청을 수신한 후에 도 4a의 파티션들을 도시한 도면.
도 4c는, 도 4b에 기록되었던 비제약 섹터에 제약 섹터가 저장 장치에 의해 맵핑된 후에 도 4b의 파티션들을 도시한 도면.
도 5a는, 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들 을 도시한 것으로 데이터를 스머글하는 맵인 모드의 간략화된 블록도.
도 5b는, 데이터 섹터를 비제약 섹터에 기록하라는 FAT32로부터의 기록 요청을 수신한 후에 도 5a의 파티션들을 도시한 도면.
도 5c는, 데이터 섹터를 가상 섹터에 기록하라는 FAT32로부터의 기록 요청을 수신한 후에 도 5b의 파티션들을 도시한 도면.
도 5d는, FAT32로부터 판독 요청을 수신한 후에 도 5c의 파티션들 또는 도 5c에서 제약 섹터에 이미 맵핑되었던 비제역 섹터에 저장 장치에 의해 맵핑되었던 기상 섹터를 도시한 도면.
도 6a는, 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 도시한 것으로 데이터를 스머글하는 맵아웃 모드의 간략화된 블록도.
도 6b는, FAT32로부터 데이터 섹터를 비제약 섹터에 기록하라는 기록 요청을 수신한 후에 도 6a의 파티션들을 도시한 도면.
도 6c는, FAT32로부터 데이터 섹터를 가상 섹터에 기록하라는 기록 요청을 수신한 후에 도 6b의 파티션들을 도시한 도면.
도 6d는, FAT32로부터 가상 섹터를 판독하라는 판독 요청을 수신한 후에 도 6c의 파티션들을 도시한 도면.
도 7a는, 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 생성하는 시나리오 (A)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도.
도 7b는, 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 삭 제하는 시나리오 (B)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도.
도 7c는, 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 덮어쓰기하는 시나리오 (C)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도.
도 7d는, 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 업데이트하는 시나리오 (D)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도.
도 7e는, 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일에 첨부하는 시나리오 (E)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도.
본 발명은, FSAPI만을 사용하여 제약된 저장 영역들에 데이터를 권한 있는 애플리케이션이 액세스할 수 있게 하는 시스템에 관한 것이다. 본 발명에 따라서, 권한 있는 애플리케이션이 제약된 저장 영역들에 데이터를 FSAPI만을 사용하여 액세스할 수 있게 하기 위한 원리 및 동작이 첨부한 설명 및 도면을 참조로 더 잘 이해될 수 있다.
도면들은 저장 장치에 데이터를 스머글하는 3개의 단계들을 기술한다.
(1) 사전-스머글: 스머글 동작의 시작을 검출;
(2) 스머글: 스머글 동작 자체; 및
(3) 사후-스머글: 스머글 동작에 이어 공간을 릴리즈함으로써 저장 장치 상에 자유 공간을 최대화한다.
설명의 간략화를 위해서, 다음 가정들이 행해진다.
(1) 저장 장치는 2개의 논리 파티션들로서, OS 이미지를 저장하기 위한 제약된 영역과, 사용자 애플리케이션들 및 데이터 파일을 저장하기 위한 비제약 영역으로 분할된다.
(2) 호스트-시스템 프로세서는 호스트-시스템 프로세서의 NVM에 저장된 소프트웨어 코드를 실행시킴으로써 저장 장치의 제약된 영역에 액세스한다. 부트 ROM인 이 소프트웨어 코드는 기동되었을 때 호스트-시스템 프로세서에 의해 자동으로 실행된다. 호스트-시스템 프로세서는 제약된 영역으로부터 호스트-시스템 RAM에 OS 이미지를 로딩하고, RAM에 시작 어드레스로 이동하고, 코드를 실행한다. 부트 ROM은 크기가 제약되어 있어, FAT32 데이터 및 데이터 구조들에 관한 어떠한 정보도 포함할 수 없다.
(3) 호스트 시스템은 FAT32를 통해 저장 장치의 비제약 영역에 액세스한다. FAT32는 부트 프로세스가 완료되었을 때 실행된다.
(4) 제약된 영역은 섹터 0부터 시작하고 따라서 OS 이미지는 섹터 0부터 시작하여 저장된다.
(5) 비제약 영역은 OS-이미지 섹터들보다 큰 임의의 섹터일 수 있는 섹터 "FAT32StartSector"부터 시작한다.
(6) 저장 장치는 FAT 및 DIR 엔트리들의 위치 및 구조와 같은, FAT32에 의해 사용되는 메타데이터 및 데이터 구조들을 인식하는 "FAT32 엔진"이라 언급되는 소프트웨어 또는 하드웨어 로직을 갖는다.
(7) OS 이미지(제약된 영역에 저장되는)는 비제약 영역에 데이터를 기록하기 위해 FAT32를 통해 사용자 애플리케이션 요청들에 의해 업데이트된다.
(8) 저장 장치는 비휘발성 은닉영역에(즉, 호스트-시스템 프로세서, 부트 ROM 및 FAT32로부터 은닉된), 스머글될 파일의 이름(예를 들면, OSIMAGE.BIN), 및 제약된 영역의 시작 섹터에의 포인터(예를 들면, 4바이트)를 포함하는 스트링을 저장한다.
도면을 참조하면, 도 1은 본 발명의 바람직한 실시예들에 따라, 데이터를 스머글하고 저장 장치의 공간을 릴리즈하는 계산 시스템의 간략화된 개략적 블록도이다. 호스트 시스템(4)을 구비하는 계산 시스템(2)이 도시되었다. 호스트 시스템(4)은 파일 시스템(5), OS(6), 드라이버들(7), 호스트-시스템 프로세서(8), 및 애플리케이션(9)을 포함한다. 드라이버들(7)은 표준 블록 장치 드라이버들을 포함한다. 호스트 시스템(4)은 제어기(12) 및 저장 영역(14)을 구비하는 저장 장치(10)에 동작적으로 접속된 것으로 보여졌다. 저장 영역(14)은 제약된 영역(16) 및 비제약 영역(18)을 갖는다.
도 2a-d는 본 발명의 바람직한 실시예들에 따라, 프로세스의 여러 단계들에서 데이터를 스머글하고 공간을 릴리즈하기 위한 카피-삭제 모드의 간략화된 블록도이다. 도 2a-d는 비제약 영역을 위해 제약 영역에 데이터를 스머글하고 스머글 프로세스 동안 발생되었던 임의의 중간 데이터의 비제약 영역을 릴리즈함으로써 OS 이미지를 업데이트하기 위한 4개의 단계들을 도시한 것이다.
도 2a는 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 보이는 것으로 데이터를 스머글하고 공간을 릴리즈하기 위한 카피-삭제 모드의 간이화된 블록도이다. 저장 장치는 2개의 파티션들, OS 이미지를 저장하기 위한 제약된 영역(20), 및 사용자 데이터를 저장하기 위한 비제약 영역(22)을 구비한다.
도 2b는 스머글된 데이터를 위한 FAT32로부터 기록 요청을 수신한 후에 도 2a의 파티션들을 도시한 것이다. 도 2b는 스머글된 파일(24)(예를 들면, OS 이미지)를 보여준다. 저장 장치는 비제약 영역(22)에 스머글된 파일(24)을 저장한다. 검출 프로세스는 도 7a-e에 관하여 기술된다.
도 2c는 저장 장치가 제약된 영역에 스머글된 데이터를 내부적으로 카피한 후에 도 2b의 파티션들을 도시한 것이다. 스머글된 파일(24)은 제약 영역(20)에 카피된 것으로 보여졌다. 스머글된 파일(24)은 제약된 파일(26)이 된다(즉, FAT32에 의해 액세스될 수 없는 데이터 파일).
도 2d는 비제약 영역에 저장되었던 스머글된 데이터가 삭제된 후에 도 2c의 파티션들을 도시한 것이다. 스머글된 파일(24)의 삭제는 파일을 기록했던 애플리케이션에 의해서(저장 장치가 스머글링을 완료할 수 있게 하는 안전한 지연 후에), 또는 저장 장치 자체에 의해서(다음 파워 업 되었을 때) 개시될 수 있다
스머글된 파일(24)이 OS 이미지인 예에서, OS 이미지는 제약된 영역(제약된 파일(26)로서)에 저장되며, 호스트-시스템 프로세서의 부트 ROM에 의해 액세스될 수 있으나, FAT32에 의해 판독될 수 없다. 데이터를 스머글하고 공간을 릴리즈하는 카피-삭제 모드는 OS 이미지의 부분적 업데이트들에 적용할 수 없으나 OS 이미지가 완전히 업데이트되는 경우들에만 적용될 수 있다.
도 3a-c는 본 발명의 바람직한 실시예들에 따라, 프로세스의 여러 단계들에서 데이터를 스머글하는 맵-인 모드의 간략화된 블록도이다. 도 3a-c는 비제약 영역에 데이터를 기록하고 제약된 영역에 비제약 영역을 맵핑함으로써 OS 이미지를 업데이트하는 3개의 단계들을 도시한 것이다.
도 3a는 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 도시한 것으로 데이터를 스머글하는 맵-인 모드의 간략화된 블록도이다. 도 2a에 관하여 기술된 바와 같이, OS 이미지를 저장하기 위한 제약된 영역(20), 및 사용자 데이터를 저장하기 위한 비제약 영역(22).
도 3b는 비제약 섹터에 데이터 섹터를 기록하기 위해 FAT32으로부터 기록 요청을 수신한 후에 도 3a의 파티션들을 도시한 것이다. 데이터 섹터(30)가 비제약 섹터(32)에 기록된 것이 보여졌다. FAT32가 스머글된 파일의 기준에 부합하는 데이터 섹터(30)를 기록하기 위한 요청을 보냈음을 저장 장치가 검출한다면(도 7a-e에 관하여 기술된 데이터-스머글 검출-수법에 따라), 저장 장치는 비제약 섹터(32)의 섹터 번호들을 제약 섹터(34)의 제약-영역 섹터 번호들로 전환시킴으로써 비제약 섹터(32)를 제약 섹터(34)에 맵핑한다(맵핑 A). "전환"은 다음과 같이 수행된다: 저장 장치는 파일에 비제약 섹터(32)의 오프셋을 계산하며(도 7a-e에 관하여 상세히 기술된), 섹터 오프셋은 제약 영역(20)에 섹터 오프셋으로 전환된다.
도 3c는 제약된 섹터에 저장 장치에 의해 내부적으로 데이터 섹터가 저장된 후에 도 3b의 파티션들을 도시한 것이다. FAT32로부터(비제약 섹터(32)에), 또는 호스트-시스템의 부트-ROM 코드로부터(제약된 섹터(34)로) 임의의 기록 요청은 제약된 섹터(34)에 저장 장치에 의해 내부적으로 보내진다. 전송 메커니즘은 비제약 대 제약 섹터들의 룩업 테이블을 관리하는 저장 장치에 의해 관리된다. 테이블 내 모든 엔트리는 스머글된 비제약 섹터 번호, 및 도 3b에 맵핑된 대응하는 제약된 섹터 번호를 포함한다. 저장 장치는 FAT32로부터 오는 기록 요청을 모니터하며, 비제약 섹터가 요청되었다면 룩업 테이블에서 체크한다. 비제약 섹터가 요청된다면, 저장 장치는 섹터(36)에 위치된 것으로 보이는 데이터 섹터가 섹터(38)에 실제로 기록될 기록 요청을 보낸다(맵핑 B). 이 프로세스는 한 범위의 비제약 영역에 섹터들을 한 범위의 제약 영역에 섹터들에 맵핑하기 때문에, 맵-인 모드라 한다.
맵-인 모드는, 호스트-시스템 프로세서가 저장 장치로부터의 고속 응답을 요구하고 룩업 테이블을 구축하기 위해서 저장 장치의 FAT32 엔진에 의해 요구된 "준비"를 관용하지 않는 경우들에 대부분 적용할 수 있다. FAT32 엔진에 의해 요구되는 준비들을 도 7a-e에 관하여 기술한다. 맵-인 모드는 내부적으로 FAT32 요청들(호스트-시스템 프로세서에 의해 실행되는)을 FAT32에 알리지 않고 룩업 테이블에 따라 제약 섹터들에 보낸다. 이에 따라, 룩업 테이블에 나타나는 비제약 섹터들은 데이터를 저장하기 위한 저장 장치에 의해 사용되지 않는다. 이러한 낭비되는 섹터들이 FAT32에 재사용되는 방법이 도 5a-d에 관하여 기술된다.
도 4a-c는 본 발명의 바람직한 실시예들에 따라, 프로세스의 여러 단계들에서 데이터를 스머글하는 맵-아웃 모드의 간략화된 블록도들이다. 도 4a-c는 비제약 섹터에 직접 데이터를 스머글함으로써 OS 이미지를 업데이트하고 제약된 섹터를 비제약된 섹터에 맵아웃하는 3개의 단계들을 도시한 것이다.
도 4a는 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 보이는 것으로 데이터를 스머글하는 맵아웃 모드의 간략화된 블록도이다. 제약 영역(20) 및 비제약 영역(22)이 도시되었다(도 2a 및 도 2a에 관하여 기술된 바와 같이).
도 4b는 비제약 섹터에 데이터 섹터를 기록하라는 FAT32로부터의 기록 요청을 수신한 후에 도 4a의 파티션들을 도시한 것이다. 저장 장치는 FAT32에 의해 요청된 바와 같이 비제약 섹터(40)에 데이터를 저장한다.
도 4c는 도 4b에 기록되었던 비제약 섹터에 제약 섹터가 저장 장치에 의해 맵핑된 후에 도 4b의 파티션들을 도시한 것이다. 데이터 섹터(42)는 비제약 섹터(40)에 저장 장치에 의해, 도 3c에 관하여 기술된 룩업 테이블에 따라, 내부적으로 맵핑된다(맵핑 C). 이에 따라, 임의의 액세스 요청시(호스트-시스템 프로세서 부트 ROM으로부터 제약 영역에 저장된 OS 이미지에 오는), 저장 장치는 내부적으로, 액세스 요청을 위에 룩업 테이블에 따라 비제약 섹터에 보낸다.
맵아웃 모드는 한 범위의 제약 영역에 섹터들을 한 범위의 비제약 영역에 섹터들에 맵핑한다. 이러한 맵핑은 룩업 테이블에 나타나는 제약 섹터들이 OS-이미지 데이터르 저장하기 위해 저장 장치에 의해 사용되지 않는 상황을 야기한다. 이러한 낭비된 섹터들이 FAT32에 의해 재사용되는 방법이 도 6a-d에 관하여 기술된다. 맵아웃 모드는 호스트-시스템 프로세서가 저장 장치로부터 고속 응답을 요구하지 않 아 이에 따라 룩업 테이블을 구축하기 위해서 저장 장치의 FAT32 엔진에 의해 요구된 준비를 관용하지 않는 경우들에 대부분 적용할 수 있다.
도 5a-d는 본 발명의 바람직한 실시예들에 따라, 프로세스의 여러 단계들에서 데이터를 스머글하는 맵-인 모드에서 공간을 릴리즈하는 간략화된 블록도들이다. 도 5a-d는 맵-인 프로세스 동안 야기되는 낭비된 섹터들을 이용하는 4개의 단계들을 도시한 것이다.
도 5a는 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 도시한 것으로 데이터를 스머글하는 맵인 모드의 간략화된 블록도이다. OS 이미지를 저장하기 위한 제약 영역(50), 사용자 데이터를 저장하기 위한 비제약 영역(52), 및 가상 영역(54)에 도시되었다. 도 2a, 도 2a 및 도 3a와는 대조적으로, 저장 장치는 호스트 시스템에게 제약 영역(50)의 크기를 갖는 가상 영역(454)을 제공한다. 가상 영역(54)은 논리 순차적인 한 범위의 섹터들이다. 저장 장치는 호스트 시스템의 FAT32에게, 비제약 영역(52)을 위한 섹터들 및 가상 영역(54)을 위한 섹터들을 갖는 영역을 제공한다. 결국, FAT32가 호스트-시스템 프로세서에서 실행될 때, FAT32는 한 비제약 영역으로서 비제약 영역(52) 및 가상 영역(54)을 관리한다.
도 5b는 데이터 섹터를 비제약 섹터에 기록하라는 FAT32로부터의 기록 요청을 수신한 후에 도 5a의 파티션들을 도시한 것이다. 데이터 섹터(56)는 비제약 섹터(58)에 기록되는 것으로 도시되었다. FAT32가 스머글된 파일의 기준에 부합하는 데이터 섹터(56)를 기록하기 위한 요청을 보냈음을 저장 장치가 검출한다면(도 7a- e에 관하여 기술된 데이터-스머글 검출-수법에 따라), 저장 장치는 룩업 테이블을 체크하며, 스머글된 데이터를 기록하기 위해 제약 섹터(60)에 대한 섹터 번호를 얻는다. 저장 장치는 제약 섹터(60)에 저장된 데이터 섹터(56)를 보낸다(맵핑 D).
도 5c는 데이터 섹터를 가상 섹터에 기록하라는 FAT32로부터의 기록 요청을 수신한 후에 도 5b의 파티션들을 도시한 것이다. 제약 영역(50)에 저장된 스머글된 데이터(62)는 호스트-시스템 프로세서에서 실행되는 FAT32로부터 한 범위의 가상 영역(54)에 가상 섹터(66)로 데이터 섹터(64)를 기록하라는 요청의 수신이 도시되었다. 도 3c에 관하여 언급된 룩업 테이블 외에도, 저장 장치는 "가상에서 논리로"(VTL)의 룩업 테이블을 관리한다. VTL 테이블에 모든 엔트리는 가상 섹터 번호 및 대응하는 비제약 섹터 번호를 포함한다. FAT32가 데이터 섹터(64)를 가상 데이터 섹터(66){한 범위의 가상 영역(54)에 한 섹터}에 기록을 시도할 때, 저장 장치는 내부적으로 VTL 룩업 테이블을 체크하여 가상 섹터(66)가 비제약 섹터에 이미 맵핑되었는지를 판정한다.
가상 섹터(66)가 맵핑되었다면{도 5b의 데이터 섹터(56)에 관하여 기술된 바와 같이}, 저장 장치는 FAT32 요청을 매칭되는 비제약 섹터(68)에 내부적으로 보낸다(맵핑 E). 가상 섹터(66)가 아직 맵핑되지 않았다면, 저장 장치는 가상 섹터가 비제약 섹터에 맵핑되는지를 알기 위해서 VTL 테이블에서 비제약 섹터-번호들을 체크한다. 저장 장치가 어떠한 가상 섹터가 맵핑되지 않은 비제약 섹터를 발견한다면(즉, 낭비된 섹터), 저장 장치는 가상 섹터(66)를 비제약 섹터(68)에 맵핑하고(맵핑 E)(사용 가능한 "낭비된 섹터"), VTL 룩업 테이블에 대응하는 엔트리를 비제 약 섹터-번호로 업데이트한다. 저장 장치는 내부적으로 데이터 섹터(64)(FAT32에 의해 가상 섹터(66)에 보내진)를 섹터(68)에 저장한다.
저장 장치는 룩업 테이블을 제약 섹터(62)의 맵핑된 섹터-번호로 업데이트한다(도 3c에 관하여 기술된 바와 같이). FAT32가 비제약 섹터(68)에 액세스(즉, 판독 또는 기록)를 시도할 때(도 5c에 도시된 바와 같이), 저장 장치는 내부적으로 제약된 섹터(62){제약 영역(50) 내}에 요청을 보낸다(맵핑 F).
낭비된 영역이 제약 영역(50)보다 작기 때문에{모든 제약 영역(50)보다 작은 영역을 스머글한 결과인} 저장 장치가 임의의 가용한 비제약 섹터(제약 섹터에 맵핑되지 않은)을 발견할 수 없다면, 저장 장치는 FAT32에 의해 가상 어드레스에 보내진 데이터 섹터들을 저장하기 위해 제약 영역(50)에 가용 저장 영역을 사용한다. 이들 데이터 섹터들은 가상 영역(54)으로부터 직접 제약 영역(50)에 맵핑된다. 더 많은 데이터가 제약 영역(50)에 스머글되고, 더 많은 낭비된 영역이 비제약 영역(52)에 야기되는 즉시로, 저장 장치는 이들 "직접-맵핑된" 데이터 섹터들을 제약 영역(50)에서 비제약 영역(52)으로 이동시켜, 제약 영역(50)을 새로이 스머글된 데이터에 대해 사용할 수 있게 한다.
도 5d는 FAT32로부터 판독 요청을 수신한 후에 도 5c의 파티션들 또는 도 5c에서 제약 섹터에 이미 맵핑되었던 비제역 섹터에 저장 장치에 의해 맵핑되었던 기상 섹터를 도시한 것이다. 도 5d에서, FAT32는 저장 장치로부터 비제약 논리 섹터(70)에 이미 맵핑된{이미 제약 섹터(62)에 맵핑된} 가상 섹터(66) 판독 또는 기록을 시도한다. 저장 장치는 맵핑된 비제약 논리 섹터(70)에 대해 VTL 룩업 테이블 을 체크하며, FAT32 요청을 비제약 논리 섹터(70)에 보낸다(맵핑 G). 이에 따라:
(1) 비제약 영역(52)에 의도된 데이터는 비제약 영역(52)에 저장된다;
(2) 비제약 영역(52)에 의도된 스머글된 데이터는 제약 영역(50)에 저장된다 (데이터-스머글링 수법에 의해 의도된 바와 같이);
(3) 가상 영역(54)에 의도된 데이터는 비제약 영역(52)에 저장된다.
도 6a-d는 본 발명의 바람직한 실시예들에 따라, 프로세스의 여러 단계들에서 데이터를 스머글하는 맵아웃 모드에서 공간을 릴리즈하는 간략화된 블록도이다. 도 6a-d는 맵아웃 프로세스 동안 야기된 낭비된 섹터들을 이용하는 4개의 단계들을 도시한 것이다.
도 6a는 본 발명의 바람직한 실시예들에 따라, 저장 장치의 논리 파티션들을 도시한 것으로 데이터를 스머글하는 맵아웃 모드의 간략화된 블록도이다. 제약 영역(50), 비제약 영역(52), 및 가상 영역(54)가 도시되었다 (도 5a에 관하여 기술된 바와 같이).
도 6b는 FAT32로부터 데이터 섹터를 비제약 섹터에 기록하라는 기록 요청을 수신한 후에 도 6a의 파티션들을 도시한 것이다. 데이터 섹터(72)는 비제역 섹터(74)에 기록되는 것으로 도시되었다. FAT32가 스머글된 파일의 기준에 부합하는 데이터 섹터(72)를 기록하기 위한 요청을 보냈음을 저장 장치가 검출한다면(도 7a-e에 관하여 기술된 데이터-스머글 검출-수법에 따라), 저장 장치는 룩업 테이블을 체크하며(도 3c에 관하여 기술된), 제약 섹터(60)에 대한 섹터 번호를 얻는다.
저장 장치는 데이터 섹터(72)를 비제약 섹터(74)에 내부적으로 저장한다. 저 장 장치는 맵핑된 비제약 섹터(74)의 섹터 번호로 룩업 테이블을 업데이트한다. 다음 부트 동작시, 호스트-시스템 프로세서는 제약 영역(50)에 제약 섹터(76)으로부터 OS 이미지를 판독을 시도할 때, 저장 장치는 내부적으로 요청을 제약 섹터(76)가 아니라 비제약 영역(52)에 데이터 섹터(74)에 보낸다(맵핑 H).
도 6c는 FAT32로부터 데이터 섹터를 가상 섹터에 기록하라는 기록 요청을 수신한 후에 도 6b의 파티션들을 도시한 것이다. 데이터 섹터(78)는 호스트 프로세서에서 실행되는 FAT32에 의해 가상 섹터(80)에 기록되는 것으로 도시되었다. 저장 장치는 가상 영역(54)의 어드레스를 고정된 오프셋을 적용함으로써 제약 영역(50)의 어드레스로 전환한다. FAT32가 데이터를 가상 섹터(80){한 범위의 가상 영역(54)에 섹터}에 기록할 것을 시도할 때, 저장 장치는 내부적으로 가상 영역(54)로부터 어드레스를 제약 영역(50)에 오프셋하며(맵핑 I), 데이터 섹터(78)를 제약 영역(50)에 저장한다. 제약 영역(50)으로 의도된 데이터는 실제로 비제약 영역(52)에 저장되고 저장 장치는 비제약 영역(52) 내의 맵핑된 비제약 섹터(82)로부터 데이터를 가져오는 것(맵핑 J)에 유의한다. 이에 따라:
(1) 비제약 영역(52)에 의도된 데이터는 비제약 영역(52)에 저장된다;
(2) 비제약 영역(50)에 의도된 스머글된 데이터는 제약 영역(52)에 저장된다;
(3) 가상 영역(54)에 의도된 데이터는 비제약 영역(50)에 저장된다.
도 6d는 FAT32로부터 가상 섹터를 판독하라는 판독 요청을 수신한 후에 도 6c의 파티션들을 도시한 것이다. 저장 장치가 FAT32로부터 가상 섹터(80)를 판독하 라는 판독 요청을 수신하였을 때, 저장 장치는 고정된 오프셋(맵핑 K)을 적용하여 제약 영역(50)으로부터 데이터 섹터(84)를 판독한다.
도 7a-e는 본 발명의 바람직한 실시예들에 따라, 이하 열거된 다양한 데이터-스머글링 시나리오들에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도이다. 도 7a-e는 FAT32가 저장 장치에 임의의 파일에 대해 수행할 필요가 있을지도 모르는 모든 보통의 업데이트 동작들을 포함하여, 스머글된 파일에 대한 5개의 데이터-스머글링 시나리오들을 도시한 것이다.
(A) 새로운 스머글된 파일을 생성한다(파일이 처음 생성될 때 또는 파일 삭제 후에);
(B) 스머글된 파일을 삭제한다(스머글된 파일이 삭제될 필요가 있을 때);
(C) 스머글된 파일을 덮어쓰기한다(새로운 스머글된 파일이 이전 스머글된 파일을 삭제하고 새로운 스머글된 파일을 생성함으로써 이전 스머글된 파일을 교체할 필요가 있을 때);
(D) 스머글된 파일을 부분적으로 업데이트한다(현존한 스머글된 파일이 부분적으로 업데이트될 필요가 있을 때);
(E) 스머글된 파일에 첨부한다(현존한 스머글된 파일이 확장될 필요가 있을 때).
데이터-스머글링 검출-수법은 FAT32로부터 오는 저장 장치에의 임의의 기록 요청을 모니터하고, 요청이 FAT에 대한 것인지, 디렉토리 엔트리 FAT32 섹터에 대 한 것인지, 아니면 데이터 클러스터에 대한 것인지를 확인하는 것을 이용한다.
파일을 스머그링함으로써 파일을 업데이트하게 의도된 데이터는 NVM에 저장된 사전에 정의된 스트링의 검출에 의해 확인된다. 이하 "스머글된-파일 식별자"라고 하는, 사전에 정의된 스트링은 데이트를 스머글할 필요가 있는 애플리케이션에 알려진다. 스머글된 파일 식별자는 스머글된 파일의 전체 경로 및 파일명이다. 스머글된 파일 식별자는 스머글된 파일 디렉토리-엔트리 데이터의 일부로서, FAT32를통해서, 애플리케이션에 의해 보내진다.
위에 리스트된 모든 데이터-스머글링 스나리오들에서, 시스템이 기동되었을 때(단계 100), 저장 장치는 다음과 같이 FAT32 엔진을 초기화한다(단계 102).
(1) 저장 장치는 FAT32 엔진을 마운트한다.
(2) 저장 장치는 사전에 정의된 스머글된 파일 식별자를 로딩한다.
(3) 저장 장치는 스머글된 DirEntry 어드레스(FAT32 섹터 내에 DirEntry 섹터 및 오프셋)를 가리키는, 이하 "스머글된-파일 DirEntry 포인터"라는 포인터를 널(null)로 설정한다.
(4) 저장 장치는 "트루" 또는 "폴스" 값들을 갖는 2진 파라미터인, 이하 "FileExistsFlag"라고 하는 플래그를 다음과 같이 설정한다.
(i) 저장 장치는 스머글된-파일 식별자의 파일명을 가진 파일이 존재하는지를 체크한다(NVM에 파일의 DirEntry를 찾는다);
(ii) 스머글된 파일이 존재한다면, 저장 장치는 FileExistsFlag를 트루로 설정하고 스머글된-파일 DirEntry 포인터를 업데이트한다;
(iii) 스머글된-파일 식별자의 파일명을 가진 파일이 존재하지 않는다면, 저장 장치는 FileExistsFlag를 폴스로 설정하고, 스머글된 파일이 저장될 디렉토리에 DirEntry들의 마지막 FAT32 섹터에로, 스머글된-파일 DirEntry 포인터를 업데이트한다.
(5) FileExistsFlag이 트루이면, 저장 장치는 스머글된 파일 DirEntry를 판독하고, DirEntry로부터 제 1 스머글된-파일 데이터-클러스터 번호를 추출한다;
(6) 저장 장치는 FAT로부터 전체 FAT 체인을 판독하고, 링크된 리스트에 따라서 스머글된-파일 데이터-클러스터 번호들을 재구성한다.
이 단계 후에(단계 102), 저장 장치는 FAT32로부터 기록 요청을 기다린다(단계 104). 저장 장치가 FAT32로부터 기록 요청을 수신하였을 때, 저장 장치는 FileExistsFlag가 트루인지 폴스인지를 체크한다(단계 106). 이때, 개개의 데이터-스머글링 시나리오들은 이하 기술되는 도 7a-e에 서로 다른 흐름들에 따른다.
도 7a는 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 생성하는 시나리오 (A)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도이다. 도 7a에서 흐름 A(점선으로 나타낸 것)는 새로운 스머글된 파일을 생성하기 위한 절차상의 경로를 나타낸다. 스머글된 파일이 존재하지 않고 FAT32가 새로운 스머글된 파일을 기록하기를 시도할 때, 흐름 A는 다음 단계들을 수행한다.
시스템 기동 후에(단계 100), 저장 장치는 이의 내부 초기화를 수행하며, FileExistsFlag을 폴스로 설정하고, 새로운 스머글된 파일이 저장될 디렉토리의 DirEntry들의 마지막 클러스터를 가리키게, 스머글된-파일 DirEntry 포인터를 설정한다(단계 102). 저장 장치는 기록 요청을 기다리며(단계 104), FileExistsFlag을 체크한다(단계 106). 시나리오 (A)에서는 파일이 이때 존재하지 않기 때문에, FileExistsFlag은 폴스이며, 저장 장치는 이하 조건들이 유효한지를 체크한다(단계 108).
(1) 스머글된-파일 DirEntry 포인터에 명시된 바와 동일한 어드레스에 새로운 DirEntry가 기록되는가? (시나리오 (A)의 이 지점에서, 스머글된-파일 DirEntry 포인터는 스머글된 파일이 저장될 디렉토리의 DirEntry들의 마지막 클러스터를 가리킨다).
(2) DirEntry에 명시된 파일명이 스머글된 파일의 이름과 동일한가(스머글된-파일 식별자에 명시된 바와 같은)?
두 조건이 충족되면, 이것은 새로운 스머글된-파일 DirEntry가 기록되고 있음을 저장 장치가 발견한 것을 의미하는 것으로, 저장 장치는 FileExistsFlag를 트루로 설정하고 FAT32가 스머글된 파일 클러스터들, FAT 엔트리들, 및 데이터 클러스터들을 기록할 것을 기다린다(단계 110). 그렇지 않다면, 파일이 비어있게 되면(즉 길이=0), 저장 장치는 도 7b에 관하여 이하 기술되는 바와 같이 새로운 DirEntry를 업데이트함으로써 파일을 클로즈한다. 두 조건들 중 어느 하나가 충족되지 않는다면, 이것은 새로운 스머글된 파일이 생성되고 있지 않음을 의미하는 것으로, 저장 장치는 새로운 기록 요청을 기다린다(단계 104).
도 7b는 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 삭제 하는 시나리오 (B)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도이다. 도 7a에서 흐름 A(점선으로 나타낸 것)는 새로운 스머글된 파일을 생성하기 위한 절차상의 경로를 나타낸다. 도 7b에서 흐름 B는 스머글된 파일을 삭제하기 위한 절차적 경로를 나타낸다. 새로운 기록 요청이 FAT32로부터 올 때(단계 104), 저장 장치는 FileExistsFlag을 체크한다(단계 6). FileExistsFlag이 트루라면, 새로운 DirEntry가 업데이트되고 있는지 여부를 체크한다(즉, 현재 기록되는 FAT32 섹터가 스머글된-파일 DirEntry 포인터와 동일한지를 검증한다(단계 112).
스머글된-파일 DirEntry가 FAT32에 의해 업데이트되고 있다면(단계 112), 저장 장치는 DirEntry에의 기록 요청이 "클로즈" 동작인지를 체크한다(이 경우 업데이트되는 DirEntry에 LUT 필드 및 파일-길이 파라미터를 체크함으로써(단계 114). 기록 요청이 클로즈 동작이라면, 저장 장치는 FAT32로부터 다음 "업데이트 동작들(즉, 기록 요청들)"을 기다린다(단계 104).
DirEntry에 기록 요청이 "클로즈" 동작이 아니라면(단계 114), 이것은 스머글된-파일 DirEntry에 기록 요청이 스머글된-파일 DirEntry에 "플래그 삭제"를 기록함으로써 "삭제" 동작임을 저장 장치가 검출함을 의미하는 것으로, 저장 장치는 FileExistsFlag를 폴스로 설정하고, 스머글된-파일 DirEntry 포인터를 업데이트하고, 스머글된-파일 클러스터-번호들을 링크된 리스트에서 소거하고(어떠한 데이터 클러스터도 스머글된 파일에 속하지 않도록)(단계 116), FAT32로부터 다음 기록동작을 기다린다(단계 104).
도 7c는 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 덮어쓰기하는 시나리오 (C)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도이다. 스머글된 파일을 덮어쓰기하기 위한 흐름은 스머글된 파일을 삭제하기 위한 도 7b의 흐름 B와 이에 이어 새로운 스머글된 파일을 생성하기 위한 도 7a의 흐름 A와의 조합이다. 스머글된 파일을 덮어쓰기하기 위한 절차 경로가 도 7b의 흐름 B(즉, 일련의 단계들 100, 102, 104, 106, 112, 114, 116, 104)에 관계된 흐름 C1와, 이에 이어 도 7a의 흐름 A(즉, 일련의 단계들 104, 106, 108, 110, 104)에 관계된 흐름 C2로서 도 7c에 도시되었다.
도 7d는 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일을 업데이트하는 시나리오 (D)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도이다. 도 7d에서 흐름 D는 스머글된 파일을 부분적으로 업데이트하는 절차 경로를 나타낸다. 스머글된-파일 DirEntry가 업데이트되고 있지 않다면(단계 112), 저장 장치는 링크된 리스트에서 스머글된-파일 클러스터-번호들 중 하나를 기록 요청이 참조하는지를 체크함으로써 현재 기록 요청이 스머글된-파일 데이터-클러스터들 중 하나를 업데이트하고 있는지를 체크한다(단계 118). 스머글된-파일 데이터-클러스터들 중 하나가 업데이트되고 있음을 저장 장치가 발견한다면, 저장 장치는 데이터 클러스터들을 스머글하며(도 3 및 3dp 기술된 맵인 또는 맵아웃 스머글링 모드를 사용하여), FileExistsFlag을 셋 하며(단계 120), 다음 기록 요청을 기다린다(단계 104). 시나 리오 (B)에서(도 7b의 단계 106), 시나리오 (D)에서 셋 된 것에 기인하여 FileExistsFlag이 트루로서 검출될 수 있는 것에 유의한다(도 7d의 단계 120).
도 7e는 본 발명의 바람직한 실시예들에 따라, 새로운 스머글된 파일에 첨부하는 시나리오 (E)에 대해서, 저장 장치를 구비하는 호스트 시스템에 구현되는, 데이터-스머글링 검출 수법의 간략화된 흐름도이다. 도 7e에서 흐름 E는 스머글된 파일에 첨부하기 위한 절차 경로를 나타낸다. 기록 요청이 스머글된-파일 데이터-클러스터들 중 하나를 업데이트하고 있지 않다면(단계 118), 저장 장치는 링크된 리스트에서 스머글된-파일 클러스터-번호들 중 하나를 기록 요청이 참조하는지 체크함으로써, 업데이트되고 있는 FAT 엔트리들 중 적어도 하나가 FAT에 스머글된-파일 데이터-클러스터들을 참조하고 있는지를 체크한다(단계 122). FAT에 하나 이상의 스머글된-파일 데이터-클러스터 FAT 엔트리들이 업데이트되고 있다면, 저장 장치는 링크된 리스트에 스머글된-파일 클러스터-번호들을 새로운 또는 삭제된 클러스터 번호들로 업데이트하고(단계 124), FAT32로부터 다음 기록 요청을 기다린다(단계 104).
결국, FAT32가 FAT에 스머글된-파일 데이터-클러스터들 및/또는 데이터-클러스터 FAT 엔트리들을 업데이트한 후에, FAT32는 위에 기술된 바와 같이 스머글된-파일 DirEntry에 LUT 필드 및 또는 파일-길이 필드를 업데이트함으로써 파일을 클로즈해야 할 것이다.
스머글된 파일이 이미 존해하는 시나리오에서(즉, FileExistsFlag이 트루로 설정된), 저장 장치는 FAT32로부터 기록 요청을 기다리며(단계 104), 다음 시나리 오들 중 하나가 발생할 것을 예상한다:
시나리오(B): FAT32는 스머글된 파일을 삭제하기를 시도한다. 이 시나리오에서, 일련의 단계들 100 및 102를 수행한 후에, 저장 장치는 일련의 단계들 104, 106, 112, 114, 116(위에 기술된)을 수행한다.
시나리오(D): FAT32는 스머글된 파일을 부분적으로 업데이트하기를 시도한다. 이 시나리오에서, 일련의 단계들 100 및 102를 수행한 후에, 저장 장치는 일련의 단계들 104, 106, 112, 118, 120(위에 기술된)을 수회에 수행한다. 저장 장치가 이들 단계들을 수행하는 반복 회수는 FAT32로부터 오는 업데이트들의 수에 따른다; 또는
시나리오(E): FAT32는 스머글된 파일에 추가의 데이터를 첨부하기를 시도한다.이 시나리오에서, 일련의 단계들 100 및 102를 수행한 후에, 저장 장치는 일련의 단계들 104, 106, 112, 118, 122, 124(위에 기술된)을 새로운 데이터-클러스터 FAT 엔트리들의 할당에 기인하여 수회에 수행한다. 저장 장치가 이들 단계들을 수행하는 반복 회수는 FAT 엔트리들의 데이터-클러스터가 업데이트되는 회수에 따른다. 저장 장치는 또한 새로이 할당되는 데이터-클러스터 업데이트들에 기인하여 일련의 단계들 104, 106, 112, 118, 120(시나리오 (D))를 수회에 수행한다. 저장 장치가 수행하는 반복 회수는 데이터-클러스터 업데이트들의 수에 따른다. 발명이 제한된 수의 실시예들에 관하여 기술되었으나, 발명의 많은 변형들, 수정들, 및 그 외 적용이 행해질 있음을 알 것이다.
상술한 바와 같이, 본 발명은, 파일-시스템 애플리케이션-인터페이스(FSAPI)만을 사용하여 제약된 저장 영역에 데이터를 권한 있는 애플리케이션이 액세스할 수 있도록 하기 위한 시스템을 제공하는데 사용된다.
Claims (13)
- 컴퓨터 시스템에 있어서,(a) (i) 호스트 시스템에서 실행하기 위한 파일 시스템 및 블록 장치 드라이버와,(ii) 상기 호스트 시스템에서 실행하기 위한 적어도 하나의 애플리케이션을구비하는 호스트 시스템과,(b) (i) 저장 장치를 제어하기 위한 제어기와,(ii) 상기 저장 장치에 정보를 저장하기 위한 저장 영역을구비하는 저장 장치와,(c) 상기 파일 시스템에 의해서, 상기 저장 영역의 제약 영역에 대한 액세스를 제약하기 위한 제 1 메커니즘과,(d) 상기 적어도 하나의 애플리케이션이 상기 파일 시스템을 통해 상기 제약 영역에 액세스할 수 있도록 하기 위해, 상기 저장 장치에 있는, 제 2 메커니즘을포함하는, 컴퓨터 시스템.
- 제 1항에 있어서, 상기 제 2 메커니즘은 상기 저장 장치가 상기 저장 영역의 비제약 영역으로부터 데이터를 상기 제약 영역에 카피할 수 있도록 구성된, 컴퓨터 시스템.
- 제 1항에 있어서, 상기 제 2 메커니즘은 상기 제약 영역에 어드레스에 보내지는 호스트-시스템 판독-요청을 상기 저장 영역의 비제약 영역에 어드레스에 보낼 것을 상기 저장 장치에 지시하도록 동작하는, 컴퓨터 시스템.
- 제 1항에 있어서, 상기 제 2 메커니즘은 상기 호스트 시스템이 상기 저장 영역의 비제약 영역에 어드레스된 비제약 데이터에 대한 액세스를 요청할 때 상기 제약 영역에 있는 제약된 데이터에 상기 호스트 시스템의 액세스 명령을 적용하게 동작하는, 컴퓨터 시스템.
- 컴퓨터 판독 가능 저장 매체에 구현된 컴퓨터 판독 가능 코드를 갖는 컴퓨터 판독 가능 저장 매체에 있어서,상기 컴퓨터 판독 가능 코드는,(a) 호스트 시스템에서 실행되는 파일 시스템에 의해서, 저장 장치의 저장 영역의 제약 영역에 대한 액세스를 제약하기 위한 프로그램 코드와,(b) 상기 파일 시스템을 통해서 상기 제약 영역에 적어도 하나의 애플리케이션이 액세스할 수 있게 하기 위한 프로그램 코드를포함하는, 저장 매체.
- 제 5항에 있어서, 상기 컴퓨터 판독 가능 코드는,(c) 상기 저장 영역의 비제약 영역으로부터 상기 제약 영역에 데이터를 상기 저장 장치가 카피할 수 있게 하기 위한 프로그램 코드를 더 포함하는, 저장 매체.
- 제 5항에 있어서, 상기 컴퓨터 판독 가능 코드는,(c) 상기 제약 영역에 어드레스에 보내지는 호스트-시스템 판독-요청을 상기 저장 영역의 비제약 영역에 어드레스에 보낼 것을 상기 저장 장치에 지시하기 위한 프로그램 코드를 더 포함하는, 저장 매체.
- 제 5항에 있어서, 상기 컴퓨터 판독 가능 코드는,(c) 상기 저장 영역의 비제약 영역에 어드레스된 비제약 데이터에 대한 액세스를 상기 호스트 시스템이 요청할 때 상기 제약 영역에 있는 제약된 데이터에 상기 호스트 시스템의 액세스 명령들을 적용하기 위한 프로그램 코드를 더 포함하는, 저장 매체.
- 저장 장치의 제약 영역에 액세스하기 위해 호스트 시스템에서 실행되는 애플리케이션의 방법에 있어서,(a) 상기 호스트 시스템에서 실행되기 위한 파일 시스템을 제공하는 단계와,(b) 상기 파일 시스템에 의해서, 상기 제약 영역에 대한 액세스를 제약하는 단계와,(c) 상기 파일 시스템을 통해 상기 저장 장치에 상기 애플리케이션에 의해 보내지고 있는 데이터가 상기 제약 영역에 의도된 것이라는 표시를 상기 애플리케이션으로부터 상기 저장 장치에 보내는 단계와,(d) 상기 저장 장치에서 상기 표시를 검출하는 단계와,(e) 애플리케이션 요청을 수신하였을 때 상기 제약 영역에 있는 상기 데이터를 상기 애플리케이션에 의한 판독이 될 수 있게 하는 단계를포함하는, 방법.
- 제 9항에 있어서, 상기 방법은,(f) 상기 파일 시스템에 의한 사용을 위해서, 상기 저장 장치의 낭비된 영역들을 릴리즈하는 단계를 더 포함하는, 방법.
- 제 9항에 있어서, 상기 방법은,(f) 상기 저장 장치의 비제약 영역으로부터 상기 제약 영역에 비제약 데이터를 카피하는 단계를 더 포함하는, 방법.
- 제 9항에 있어서, 상기 방법은,(f) 상기 제약 영역에 의도된 호스트-시스템 액세스-요청을 상기 저장 장치의 비제약 영역에 어드레스에 보내는 단계를 더 포함하는, 방법.
- 제 9항에 있어서, 상기 방법은,(f) 상기 저장 장치의 비제약 영역에 의도된 호스트-시스템 액세스-요청을 상기 제약 영역에 제약된 액세스-요청들로서 해석하는 단계를 더 포함하는, 방법.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US91568807P | 2007-05-03 | 2007-05-03 | |
US60/915,688 | 2007-05-03 | ||
US11/772,211 | 2007-06-30 | ||
US11/772,211 US7822935B2 (en) | 2007-05-03 | 2007-06-30 | Methods for data-smuggling |
US11/772,207 US7636825B2 (en) | 2007-05-03 | 2007-06-30 | Storage device for data-smuggling |
US11/772,207 | 2007-06-30 | ||
PCT/IL2008/000552 WO2008135969A1 (en) | 2007-05-03 | 2008-04-27 | Storage device and method for data-smuggling |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100016174A true KR20100016174A (ko) | 2010-02-12 |
KR101498014B1 KR101498014B1 (ko) | 2015-03-03 |
Family
ID=39940398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097022968A KR101498014B1 (ko) | 2007-05-03 | 2008-04-27 | 내부 저장 동작을 사용하는 데이터에 대해 데이터를 기록하기 위한 저장 장치와 방법 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7636825B2 (ko) |
JP (1) | JP4665065B2 (ko) |
KR (1) | KR101498014B1 (ko) |
TW (1) | TWI383296B (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055867B2 (en) * | 2008-01-11 | 2011-11-08 | International Business Machines Corporation | Methods, apparatuses, and computer program products for protecting pre-staged provisioned data in a storage system |
JP2010152794A (ja) * | 2008-12-26 | 2010-07-08 | Fujitsu Ltd | 記憶装置、アクセス制御装置、アクセス制御プログラム、および電子機器 |
US8510848B1 (en) * | 2009-02-02 | 2013-08-13 | Motorola Mobility Llc | Method and system for managing data in a communication network |
US9092597B2 (en) * | 2009-12-09 | 2015-07-28 | Sandisk Technologies Inc. | Storage device and method for using a virtual file in a public memory area to access a plurality of protected files in a private memory area |
US8301715B2 (en) | 2010-05-20 | 2012-10-30 | Sandisk Il Ltd. | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device |
US8301694B2 (en) | 2010-05-20 | 2012-10-30 | Sandisk Il Ltd. | Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device |
US9424228B2 (en) | 2012-11-01 | 2016-08-23 | Ezchip Technologies Ltd. | High performance, scalable multi chip interconnect |
JP5963313B2 (ja) * | 2013-12-19 | 2016-08-03 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理装置、方法、及び、プログラム |
US20160048353A1 (en) * | 2014-08-13 | 2016-02-18 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06501324A (ja) * | 1990-04-27 | 1994-02-10 | スキャンディック・インターナショナル・プロプライエタリー・リミテッド | スマートカード妥当性検証装置および方法 |
IT1254937B (it) * | 1991-05-06 | 1995-10-11 | Aggiornamento dinamico di memoria non volatile in un sistema informatico | |
DE19508723A1 (de) * | 1995-03-10 | 1996-09-12 | Siemens Ag | Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz |
US5787169A (en) * | 1995-12-28 | 1998-07-28 | International Business Machines Corp. | Method and apparatus for controlling access to encrypted data files in a computer system |
US6397333B1 (en) * | 1998-10-07 | 2002-05-28 | Infineon Technologies Ag | Copy protection system and method |
JP2002108718A (ja) * | 2000-10-03 | 2002-04-12 | Nippon Telegr & Teleph Corp <Ntt> | コンテンツ配送管理システム、コンテンツ配送管理方法、及びコンテンツ配送管理プログラムを記録した記録媒体 |
US20030212911A1 (en) * | 2002-05-13 | 2003-11-13 | International Business Machines Corporation | Secure control of access to data stored on a storage device of a computer system |
WO2005013133A2 (en) | 2003-07-28 | 2005-02-10 | Sandisk Secure Content Solutions, Inc. | System, apparatus and method for controlling a storage device |
JP2005158011A (ja) * | 2003-11-06 | 2005-06-16 | Matsushita Electric Ind Co Ltd | 記録再生装置 |
JP2005242598A (ja) * | 2004-02-26 | 2005-09-08 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム |
JP4498012B2 (ja) * | 2004-05-27 | 2010-07-07 | キヤノン株式会社 | 電子機器 |
US8275969B2 (en) * | 2004-08-05 | 2012-09-25 | Sandisk Il Ltd. | Storage with persistent user data |
EP1836543A1 (en) | 2004-12-22 | 2007-09-26 | Telecom Italia S.p.A. | Method and system for access control and data protection in digital memories, related digital memory and computer program product therefor |
JP4525357B2 (ja) * | 2005-01-19 | 2010-08-18 | ヤマハ株式会社 | オーディオデータの記録再生装置 |
US7669245B2 (en) * | 2005-06-08 | 2010-02-23 | Searete, Llc | User accessibility to electronic paper |
KR20080004532A (ko) * | 2005-03-29 | 2008-01-09 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 정보매체의 콘텐츠 보호방법 및 장치 |
US20070056042A1 (en) * | 2005-09-08 | 2007-03-08 | Bahman Qawami | Mobile memory system for secure storage and delivery of media content |
WO2007030760A2 (en) * | 2005-09-08 | 2007-03-15 | Sandisk Corporation | Mobile memory system for secure storage and delivery of media content |
-
2007
- 2007-06-30 US US11/772,207 patent/US7636825B2/en not_active Expired - Fee Related
- 2007-06-30 US US11/772,211 patent/US7822935B2/en active Active
-
2008
- 2008-04-27 JP JP2010505004A patent/JP4665065B2/ja not_active Expired - Fee Related
- 2008-04-27 KR KR1020097022968A patent/KR101498014B1/ko active IP Right Grant
- 2008-05-02 TW TW097116378A patent/TWI383296B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TWI383296B (zh) | 2013-01-21 |
KR101498014B1 (ko) | 2015-03-03 |
JP4665065B2 (ja) | 2011-04-06 |
US20100023718A1 (en) | 2010-01-28 |
US7822935B2 (en) | 2010-10-26 |
US20080276058A1 (en) | 2008-11-06 |
JP2010526364A (ja) | 2010-07-29 |
US7636825B2 (en) | 2009-12-22 |
TW200900932A (en) | 2009-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101498014B1 (ko) | 내부 저장 동작을 사용하는 데이터에 대해 데이터를 기록하기 위한 저장 장치와 방법 | |
KR102047558B1 (ko) | 가상 디스크 저장 기술 | |
US9286098B1 (en) | Using master file template area to increase density of virtual machines in a computer system | |
US8370835B2 (en) | Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device | |
CN108701048B (zh) | 数据加载方法及装置 | |
US5761680A (en) | Coherent film system access during defragmentation operations on a storage medium | |
US8196154B2 (en) | Copying workload files to a virtual disk | |
US9778860B2 (en) | Re-TRIM of free space within VHDX | |
JP5071798B2 (ja) | 計算機システム,メモリ管理方法,およびそのプログラム | |
US7694087B2 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
US20050283575A1 (en) | Information storing method for computer system including a plurality of computers and storage system | |
US7631156B2 (en) | Storage system issuing optimum I/O command to allocation-on-use enabled volume and controlling method therefor | |
JP2004178289A (ja) | スナップショット取得方法、ディスク装置及びストレージシステム | |
US7743209B2 (en) | Storage system for virtualizing control memory | |
WO2005071522A1 (ja) | 高速再起動方法および情報処理装置ならびにプログラム | |
JP2013137771A (ja) | データ利用についてのマウント時間の調停 | |
JPWO2010055937A1 (ja) | 計算機システム、データ保存方法およびプログラム | |
US20060149899A1 (en) | Method and apparatus for ongoing block storage device management | |
US8335903B2 (en) | Method and system for processing access to disk block | |
KR101303535B1 (ko) | 메인 메모리를 이용한 메모리 디스크 구성 방법 및 장치 | |
CN107832097B (zh) | 数据加载方法及装置 | |
WO2008135969A1 (en) | Storage device and method for data-smuggling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180201 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190129 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200129 Year of fee payment: 6 |