< 파일 시스템 > 

 

: 파일이나 자료를 쉽게 발견하고 접근할 수 있도록 보관 또는 조직하는 체제

  → 리눅스에서는 주로 파티션을 나누고 정리하는데 사용된다.

 

: 파일 + 디렉토리 구조

 

 

: 파일 구조

 

①  부트 블록 ( boot block ) 

 

     - 운영체제를 주기억장치에 올리는 역할을 하는 프로그램이 들어 있는 영역

          → 윈도우의 부트 레코드와 유사

     - 운영체제를 부팅시키기 위해 필요한 코드를 저장한다.

     - 대부분의 파일 시스템들은 부트블록으로 시작한다.

     - 하드웨어가 부팅에 필요한 코드를 부트블록에서 찾는다.

 

 슈퍼 블록 ( super block ) 

    

     - 디스크에 대한 다양한 정보(파일 시스템의 전체적인 정보)를 저장하고 있는 곳

     - 블록 그룹의 가장 앞에 위치한다.

     - 리눅스 운영체제는 슈퍼블록의 정보를 사용하여 파일 시스템을 관리한다.

     - 슈퍼블록이 소유한 정보

         → 파일 시스템 크기, 블록 수, 이용 가능한 빈 블록 목록
         → 빈 블록 목록에서 그 다음 빈 블록을 가리키는 인덱스
         → inode 목록 크기, 파일 시스템에서 빈 inode 수와 목록
         → 빈 inode 목록에서 그 다음 빈 inode 수와 목록
         → 빈 블록과 빈 inode 목록들에 대한 록 필드
         → 슈퍼 블록들이 수정되었는지에 대한 플래그
         → 파일 시스템 이름 및 디스크 이름

 

③  아이노드 블록 ( inode) 

 

     - inode들을 모아놓은 곳; 한 블록에 여러 개의 inode를 저장하고 있다.

     - 파일이나 디렉토리에 대한 모든 정보를 가지고 있는 구조체

     - 파일 하나당 하나의 아이노드가 사용되며 여러 파일의 참조(link)가 가능하다.

     - 파일을 처리할 때 파일 이름이 아닌 아이노드 번호를 이용한다.

     - 아이노드가 소유한 정보

         → 파일크기
         → 생성시간, 사용시간, 변경시간
         → 접근권한
         → 사용자 ID, 그룹 ID
         → 파일 링크 수
         → 데이터 블록 주소

      - 아이노드의 기능

          1. 파일을 생성하면 inode가 "아이노드 리스트"에 만들어지고 inode-Number 및 파일 이름, 디렉토리가 등록됨.
          2. 파일을 삭제하면 inode 파일 링크 수가 하나 감소되고 해당 파일의 inode-Number는 0으로 바뀜.
          3. 원본 파일을 하드 링크하면 동일한 inode-Number임.

      - 아이노드 블록 관리 방법

           → 단일/이중/삼중 간접 블록 포인터

           → 아이노드 블록을 몇번 거쳐가냐의 차이 (링크로 연결하여 관리)

 

실제 데이터 블록을 가리키는 포인터

 

 

  데이터 블록 ( data block ) 

 

     - 일반적인 파일과 디렉토리, 간접 블록을 저장하는 디스크 영역

     - 실제 데이터가 파일의 형태로 저장되는 공간

     - 간접 블록 : 추가적인 데이터 블록을 위한 포인터들이 사용할 동적으로 할당되는 공간

     - 홀 : 아이노드나 간접 블록 안의 데이터 블록의 주소로 특별한 값을 저장

     - 파일 이름과 아이노드 번호를 저장하기 위해서 사용된다.

 

'2020-1 STUDY > Linux Study' 카테고리의 다른 글

Linux Study Week 3 - 2  (0) 2020.05.24
Linux Study Week 3 - 1  (0) 2020.05.24
Linux Study Week 2 - 3  (0) 2020.05.18
Linux Study Week 2 - 2  (0) 2020.05.18
Linux Study Week 2 - 1  (0) 2020.05.18

+ Recent posts