설치 가능한 파일 시스템

Installable File System

IFS(Installable File System)는 MS-DOS/PC DOS 4.x, IBM OS/2Microsoft Windows파일 시스템 API로 운영 체제파일 시스템의 드라이버를 인식하고 로딩할 수 있도록 한다.

역사

IBM마이크로소프트가 OS/2를 공동 개발하고 있을 때, 그들은 FAT 파일 시스템이 현대 OS에 필요한 몇 가지 기능을 제공하지 않는다는 것을 깨달았고, 마이크로소프트는 핀볼이라는 코드명인 고성능 파일 시스템(HPFS)을 개발하기 시작했다.

마이크로소프트는 FAT가 그랬듯이 커널 안에서 코딩하는 대신, 자신과 다른 개발자들이 새로운 파일 시스템을 수정할 필요 없이 커널에 추가할 수 있는 "운전자 기반" 파일 시스템 API를 개발했다.

마이크로소프트가 OS/2에 대한 작업을 중단했을 때, IBM은 IFS 인터페이스를 계속 사용했고 마이크로소프트는 윈도우 NT에서 유사한 인터페이스를 구현했다.

구현

DOS 4.x의 IFS

OS/2의 IFS

IFS는 파일 시스템을 프로그래밍하기 위한 기본적이고 강력한 인터페이스를 제공했다.1989년에 HPFS 파일 시스템과 함께 OS/2 1.20에 도입되었다.

커널 공간( 0)에서 실행되는 파일 시스템 드라이버는 4가지 주요 부분으로 나뉜다: 마이크로IFS, miniIFS, IFS, 도우미.

IFS와 파일 시스템 코드 자체만 필요하며 CONFIG의 "IFS=" 문을 통해 로드된다.SYS 파일.NE 16비트 동적으로 로드된 라이브러리 입니다.32비트 OS/2(2.0 이상)에 상관없이 IFS는 항상 16비트(비공개적으로 32비트 IFS를 만들 수 있지만)이다.

마이크로IFS는 커널과 미니를 메모리에 로드하는 코드 조각이다.IFS 및 커널 실행으로 이동하십시오.그것은 보통 파일 시스템의 부팅 부분에 있다.

미니IFS는 CONFIG에 나타나는 첫 번째 IFS 문을 로드하기 위해 커널에 의해 호출되는 코드 조각이다.SYS 파일, 즉 첫 번째 IFS 문은 부팅의 파일 시스템이어야 시스템이 부팅할 수 있다.

도우미는 16비트(OS/2 1.x) 또는 32비트(OS/2 2.x 이상)이며, 사용자 공간( 3)에서 실행되며 일반적인 파일 시스템 유지보수에 사용되는 코드가 포함되어 있으며, 이 때 호출된다.CHKDSK그리고FORMAT공공 시설

이 4피스 체계는 OS/2용 ext2 드라이버가 보여주었듯이 개발자들이 새로운 부팅 가능한 파일 시스템을 동적으로 추가할 수 있게 했다.

CD-ROM 파일 시스템 드라이버(ISO 9660)는 OS/2 2.0에서, UDF는 OS/2 4.0에서, JFS는 OS/2 4.5에서 추가되었다.OS/2의 최신 패키징인 ArcaOS에는 FAT32를 포함하여 다수의 파일 시스템 드라이버가 있다.[1]또한 성능을 향상시키고 가변 크기 캐시, 액세스 제어 목록과 같은 일부 기능을 추가한 HPFS386이라는 공식 32비트 HPFS IFS도 있었으며, 특정 OS/2 서버 버전에서만 사용할 수 있었다.긴 파일 이름(LFN), FAT32 지원 등과 같은 기능을 추가한 FAT IFS가 있지만 FAT 파일 시스템은 커널에서 제거되지 않았고 공식적으로 IFS도 제거되지 않았다.

NFSSMB와 같은 네트워크 파일 공유 프로토콜도 IFS를 사용하여 구현되며 IFS 인터페이스는 변경되지 않는다.

