Just do IT
article thumbnail

파일 시스템

   운영 체제가 저장 매체에 파일을 쓰기 위한 자료구조 또는 알고리즘

 

파일 시스템이 만들어진 이유 (블록)

   0 1 데이터를 어떻게 저장매체에 저장할까?

     미트로 관리하기에는 오버헤드가 너무

     블록 단위로 관리하기로 (보통 4KB)

     블록마다 고유 번호를 부여해서 관리

 

파일 시스템이 만들어진 이유 (파일)

   사용자가 블록 고유 번호를 관리하기 어려움 - 추상적(논리적) 객체 필요 : 파일

   사용자는 파일단위로 관리 - 파일에는 블록 단위로 관리

 

파일 시스템이 만들어진 이유 (저장 방법)

   저장매체에 효율적으로 파일을 저장하는 방법

     가능한 연속적인 공간에 파일을 저장하는 것이 좋음

     외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장 기능 지원 필요

        블록 체인 : 블록을 링크드 리스트로 연결

                        - 끝에 있는 블록을 찾으려면, 처음 블록부터 주소를 따라가야

        인덱스 블록 시법 : 블록에 대한 위치 정보를 기록해서 한번에 블록을 찾아 있도록

 

다양한 파일 시스템

   Windows : FAT, FAT32, NTFS - 블록위치를 FAT라는 자료 구조에 기록

   리눅스(UNIX) : ext2, ext3, ext4 - 일종의 인덱스 블록 기법인 inode 방식사용

 

파일 시스템과 시스템

   동일한 시스템콜을 사용해서 다양한 파일 시스템 지원 가능토록 구현

     read/write 시스템 호출시 기기 파일 시스템에 따라 실질적인 처리를 담당하는 함수 구현

             - : read_spec/write_spec

     파일을 실제 어떻게 저장할지는 다를 있음 : 리눅스의 경우 ext4 NTFS, FAT32 파일 시스템 지원

Inode 방식 파일 시스템

   파일시스템 기본 구조 : 수퍼 블록, 아이노드 블록, 데이터 블록

     수퍼 블록 : 파일 시스템 정보 파티션 정보 포함

     아이노드 블록 : 파일 상세 정보

     데이터 블록 : 실제 데이터

 

Inode 파일

   파일 : inode 고유값과 자료구조에 의해 주요 정보 관리

      '파일이름:inode' 파일이름은 inode 번호와 매칭

      파일 시스템에서는 inode 기반으로 파일 엑세스

      inode 기반 메타 데이터 저장

 

Inode 구조

   inode 기반 메타 데이터

        (파일 권한, 소유자 정보, 파일 사이즈, 생성시간등 시간 관련 정보, 데이터 저장 위치 )

Inode 구조와 파일

Inode 구조와 파일 데이터

디렉토리 엔트리

   리눅스 파일 탐색 : - /home/ubuntu/link.txt

     디렉토리 엔트리(dentry) 탐색

        엔트리는 해당 디렉토리 파일 / 디렉토리 정보를 가지고 있음

     '/' dentry에서 'home' 찾고, 'home'에서 'ubuntu' 찾고, 'ubuntu'에서

      link.txt 파일이름에 해당하는 inode 얻음

 

가상 파일 시스템 (Virtual File System)

   Network 다양한 기기도 동일한 파일 시스템 인터페이스를 통해 관리 가능

   : read/write 시스템 사용, 기기별 read_spec/write_spec 코드 구현 (운영체제 내부)

 

 

리눅스(유직스) 운영 체제와 가상 파일 시스템

   모든 것은 파일이라는 철학을 따른다

     모든 인터럭션은 파일을 읽고 쓰는 것처럼 이루어져 있다

     마우스, 키보드와 같은 모든 디바이스 관련된 기술도 파일과 같이 다루어진다

     모든 자원에 대한 추상화 인터페이스로 파일 인터페이스를 활용한다

 

특수 파일 : 디바이스

   블록 디바이스 (Block Device) : HDD, CD/DVD 같이 블록 또는 섹터 정해진 단위로 데이터 전송 IO 송수신 속도가 높음

   캐릭터 디바이스 (Character Device) : 키보드, 마우스 byte 단위 데이터 전송, IO 송수신 속도가 낮음

   cd/dev, cat tty

 

출처 : 제로베이스

'공부 Note > 운영체제' 카테고리의 다른 글

Chapter 08 가상머신  (0) 2022.01.04
Chapter 07 부팅의 이해  (0) 2022.01.04
Chapter 05 가상 메모리 (3)  (0) 2022.01.04
Chapter 05 가상 메모리 (2)  (0) 2022.01.04
Chapter 05 가상 메모리 (1)  (0) 2022.01.04
profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!