긴 파일 이름

긴 파일 이름(Long filename, LFN) 지원은 마이크로소프트 도스에 쓰이는 8.3 파일 이름 규칙에 대한 마이크로소프트의 하위 호환성 확장이다. 긴 파일 이름은 .jpg, .tif, .htm, .xht와 같은 짧은 이름 보다는 .jpeg, .tiff, .html, .xhtml과 같은 다른 운영 체제에서 일반적인, 더 긴 확장자를 포함하여 더 자세히 기술할 수 있다. 이 표준은 1994년 윈도우 NT 3.5에서 첫 구현된 뒤로 지금까지 FAT 파일 시스템에서 일반적으로 쓰이고 있다.

다른 운영 체제와의 호환성을 유지하기 위해 마이크로소프트는 긴 파일 이름으로부터 8.3 파일 이름을 생성하여(이를테면 Microsoft.txtMICROSO~1.TXT로) 파일과 연결하는 방식을 취하고 있다.

호환성 문제 편집

마이크로소프트는 FAT 파일 시스템에서 볼륨 레이블 형태의 보이지 않는 디렉터리 엔트리를 사용하여 더 긴 이름을 저장함으로써 LFN 지원을 구현한다. 이른바 VFAT 규칙이 호환성을 위해 채택되었는데, 이로써 볼륨 레이블은 일반적으로 프로그램과 운영 체제 구성 요소에 의해 무시된다. 오래된 운영 체제를 실행하는 프로그램들은 여전히 파일들의 짧은 이름으로 접근이 가능하지만 새로운 LFN을 인지하는 운영 체제들과 프로그램들은 긴 이름을 사용할 수 있다.

LFN이 MS-DOS 기반 운영 체제에 윈도우 95 형식으로 처음 도입되었을 때 오래된 프로그램들에 일부 문제가 발생하였다. 이를테면 윈도가 도스 모드에 있는 동안 섹터 수준의 디렉터리 조작을 수행하는 도스 프로그램은 긴 파일 이름의 정보를 파괴할 수 있어서 기본적으로 하드 디스크에 섹터 수준으로 접근하는 일은 이 모드에서 허용되지 않는다.

순수 도스로 부팅할 때 긴 파일 이름은 VFAT LFN 드라이버가 설치되어 있지 않는 한 보이지 않는다. 마이크로소프트는 파일 관리자, 윈도 포 워크그룹 파일 관리자 (새로운 운영 체제 셸인 탐색기로 대체됨)를 포함한 오래된 프로그램들 다수에 LFN 지원을 추가하지 않았다. 윈도우 NT의 경우 NT 3.1의 출시를 기점으로 NTFS 파일 시스템에서 LFN을 지원하기 시작하였으며 파일 관리자를 포함한 유틸리티들 전반이 LFN을 지원하도록 업데이트되었다. NT 3.5는 윈도 95 준비를 통해 FAT LFN 지원을 추가하였다. 그러나 윈도 95 버전의 파일 관리자는 윈도 포 워크그룹 3.11과 함께 출시되었다.

OS/2는 마이크로소프트의 구현과 호환되지 않는 .LONGNAME 확장 특성을 사용하여 LFN을 저장하며, OS/2 표준을 지원하는 도구를 사용해서만 사용자에게 나타난다. 경로 이름을 통해 파일로 접근을 제공하는 수많은 API들은 드라이버 지원 없이는 더 길고 새로운 이름을 볼 수 없다.

제한 편집

FAT LFN 구현이 더 오래되고 더 제한된 이름 체계의 상위에 위치해 있기 때문에 처음 여섯 자리와 동일한 수많은 파일들을 너무 많이 만들어내려고 하는 등의 경우 어쩔 수 없는 복잡함이 존재한다.[1] 게다가 루트 디렉터리에 파일이나 디렉터리를 생성하는 문제를 마주칠 수 있는데, 그 까닭은 FAT12FAT16은 오직 512개의 루트 디렉터리 항목만을 하드 디스크에 할당할 수 있기 때문이다. 긴 파일 이름은 하나 이상의 디렉터리 엔트리를 사용하므로 이 문제는 루트 디렉터리에 512개보다 적은 수의 파일이나 디렉터리가 있을 때 발생할 수도 있다.[2] 여기에는 최대 길이 (512/20)의 25개의 긴 파일 이름만을 위한 공간이 있다. 이 문제는 FAT32 볼륨에서는 존재하지 않는다.

긴 파일 이름은 최대 255자리의 UCS-2 문자를 허용하며[3][4] 여기에는 알파벳이 아닌 문자(\ / : * ? " < > | 등의 운영 체제 커널이나 명령 인터프리터 내에서 특별한 의미를 갖는 문자 제외)나 공백을 포함한다. 최대 20개의 디렉터리 엔트리의 13개의 2바이트 유니코드 문자를 각각 연결함으로써 수행된다.[4] 경로 이름의 최대 길이는 256자이며, 여기에는 모든 부모 디렉터리와 파일 이름을 포함한다.

VFAT LFN 드라이버 편집

아래는 윈도 95에서 사용되는 것처럼 VFAT 긴 파일 이름을 사용할 수 있게 지원해 주는 드라이버의 목록이다. DOSLFN이 거의 모든 버전의 도스에서 적재가 가능하지만, MS-DOS 7.10과 같이 DIR 등의 도스 명령어들이 긴 파일 이름도 잘 보여주는 것처럼 LFN 자체를 지원하는 도스 버전에서 가장 잘 동작한다.

운영 체제 드라이버 이름 제공자
모든 도스 DOSLFN, LFNDOS 타사
DR-DOS LONGNAME 제공
OS/2 VFAT-OS2.IFS 타사

같이 보기 편집

각주 편집

  1. “CocoaDev: MSDOSFileSystem”. 2006년 10월 18일에 원본 문서에서 보존된 문서. 2007년 1월 21일에 확인함. 
  2. Errors Creating Files or Folders in the Root Directory
  3. “Making Room for Long Filenames”. 2008년 4월 23일에 원본 문서에서 보존된 문서. 2015년 9월 29일에 확인함. 
  4. “Long Filename Specification”. 2015년 10월 25일에 원본 문서에서 보존된 문서. 2015년 9월 29일에 확인함. 

외부 링크 편집