Just do IT
article thumbnail

리눅스와 파일 정리

   * 모든 것은 파일이라는 철학을 따름

      - 모든 인터렉션은 파일을 읽고, 쓰는 것처럼 이루어져 있음

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

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

 

가상 파일 시스템

   * 파일 네임스페이스

      - A 드라이브 (A:/), C 드라이브 (C:/windows) (X)

      - 전역 네임스페이스 사용

         /media/floofy/dave.jpg

         : cat tty

 

슈퍼블록, inode 파일

   * 슈퍼블록 : 파일 시스템의 정보

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

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

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

      - inode 기반 메타 데이터 저장

 

리눅스 파일 시스템 (ext file system) inode

   * inode 기반 메타 데이터

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

 

파일과 inode

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

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

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

      2. '/' dentry에서 'home' 찾고, 'home'에서 'ubuntu' 찾고, 'ubuntu'에서 link.txt 파일이름에 해당하는 inode 얻음

 

리눅스 파일 구조

 

하드 링크와 소프트 링크

   * cp (copy) 명령 : 파일 복사

      - 10MB 사이즈를 가지고 있는 A 파일을 B 파일로 복사

      - cp A B -> A B 각각 물리적으로 10MB 파일로 저장

   * 하드 링크 : ln A B

      - A B 동일한 10MB 파일을 가리킴

      - , 동일한 파일을 가진 이름을 하나 만든 것일

        inode 동일하다!!

        전체 파일 용량은 달라지지 않는다!!

      - ls -i (파일 inode 확인하기)

      - ls -al (완전 동일한 파일)

      - rm A A 삭제하면? B 그래도 해당 파일 접근 가능
         'A:해당 inode' 정보만 삭제 되고, inode 가진 실제 파일은 그대로 남는다

   * 소프트 (심볼릭) 링크 : ln -s A B

      - Windows OS 바로가기와 동일

      - ls -al 하면, 소프트 링크 확인 가능

      - rm A A 삭제하면? B 해당 파일 접근 불가

   * 하드 링크 / 소프트 링크 어느 하나 파일을 수정하면, 파일이름으로 동일한 내용 접근 가능하다

 

하드 링크와 inode

 

소프트 링크와 inode

 

 

특수 파일

   * 디바이스

      - 블록 디바이스 (Block Device)

         : HDD, CD/DVD 같이 블록 또는 섹터 정해진 단위로 데이터 전송, IO 송수신 속도가 높다

      - 캐릭터 디바이스 (Character Device)

         : 키보드, 마우스등 byte 단위 데이터 전송, IO 송수신 속도가 낮음

      - cd /dev, cat tty

 

 정리

   * 파일 추상화 인터페이스를 활용 다양한 데이터/디바이스 접근

   * 파일 네임스페이스는 전역 네임스페이스 활용 (/media/floofy/dave.jpg)

   * '파일이름:inode'로 매칭, 파일 시스템은 inode 기반 접근

   * 하드 링크: 동일 inode 가리키는 파일 이름만 하나 더 만듬

   * 소프트 링크: 특정 파일 바로가기 파일을 만듬

   * ln 명령 알아두기

   * 특수 파일: 블록/캐릭터 디바이스

 

출처 : 제로베이스

profile

Just do IT

@AmyG

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