포크 (파일 시스템)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
파일 시스템 포크는 파일 시스템 객체가 여러 개의 데이터 스트림을 가질 수 있도록 하는 기능이다. 애플의 HFS 및 HFS+는 데이터 포크와 리소스 포크를 지원하여, GUI 요소, 텍스트 문자열 등을 저장했다. 노벨의 NetWare File System과 Novell Storage Services는 메타데이터 저장을 위해 다양한 방법을 사용하며, 윈도우의 NTFS는 대체 데이터 스트림(ADS)을 지원한다. ADS는 파일 출처 정보를 저장하는 데 사용되지만, 포크를 인식하지 못하는 프로그램으로 인해 데이터 손실 및 보안 위험이 발생할 수 있다. 솔라리스는 확장 속성을 통해 포크를 지원하며, 포크를 지원하지 않는 시스템에서는 사이드카 파일, 컨테이너 파일 또는 아카이브 파일과 같은 대안을 사용할 수 있다.
더 읽어볼만한 페이지
포크 (파일 시스템) | |
---|---|
파일 시스템 포크 | |
정의 | 파일 시스템 또는 볼륨의 복사본 |
특징 | 원래 파일 시스템과 완전히 독립적 변경 사항이 서로에게 영향을 미치지 않음 |
활용 | |
주 목적 | 데이터 백업 테스트 환경 구축 데이터 마이그레이션 |
기타 활용 | 연구 개발 |
구현 방식 | |
물리적 포크 (Physical Fork) | 전체 데이터 복사 (시간과 공간 소모 큼) |
논리적 포크 (Logical Fork) | 메타데이터만 복사 (공간 효율적, COW 방식 활용) |
Copy-on-Write (COW) | |
설명 | 데이터가 변경될 때만 실제 복사 수행 원본 데이터 보존 |
장점 | 공간 효율성 성능 향상 |
관련 기술 | |
스냅샷 (Snapshot) | 특정 시점의 파일 시스템 상태를 저장하는 기술 |
클론 (Clone) | 파일 시스템의 복사본 생성 |
예시 | |
ZFS (Zettabyte File System) | 스냅샷 및 클론 기능을 지원하는 파일 시스템 |
APFS (Apple File System) | 스냅샷 및 클론 기능을 지원하는 파일 시스템 |
2. 구현
애플의 HFS, MFS, HFS+, 노벨의 NWFS, NSS, 마이크로소프트의 NTFS 등 다양한 운영 체제 및 파일 시스템에서 파일 시스템 포크 또는 이와 유사한 기능을 제공한다.
애플의 HFS, MFS는 객체에 데이터 포크, 리소스 포크 등을 가지는 것을 가능하게 했다.[18] 리소스 포크는 GUI에서 사용되는 메타 데이터를 저장할 목적으로 설계되었다.[19] HFS+에서는 사용자 정의 "이름이 있는 포크" 기능도 지원했지만, Mac OS 8.1부터 Mac OS 10.3.9까지는 거의 사용되지 않았다.[3] Mac OS 10.4부터는 확장 인라인 속성을 지원하기 위해 부분적인 구현이 이루어졌다. Mac OS X v10.4까지는 고전적인 Unix 명령(tar 등) 사용시 데이터 손실 위험이 있었다.[20]
노벨의 넷웨어 파일 시스템 (NEFS)과 후속 제품인 노벨 스토리지 서비스 (NSS)는 파일의 메타데이터를 저장하는 다양한 방법을 사용하도록 설계되었다. 일부 메타데이터는 노벨 디렉토리 서비스(NDS)에, 일부는 디스크의 디렉토리 구조에, 일부는 파일 자체('multiple data streams')에 저장된다.[1]
마이크로소프트의 NTFS에서 포크는 '''대체 데이터 스트림''' (''Alternate Data Streams'', ''ADS'')으로 알려져 있다.[21] 1993년 NTFS를 도입한 Windows NT의 첫 번째 버전에서는 포크를 지원하는 OS와의 호환성을 위해 ADS를 지원했다. Windows 2000에서는 파일 속성[22] 및 썸네일 이미지[23]를, Windows XP 서비스 팩 2에서는 다운로드 출처 정보를 ADS에 저장했다.[24] Windows NT는 API로 포크를 처리하는 기능을 가졌지만, Windows 탐색기 등 대부분의 프로그램은 무시한다. Windows Vista의 DIR 명령에서는 포크 표시 옵션이 추가되었다.[25]
솔라리스 9 이상 버전에서는 파일에 포크를 사용할 수 있으며, ''확장 속성''이라고 불린다.
2. 1. Apple
애플의 계층적 파일 시스템(HFS) 및 HFS+는 파일 시스템 객체가 데이터 포크와 리소스 포크를 가질 수 있도록 했다.[1] 리소스 포크는 아이콘, 현지화 가능한 텍스트 문자열, 메뉴, 대화 상자와 같이 시스템의 그래픽 사용자 인터페이스(GUI)에서 사용될 비컴파일 데이터를 저장하도록 설계되었다.[2] Word영어 프로세싱 문서를 내용과 표현으로 분할하여 각 부분을 별도의 리소스에 저장하는 방식으로 활용되기도 하였다.HFS+는 파일이 데이터 및 리소스 포크 외에도 임의의 수의 사용자 정의 "명명된 포크"를 가질 수 있는 기능을 지원한다. 이 기능은 Mac OS 8.1-10.3.9에서 제대로 지원되지 않아 거의 사용되지 않았다. 10.4부터는 확장 인라인 속성을 지원하기 위한 부분적인 구현이 이루어졌다.[3]
Mac OS X에서 10.4까지, tar와 같은 유닉스 명령줄 유틸리티는 파일의 리소스 포크를 처리하도록 업데이트되지 않았기 때문에 데이터 손실의 위험이 있었다.[4]
2. 2. Novell
1985년부터 노벨의 넷웨어 파일 시스템(NWFS)과 후속 제품인 NSS는 파일의 메타데이터를 저장하기 위해 다양한 방법을 사용하도록 처음부터 설계되었다. 일부 메타데이터는 노벨 디렉토리 서비스(NDS)에 있으며, 일부는 디스크의 디렉토리 구조에 저장되고, 일부는 노벨에서 '다중 데이터 스트림'이라고 부르는 파일 자체에 저장된다.[1] 다중 데이터 스트림은 또한 맥킨토시 클라이언트가 넷웨어 서버에 연결하여 사용할 수 있도록 한다.[1]2. 3. Microsoft
NTFS는 윈도우 NT 3.1에서 도입된 파일 시스템으로, 대체 데이터 스트림(ADS)이라는 파일 시스템 포크를 지원한다.[5] ADS는 원래 포크를 지원하는 기존 운영 체제와의 호환성을 위해 만들어졌다. 윈도우 탐색기는 ADS를 복사하고 대상 파일 시스템이 ADS를 지원하지 않을 경우 경고를 표시하며, Windows Vista 이후 `dir` 명령은 ADS 표시를 지원한다.[11] Windows PowerShell v3.0 이상은 ADS 조작을 지원한다.[12]윈도우 2000은 ADS를 사용하여 이미지 파일에 썸네일을 저장하고, 주 스트림을 변경하지 않고 파일에 요약 정보(제목, 작성자 등)를 저장했다.[13][14] 윈도우 XP에서는 NTFS 볼륨 외부로 파일 이동 시 ADS가 손실되기 쉬워 주 스트림에 저장하도록 변경되었다.[13] 윈도우 비스타는 요약 정보 추가 지원을 중단했지만,[15] 윈도우 XP 서비스 팩 2부터 첨부 파일 실행 서비스를 통해 다운로드 파일 출처 정보를 ADS에 저장하여 사용자를 보호한다.[16] 인터넷 익스플로러와 윈도우 8은 스마트스크린으로 이 기능을 확장했고,[17] 인터넷 바로가기 파일에 파비콘을 저장하는 데도 ADS를 사용한다.[10]
2. 3. 1. 보안 및 데이터 손실 위험
파일 시스템이 여러 포크를 지원할 때, 애플리케이션은 이를 인식해야 하며, 그렇지 않으면 보안 위험이 발생할 수 있다. 적절한 심 없이 레거시 소프트웨어가 데이터에 접근하도록 허용하는 것이 이러한 문제의 주요 원인이다.다른 시스템 유틸리티(디스크 탐색기, 백신 소프트웨어, 아카이버 등)가 다른 포크를 인식하지 못하면 다음과 같은 문제가 발생할 수 있다.
- 사용자는 대체 포크의 존재나 파일의 총 크기를 알 수 없으며, 주 데이터 포크만 알 수 있다.
- 컴퓨터 바이러스는 Windows의 대체 포크에 숨어 있을 수 있으며, 백신 소프트웨어가 포크를 인식하지 못하면 감지되지 않을 수 있다.
- 이메일, 포크를 지원하지 않는 파일 시스템과 같이 포크를 인식하지 못하는 채널을 통해 파일을 보내거나, 포크 지원 파일 시스템 간에 파일을 복사할 때 복사하는 프로그램이 포크를 지원하지 않거나, 포크를 지원하지 않는 소프트웨어로 파일을 압축할 때 데이터가 손실될 수 있다.
2. 4. Sun
솔라리스 9 이상 버전에서는 파일에 포크를 사용할 수 있다. 솔라리스에서 포크는 ''확장 속성''이라고 불리지만, "확장 속성"의 일반적인 의미와는 다르다. 솔라리스형 확장 속성의 최대 크기는 파일의 최대 크기와 동일하며, 파일과 동일한 방식으로 읽고 쓴다.[1] 내부적으로는 실제 일반 파일처럼 저장되고 액세스되므로 소유권과 권한이 상위 파일과 다를 수 있다.[1] 하위 디렉토리는 관리상 비활성화되어 있으므로 이름에 "/" 문자를 포함할 수 없다.[1]네트워크 파일 시스템 버전 4의 확장 속성은 솔라리스 스타일 확장 속성과 유사하다.[1]
3. 대안
포크가 없는 파일 시스템에서는 서로 연관된 여러 개의 별도 파일, 특히 메타데이터를 위한 사이드카 파일을 사용할 수 있다. 그러나 이러한 파일 간의 연결은 파일 시스템에 의해 자동으로 유지되지 않으며, 파일을 사용하는 각 프로그램에서 처리해야 한다. 또 다른 대안은 주어진 파일 형식 내에 추가 데이터를 저장하는 컨테이너 파일 또는 여러 파일과 메타데이터를 파일 내에(단일 포크 내에) 저장할 수 있는 아카이브 파일이다. 이는 프로그램이 포크를 처리하는 파일 시스템 대신 컨테이너 파일 또는 아카이브 파일을 처리해야 함을 의미한다. 이러한 대안은 데이터를 사용하는 프로그램에서 추가 작업이 필요하지만, 포크를 지원하지 않는 파일 시스템으로 이식할 수 있다는 이점이 있다.
4. 한국의 현황
한국에서는 파일 시스템 포크가 일반적으로 널리 사용되지는 않는다. 하지만, 윈도우 환경에서 NTFS를 사용하는 경우, 대체 데이터 스트림(ADS) 기능을 통해 파일 시스템 포크를 활용할 수 있다. 파일 시스템 포크의 보안 및 데이터 손실 위험에 대한 인식이 필요하며, 특히 기업 환경에서 중요하게 고려해야 할 부분이다.
파일 시스템 포크를 사용할 때 발생할 수 있는 잠재적 문제점은 다음과 같다.
- 사용자는 대체 포크의 존재나 파일의 전체 크기를 알 수 없다.
- 컴퓨터 바이러스는 Windows의 대체 포크에 숨을 수 있으며, 포크를 인식하지 못하는 백신 소프트웨어는 이를 감지하지 못한다.
- 이메일 등 포크를 지원하지 않는 전송 경로를 통해 파일을 전송하면 데이터가 손실될 수 있다.
참조
[1]
웹사이트
File Forks
https://developer.ap[...]
Apple
2006-11-18
[2]
웹사이트
The Grand Unified Model (1) - Resources
https://www.folklore[...]
Folklore.org
2017-10-03
[3]
웹사이트
Mac OS X 10.4 Tiger
https://arstechnica.[...]
2005-04-28
[4]
웹사이트
Command-line Backup Solutions on Mac OS X
https://developer.ap[...]
Apple
2006-11-18
[5]
웹사이트
Files and Clusters
https://learn.micros[...]
Microsoft
2023-08-15
[6]
웹사이트
Building the next generation file system for Windows: ReFS
http://blogs.msdn.co[...]
Microsoft
2013-01-20
[7]
웹사이트
Microsoft goes public with plans for its new Windows 8 file system
https://www.zdnet.co[...]
CBS Interactive
2024-07-31
[8]
웹사이트
Windows Server 2012: Does ReFS replace NTFS? When should I use it?
http://blogs.technet[...]
[9]
웹사이트
Resilient File System Overview
https://learn.micros[...]
Microsoft
2023-08-15
[10]
웹사이트
Fun with Favicons
https://learn.micros[...]
Microsoft
2023-08-15
[11]
웹사이트
Use Vista's DIR command to display alternate data streams
http://bartdesmet.ne[...]
2007-07-07
[12]
웹사이트
FileSystem Provider (Windows PowerShell 3.0)
https://technet.micr[...]
Microsoft
2012-08-09
[13]
웹사이트
Why are custom properties created on Windows 2000 lost when I view the file from newer versions of Windows?
https://devblogs.mic[...]
Microsoft
2020-06-10
[14]
웹사이트
Indexing service adds data streams to image files
http://support.micro[...]
Microsoft
2006-11-18
[15]
웹사이트
What happened to the Summary information created on Windows 2000 and Windows XP?
https://devblogs.mic[...]
Microsoft
2020-06-10
[16]
웹사이트
Demo of "Attachment Execution Service internals" in Windows XP SP2 and Windows Server 2003 SP1
http://community.bar[...]
B# .NET Blog
2006-11-18
[17]
웹사이트
Manipulating the zone identifier to specify where a file was download from
https://devblogs.mic[...]
Microsoft
2013-11-04
[18]
웹사이트
File Forks
http://developer.app[...]
Apple
2006-11-18
[19]
웹사이트
The Grand Unified Model (1) - Resources
http://folklore.org/[...]
Folklore.org
2006-11-18
[20]
웹사이트
Command-line Backup Solutions on Mac OS X
http://developer.app[...]
Apple
2006-11-18
[21]
웹사이트
Files and Clusters
http://msdn.microsof[...]
Microsoft
2009-08-21
[22]
웹사이트
プログラマから見た NTFS 2000 Part1: ストリームとハード リンク
http://msdn2.microso[...]
Microsoft
2009-08-21
[23]
웹사이트
インデックス サービスのイメージ ファイルをデータ ストリームを追加します。
http://support.micro[...]
Microsoft
2009-08-21
[24]
웹사이트
Demo of "Attachment Execution Service internals" in Windows XP SP2 and Windows Server 2003 SP1
http://community.bar[...]
B# .NET Blog
2006-11-18
[25]
웹사이트
" Use Vista's DIR command to display alternate data streams"
http://bartdesmet.ne[...]
2009-08-21
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com