이것이 점프 투 공작소

리눅스의 파일시스템에 대해 알아보자 본문

리눅스

리눅스의 파일시스템에 대해 알아보자

겅겅겅 2022. 10. 2. 20:21

파일의 종류

리눅스에서는 파일의 종류를 크게 4가지로 구분한다.

파일종류 설명
정규파일 대부분의 파일 (텍스트,이미지,실행)
실행,이미지 파일의 경우 바이너리 형태로 저장되어 바이너리 파일이라고 함
디렉토리 파일이나 서브 디렉토리의 이름과 위치정보를 가진 파일 (리눅스에선 파일로 취급)
심볼릭 링크 ('소프트링크') 원본 파일에 대한 링크파일 EX) 윈도우에 바로가기
장치파일 프린터,CD-ROM,하드디스크, 키보드 등 각종 장치를 파일로 취급한다

- 블록 디바이스 : 블록 단위로 읽고 쓰는 디바이스 (하드디스크 등)
- 문자 디바이스 : 문자 단위로 읽고 쓰는 디바이스 (시리얼포트, 터미널 등)
- 파이프 디바이스 : 프로세스 통신간 사용하는 파일 (mkfifo명령을 통해 생성)
- 소켓 디바이스 : 호스트 안에서 프로세스간 통신의 목적으로 사용하는 디바이스(Unix domain socket)

 

어떻게 리눅스는 디바이스를 파일처럼 다룰 수 있을까??

리눅스에서는 커널에서 디바이스관련 코드가 분리된  '디바이스 드라이버'가 존재하여, 커널이 디바이스 파일을 통해 사용자 프로세스에 디바이스 I/O인터페이스를 제공한다.

 

프로그램이 데이터 기록 -> 해당 디바이스 파일 오픈 -> 디바이스드라이버가 실제 디스크에 기록

간단히 이정도의 과정이라고 생각하면 된다.

 

ls명령의 결과에서 필드의 의미

ls -l 명령으로 파일 시스템을 확인해보면 여러 필드명이 나온다.

필드명 설명
- 가장 첫번째 문자.
- : 정규파일, d : 디렉토리, l : 심볼릭 링크
특수 파일인 블록,문자,파이프,소켓의 경우 b/c/p/s로 나타난다.
rw-r--r-- 파일의 접근권한 (r 읽기 w 쓰기 x 실행)
첫번째 rwx는 소유자, 두번째 rwx는 그룹구성원, 마지막 rwx는 모두의 접근 권한을 의미한다.
1 하드 링크의 수
계정명 파일 소유자 계정
그룹명 파일 소유 그룹의 계정
4096 바이트 단위 크기
date 파일 수정 날짜 시간
extfile.cnf 파일명

 

심볼릭 링크와 링크의 차이

리눅스는 inode를 통해 파일을 찾습니다.

쉽게 생각하면 인덱싱을 위한 파일의 ID값이라고 생각하시면 됩니다.

 

하드링크 : ln Target LinkName

하드링크를 통해 파일을 링크하면 동일한 inode값을 가지게 됩니다.

하드링크를 통한 생성

소프트링크 : ln -s TARGET LinkName

소프트링크를 통해 파일을 링크하면 다른 inode값을 가지게 됩니다.

원본 파일이 삭제되면 해당파일을 사용할 수 없게됩니다.

소프트링크를 통한 생성 (inode값이 다르다)