이것은 부분적으로 역사적인 이유이며, 부분적으로는 이런 방식으로 이해하기 때문입니다.
멀티
Multics 는 디렉토리를 포함 할 수있는 디렉토리와 함께 오늘날 알려진 계층 구조 파일 시스템을 도입 한 최초의 운영 체제 입니다. RC Daley와 PG Neumann의 “보조 저장 소용 범용 파일 시스템” 인용 :
이 백서의 2 장은 파일의 계층 적 구조를 보여 주므로 시스템을 유연하게 사용할 수 있습니다. 이 구조에는 다양성을 보장하기에 충분한 기능이 포함되어 있습니다. (…)
이해하기 쉽도록 파일 구조는 파일 트리로 간주 될 수 있으며 일부는 디렉토리입니다. 즉, 하나의 예외를 제외하고 각 파일 (예 : 각 디렉토리)은 정확히 하나의 디렉토리에서 정확히 하나의 브랜치가 가리키는 자체를 찾습니다. 트리의 루트에있는 루트 디렉토리 또는 루트는 예외입니다. 디렉토리에서 명시 적으로 지시되지는 않았지만 루트는 파일 시스템에 알려진 가상의 분기에 의해 내재적으로 지시됩니다. (…)
언제든지 사용자는 작업 디렉토리라고하는 일부 디렉토리에서 작동하는 것으로 간주됩니다. 그는 항목 이름을 지정하여 작업 디렉토리의 항목이 효과적으로 가리키는 파일에 액세스 할 수 있습니다. 한 번에 둘 이상의 사용자가 동일한 작업 디렉토리를 가질 수 있습니다.
다른 많은 측면에서와 마찬가지로 Multics는 유연성을 추구했습니다. 사용자는 파일 시스템의 하위 트리에서 작업하고 나머지는 무시해도 디렉토리를 통해 파일을 정리할 수 있습니다. 디렉토리는 액세스 제어에도 사용되었습니다. READ 속성을 사용하면 사용자가 디렉토리에 파일을 나열 할 수 있었고 EXECUTE 속성을 사용하여 해당 디렉토리에있는 파일에 액세스 할 수있었습니다 (이는 다른 많은 기능과 마찬가지로 유닉스 환경에 있음).
Multics는 또한 단일 스토리지 풀을 갖는 원칙을 따랐습니다. 이면에 대해서는 논문이 없다. 단일 스토리지 풀은 당시의 하드웨어와 잘 맞았습니다. 이동식 스토리지 장치는 없었으며 사용자가 신경 쓰는 것은 없었습니다. Multics에는 별도의 백업 스토리지 풀이 있었지만 이는 사용자에게 투명했습니다.
유닉스
Unix는 Multics에서 많은 영감을 얻었지만 단순성을 목표로 한 반면 Multics는 유연성을 목표로했습니다.
단일 계층 파일 시스템이 Unix에 적합했습니다. Multics와 마찬가지로 스토리지 풀은 일반적으로 사용자와 관련이 없습니다. 그러나,를 통해,이 이동식 장치 있었고, 유닉스 사용자에게 노출 한 mount
과 umount
(관리자 즉, "슈퍼 유저 '에 예약) 명령. 에서 "유닉스 시분할 시스템" , 데니스 리치와 켄 톰슨 설명 :
파일 시스템의 루트는 항상 동일한 장치에 저장되지만 전체 파일 시스템 계층이이 장치에 상주 할 필요는 없습니다. 기존 일반 파일의 이름과 연관된 스토리지 볼륨 (예 : 디스크 팩)이 자체 디렉토리 계층을 포함하는 독립 파일 시스템의 구조를 가져야하는 특수 파일의 이름을 갖는 두 개의 인수가있는 마운트 시스템 요청이 있습니다. . 마운트의 효과는 지금까지 일반 파일에 대한 참조가 이동식 볼륨에서 파일 시스템의 루트 디렉토리를 참조하게하는 것입니다. 실제로 mount는 계층 구조 트리 (일반 파일)의 리프를 완전히 새로운 하위 트리 (이동식 볼륨에 저장된 계층 구조)로 바꿉니다. 마운트 후에는 이동식 볼륨의 파일과 영구 파일 시스템의 파일이 사실상 구분되지 않습니다. 예를 들어, 설치에서 루트 디렉토리는 디스크 드라이브 중 하나의 작은 파티션에 있으며 사용자 파일을 포함하는 다른 드라이브는 시스템 초기화 순서에 따라 마운트됩니다. 마운트 가능한 파일 시스템은 해당 특수 파일에 기록하여 생성됩니다. 빈 파일 시스템을 작성하기 위해 유틸리티 프로그램을 사용할 수 있거나 기존 파일 시스템을 간단히 복사 할 수도 있습니다.
계층 적 파일 시스템은 또한 여러 저장 장치를 커널로 관리하는 복잡성을 집중시키는 이점이 있습니다. 이것은 커널이 더 복잡하다는 것을 의미했지만 결과적으로 모든 응용 프로그램이 더 단순했습니다. 커널은 하드웨어 장치를 신경 써야하지만 대부분의 응용 프로그램은 신경 쓰지 않기 때문에보다 자연스러운 디자인입니다.
윈도우
Windows는 원래 VAX 미니 컴퓨터 용으로 설계된 운영 체제 인 VMS 와 초기 인텔 마이크로 컴퓨터 용으로 설계된 운영 체제 인 CP / M의 두 계보로 거슬러 올라갑니다 .
VMS에는 분산 계층 파일 시스템 인 Files-11이 있었습니다. 파일 -11에서 파일의 전체 경로 에는 노드 이름, 해당 노드의 계정 지정, 장치 이름, 디렉토리 트리 경로, 파일 이름, 파일 유형 및 버전 번호가 포함됩니다. VMS에는 강력한 논리적 이름 기능이있어 특정 디렉토리에 바로 가기를 정의 할 수 있으므로 사용자는 디렉토리의 "실제"위치에 대해 거의 신경 쓰지 않아도됩니다.
CP / M은 64kB의 RAM과 플로피 드라이브가있는 컴퓨터 용으로 설계되었으므로 간단합니다. 디렉토리가 없지만 파일 참조에 드라이브 표시 ( A:
또는 B:
) 가 포함될 수 있습니다 .
MS-DOS 2.0에서 디렉토리를 도입 했을 때 CP / M을 따르는 MS-DOS 1과 호환되는 구문을 사용했습니다. 따라서 경로는 단일 문자 이름을 가진 드라이브에서 시작되었습니다. (슬래시 문자 /
는 VMS 및 CP / M에서 명령 행 옵션을 시작하는 데 사용되었으므로 다른 문자를 디렉토리 구분 기호로 사용해야했습니다. 따라서 일부 내부 구성 요소도 슬래시를 지원하지만 DOS 및 이후 Windows는 백 슬래시를 사용합니다) ).
Windows는 DOS 및 VMS 접근 방식과의 호환성을 유지하므로 관련성이 떨어지더라도 드라이브 문자 개념을 유지했습니다. 오늘날, Windows는 UNC 경로 ( 원래 Microsoft와 OS 에서 OS / 2 용으로 개발 한) UNC 경로를 사용합니다 . 이 기능은 고급 사용자 용으로 예약되어 있지만 (이력 가중치로 인해) Windows는 재분석 지점을 통한 마운트를 허용 합니다.