저는 Linux를 처음 사용하므로 이 문제로 인해 혼란을 겪을 수 있으니 양해해 주시기 바랍니다.
내가 아는 한,파일 시스템ext2, ext3, reiserfs, xfs 등과 같은 표준을 사용하여 파티션이 파일을 저장/관리하는 방법을 지정합니다. 가끔 사람들이 directory
각각의 " "를 다음과 같이 지칭 하는 것 같습니다 .
/boot filesystem
/usr/bin filesystem
/root filesystem
/bin filesystem
우리는 왜 이것을 부르나요?파일 시스템?
/usr
내가 아는 한 동일한 파티션에 있는 경향이 있기 때문에 각각이 파티션이라면 혼란스러울 것입니다. 그러나 사람들이 " 파일 시스템"과 " 파일 시스템" /usr/bin
을 참조하는 것을 보았습니다 ./usr
/usr/bin
만약에파일 시스템이는 Window의 것과 동일합니다.목차, 나는 분명히 모른다파일 시스템뿐만 아니라목차. 또한 내가 아는 한 Linux에는 "디렉토리"라는 개념이 없습니다.
답변1
내가 그랬던 것처럼https://superuser.com/a/293160/38062:
여기서 문제는 "파일 시스템"이라는 단어입니다. POSIX/Unix/Linux 세계에서는 다양한 의미로 사용됩니다.
- "파일 시스템"은 때때로
/
운영 체제 커널에 의해 뿌리를 내리고 응용 프로그램 소프트웨어에 제공되는 전체 파일 시스템입니다. 이를 염두에 두고 사람들은 POSIX 운영 체제에 대해 "단일 운영 체제"가 있는 것으로 이야기합니다.파일 시스템 트리", 예를 들어. - "파일 시스템"은 때때로 하나(또는 그 이상)입니다.일부분하나 이상의 DASD — 단일 연속 디스크로 포맷된 하나 이상의 디스크 섹터 모음용량특정 형식으로 - 일부 디스크 파티션 구성표로 나뉩니다. 이를 염두에 두고 사람들은 "내 형식을 포맷하는 것"에 대해 이야기합니다.
/usr
파일 시스템"."/usr
"여기에 볼륨의 (의도된) 마운트 지점 또는 (일부 파티션 구성표의 경우) 식별 레이블이 있습니다. - "파일 시스템"은 때때로 파일 시스템 드라이버(예: VFS 계층)에 의해 시스템의 나머지 부분에 제공되는 추상 연결 가능한 파일 및 디렉터리 트리입니다. 이러한 의미를 염두에 두고 사람들은 "설치"에 관해 이야기합니다.프로세스 파일 시스템
/proc
"또는" 과 함께 사용tmpfs 파일 시스템을 위한/tmp
".
"파일 시스템"을 보면 #1의 의미를 알 수 있습니다 /usr/bin
. 이는 디렉토리에 뿌리를 둔 파일 시스템 트리입니다 /usr/bin
. 네, 정말 리눅스를 좋아해요하다디렉토리라는 개념이 있습니다.
의미 #2와 의미 #3은 당신이 잘못 읽은 의미입니다. 사람들은아니요/usr/bin
디스크 슬라이스/파티션으로 나누어진 디스크의 데이터 세트 에 대해 설명합니다 . 또한 /usr/bin
특정 유형의 파일 시스템 드라이버나 특정 디스크 볼륨 형식 에 대해서도 이야기하지 않습니다 .
추가 읽기
답변2
물론 Linux는 디렉토리 개념을 사용합니다. 디렉터리의 개념은 Windows와 동일합니다.
파일 시스템의 개념도 Windows에서 사용되는 개념과 매우 유사합니다. Windows는 일반적으로 NTFS 또는 FAT를 사용합니다. Linux는 일반적으로 ext2, ext3, ext4 등을 사용합니다. 이는 모두 다릅니다.
차이점은 Linux에서는 사용 가능한 모든 파티션의 파일/디렉토리가 트리로 구성된다는 것입니다. Windows에서는 fe "a:", "c:" 문자를 사용하여 다른 파티션을 참조하고, Linux에서는 사용 가능한 파일의 전체 경로가 "/"(루트 디렉터리)로 시작합니다. 예를 들어, 시스템 부팅에 필요한 파일이 포함된 별도의 파티션이 하드 디스크에 있습니다. 적절한 매개변수와 함께 "mount" 명령을 실행하면 이 파티션의 내용을 "/boot/" 경로에서 사용할 수 있습니다. . 따라서 "/boot" 및 "/home" 경로는 서로 다른 파일 시스템을 가질 수 있는 서로 다른 파티션의 데이터를 참조할 수 있습니다. 오해를 불러일으켰을 수도 있습니다.
물리적으로 동일한 파티션에 있는 디렉터리는 항상 "동일한 파일 시스템을 갖습니다". 누군가 디렉토리의 파일 시스템에 관해 이야기할 때 실제로는 디렉토리가 있는 파티션의 파일 시스템을 가리키는 것입니다.
(사소하고 아마도 중요하지 않은 수정 사항: 때때로 파일 시스템은 가상이고 해당 파티션이 없습니다. 예를 들어 "/proc"에는 파일과 매우 유사한 내용이 포함되어 있지만 이러한 "파일"은 가상이므로 어느 곳에도 상주하지 않습니다. 하드 드라이브에는 실행 중인 프로세스에 대한 정보가 포함되어 있으며 이 데이터에 대한 일반적인 파일과 유사한 인터페이스를 제공하는 특수 "procfs" 파일 시스템이 있습니다.
답변3
디스크는 하나 이상의 디스크로 분할됩니다.분할. Windows에는 일반적으로 하나만 있고 복구 파티션이 어딘가에 숨겨져 있을 수도 있습니다. 파티션은 "섹터 1 ~ 10,000,000"과 같이 디스크에서 논리적으로 연속된 영역입니다.
파일 시스템은 파티션에 구축될 수 있습니다. Windows의 경우 NTFS 또는 Linux의 경우 FAT이며 버전 중 하나 ext
이거나 기타 다양한 옵션입니다.
파일 시스템에는 내부적으로 파일과 디렉터리가 포함되어 있습니다. Linux에는 디렉토리가 있습니다. 디렉토리가 없다는 것을 어떻게 아는지 모르겠습니다.
운영 체제는 사용자에게 여러 디스크의 여러 파티션을 어떻게 제공합니까? Windows에서는 다음을 통해 수행됩니다.드라이브 문자: C:
기다리다 D:
. Linux에서는 드라이브 문자 없이 모든 작업이 진행됩니다.마운트 포인트: 특정 디렉터리 내의 다른 파일 시스템에 대한 액세스를 다시 라우팅합니다. (+) 일반적으로 CD나 USB 스틱을 삽입하면 /media
또는 아래 어딘가에 나타납니다 /mnt
.
/usr
일반적으로 /usr/bin
동일한 파일 시스템에 있지만 필수는 아닙니다. /usr/bin
사람들이 이 문구를 사용할 때는 아마도 "해당 디렉토리를 포함하는 파일 시스템"을 의미할 것입니다.
(+) NTFS 연결 지점을 사용하여 이 작업을 수행할 수도 있지만 사람들은 거의 이 작업을 수행하지 않습니다. 드라이브 문자가 부족할 때까지.
답변4
filesystems
때로는 이러한 디렉터리가 마운트 지점이기 때문에 이를 그렇게 부르기도 합니다 . 당신이 묻는 유일한 질문에 너무 많은...
filesystem
두 가지 다른 것을 나타낼 수 있습니다. 또는 실제로는 동일한 것의 두 가지 매우 다른 측면을 나타낼 수 있습니다.
- 저장 매체의 데이터를 구성하는 데 사용되는 논리적 구조입니다.
- 프로세스에 데이터에 대한 균일한 액세스를 제공하기 위해 운영 체제에서 사용하는 방법입니다.
파일과 디렉토리의 개념은 비유입니다. 컴퓨터에는 데이터만 있을 뿐이고, 모든 미디어는 데이터를 담을 수 있는 장치에 지나지 않습니다. 일부 장치에서는 데이터를 읽고 쓸 수 있고(예: HDD), 다른 장치에서는 데이터 읽기만 허용하며(예: CD-ROM), 데이터 쓰기만 허용하는 장치(예: 프린터)도 있습니다. 파일 및 디렉터리 비유를 사용하여 데이터를 구조화하면 모든 데이터에 한꺼번에 액세스하는 대신 작은 데이터 조각에 액세스할 수 있습니다.
우리가 저장 매체(ext4, xfs, fat 등)에 넣은 파일 시스템이 구조화된 부분을 담당합니다. 우리는 이를 사용하여 데이터 덩어리(파일)에 태그를 배치하고 모든 태그(디렉토리)의 일관된 구조화된 목록을 보유합니다. 구조화된 목록은 실제로 트리입니다. 가장 중요한 것은 나무의 시작점은 뿌리뿐이라는 것입니다. 이 구조를 유지하고 데이터에 대한 액세스 가능성을 보장하고 액세스 가능한 상태를 유지하는 것은 어려운 작업입니다. 따라서 파일 시스템에는 한 가지 유형만 있는 것이 아닙니다.
파일 시스템의 또 다른 측면은 운영 체제의 작업이 저장 장치에 저장된 데이터를 모든 프로그램에서 액세스할 수 있도록 만드는 것입니다. 이는 다음 두 가지를 통해 수행됩니다.
운영 체제는 파일 및 디렉터리에 액세스하고 상호 작용할 수 있는 (프로그래밍) 인터페이스를 제공합니다. 저장 장치의 파일 시스템이 ext2, xfs, fat 또는 다른 것인지 여부는 프로그램/프로세스에 중요하지 않습니다. 프로그램/프로세스는 동일한 방식으로 파일 및 디렉토리에 액세스합니다.
운영 체제는 모든 저장 매체(예: 파일 시스템)를 다음과 같이 구성합니다.하나상위 구조. 프로그램은 저장 장치와 직접 상호 작용하지 않고 이 상위 수준 구조를 통해 파일과 디렉터리에 액세스합니다. 이렇게 하면 프로그램은 데이터가 실제로 어떤 장치에 있는지 신경 쓸 필요가 없습니다. 이 상위 수준 구조를 종종 커널의 "가상 파일 시스템"이라고 합니다.
가상 파일 시스템에 저장 장치의 파일 시스템을 추가하는 것을 파일 시스템 "마운트"라고 합니다. Linux가 부팅되면 커널은 가상 파일 시스템(VFS)을 생성합니다. 생성되면 비어 있고 기록되는 진입점(루트라고도 함)으로만 구성됩니다 /
. 그런 다음 커널은 VFS의 루트에 파일 시스템을 마운트합니다. 이는 가상 디스크일 수도 있고 하드 드라이브 파티션의 파일 시스템일 수도 있습니다. 이 파티션은 VFS의 루트에 추가되므로 루트 파일 시스템이라고도 합니다.
이제 선이 흐려진 부분을 보면 저장 장치의 파일 시스템과 커널의 VFS가 실제로 동일한 운영 체제 작업의 두 가지 측면임을 알 수 있습니다. 루트 파일 시스템이 마운트되면 VFS에는 많은 파일과 디렉터리가 포함됩니다. 그 중 루트 파티션에 파일과 디렉터리가 존재합니다. 그러나 모든 디렉터리는 "마운트 지점"이 될 수 있습니다. 마운트 지점은 VFS가 저장 장치의 파일 시스템에 대한 진입점을 배치하는 곳입니다. 이는 디렉토리에 파일 시스템을 마운트할 때마다 해당 디렉토리에 저장된 데이터가 아닌 다른 저장 장치에 있는 데이터에 액세스하겠다고 VFS에 알리는 것을 의미합니다. 마운트 지점은 일반적으로 다른 파일 시스템을 마운트하여 데이터에 액세스할 수 없게 만들지 않도록 빈 디렉터리입니다.
운영 체제를 설치할 때 모든 데이터를 하나의 파일 시스템(루트 파일 시스템이 됨)에 배치할지 아니면 데이터를 여러 파일 시스템에 분할할지 선택할 수 있습니다. 후자를 사용하려면 운영 체제에서 모든 데이터에 액세스할 수 있도록 별도의 파일 시스템을 모두 마운트해야 합니다. 사물을 나누는 방법은 시스템을 설계하는 방법에 따라 다릅니다. 이것이 바로 설치 시 알고 있는 디렉터리를 파일 시스템이라고 부르는 이유입니다.
집에서 일반적으로 사용하는 컴퓨터의 경우 더 이상 설치를 여러 파일 시스템으로 분할할 필요가 없습니다. 이렇게 하는 데에는 여전히 타당한 이유가 있지만 이는 이 기사의 범위를 벗어납니다.
이 기사의 나머지 부분을 짧게 유지하려면: 파티셔닝은 저장 장치의 데이터를 구조화하는 또 다른 방법입니다. 파티셔닝을 통해 물리적 저장 장치에서 연속된 저장 공간을 분할하고 이러한 공간을 운영 체제에 별도의 저장 장치로 제공할 수 있습니다(파일 시스템은 운영 체제의 VFS에 마운트될 수 있음). 그 이유 중 하나는 사람들이 하나의 하드 드라이브만 가지고 있지만 다양한 파일 시스템을 사용하기를 원하기 때문일 수 있습니다. 루트 파일 시스템이 상주하는 파티션을 흔히 루트 파티션이라고 합니다.