logo

리눅스 파일 시스템

Linux 파일 시스템은 디스크 드라이브나 파티션에 있는 구조화된 파일 모음입니다. 파티션은 메모리 세그먼트이며 일부 특정 데이터를 포함합니다. 우리 컴퓨터에는 다양한 메모리 파티션이 있을 수 있습니다. 일반적으로 모든 파티션에는 파일 시스템이 포함되어 있습니다.

범용 컴퓨터 시스템은 우리가 더 짧은 시간에 쉽게 파일에 접근할 수 있도록 데이터를 체계적으로 저장해야 합니다. 하드 디스크(HDD) 또는 이와 동등한 저장 유형에 데이터를 저장합니다. 파일 시스템을 유지하는 데는 다음과 같은 이유가 있을 수 있습니다.

Java의 유사한 인터페이스
  • 주로 컴퓨터는 RAM 저장소에 데이터를 저장합니다. 전원이 꺼지면 데이터가 손실될 수 있습니다. 그러나 정전 후에도 데이터를 유지하기 위해 사용할 수 있는 비휘발성 RAM(플래시 RAM 및 SSD)이 있습니다.
  • RAM은 디스크 공간보다 비용이 더 많이 들기 때문에 표준 RAM에 비해 하드 드라이브에 데이터 저장을 선호합니다. 하드 디스크 비용은 RAM에 비해 점차 낮아지고 있습니다.

그만큼 리눅스 파일 시스템에는 다음 섹션이 포함되어 있습니다.

  • 루트 디렉터리(/)
  • 특정 데이터 저장 형식(EXT3, EXT4, BTRFS, XFS 등)
  • 특정 파일 시스템이 있는 파티션 또는 논리 볼륨입니다.

Linux 파일 시스템이란 무엇입니까?

Linux 파일 시스템은 일반적으로 리눅스 운영체제 스토리지의 데이터 관리를 처리하는 데 사용됩니다. 디스크 저장소에 파일을 정리하는 데 도움이 됩니다. 파일 이름, 파일 크기, 생성 날짜 및 파일에 대한 더 많은 정보를 관리합니다.

파일 시스템에 지원되지 않는 파일 형식이 있는 경우 이를 처리하기 위한 소프트웨어를 다운로드할 수 있습니다.

Linux 파일 시스템 구조

Linux 파일 시스템은 루트 디렉터리와 하위 디렉터리를 포함하므로 계층적 파일 구조를 갖습니다. 다른 모든 디렉터리는 루트 디렉터리에서 액세스할 수 있습니다. 파티션에는 일반적으로 하나의 파일 시스템만 있지만 둘 이상의 파일 시스템이 있을 수도 있습니다.

파일 시스템은 비휘발성 저장 데이터를 위한 공간을 관리하고 제공할 수 있도록 설계되었습니다. 모든 파일 시스템에는 이름 지정 및 구성 방법인 네임스페이스가 필요했습니다. 네임스페이스는 이름 지정 프로세스, 파일 이름의 길이 또는 파일 이름에 사용할 수 있는 문자 하위 집합을 정의합니다. 또한 특정 파일을 구성하기 위한 디렉터리 사용과 같이 메모리 세그먼트에 있는 파일의 논리적 구조를 정의합니다. 네임스페이스가 설명되면 해당 특정 파일에 대한 메타데이터 설명이 정의되어야 합니다.

데이터 구조는 계층적 디렉터리 구조를 지원해야 합니다. 이 구조는 특정 블록에 대해 사용 가능하고 사용되는 디스크 공간을 설명하는 데 사용됩니다. 또한 파일 크기, 생성 날짜 및 시간, 업데이트, 마지막 수정과 같은 파일에 대한 기타 세부 정보도 있습니다.

또한 파티션 및 볼륨과 같은 디스크 섹션에 대한 고급 정보를 저장합니다.

고급 데이터와 그것이 나타내는 구조에는 드라이브에 저장된 파일 시스템에 대한 정보가 포함되어 있습니다. 이는 파일 시스템 메타데이터와 구별되며 독립적입니다.

