Unix/Linux 파일 처리

(2023-10-20)

Linux 파일 처리, Unix 파일 처리, Unix/Linux 파일 종류, ELF


1. [Unix/Linux]  파일 처리 방식의 특징UNIX/Linux에서는 거의 모든 것이 파일로 처리됨  :  (유닉스/리눅스 철학의 중심이 파일임)
     - 즉, `디스크 파일, 직렬 포트, 프린터` 등과 `파일`을 사용할 때, 똑같은 방법을 사용 가능
        . 파일,디텍토리,디바이스(디스크,터미널,사운드카드,...) 등을 파일로 취급할 수 있으므로,
        . 이들을, 파일 처리 시스템호출을 이용하여, 동일 형태로 조작 가능 함

  ㅇ 리눅스는, 가상 파일시스템 (VFS, Virtual File System) 구조를 사용
     - 여러 다양한 파일 구현 상세를, 하나의 VFS 계층 밑에 숨김으로써,
        . 사용자에게 간단한 파일 모델 만을 사용할 수 있게 함
     - 즉, 다양한 파일시스템들을,
        . 마치 하나의 파일시스템 처럼 사용 가능

  ㅇ 공통적인 파일 처리 방식을 사용                                       ☞ 파일 입출력 참조
     - 모든 것에 대해, 열려있는 파일을 통해, 유사한 형태의 입출력이 이루어짐
        . 즉, `디스크,직렬 포트,프린터 등`과 `파일`을 사용할 때 똑같은 방법을 사용
     - 파일 I/O를 위한 버퍼 캐시
        . 상이한 속도를 갖는 장치의 읽기쓰기를 즉시 해당 장치에서 수행않고, 반드시 버퍼를 통함

  ㅇ 또한, 유닉스/리눅스는, 
     - 시스템 정보, 장치 정보 등도 모두 파일로써 관리 함

  ㅇ 파일 처리 수준에 따른 구분
     - 저 수준 파일처리 (Low Level File Handling)  : 파일 기술자 (File Descriptor)
     - 고 수준 파일처리 (High Level File Handling) : 파일 포인터 (File Pointer)

  ㅇ 파일 끝(EOF) 도달여부의 확인
     - 프로그램파일 끝 도달 여부를 결정하도록, 파일 크기 카운터를 유지관리


2. [Unix/Linux]  파일 구분 (파일 타입)

  ㅇ 일반 파일 (regular file, normal file)  :  어떤 형태로든 자료를 담고있는 일반적인 파일
     - `데이터 파일`, `이미지 파일` 뿐만 아니라, `실행 파일`도 이에 포함됨

     * 실행 파일 
        . 파일 형식 : ELF (Executable and Linkable Format) 라는 바이너리 파일 형식을 갖음
           .. ELF : UNIX/Linux에서, 실행 파일,목적 파일,공유 라이브러리 등을 위한 표준 파일 형식
           .. 실행 파일,재배치 가능 파일 등 각각 별도의 ELF 형식이 사용됨
           .. 과거에는, a.out,COFF 라는 파일 형식 사용
        . 포멧 구성 : 1개 헤더와 여러 섹션으로 구성
        . 내용 구성 : 메타데이터,코드,데이터 등
        . 한편, 동적 재배치되는 (shared object) 등도 실행 파일로 간주됨

  ㅇ 디렉토리 파일 (directory file)  :  파일을 가리키는 포인터 및 파일 관련 정보를 갖는 파일
     - UNIX 운영체제 커널 만이 디렉토리 파일에 쓸 수 있는 권한 있음

  ㅇ 파일 링크 (file link)
     - 심볼릭 링크 (symbolic link)  :  다른 파일을 가리키는 파일
     - 하드 링크

  ㅇ 특수 파일      
     - 장치 파일 
        . 블록 특수 파일 (block device file)
        . 문자 특수 파일 (character device file)
     - 파이프
     - 소켓3. [Unix/Linux]  파일 구분의 확인ls 명령어로 볼 때, 다음과 같이 파일 구분 가능
     -  - : 일반 파일
     -  b : 블록 디바이스 파일
     -  c : 문자 디바이스 파일
     -  d : 디렉토리
     -  l : 심볼릭 링크
     -  p : FIFO (Named Pipe, 네임드 파이프)
     -  s : 소켓 통신 파일
     -  ? : 기타 파일 타입

Unix/Linux 파일시스템
   1. UNIX 파일시스템   2. 슈퍼 블록   3. Inode   4. 디렉토리   5. 파일 처리 방식   6. 파일 링크  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"