일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- fork 시스템 콜
- substance painter
- 생활코딩 복습
- mmap
- atexit()
- 섭페에서 텍스처 추출
- 3D 배경 그래픽
- 개체 외곽 하이라이트 기준선 없애는 법
- background process
- Symmetry
- msync
- copy-on-write
- wait 시스템 콜
- exit()
- bash shell 변수
- foreground process
- bg 명령어
- 추가 업로딩 중
- Standard Stream
- houdini
- 뷰포트
- pane & desktop
- ps 명령어
- Redirection
- 후디니
- bash shell 반복문
- 섭페
- 3Ds max 기초
- bash shell 조건문
- exec 시스템 콜
- Today
- Total
Researcher to Developer
LINUX 파일 구조, tty, super block, inode 본문
#가상 파일 시스템
-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/ 컴퓨터에 새로운 디바이스를 추가했을 때 관련된 디바이스들의 하부로 연결되는 디렉토리
'코딩 > Basic' 카테고리의 다른 글
프로세스 ID - pid, ppid 시스템 콜 및 관련 개념 (0) | 2020.12.30 |
---|---|
cp(copy), Hard link, Soft link, Block device, Character device (0) | 2020.12.27 |
LINUX - binary, foreground Process, background Process, 명령어 ps, bg (0) | 2020.12.27 |
LINUX - Standard Stream, Redirection, Pipe (grep 명령어) (0) | 2020.12.27 |
Shell 명령어 - 파일 및 권한 관련 명령어 (0) | 2020.12.25 |