파일 시스템 - 파일과 디렉터리(폴더)를 관리하는 커널의 한 부분 - 다양한 파일 시스템이 있고, 여러 파일 시스템을 동시에 사용할 수 있음
파일 (file) - 보조기억장치의 의미있는 정보의 집합 - 구성 요소 : 이름, 실행하기 위한 정보, 부가 정보(메타데이터, 속성) - 속성 : 유형 (확장자), 크기, 생성 날짜, 마지막 접근 날짜, 마지막 수정 날짜, 생성자, 소유자, 위치
블록(block) - 파일(+ 디렉터리) 접근 단위 - 섹터 단위로 접근하지 않음 : 하드디스크 제일 작은 단위(섹터) - 운영체제가 보조기억장치를 지칭할때도 블록 단위로 함
디렉터리(폴더) - 파일을 한 곳에 묶어서 관리할 수 있는 대상중 하나 - 계층/tree 구조 : 경로(특정파일의 위치를 식별할 수 있는 정보)라는 걔념이 발생 - 루트 디렉터리 = 최상위 폴더(최상단에 위치한 폴더) = /로 표현 = 예시)C드라이브 등
- 절대 경로 : 최상위 폴터에서의 지금까지의 전제 경로 - 상대 경로 : 현재경로를 기반으로 한, 파일의 경로 - 특별경로를 나타내는 표시자 : 현재 경로(.), 상위 경로(..), 홈 디렉터리(기본경로)(~)
- 많은 운영체제는 디렉터리를 파일과 동일하게 간주한다 - 디렉터리 테이블 구성 정보 : 파일 이름 , 위치를 유추할 수 있는 정보 , (파일 속성 : 가끔 저장) - 보조기억장치에서 디렉터리 테이블(파일 이름/위치 유추할 수 있는 정보)로 저장되어있음 -> 디렉터리 테이블을 통해 특정 파일에 접근가능
파일 시스템이 만들어지기까지
- 보조기억장치 하나에 단일한 파일 시스템이 사용되는 것이 아니다 : 영역을 나눌 필요가 있다.
파티셔닝(partitioning) - 보조기억장치의 영역을 구획하는 작업 : 아주 작은 용량은 필요 없음 -파티션(partition): 보조기억장치에서 구획된 영역 - 커다란 용량을 가진 기억장치에 마구잡이로 저장시, 관리와 찾는 시간이 굉장히 오래 걸림 - 파티션마다 각기 다른 파일시스템을 사용 가능함. - fdisk 명령어 사용
포매팅(format + ing) - 파티셔닝 후에 바로 파일 저장/디렉터리 저장 할 수 없음 - 파일 시스템을 만들려면, 각각의 파티션에 어떤 파일시스템을 쓸거에요로 초기화를 해줘야함!!!! - 파일시스템을 만드는 작업 : 포메팅을 할 때, 파일시스템이 결정이 된다! - 파일시스템이 달라지면, 어떤 식으로 보조기억장치에 있는 데이터덩어리를 파일로 할당을 할지/정보를 파일로 읽어드릴지 결정이 됨. - mkfs (make file system) 명령어 사용
- 운영체제 설치된 이후에도 가능하지만, 운영체제 설치시 파티셔닝/포매팅을 진행함
마운트 (mount) : 파일 시스템에 접근할 경로 결정 - 파티셔닝을 하고 포매팅을 하면, 어떤 보조기억장치의 영역을 어떤 파일시스템으로 사용할거다!가 나옴 -> 얘에 접근이 가능해야함. : 어떤식으로 접근하는지를 결정해주는 과정 -파일 시스템을 다른 파일 시스템에 편입 ( 예시 ) usb를 데스크탑에 편입을 시켜서 사용이 가능하게 함)
파일 시스템 종류와 특성
운영체제가 보조기억장치에 있는 정보에 접근시 : 블록 단위로 접근 (가장 작은 단위는 sector) 연속적으로 블록을 할당할 경우: 외부 단편화발생 -> 불연속적으로 파일을 할당하여 접근함
- 불연속적으로 저장된 파일에 접근하는 방법에 따라 나뉜다.
FAT 기반 파일 시스템 - FAT(File Allocation Table)를 활용하는 파일 시스템
- 저용량 저장장치에서 많이 사용함 ( USB 메모리, SD 카드 , MSMos) - FAT : 파일이 어디에 할당되었는지 저장하는 표와 같은 정보 - 매모리에 캐시가 되어있음 : 메모리 두번에 접근X : 빠름
- 디렉터리 엔트리(각각의 행)에 파일 속성 표현한다!!! (중요한 특징) - 디렉터리 엔트리에 파일 속성 표현 (파일 이름, 확장자, 속성, 예약영역, 생서시간, 마지막접근시간, 마지막수정시간, 시작블록 파일크기)
아이노드 기반 파일 시스템 - 아이노드(i-node)라는 색인 블록을 활용한 파일 시스템 - 색인블록 : 이파일이 어떤 블록에 할당이 되어있는지에 대한 정보를 전부 한데 모아놓은 특별한 블록 - 아이오드 : 이 색인블록으로 만들어진 unix 파일 시스템의 색인블록을 의미 - 색인블록(index block)을 줄인말 = I-Node - 사실상 파일의 모든 것을 담고 있다 (아이노드만 알면 속성, 저장위치 모두 알 수 있음) - 파티션 내 아이노드 영역
- 계층적인 관리, 15개까지만 생성 - 단일 간접 블록/이중간접블록/삼중간접블록을 검색해보기 - 아이노드 조회 : $ ls -i - 아이노드를 사용량이 100%로 찼을 경우 : 용량이 남아 있어도 파일 생성 불가
기타 파일 시스템 특성 정리 - NTFS : 윈도우 운영체제에서 주로 사용되는 파일 시스템 -APFS : macOS, iOS, watchOS, tvOS에서 주로 사용되는 파일 시스템 - ext2, ext3, ext4, xfs : 리눅스 운영체제에서 주로 사용되는 파일 시스템
파일시스템 특성을 나누는 것 : 얼마나 큰 파일을 가능, 저널링 기능을 제공하는지?
저널링 파일 시스템(journaling file system) - 파일 시스템에 크래쉬가 발생했을 때 빠르게 복구하기 위한 방법 - 작업 직전 파티션의 로그 영역에 로그를 남긴다. - 로그를 남긴 후 작업을 수행한다. - 작업이 끝났다면 로그를 삭제한다.