Researcher to Developer

LINUX 파일 구조, tty, super block, inode 본문

코딩/Basic

LINUX 파일 구조, tty, super block, inode

Probe29 2020. 12. 27. 16:07

#가상 파일 시스템

 

-open, -read, -write, -close 
C언어에서 파일과 관련된 시스템콜 함수들 

(파일을 open 할때 Readonly를 할 수도 있음)

 

사용자(프로그래머)/운영체제에서 사용할 수 있는 인터페이스는  
파일과 관련된 명령어 (-open, -read, -write, -close) 네 가지로 하고 
여러 가지 디바이스에 연결(Input)만 해주면

간편하고 일관된 인터페이스로 디바이스를 사용, 지원할 수 있으니 

그것을 제공하는 시스템으로 고안이 됨 

 

network나 새로운 디바이스들도
server에 데이터를 전송(쓰거나)하거나 server에서 온 데이터를 읽는 메커니즘을 따름

LINUX는

전역 네임스페이스 사용(모든 파일이 root 디렉토리에 들어있다.) 
모든 디바이스에 있는 파일을 root 디렉토리를 통해 접근할 수 있다. 

 

cd /dev 입력 후

ls를 입력하면 여러 가지 디렉토리가 나옴 (/dev : 디바이스를 나타내는 디렉토리)

 


tty 
터미널
tty라는 파일이
가상 파일 시스템 인터페이스를 통해서 가상 터미널 환경(디바이스)에 연결되어 있음 
input은 keyboard
keyboard로 친 내용이 화면에 출력되고 그 밑에 tty파일에 저장된 내용이 그대로 정보로 
출력되어서 같은 내용이 두 줄로 나오는 것 

cat tty
tty 파일의 내용을 화면에 출력하는 명령어 

 

 

 

#리눅스와 파일 정리 
모든 것은 파일이라는 철학을 따름 
모든 인터렉션, 디바이스는 파일을 읽고, 쓰는 것처럼 이루어져 있음 
마우스, 키보드와 같은 모든 디바이스 관련된 기술도 파일과 같이 다루어짐 
*모든 자원에 대한 추상화(abstraction) 인터페이스로 파일 인터페이스를 활용한다. 

*추상화 : 복잡한 기능/자료/데이터 에서 핵심적 개념/기능을 간추려 내는 것 

 

 

"어떤 디바이스라도 input과 output에 대한 내용을 알면 새로운 기술들을 빠르게 익히고 활용할 수 있다."




 #Super Block → inode → Disk Block
Super Block
파일 시스템의 정보를 가지고 있다.
파일들을 inode로 처리한다.

'파일:inode'로 파일이름은 inode번호와 매칭
inode를 기반으로 파일에 엑세스할 수 있다. 

inode도 번호 이외에 inode 관련된 요약 정보를 가지고 있는 공간이 있다. 
inode 관련 요약된 정보 = 메타 데이터

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

 


#파일과 inode
각 디렉토리 엔트리(dentry)를 탐색하는 방식으로 파일을 찾음
root 디렉토리에도. 'home' 디렉토리에도. 'ubuntu' 디렉토리에도 덴트리가 들어있음
파일, 서브 디렉토리 모두 각각은 다 inode를 가지고 있고 이름이 맵핑이 되어 있음

 


#리눅스 파일 구조
/root
/bin/ 대부분 쉘 명령어의 실행 파일이 들어가 있음, Default로 'PATH' 설정 
/opt/
/boot/ 부팅관련
/root/
/dev/ device 들이 파일로 맵핑되어 들어가 있음
/sbin/ 대부분 쉘 명령어의 실행 파일이 들어가 있음, Default로 'PATH' 설정
/etc/ 대부분 설정 관련 된 파일들이 들어가 있음
/srv/
/home/ 컴퓨터를 처음 켜면 들어가는 디렉토리, 로그인 정보
/tmp/
/lib/
/usr/
/media/ 컴퓨터에 새로운 디바이스를 추가했을 때 관련된 디바이스들의 하부로 연결되는 디렉토리
/var/ 내의 /log/ 서버 컴퓨터의 상태를 로그 파일 형태로 기록해놓는다.
/mnt/ 컴퓨터에 새로운 디바이스를 추가했을 때 관련된 디바이스들의 하부로 연결되는 디렉토리