interlude: Files and Directories

Jin Hur·2021년 7월 1일
0

[Linux] File system

목록 보기
4/22

reference: https://pages.cs.wisc.edu/~remzi/OSTEP/, 시스템 프로그래밍, 운영체제 수업(최종무 교수님)

※ Computer system

  • 4가지 중요 추상화
    • process(thread)
    • virtual memory
    • lock(for concurrency)
    • file(by file system)
  • 파일은 저장장치 안에 있다! (hard disk, ssd)
    • storage: 비휘발성 vs memory: 휘발성
    • Advantages: 영속성 지원
    • 비휘발성 저장장치의 issues
      • integrity

      • space-efficiency: RAM은 전원 공급을 중단시키고 다시 공급하면 리셋됨. 반면 비휘발성 저장 매체는 그것이 아니므로 효율적으로 공간을 관리해야 한다는 이슈 발생.

      • consistency

      • crash consideration(fault-tolerance)

      • access control

      • security

      • ...

        => 이러한 이슈들을 파일 시스템이 관리!

  • 파일 시스템 내부구조(Layout)
    - file, directory, inode, FAT, superblock ..
  • 접근 방법(interface)
    - open, read, write, close, mkdir, link, mount ..

File

정의: 일련의 바이트들의 배열(bytes), 영속적으로 저장되는 객체

  • 각 파일들은 다양한 자료구조를 갖는다.(ex, c 소스코드, record, multimedia ..)
  • 그러나 OS는 내용이 어떻게 이루어지든 일련의 바이트들의 집합으로 다룬다.
  • 각 각의 파일은 이름을 갖는다.(절대경로, 상대경로)
  • 또한 low-level의 일종으로의 이름을 갖는다.(ex, inode)
    • 각 각의 파일은 OS 내부적으로 'inode'라는 자료구조로 관리된다.(마치 프로세스를 PCB 자료구조로 관리되는 것과 같다.)

Directory

  • 계층(file hierarchy)을 구성하는 특별한 '파일'

    • Root directory: 최상위 디렉터리
    • Home directory: 로그인 성공시 처음에 들어가는 디렉터리
    • Working directory: 현재 작업 수행중인 디렉터리
  • 디렉터리는 디렉터리 엔트리(<file name, inode>: 파일 이름과 inode 간의 맵핑 정보)를 포함한다.

    • 여러 개의 파일 <file name, inode> 쌍을 가진다.

Others are also treated as a file!!

  • 시스템에서 보는 모든 객체는 파일로 접근된다.
    • ex, Device, Pipe, Socket, and Process..
      (pipe: IPC 메커니즘, IPC의 가장 단순한 형태)
      (socket: 통신 경로)
  • 이는 곧 일관된 API를 사용할 수 있다는 뜻이다(read, write)
   

0개의 댓글