POSIX는 OS 루트의 디렉토리 수를 제한합니까? /etc, /dev,

POSIX 표준을 배우려고합니다. 유닉스를 사용하는 경우, 내가 한 /bin, /etc, /dev, /media, 일반적으로 /opt,하지만 표준화 또는 최대 귀하의 사양 구현하는 것입니다? 루트에 많은 디렉토리가있을 수 있습니까, 아니면 표준에 의해 제한됩니까?



답변

The Open Group의 공개 표준 에 따르면 필요한 디렉토리는 다음과 같습니다.

  • /
  • /dev, 포함하는 console, nulltty
  • /tmp쓰기 가능하지만 반드시 보존 될 필요는 없습니다.

Linux Foundation 은 일반적으로 Linux 시스템에서 볼 수있는 디렉토리를 포함하도록이를 확장 하는 파일 시스템 계층 표준 (FHS)을 유지 합니다.

  • /bin: 필수 사용자 명령 바이너리
  • /boot: 부트 로더의 정적 파일
  • /dev: 장치 파일
  • /etc: 호스트 별 시스템 구성
  • /home: 사용자 홈 디렉토리 (선택 사항)
  • /lib: 필수 공유 라이브러리 및 커널 모듈
  • /lib<qual>: 대체 형식 필수 공유 라이브러리 (선택 사항)
  • /media: 이동식 미디어의 마운트 지점
  • /mnt: 임시로 마운트 된 파일 시스템의 마운트 지점
  • /opt: 애드온 응용 프로그램 소프트웨어 패키지
  • /root: 루트 사용자의 홈 디렉토리 (선택 사항)
  • /run: 런타임 변수 데이터
  • /sbin: 시스템 바이너리
  • /srv:이 시스템에서 제공하는 서비스 데이터
  • /tmp: 임시 파일
  • 뿐만 아니라 /usr계층 구조와 /var계층 구조

FHS는 모든 UNIX 시스템에 통합 할 수 있도록 가능한 한 일반적으로 설계되었습니다. 추가 디렉토리는 합리적인 시스템에 존재할 가능성이 있지만 POSIX에서는이를 요구하지 않습니다.

그러나 오픈 그룹은 또한

엄격하게 준수하는 응용 프로그램은 아래에 명시되지 않는 한 이러한 디렉토리에서 파일을 생성 할 수있는 능력을 갖지 않아야합니다.

디렉토리는 실제로 파일 일 뿐이므로 엄격하게 준수하는 응용 프로그램은 루트 수준에서 파일이나 디렉토리를 만들지 않습니다. 따라서 POSIX는 루트 수준에서 배포 할 수있는 대상을 반드시 제한하지는 않지만 해당 사양을 준수하는 응용 프로그램은 배포 할 수 있다고 가정 할 수 없습니다.


답변

에서 10.1 디렉토리 구조 및 파일 , POSIX 목록 디렉토리는 있어야 존재한다. 그러나 파일 시스템의 루트 수준에 존재할 수있는 다른 디렉토리의 수에는 제한이 없습니다.

그 문제에 대해서는 다른 디렉토리의 크기에 제한을 두지 않는 것 같습니다.

이 영역에서 POSIX의 관심은 차이점보다는 공통성에 중점을 둡니다.


답변

POSIX 또는 일반적인 Unix 구현에서 디렉토리의 항목 수에는 제한이 없습니다. 최대 하드 링크 수인 각 서브 디렉토리 수에 대한 간접 한계가있을 수 있습니다 (각 서브 디렉토리의 ..항목은 디렉토리 에 대한 하드 링크입니다). 2 사용자들은 16 (즉, 저장하는 파일 시스템에 대한 최소한 65,533 하위 디렉토리에 디렉토리를 제한하는 많은 일반적인 파일 시스템에 대한 ..항목을 명시 적으로). 그 전에 성능이 저하되기 시작합니다. POSIX에 따르면 구현은 파일 ( _POSIX_LINK_MAX) 에서 8 개의 하드 링크 만 지원할 수 있지만 실제 구현은 6 개의 서브 디렉토리로 제한되지 않습니다. 어쨌든 ext4를 포함한 많은 파일 시스템에서 하드 링크 수는 유지되지 않습니다... 파일 시스템에서 사용 가능한 공간 또는 inode 수는 제한됩니다.

POSIX는 시스템의 파일 구성에 대해별로 말하지 않습니다. 단지 몇 개의 파일 만 존재해야 합니다 . 루트 디렉토리의 유일한 필수 항목은 /dev/tmp입니다. 같은 다른 습관 유닉스 항목 /usr, /var, /bin, /etc, /lib, /home, 등은 유닉스 POSIX에 의해 성문화되지 않은 규칙.

Linux에서 FHS 는 고전과 몇 가지를 체계화합니다. 대부분의 Linux 배포판은 FHS 항목을 따릅니다. 다른 유닉스 시스템은 일반적으로 항목이 거의 같지만 약간의 차이가있을 수 있지만 그 수는 거의 같습니다.

권장하지는 않지만 시스템 관리자는 더 많은 것을 만들 수 있습니다. 대부분의 사물에 대해 잘 정의 된 장소가 있습니다 (소프트웨어는 /usr또는로 /opt, 시스템 데이터는로 /var, 사용자 데이터는로 /net, 마운트 포인트는 /media또는 /mnt로 등). 최상위 디렉토리에 새 디렉토리를 작성해야하는 좋은 이유.


답변

FAT와 달리 UNIX에서 사용하는 파일 시스템에는 루트 디렉토리에 대한 특별한 크기 제한이 없지만 파티션이 가득 차면 더 이상 추가 할 수 없습니다.