Unix/Linux 파일 시스템 구조 뒤에 있는 추론/설계 선택은 무엇입니까?

Unix/Linux 파일 시스템 구조 뒤에 있는 추론/설계 선택은 무엇입니까?

저는 최근에 Windows 사용을 중단하고 이제 컴퓨터에서 Linux를 실행하고 있습니다. Windows에는 Program Files 폴더가 있습니다. 대부분의 프로그램 파일은 자체 폴더에 저장되므로 관리하고 탐색하기가 더 쉬워 보입니다.

프로그램 파일은 Linux에서 다른 위치에 저장됩니다. 이유는 무엇입니까? 개발자가 개발하기 더 쉽나요?

답변1

예.

이렇게 하면 다음과 같이 순서대로 됩니다.

  • 모든 프로그램 구성 파일은 하나의 경로에 배치됩니다./etc
  • 모든 프로그램 바이너리는 하나의 경로에 있습니다 /bin./usr/bin

등 의 비슷한 것들이 있습니다 /home./dev /boot/tmp

답변2

Linux에서의 노력을 축하합니다! 우분투에서는 주로 다음과 같은 경우입니다.

귀하가 컴파일하고 설치한 프로그램 에 대한 프로그램 또는 스크립트 /usr/bin
라이브러리 와 사용자별로 구성된 시스템 프로그램 의 구성/usr/lib
/usr/local/bin/usr/local/lib
/etc
$HOME/.config

$HOME홈 폴더를 포함하는 환경 변수입니다."/home/larry"

다른 많은 프로그램에서는 사용자 프로필을 직접 에 저장하는데 $HOME이는 모범 사례가 아닙니다.

/opt일부 대형 프로그램은 일을 깔끔하게 유지하기 때문에 설치하기를 좋아합니다 .

설치 프로그램에서 해당 옵션을 제공하고 다른 사용자가 프로그램을 사용할 필요가 없다면 다음 위치에 설치 $HOME/bin하거나$HOME/opt

아, 마지막 참고 사항: Windows는 사용자 홈 디렉터리의 구성 파일뿐만 아니라 c:\Windows\Program Files, c:\Windows\Program Files\Common Files, c:\Windows\System32및 를 포함한 여러 위치에 파일을 설치합니다. c:\Windows\ProgramData하지만 더 나쁜 것은 많은 구성 정보가 레지스트리에 분산되어 있어 프로그램 이식이 거의 불가능하다는 것입니다.

답변3

이것파일 시스템 계층 표준한 번 볼만한 가치가 있을 것 같습니다. 그렇지 않으면 디스크 공간이 매우 귀하고 비쌌기 때문에 /시스템을 시작하고 사용하는 데 필요한 프로그램과 구성이 포함된 최소한의 디렉토리 만 갖고 /usr공유 NFS 서버에서 대부분의 다른 디렉토리를 마운트할 수 있습니다. 추가적으로, 다양한 중복 디렉토리를 사용하면 "공급업체 제공 항목"(예: /usr)과 (적어도 일반적으로 BSD에서는) /usr/local패키지가 설치된 위치를 깔끔하게 분리할 수 있습니다. 이렇게 하면 완전히 다른 디렉터리가 사용되기 때문에 공급업체 업데이트는 사이트에 설치된 모든 항목을 손상시키지 않습니다. 예를 들어, 공급업체가 Webserver 2.0을 제공할 수 있지만 일부 응용 프로그램에는 Webserver 1.1이 필요합니다. Webserver 1.1을 공급업체 공간에 설치하면 공급업체 업데이트로 인해 소프트웨어가 손상되거나 공급업체가 소프트웨어를 교체해야 하는 다른 문제가 발생할 수 있습니다. .

관련 정보