Windows 3.11 및 9x의 IFS

IFSHLP.SYS(Installable File System Helper)는 Microsoft Windows 3.11의 일부로 처음 출시된 MS-DOS 장치 드라이버다.16비트 DOS API를 우회하고 다른 리얼 모드 드라이버가 INT 21h 호출을 차단하지 않도록 함으로써 윈도 386 확장 모드에서 네이티브 32비트 파일 액세스를 가능하게 한다.

IFSHLP의 보호 모드 상대.SYS는 윈도우즈 3.11 및 IFSMGR에서 IFSMGR.386이다.윈도우즈 95 및 윈도우즈 98의 VXD.[2][3]

Windows NT의 IFS

IFS API는 Windows 드라이버 키트의 일부분이다.

마이크로소프트가 OS/2 개발을 중단하고 당시 OS/2 NT라고 불리던 것에 집중하자, 그들은 HPFS 파일 시스템과 함께 IFS 아이디어를 가지고 갔다.

4피스 방식 대신에 NT IFS는 2피스 방식으로 재설계되었다. 마이크로IFS와 미니IFS는 계획에서 제거되었다.IFS와 도우미는 그대로 유지되지만 나중에 Windows NT 4.0에서 조각 모음 도우미(DEFAGRG)가 추가되었다.마이크로소프트의 원래 NTLDR은 FAT, HPFS 또는 NTFS에서 NT 커널을 로드하도록 코딩되었지만 이후 버전에서는 HPFS 지원이 중단되었다.모든 드라이버와 도우미가 32비트 PE 실행 파일이 되었다.FAT 파일 시스템은 커널에서 IFS로 이동되었으며, 32비트 처리 기능(FASTFAT라고 함)을 활용하여 성능에 크게 최적화되었다.

원본 Windows NT 3.1은 마이크로소프트 Joliet 파일 시스템을 사용하여 긴 파일 이름을 통합한 새롭고 개선된 CD-ROM 파일 시스템 드라이버와 함께 FAT, HPFS(Pinball) 및 새로 만든 NTFS 드라이버를 통합했다.

윈도 NT 3.51은 NTFS와 IFS 인터페이스에 파일당 압축을 추가했다.윈도우 NT 4.0 HPFS는 제거되었다.Windows 2000에서는 FAT32를 지원하도록 FASTFAT가 업데이트되었고 UDF가 추가되었다.

Windows 2000은 파일당 암호화를 추가하도록 IFS 인터페이스를 수정했다.

네트워크 파일 공유 프로토콜과 안티바이러스도 IFS를 이용하여 구현한다.

애플Windows XP, Windows Vista, Windows 7에서 사용할 수 있는 Mac OS X 10.6 버전Boot Camp[4] 읽기 전용 HFS+ 드라이버를 포함하기 시작했다.

추가 읽기

  • Rajeev Nagar (1997). Windows NT File System Internals, A Developer's Guide. O'Reilly. ISBN 1-56592-249-2.
  • Helen Custer (1994). Inside Windows NT File System. Microsoft Press. ISBN 1-55615-660-X.
  • Helen Custer (1993). Inside Windows NT. Microsoft Press. ISBN 1-55615-481-X.

참고 항목

참조

외부 링크

ext2/ext3/ext4

라이저FS

HFS

OS/2

기타

  • CBFS 스토리지 - 암호화 및 압축 기능을 갖춘 교차 플랫폼 단일 파일 가상 파일 시스템
  • CBFS Connect - 개발자가 사용자 모드에서 Windows용 설치 가능한 가상 파일 시스템을 생성할 수 있도록 지원하는 SDK
  • RomFS - Windows 드라이버 예제
  • WinFUSE - a .IFS 대신 SMB를 사용하는 USERspace 프레임워크의 NET 기반 파일 시스템
  • Dokany - 별도의 커널 드라이버를 사용하는 Windows userspace 파일 시스템을 위한 MIT 라이센스 프레임워크, 사용 가능한 .NET 바인딩