Linux 파일 시스템에는 두 부분으로 구성된 파일 시스템 소프트웨어 구현 아키텍처가 포함되어 있습니다. 아래 이미지를 고려하십시오.

리눅스 파일 시스템

파일 시스템에는 파일 및 디렉터리와 같은 파일 시스템 구성 요소와 상호 작용하기 위해 함수 호출에 액세스하는 API(응용 프로그래밍 인터페이스)가 필요합니다. API는 파일 생성, 삭제, 복사와 같은 작업을 용이하게 합니다. 이는 파일 시스템에서 파일 배열을 정의하는 알고리즘을 용이하게 합니다.

주어진 파일 시스템의 처음 두 부분을 합쳐서 리눅스 가상 파일 시스템 . 커널과 개발자가 파일 시스템에 액세스할 수 있도록 단일 명령 세트를 제공합니다. 이 가상 파일 시스템에는 파일 시스템에 대한 인터페이스를 제공하기 위해 특정 시스템 드라이버가 필요합니다.

디렉토리 구조

디렉토리는 파일을 저장하고 필요할 때 찾는 데 도움이 됩니다. 또한 디렉터리는 물리적 데스크톱 비유의 형태로 파일이 있는 폴더로 간주할 수 있으므로 폴더라고 합니다. 디렉토리는 Linux 및 기타 여러 운영 체제에서 트리와 같은 계층 구조로 구성될 수 있습니다.

Linux의 디렉터리 구조는 Linux FHS(파일 시스템 계층 표준)에 잘 문서화되어 정의되어 있습니다. 해당 디렉토리에 액세스하는 경우 /var/spool/mail 및 /var/log와 같이 '/' 슬래시로 연결된 디렉토리의 순차적인 더 깊은 이름을 통해 해당 디렉토리를 참조할 수 있습니다. 이를 경로라고 합니다.

아래 표는 잘 알려진 매우 짧은 표준, 정의 및 잘 알려진 최상위 Linux 디렉터리 목록과 그 목적을 제공합니다.

    /(루트 파일 시스템):최상위 파일 시스템 디렉터리입니다. 여기에는 다른 파일 시스템을 마운트하기 전에 Linux 시스템을 부팅하는 데 필요한 모든 파일이 포함되어야 합니다. 다른 모든 파일 시스템은 시스템이 시작된 후 루트 파일 시스템 디렉터리로 인해 잘 정의된 표준 마운트 지점에 마운트됩니다./신병:여기에는 Linux 컴퓨터를 시작하는 데 필요한 정적 커널 및 부트로더 구성과 실행 파일이 포함되어 있습니다./큰 상자:이 디렉터리에는 사용자 실행 파일이 포함되어 있습니다./개발자:여기에는 시스템에 연결된 모든 하드웨어 장치에 대한 장치 파일이 포함됩니다. 이는 장치 드라이버가 아닙니다. 대신 시스템의 모든 장치를 나타내고 이러한 장치에 대한 액세스를 제공하는 파일입니다./등:여기에는 호스트 시스템의 로컬 시스템 구성 파일이 포함됩니다./lib:여기에는 시스템을 시작하는 데 필요한 공유 라이브러리 파일이 포함되어 있습니다./집:홈 디렉토리 저장소는 사용자 파일에 사용할 수 있습니다. 모든 사용자는 /home 내부에 하위 디렉터리를 가지고 있습니다./mnt:관리자가 파일 시스템을 작업하거나 복구할 때 사용할 수 있는 기본 파일 시스템에 대한 임시 마운트 지점입니다./미디어:호스트에 연결될 수 있는 USB 썸 드라이브와 같은 외부 이동식 미디어 장치를 장착하기 위한 장소입니다./고르다:여기에는 공급업체에서 제공하는 응용 프로그램과 같은 선택적 파일이 포함되어 있습니다./뿌리:루트 사용자의 홈 디렉터리입니다. '/'(루트) 파일 시스템이 아니라는 점에 유의하세요./tmp:OS 및 임시 파일을 저장하기 위해 여러 프로그램에서 사용하는 임시 디렉터리입니다. 또한 사용자는 여기에 임시로 파일을 저장할 수도 있습니다. 이 디렉토리에 있는 파일은 언제든지 사전 통지 없이 제거될 수 있다는 점을 기억하십시오./스빈:이는 시스템 바이너리 파일입니다. 시스템 관리에 사용되는 실행 파일입니다./usr:실행 가능한 라이브러리와 바이너리, man 파일, 여러 문서 유형을 포함하는 읽기 전용 및 공유 가능 파일입니다./였다:여기에는 가변 데이터 파일이 저장됩니다. 여기에는 MySQL, 로그 파일, 기타 데이터베이스 파일, 이메일 받은 편지함, 웹 서버 데이터 파일 등이 포함될 수 있습니다.

