
💨 파일 시스템 (File System)
⭕ 파일 시스템 (File System)
💡 컴퓨터 저장 장치, 특히 하드 드라이브, SSD, 플래시 드라이브와 같은 저장 매체에 데이터를 저장하고 관리하는 방식과 구조를 정의하는 시스템
❗ 데이터를 효율적으로 저장하고, 찾고, 관리하는 데 필요한 여러 기능과 개념을 제공
⭕ 파일 시스템의 기능
- 파일 저장 및 검색:
- 데이터를 파일로 저장하고 필요 시 파일을 찾아서 읽는 기능을 제공
- 파일의 경로를 이용해 파일을 식별하고 접근
- 파일 및 디렉토리 조작:
- 파일 생성(Create), 읽기(Read), 쓰기(Write), 삭제(Delete) 등의 기본 조작 기능을 지원
- 디렉토리 생성(Create Directory), 삭제(Delete Directory), 이동(Move), 복사(Copy) 등의 디렉토리 조작 기능을 제공
- 디스크 관리:
- 저장 장치의 공간을 효율적으로 관리하고 파일 시스템의 일관성을 유지
- 파일 시스템의 공간 할당 및 해제, 조각 모음(Defragmentation) 기능 등을 포함
- 보안 및 권한 관리:
- 파일 및 디렉토리에 대한 접근 권한을 설정하고 관리
- 사용자와 그룹별로 읽기, 쓰기, 실행 권한을 부여 가능
- 에러 검출 및 복구:
- 파일 시스템의 무결성을 유지하기 위해 에러를 검출하고 복구하는 기능을 제공
- 예: 저널링(Journaling), 체크섬(Checksum) 등을 이용한 에러 검출 및 복구
⭕ 파일 시스템의 종류
- FAT (File Allocation Table):
- DOS 및 초기 Windows 운영체제에서 사용된 파일 시스템
- FAT16, FAT32 등이 있으며 간단한 구조와 호환성이 장점
- NTFS (New Technology File System):
- Windows NT 계열 운영체제에서 사용되는 파일 시스템
- 보안, 압축, 대용량 파일 지원, 저널링 기능 등이 강력함
- EXT (Extended File System):
- 리눅스 운영체제에서 주로 사용되는 파일 시스템
- ext2, ext3, ext4 등이 있으며 ext4는 저널링과 대용량 파일 지원이 강화됨
- APFS (Apple File System):
- Apple의 macOS 및 iOS에서 사용되는 파일 시스템
- SSD 최적화, 스냅샷, 클론, 빠른 디렉토리 크기 계산 등의 기능이 있음
- exFAT (Extended File Allocation Table):
- FAT 파일 시스템의 확장 버전으로, 대용량 파일과 대용량 디스크 지원을 위해 설계됨
- 다양한 운영체제 간의 호환성이 높음
💨 파일 시스템 (File System)
⭕ 파일 (Files)
💡 컴퓨터에서 데이터를 저장하는 기본 단위
❗ 각 파일은 고유한 이름을 가지며, 이 이름을 통해 사용자는 파일을 식별하고 접근 가능
❗ 파일 구성 :
- 파일 이름: 파일을 식별하는 이름입니다. 파일 이름은 일반적으로 확장자를 포함하며, 이는 파일의 유형을 나타냄. ex:
document.txt, photo.jpg.
- 확장자: 파일 이름의 끝 부분에 위치하며, 파일의 형식을 나타냄. 예:
.txt, .jpg, .pdf.
- 파일 크기: 파일이 차지하는 저장 공간의 크기. 이는 바이트 단위로 표시.
- 파일 내용: 파일 내 실제 저장된 데이터. 텍스트 파일, 바이너리 파일, 이미지 파일 등 다양한 형식으로 존재
- 메타데이터: 파일 자체의 내용 외에도 파일에 관한 정보(메타데이터)가 있음. ex: 파일 생성 시간, 수정 시간, 접근 권한 등.
⭕ 디렉토리 (Directories)
💡 파일과 다른 디렉토리를 포함할 수 있는 논리적인 저장 단위
❗ 파일 시스템의 계층적 구조를 형성하며, 사용자가 파일을 체계적으로 조직하고 관리할 수 있도록 도와줌
❗ 디렉토리 구성 :
- 루트 디렉토리 (Root Directory): 파일 시스템의 최상위 디렉토리. 모든 디렉토리와 파일은 루트 디렉토리 아래에 위치. Unix 계열에서는
/로, Windows에서는 C:\와 같은 형식으로 표현.
- 서브 디렉토리 (Subdirectories): 루트 디렉토리 하위에 위치한 디렉토리들로, 각 디렉토리는 다시 여러 서브 디렉토리를 가질 수 있음.
⭕ 경로 (Paths)
💡 파일이나 디렉토리의 위치를 지정하는 문자열
❗ 경로를 통해 사용자는 파일 시스템 내의 특정 파일이나 디렉토리에 접근 가능
❗ 경로 ****유형 :
- 절대 경로 (Absolute Path): 루트 디렉토리부터 시작하는 전체 경로. ex: Unix 계열에서는
/home/user/document.txt, Windows에서는 C:\Users\User\Document.txt.
- 상대 경로 (Relative Path): 현재 작업 디렉토리로부터의 경로. ex: 현재 디렉토리가
/home/user인 경우 documents/report.txt는 상대 경로
💡 파일 자체의 내용 이외에 파일에 대한 정보를 저장하는 데이터
❗ 파일 시스템은 메타데이터를 이용해 파일을 관리하고, 파일의 속성을 제공하며, 보안을 유지
❗ 메타데이터 ****주요 요소 :
- 파일 이름: 파일의 고유한 이름.
- 파일 크기: 파일이 차지하는 저장 공간의 크기.
- 생성 시간 (Creation Time): 파일이 생성된 시간.
- 수정 시간 (Modification Time): 파일이 마지막으로 수정된 시간.
- 접근 시간 (Access Time): 파일이 마지막으로 접근된 시간.
- 파일 권한 (Permissions): 파일에 접근할 수 있는 사용자 및 접근 방식(읽기, 쓰기, 실행).
- 소유자 (Owner): 파일을 소유한 사용자.
- 파일 유형 (File Type): 파일이 디렉토리인지, 일반 파일인지, 링크 파일인지 등을 나타냄.