728x90
반응형
맨 위로 올라가기
Linux 파일 시스템

 

Linux 파일 시스템은 리눅스 운영 체제에서 파일과 디렉토리를 저장하고 구성하는 방식을 말한다.
파일 시스템은 Disk, Partition, File System Driver와 같은 물리적 또는 가상의 저장 장치에 대한 인터페이스 역할을 한다.

Linux 에서는 다양한 파일 시스템을 지원하며 각 파일 시스템은 파일의 저장, 액세스, 검색, 보호 등을 관리한다.

Linux에서 가장 일반적으로 사용되는 파일 시스템은 다음과 같다.

 

  • Ext 4 (Fourth Extended File System):
    Ext 4는 리눅스에서 가장 널리 사용되는 파일 시스템이다.
    Ext 4는 이전 버전인 Ext 3의 개선된 버전으로, 높은 성능과 대용량 파일 지원, 저널링 기능 등을 제공한다.
    단일 파일 최대 크기 : 16TB

    • Ext 3 :
      단일 파일 최대 크기 : 4GB

    • Ext 2:
      단일 파일 최대 크기 : 2GB

  • XFS(XFS File System):
    XFS 는 고성능 파일 시스템으로서 대용량 파일과 대용량 파일 시스템에 최적화 되어 있다.
    XFS는 확장성이 뛰어나고 빠른 속도와 안정성을 제공하며, 대용량 데이터 처리에 적합하다.

  • Btrfs (B-tree File System):
    Btrfs는 복원력, 확장성, 스냅샷, 체크섬 등 고급 기능을 갖춘 파일 시스템이다.
    Btrfs는 파일 시스템의 관리 및 데이터 보호 기능을 제공한다.

  • ZFS(Zettabyte File System):
    ZFS는 고급 파일 시스템으로서 데이터 무결성, 스냅샷, RAID, 압축, 복구 기능을 갖추고 있다.
    ZFS는 대용량 스토리지 환경에서 안정성과 데이터 보호를 중요시하는 경우에 많이 사용된다.

※ 저널링 파일 시스템(Journaling File System):

저널링 파일 시스템은 데이터 일관성과 복구성을 향상시키기 위해 사용되는 파일 시스템의 기술이다.
일반적인 파일 시스템에서는 파일을 생성, 수정, 삭제할 대 데이터를 바로 디스크에 기록한다.
그러나 시스템이 갑작스럽게 종료되는 등의 예기치 않은 상황에서는 파일 시스템의 일관성과 데이터의 무결성에
문제가 발생할 수 있다.

저널링 파일 시스템은 이러한 문제를 해결하기 위해 저널(journal)이라는 로그를 사용하여 파일 시스템 작업을
기록한다. 저널은 파일 시스템에 대한 작업(생성, 수정, 삭제 등)이 발생할 때마다 해당 작업을 로그에 기록한다.
이 로그는 메타 데이터와 파일 시스템의 일관성을 유지하기 위한 정보를 포함한다.

일반적으로 사용되는 저널링 파일 시스템에는 ext 4(Fourth Extended File System, 확장 파일 시스템 4), XFS,
JFS(Journaled File System), NTFS(Windows 운영 체제에서 사용) 등이 있다.
이러한 저널링 파일 시스템은 데이터의 안정성과 일관성을 유지하면서 파일 시스템의 성능과 복구 시간을
개선하는 데 도움을 준다.

 


Linux 파일 시스템 디렉토리 구조

 

Linux 파일 시스템은 계층적인 디렉토리 구조를 가지고 있다.
이 디렉토리 구조는 파일과 디렉토리의 조직화와 계층적인 관계를 표현하며, 사용자가 파일 시스템의 데이터를 쉽게
찾고 조작할 수 있도록 한다.

리눅스 파일 시스템의 디렉토리 구조는 루트 디렉토리 ("/")를 시작으로 하위 디렉토리들이 계층적으로 구성된다.

 

 

일반적으로 다음과 같은 중요한 디렉토리들로 구성된다.

 

  1. / (루트 디렉토리)
    • 파일 시스템의 최상위 디렉토리이다.
    • 모든 다른 디렉토리와 파일은 루트 디렉토리 아래에 위치한다.
    • 전체 파일 시스템의 시작점이다.

  2. /bin(binary):
    • 기본 실행 가능한 프로그램(binary)들이 위치하는 디렉토리이다.
    • 주요한 시스템 명령어들이 여기에 위치하여 모든 사용자가 접근할 수 있다.

  3. /dev(device):
    • 장치 파일들이 위치하는 디렉토리이다.
    • Linux는 모든 장치를 파일로 취급하며, 각 장치는 여기에 대응하는 파일로 표현된다.
    • 예를 들어, 하드드라이브는 /dev/sda로 표시될 수 있다.

  4. /etc(et cetera):
    • 시스템 설정 파일들이 위치하는 디렉토리이다.
    • 네트워크 설정, 사용자 계정, 서비스 구성 등에 관련된 설정 파일들이 여기에 저장된다.

  5. /home:
    • 사용자들의 홈 디렉토리들이 위치하는 개인화된 디렉토리이다.
    • 각 사용자는 자신의 홈 디렉토리에서 작업하고 파일을 저장할 수 있다.
    • 사용자 계정 이름과 일치하는 디렉토리가 생성된다.

  6. /lib(library):
    • 실행 파일들이 필요로 하는 라이브러리 파일들이 위치하는 디렉토리이다.
    • 프로그램들이 이 디렉토리에 있는 라이브러리 파일들을 참조하여 실행된다.

  7. /proc(process):
    • 현재 실행 중인 프로세스와 시스템 정보를 가상 파일 시스템으로 표현하는 디렉토리이다.
    • 프로세스와 관련된 정보를 조회하고 조작하는데 사용된다.(CPU, I/O, BIOS, 통계 등)

  8. /root
    • 시스템의 최상위 관리자인 root 사용자의 홈 디렉토리이다.
    • root 사용자는 시스템 전체에 대한 권한을 가지고 있다.

  9. /tmp(temp):
    • 임시 파일들이 저장되는 시스템 공용 디렉토리이다.
    • 일시적으로 사용되는 파일들이 위치하며, 시스템 재부팅시 삭제된다.

  10. /var(variable):
    • 가변 데이터(variable data)가 위치하는 디렉토리이다.
    • 로그 파일, 시스템 메일, 웹 서버 데이터, 데이터베이스 파일 등과 같이 시스템 작동 중에 변경되는
      데이터 들이 여기에 저장된다.
    • 커널 메시지를 기록하는 파일과 각종 스풀링(spooling)이 필요한 파일들이 포함된다.(버퍼와 비슷)

  11. /usr(user):
    • 시스템 리소스와 응용 프로그램들이 위치하는 디렉토리이다.
    • 시스템 외부에서 설치되는 대부분의 소프트웨어들이 여기에 위치하며, binary, library, document, header file 등이
      포함될 수 있다. 따라서 설치 시에 큰 용량을 할당해 주어야 한다.

 

위의 디렉토리 구조는 Linux 시스템에서 일반적으로 사용되는 구조이다.
각 디렉토리는 특정한 목적을 가지며, 파일과 다른 디렉토리를 구조적으로 구분짓는 역할을 한다.

 

 

 

728x90
반응형

'OS' 카테고리의 다른 글

Timing Diagram  (0) 2023.12.23
Endianness  (0) 2023.12.23
[Linux] 명령어 - netstat  (0) 2023.05.17
리눅스(Linux) 명령어  (0) 2023.05.13
파일 시스템(File System)의 종류와 특징  (0) 2023.05.13

+ Recent posts