답변1
버전 7 Unix는 단일 파일 시스템만 지원한다고 생각합니다. 최신 운영 체제(Linux 포함)는 수많은 파일 시스템을 지원합니다. Linux 커널에는 이러한 다양한 파일 시스템이 Posix 및 Linux 프로그램이 기대하는 대로 작동하도록 만드는 "가상 파일 시스템" 코드 계층이 있습니다. 예를 들어. Linux는 다양한 MS-DOS 파일 시스템과 NTFS를 사용할 수 있으며 이러한 시스템의 파일 권한은 정확히 Linux가 원하는 사용자/그룹/기타, 읽기/쓰기/실행이 아닙니다. 따라서 가상 파일 시스템 코드는 이를 조정하는 역할을 합니다. 일부 파일 시스템(예: MS-DOS FAT 파일 시스템 및 ReiserFS)은 디렉터리를 파일로 처리하지 않기 때문에 가상 파일 시스템 코드는 버전 7 UFS처럼 디렉터리를 특별히 태그가 지정된 파일로 처리하지 않습니다. open()
디렉토리에 대해 시스템 호출을 할 수 있지만 getdents()
디렉토리에서 항목을 읽으려면 시스템 호출을 사용해야 합니다.
답변2
"UNIX(및 Linux)의 모든 것이 파일이다"라는 의미에서는 여전히 파일입니다. 프로그램 cat
이 더 똑똑해지고 "이것은 디렉토리 유형 파일이므로 텍스트 파일로 표시하는 것이 의미가 없습니다"라는 것을 깨달았으므로 동작이 업데이트되었습니다.