- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 추상데이터타입
- 베이스
- 발표
- 버퍼오버플로우
- Visual Studio
- 창의공학설계
- 탈색
- 파이썬
- 펌
- BOF
- ubuntu
- 소켓
- 공간복잡도
- 알고리즘
- 블루블랙
- 피보나치
- Debug
- 동대구
- 디버깅
- 염색
- 호출규약
- Packet
- Calling Convention
- 레지스터
- 오지총
- Wireshark
- Hello World
- 컴파일러
- 시간복잡도
- C언어
- Today
- Total
c0smicb0y
Linux File System 본문
파일시스템은 운영체제에서 파일을 쉽게 접근할 수 있도록 저장 또는 조직하는 체제를 가리키는 말이다.
운영체제마다 다르게 설계되어 있으며, 성능 또한 다르다.
리눅스는 ext4라는 파일시스템을 가장 많이 사용하고 윈도우는 NTFS, 솔라리스는 ufs라는 파일시스템을 사용하고 있다.
리눅스에서의 파일시스템을 이해하기 위해서는 i-node와 슈퍼블록에 대해 알아야한다.
i-node
리눅스는 파일을 생성할 때 두가지 과정을 거친다. 파일을 저장하기 위한 공간을 디스크에서 확보하고, 파일에 대한 정보를 저장하기 위해 i-node라는 구조를 만든다. 파일들은 각자의 i-node를 가지고 있으며 리눅스는 모든 i-node를 table에 저장한다.
[표 1] i-node의 내용
정보 |
의미 |
파일 모드 |
파일과 관계된 접근과 실행 권한을 저장하는 16비트 플래그 |
링크 수 |
i-node 번호와 함께 entry를 가지고 있는 디렉토리 수 |
소유자 ID |
파일의 소유자 |
그룹 ID |
파일과 관계된 그룹 소유자 |
파일 크기 |
파일의 바이트 수 |
파일 주소 |
주소 정보 |
액세스 시간 |
마지막으로 파일에 접근한 시각 |
mod 시간 |
마지막으로 파일을 수정한 시각 |
i-node 시간 |
마지막으로 i-node 구조를 수정한 시각 |
블록목록 |
파일의 첫 번째 세그먼트를 가지고 있는 디스크 블록의 번호 목록 |
간접목록 | 다른 블록들의 목록 |
슈퍼블록
파일 시스템 자신에 대한 정보이다. 디스크 헤드와 실린더의 수, i-node 목록의 헤드 등에 대한 정보를 가지고 있다. 리눅스의 버전에 의존적이다.
파일의 종류
1. 일반 파일
대부분의 사용자들이 작업을 할 때 이용하는 것. 문서, 프로그램, 자료 등등
2. 디렉토리 파일
디렉토리에 포함된 다양한 파일들에 대한 위치, 크기, 생성한 시간 등의 정보를 가지고 있음.
.는 현재의 디렉토리
..는 부모 디렉토리를 뜻함
3. 특수 파일
리눅스에서는 주변장치에서 입력을 받거나 출력하려면 /dev 디렉토리에 존재하는 입출력파장치 파일들을 이용한다. 이러한 /dev 디렉토리내의 입출력장치 파일들을 특수 파일이라고 한다.
특수 파일은 문자 특수 파일과 블록 특수 파일로 나눌 수 있다.
문자 특수 파일: 버퍼가 없는 장치로 부터 한 번에 한 문자씩 입출력하는 것(키보드, 모니터, 마우스 등)
블록 특수 파일: 전송 효율을 높이기 위해 일정한 크기의 버퍼로 데이터를 묶어서 전송하는 것 (하드디스크 등)
4. 소켓
두 호스트 컴퓨터 사이의 전달을 담당하는 API. 네트워크 입출력을 담당한다.
5. 네임드 파이프
프로세스 간 통신을 수행하기 위해서 만들어진 파일
6. 심볼릭 링크
윈도우에서 바로가기 같은 개념. 실제 파일의 내용은 그대로 둔 채 그 파일을 가리키는 파일. 링크를 삭제할 때는 링크만 삭제 되고 원본 파일은 그대로 존재. 원본 파일을 삭제할 때도 원본 파일만 삭제되고 링크는 삭제되지 않음.
7. 하드 링크
심볼릭 링크가 원본에 대한 정보만을 가지고 있는 데 비해 하드링크는 원본을 복사한 사본을 생성함. 심볼릭 링크와 마찬가지로 파일을 수정하면 원본과 하드링크 된 파일이 모두 수정되어 같아짐.
리눅스 파일 시스템 구조
'프로그래밍 > Linux' 카테고리의 다른 글
doxygen 사용법 (9) | 2015.12.19 |
---|---|
Qt5 Install on Ubuntu (0) | 2015.11.18 |
GDB TUI (0) | 2015.11.18 |
Linux Kernel (0) | 2015.10.29 |
API & ABI (0) | 2015.09.05 |