Linux 파일 시스템 기능

Linux에서는 파일 시스템이 트리 구조를 만듭니다. 모든 파일은 트리와 가지로 배열됩니다. 최상위 디렉토리는 루트 디렉토리 . Linux의 다른 모든 디렉터리는 루트 디렉터리에서 액세스할 수 있습니다.

Linux 파일 시스템의 일부 주요 기능은 다음과 같습니다.

    경로 지정:Linux에서는 구성 요소를 구분하기 위해 백슬래시()를 사용하지 않습니다. 대신 슬래시(/)를 사용합니다. 예를 들어, Windows에서는 데이터가 C: My Documents Work에 저장될 수 있지만 Linux에서는 /home/ My Document/ Work에 저장됩니다.파티션, 디렉터리 및 드라이브:Linux는 Windows처럼 드라이브 문자를 사용하여 드라이브를 구성하지 않습니다. Linux에서는 파티션, 네트워크 장치 또는 '일반' 디렉터리 및 드라이브를 주소 지정하는지 알 수 없습니다.대소문자 구분:Linux 파일 시스템은 대소문자를 구분합니다. 소문자와 대문자 파일 이름을 구별합니다. 예를 들어, Linux에서는 test.txt와 Test.txt 사이에 차이가 있습니다. 이 규칙은 디렉터리 및 Linux 명령에도 적용됩니다.파일 확장자:Linux에서는 파일 확장자가 '.txt'일 수 있지만 반드시 파일 확장자가 있어야 하는 것은 아닙니다. Shell로 작업하는 동안 초보자가 파일과 디렉터리를 구별하는 데 몇 가지 문제가 발생합니다. 그래픽 파일 관리자를 사용하면 파일과 폴더를 상징합니다.숨겨진 파일:Linux는 표준 파일과 숨겨진 파일을 구분하며, 대부분 구성 파일은 Linux OS에서 숨겨져 있습니다. 일반적으로 숨겨진 파일에 액세스하거나 읽을 필요가 없습니다. Linux에서 숨겨진 파일은 파일 이름 앞에 점(.)으로 표시됩니다(예: .ignore). 파일에 액세스하려면 파일 관리자에서 보기를 변경하거나 셸에서 특정 명령을 사용해야 합니다.

Linux 파일 시스템 유형

Linux 운영 체제를 설치하면 Linux는 다음과 같은 많은 파일 시스템을 제공합니다. Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs, 그리고 교환 .

리눅스 파일 시스템

이러한 각 파일 시스템을 자세히 살펴보겠습니다.

1. Ext, Ext2, Ext3 및 Ext4 파일 시스템

파일 시스템 Ext는 다음을 의미합니다. 확장 파일 시스템 . 주로 다음을 위해 개발되었습니다. 미닉스 OS . Ext 파일 시스템은 이전 버전이며 일부 제한으로 인해 더 이상 사용되지 않습니다.

Ext2 2TB의 데이터를 관리할 수 있는 최초의 Linux 파일 시스템입니다. Ext3은 Ext2를 통해 개발되었습니다. Ext2의 업그레이드 버전이며 이전 버전과의 호환성을 포함합니다. Ext3의 주요 단점은 이 파일 시스템이 파일 복구 및 디스크 스냅샷을 지원하지 않기 때문에 서버를 지원하지 않는다는 것입니다.

Ext4 파일 시스템은 모든 Ext 파일 시스템 중에서 가장 빠른 파일 시스템입니다. SSD(Solid-State Drive) 디스크와의 호환성이 매우 뛰어난 옵션이며 Linux 배포판의 기본 파일 시스템입니다.

