Linux 파일 시스템 계층 구조는 기록상의 이유로만 존재하는 사용되지 않는 폴더로 채워져 있습니다.
실제로 사용되는 디렉토리만 설치하는 배포판이 있나요?
답변1
(댓글에 이 질문이 표시된 후 다시 작성했는데 내 대답은 생산적이지 않았습니다. 새로운 톤을 갖고 있으며 내용을 조금 다르게 다루고 있습니다.)
새로운 질문에 답하세요:
각 배포판은 사용자에게 가장 적합하다고 생각되는 작업을 수행합니다. 여기에는 일반적으로 A) 특정 철학에 맞게 어느 정도 사용자 정의하고 B) 다른 배포판과 비교할 수 있도록 어느 정도 표준화하는 작업이 포함됩니다.
가장 중요한 표준화 요소는FHS/파일 시스템 계층 표준이는 오늘날 UNIX 시스템의 모든 주요 디렉토리에 대한 명확하고 간결한 정의를 유지하려고 시도합니다. 표준은 최신 배포판의 요구 사항에 맞게 발전하고 있지만 이전 배포판을 깨뜨리지 않기 위해 진행 속도가 느립니다. 대부분의 배포판은 FHS에서 너무 멀리 벗어나지 않습니다. 읽다. 모든 Unices를 이해하는 데 도움이 될 것입니다.
기본 설치에서 모든 디렉터리를 사용할 수 있는 것은 아니지만 대부분은 사용할 수 있습니다. 계층 구조는 "사용되지 않는" 디렉터리로 가득 차 있지 않습니다. 심지어 처음에 비어 있던 몇 개의 디렉터리도 사용될 수 있기 때문에 거기에 있습니다.예를 들어 새로 설치하면 배포 패키지의 바이너리가 모두 여기에 설치되고 /usr/bin
사용자 /usr/local/bin
정의 추가에 사용되므로 다음 폴더는 비어 있게 시작됩니다. 그러나 그것은 여전히 목적을 가지고 존재합니다.
원래 질문에 대답하려면 다음을 수행하십시오.
원래 질문은 "조직화된" Windows 디렉터리 레이아웃과 "혼란스러운" Unix 레이아웃을 비교하는 것에서 시작되었습니다. 나는 이것이 불공평한 비교라고 생각하며, 그 이유는 다음과 같습니다.
시스템 간 비교에서는 비교 대상의 범위를 고려해야 합니다. 사과를 오렌지와 비교하고 가장 유용한 차이점 목록을 생성할 수 있습니다. 어떤 사람들은 다른 것보다 하나를 선호할 것입니다.쉽게 할 수 없는 건 비교다사과에정련소.
의도적으로 드라마틱하게 표현한 발언이지만 현 상황을 이해하는 데 도움이 되었으면 좋겠습니다.Unix 파일 시스템은 Windows 파일 시스템보다 더 많은 기능을 수행합니다.그래서 더 복잡합니다. 이들을 비교하려면 Windows의 모든 시스템이 Unix의 파일 시스템과 동일한 역할을 한다는 점을 고려해야 합니다. 예를 들어, Windows 레지스트리가 수행하는 작업의 대부분은 Unix 파일 시스템에 통합되어 있습니다. Unix에서는 하드 드라이브나 마우스와 같은 장치도 파일 노드이므로 그렇게 조작할 수 있습니다. 실행 중인 프로세스 및 커널 수준 옵션(예: 네트워크 매개변수)에 대한 메타데이터도 파일 시스템을 통해 읽고 쓸 수 있습니다. Windows에서는 특별한 API와 복잡한 절차가 필요합니다. Unix에서는 이는 텍스트 파일을 읽거나 쓰는 것만큼 간단합니다. 이는 , 및 디렉토리 구조가 Windows에서 해당 구조를 갖지 않는 것 같다는 /proc
것을 설명합니다./sys
/dev
/run
또한 추가 기능에도 불구하고 처음 생각하는 것만큼 "더럽지" 않을 수도 있습니다. 일부 결정에는 역사적인 이유가 있지만 계속 사용되기 때문에 여전히 존재합니다. 폴더가 대개 비어 있다는 사실을 몰랐습니다.
Linux의 사용자 지향 GUI는 $HOME
거의 전적으로 디렉터리 범위 내에서 작동합니다. 모든 것이 /home/username
귀하의 배포판에 있거나 이에 상응하는 것입니다. 이 공간에서는 "수신" 및 "이미지" 대신 "다운로드" 및 "이미지"와 같이 길고 대문자로 표시된 이름을 사용하는 경향이 있습니다. 단순히 최신 GUI를 통해 Linux 컴퓨터를 사용하는 사람이라면 홈 디렉터리에 있는 친숙한 이름의 폴더 외에는 아무것도 알 필요가 없을 것입니다.
홈 디렉터리 외부의 모든 항목은 시스템 관리자의 범위입니다. Linux 시스템을 수정하거나 확장하려는 경우에만 나머지 디렉터리 구조를 이해해야 합니다. 소프트웨어를 작성하거나 기존 부분을 패치할 계획이라면 에 자세히 설명된 대로 현재 규칙을 배우는 것이 좋습니다.FHS 사양대부분의 배포판은 일반적으로 이러한 규정을 준수합니다.
또한 Windows 배경에서 작업할 때 일반적으로 개별 패키지가 아닌 배포판이 어디로 가는지 결정한다는 점도 주목할 가치가 있습니다. 일반적으로 매우 유사하지만 각 배포판에는 항목을 저장해야 하는 위치에 대한 전반적으로 통일된 철학이 있습니다. Windows 소프트웨어에서 소프트웨어 작성자는 콘텐츠를 원하는 곳에 배치하고 해당 콘텐츠를 배치하는 설치 프로그램을 통해 배포합니다. 일반적으로 모든 것은 프로그램 이름이 있는 몇 개의 폴더 아래에 자체적으로 디자인된 트리로 끝납니다. Linux 세계에서 소프트웨어는 일반적으로 배포판 제조업체가 유지관리하는 패키지 형태로 배포됩니다. 업스트림 소프트웨어는 분할되고, 패키지화되며 일반적으로 배포판의 선호 사항을 따릅니다. 이로 인해 일반적으로 전체 시스템이 더욱 체계화됩니다. 새 패키지를 설치할 때마다 아무것도 다시 배울 필요가 없습니다. 중요한 것은 배포의 요령을 이미 알고 있고 모든 것이 같은 장소에서 일관되게 발견된다는 것입니다.
패키지 A, B, C에 대한 실행 파일을 찾을 때 A는 Windows 코어의 일부이고 B와 C는 다른 공급업체의 것입니다. Windows에서는 다음과 같을 수 있습니다.
c:\Windows\System32\programA.exe
c:\Program Files\Vendor A - Program A\packageA\program\A.exe
c:\Program Files\programB\bin\program.exe
...그러나 공급업체의 습관에 따라 여러 가지 다른 변형이 있을 수 있습니다. Linux에서는 패키지 저장소를 통해 패키지 B를 설치하고, 소스 패키지를 다운로드하고 수동으로 설치하여 패키지 C를 설치했다고 가정합니다. 바이너리는 결국 다음 위치에 나타날 것으로 예상됩니다.
/usr/A
/usr/bin/B
/usr/local/bin/C
여전히 시스템에 "수정"이 필요하다고 생각되면 다음 설명을 고려해 볼 가치가 있습니다.이 문제. 현재 레이아웃을 "재구성"하는 것은 가능하지만 그렇게 하려는 시도는 많은 사람들이 매우 섬세하다고 생각하는 시스템과 빠르게 충돌하게 됩니다.
*말장난.