2008-10-07 5 views
18

Windows NTFS에는 hobby-dev 프로젝트에서 최근에 사용했던 "대체 데이터 스트림"(ADS)이라는 멋진 기능이 있습니다.리눅스 파일 시스템에 대체 데이터 스트림 같은 것이 있습니까?

Mac HFS +에는 "named forks"라고하는 것과 비슷하지만 거의 사용되지 않는 기능이 있습니다.

이 프로젝트를 리눅스로 이식하려고 생각하고 있습니다 만, 리눅스의 파일 시스템에 이러한 기능이 있는지 모르겠습니다.

+0

주로 사용하지 않습니까? 그게 확실한가요? 데이터를 숨기는 데 매우 유용합니다. – Pacerier

+0

@Pacerier : 사용하지 않은 UI 또는 응용 프로그램이 어떤 방식 으로든 인터페이스하지 않는 것 같습니다. –

+0

그건 정확히 ** 그들이 바이러스를 숨기는 데 유용합니다. – Pacerier

답변

10

확장 속성 (EA)을 지원하는 Windows 및 Linux (및 기타 OS) 모두에 파일 시스템이 있습니다. Windows 지원은 OS/2 compat 용으로 추가되었으며 백업 API를 통한 해킹 방법을 제외하고는 문서화 된 인터페이스가 없습니다 (Cygwin이하는 것입니다). EA는 작은 값만 저장하도록 설계되었습니다. Windows에서 각 EA는 ASCII 이름을 갖지만 (거의 모든 다른 이름은 유니 코드 임) 파일의 모든 EA의 결합 된 크기는 64k보다 클 수 없습니다. EA는 파일이 아닙니다 : EA에게 파일 핸들을 열어서 일반 파일처럼 읽을 수는 없습니다.

대체 데이터 스트림은 NTFS에서 제공하는 별도의 기능으로, 파일 내부에 대체 서브 파일을 제공 할 수 있습니다. 모든 파일에는 사용자가 대체 파일을 지정하지 않으면 자동으로 열리는 기본 명명되지 않은 데이터 스트림이 있습니다. ADS에 대한 핸들을 열고 일반 파일처럼 단일 (유니 코드) 파일 이름으로 읽습니다 (심지어 실행). ADS는 모든 디스크 파일만큼 클 수 있습니다.

내가 알고있는 Linux에는 ADSes와 정확한 아날로그는 없지만 데이터 값이 작은 경우 대신 Linux 포트에서 EA를 사용할 수 있습니다.

+3

기본 데이터 스트림의 이름은 'DATA' –

+3

@DanD., $ DATA'가 아니라 'DATA'입니다. – Pacerier

0

대부분의 Linux 파일 시스템은 extended attributes입니다. NTFS 스트림에 익숙하지 않아이 둘을 비교할 수 없습니다. 대부분의 파일 시스템은 확장 속성을 사용하기 위해 플래그로 마운트해야하므로 모든 시스템에서 일반적으로 작동하지 않을 수 있습니다. 보통 xattr 또는 xattrs으로 줄여 씁니다.

0

제가 알기로는 다소 그 방향으로가는 것은 extended attributes입니다. 그러나 내가 ADS에 대해 읽은 것에서 그것은 def입니다. 같은 것이 아닙니다. 당신은 정확히 그것을 위해 무엇을 사용하고 있습니까?

+1

저장하고 싶습니다. 그 안에있는 파일의 일부 메타 데이터. –

0

일반적으로 사용되는 Linux 파일 시스템은이를 지원하지 않습니다. 대신 여러 개의 파일과 적절한 명명 체계 (각 파일 이름에 스트림 인덱스를 추가하는 것) 또는 여러 파일을 포함하는 아카이브를 사용할 수 있습니다. 당신은 그러한 접근법이 다른 방법으로는 더 나은 방법이라고 생각할 것입니다. 예를 들어 NTFS가 아닌 파일 시스템을 가진 매체에 Windows 파일을 백업하려는 경우 Windows에서 어떤 일이 발생합니까?

+3

백업 API를 사용하는 백업 프로그램을 사용해야합니다. 파일의 모든 메타 데이터 (EA, 보안 설명자, 데이터 스트림, 암호화 된 파일 등)를 단일 스트림으로 패키징하여 저장하고 나중에 복원합니다 . –

13

ADS의 문제점은 Windows가 비 NTFS 파일 시스템으로 이동하는 두 번째 ADS 스트림을 "손실"한다는 것입니다. 중요한 스트림을 고려하지 않으므로 종종 유지되지 않습니다. 네트워크 공유, CD로 구울 때, USB 드라이브에 넣을 때 액세스 할 수 없거나 사라지는 것을 확인할 수 있습니다.

매우 좁은 것이 아니라면 (항상 NTFS에서) 귀하의 응용 프로그램에 대한 집중, 나는 ADS 스트림을 모두 피할 것이다.

+2

메타 데이터 또는 파일 오프셋 (offset) 캐싱과 같은 경우에는 더 많은 노력으로 (다시) 생성/계산 될 수 있습니다. – hippietrail

7

확장 속성은 일부 파일 시스템, 특히 XFS를 지원하며 JFS라고 생각합니다. 크기는 제한되어 있습니다 (XFS에서 64k). Reiser4는 임의의 크기의 포크를 지원합니다. 내가 아는 배포판에서는 지원되지 않습니다. 또 다른 옵션은 ZFS입니다. 다시는 사용하기가 쉽지 않습니다.

결국 디렉토리를 사용하는 것이 현명합니다.

관련 문제