2. JFS 파일 시스템

JFS는 약자 저널 파일 시스템 , 그리고 그것은에 의해 개발되었습니다 AIX 유닉스용 IBM . Ext 파일 시스템의 대안입니다. 또한 적은 리소스로 안정성이 필요한 Ext4 대신 사용할 수도 있습니다. CPU 성능이 제한되어 있을 때 편리한 파일 시스템입니다.

3. ReiserFS 파일 시스템

ReiserFS는 Ext3 파일 시스템의 대안입니다. 향상된 성능과 고급 기능을 제공합니다. 이전에는 ReiserFS가 SUSE Linux의 기본 파일 시스템으로 사용되었지만 나중에 일부 정책이 변경되어 SUSE가 Ext3로 돌아왔습니다. 이 파일 시스템은 파일 확장자를 동적으로 지원하지만 성능 면에서 몇 가지 단점이 있습니다.

4. XFS 파일 시스템

XFS 파일 시스템은 병렬 I/O 처리를 위해 개발된 고속 JFS로 간주되었습니다. NASA는 여전히 높은 스토리지 서버(300테라바이트 이상의 서버)를 갖춘 이 파일 시스템을 사용하고 있습니다.

간단한 자바 프로그램

5. Btrfs 파일 시스템

Btrfs는 B 트리 파일 시스템 . 내결함성, 시스템 복구, 재미있는 관리, 광범위한 스토리지 구성 등에 사용됩니다. 생산 시스템에는 적합하지 않습니다.

6. 스왑 파일 시스템

스왑 파일 시스템은 시스템 최대 절전 모드 동안 Linux 운영 체제에서 메모리 페이징에 사용됩니다. 최대 절전 모드로 전환되지 않는 시스템에는 RAM 크기와 동일한 스왑 공간이 필요합니다.

Linux 파일 시스템에 마운트란 무엇입니까?

리눅스에서는 '탑재하다' 파일 시스템 용어인 은 이동식 디스크나 테이프 팩을 올바른 드라이브 장치에 물리적으로 마운트해야 하는 컴퓨팅의 초기 시대를 나타냅니다. 디스크 팩에서 파일 시스템은 OS에 의해 논리적으로 마운트되어 콘텐츠를 드라이브에 물리적으로 배치한 후 응용 프로그램, OS 및 사용자가 액세스할 수 있도록 합니다.

간단히 말해서 마운트 지점은 파일 시스템의 구성 요소로 만들어진 디렉터리입니다. 예를 들어, 홈 파일 시스템은 /home 디렉토리에 위치합니다. 파일 시스템은 루트가 아닌 많은 파일 시스템의 마운트 지점에 배치될 수 있지만 흔하지는 않습니다.

  • Linux의 루트 파일 시스템은 부팅 시퀀스 내에서 매우 초기에 / 디렉터리(루트 디렉터리)에 마운트됩니다.
  • 여러 파일 시스템은 나중에 Linux의 시작 프로그램에 의해 SystemV의 rc 또는 새 Linux 버전의 systemd를 통해 마운트됩니다.
  • 시작 중 파일 시스템 마운트는 구성 파일에 의해 처리됩니다. /etc/fstab .
  • fstab을 이해하는 쉬운 방법은 다음과 같습니다. '파일 시스템 테이블' , 마운트할 파일 시스템 목록, 해당 옵션 및 특정 파일 시스템에 필요할 수 있는 지정된 마운트 지점입니다.

mount 명령을 사용하여 사용 가능한 마운트 지점/디렉토리에 파일 시스템을 마운트할 수 있습니다. 즉, 탑재 지점으로 적용되는 디렉터리에는 다른 파일이 있어서는 안 되며 비어 있어야 합니다. Linux는 사용자가 이미 사용 가능한 파일 시스템이나 파일이 포함된 디렉터리에 파일 시스템을 마운트하는 것을 방지하지 않습니다. 실제 내용이 다루어지며, 기존 파일 시스템이나 디렉터리에 파일 시스템을 마운트하면 새로 마운트된 파일 시스템 내용만 표시됩니다.