Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 2623
- WebRTC란
- 구슬탈출
- c++
- 1796
- tfjs
- 백준
- 구현
- 메모리계층
- dp
- ESP32
- TDD란?
- 테스트주도개발
- 적두트리
- Vite 사용 이유
- 풀이
- 3XN 타일링
- REACT
- mediastream
- 백준 2133
- 데이터 링크 계층
- 자료구조
- OpenVidu
- 13459
- TDD
- 페이지교체알고리즘
- LOLIN D32
- stl
- RBT
- 9996
Archives
- Today
- Total
그냥 블로그
[Linux] 파일 및 디렉토리 구조/시스템 본문
반응형
💡 요약 및 복기
파일 ? 파일은 정보를 저장하는 집합에 이름을 붙인 것. 일반, 디렉토리, 링크, 장치 파일이 있다.
파일과 Directory 차이 ? Directory는 일종의 파일 종류이다. 하위 파일/Dir 에 대한 정보와 데이터를 담고 있다. 파일은 데이터 저장.
파일 시스템 ? 파일을 효과적으로 관리하기 위한 시스템이다. 커널 영역에서 동작한다.
=> 파티션 마다 파일 시스템을 둘 수 있음.
파티션 ? 물리적인 공간을 나누는 것. 순차 접근, 직접 접근, 인덱스 접근 ? 이 있따.
(직접 접근은 db에서 사용됨)
디렉토리 구조 ? 계층적 구조 Three에 해당하는 비순환 구조에 가까움.
파일 시스템
파일
논리적인 저장 단위, 관련된 정보 자료들의 집합에 이름을 붙인 것.
레코드(Record), 블록(Block) 단위로 비휘발성 보조기억장치에 저장된다.
File Attribute ( Meta Data )
- 파일을 관리하기 위한 각종 정보
- Name : 사람이 읽을 수 있는 형태의 유일한 정보
- Identifier : 파일 시스템 내부 유일한 식별 태그
- Type : 다양한 종류의 File을 지원하기 위해 필요
- Location : 장치 내에서 파일의 위치를 위한 포인터
- Size : 현재 파일의 크기
- Protection : 읽기, 쓰기, 실행에 대한 권한 제어
- Time, date, and user identifaction : 파일 사용에 대한 보호, 보안, 모니터링을 위한 데이터
일반 파일 : 데이터 저장에 사용되는 파일.
디렉토리 파일 : 디렉토리도 파일의 종류 중 하나다. 저장되어 있는 정보 및 하위 디렉토리 정보 담음
링크 파일 : 원본 파일을 대신해 사용하기 위해 다른 파일명으로 링크된 파일. 참조나 포인터 개념. 윈도우 운영체제의 바로가기 기능
장치 파일 : 장치(하드웨어)들을 관리하는 파일. 하드 디스크, cpu, cd-rom과 같이 유형의 장치들을 파일화해서 관리한다.
File System
컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있또록, 유지 관리하는 방법
저장 매체에는 수많은 파일이 있기 때문에, 이런 파일들을 관리하는 방법
특징
- 커널 영역 동작
- 파일 CRUD 기능 수행 목적
- 게층적 Directory 구조
- 디스크 파티션 별로 하나씩 둘 수 있음.
역할
- 파일 관리 (CRUD, Turcate: 파일 내부 내용 삭제 )
- 보조 저장소 관리
- 파일 무결성 메커니즘
- 원본이 조작되었는지 확인
- 접근 방법 제공
개발 목적
- 하드 디스크와 메인 메모리 사이 속도 차이를 줄임
- 파일 관리
- 하드디스크 용량의 효율적 사용
Partition (파티션)
연속된 저장 공간을 하나 이상의 연속되고 독립적인 영역으로 나누어 사용할 수 있도록 정의한 규약
하나의 물리 디스크 내부에 여러 파티션을 둠
여러 물리 디스크를 하나의 파티션으로 구성하기도 한다.
Access Method (접근 방법)
Sequential Access (순차 접근)
파일 정보를 레코드 순서대로 처리
- 현재 위치에서 읽거나 쓰면 offset 자동 증가
- 뒤로 돌아가기 위해선 되감기 필요
Direct Access (직접 접근)
파일 레코드를 임의 순서로 접근 가능
- read n : n 번째에 접근
- wirte n : n 번째에 접근
- position to n : n 번쨰 위치로 포인터 이동
- rewrite n
- 현재 위치를 가리키는 cp 변수만을 유지하면, 순차 파일 기능을 쉽게 구현 가능
- 대규모 정보를 접근할 때 유용해 "데이터 베이스"에 활용
- 데이터베이스랑 파일 시스템 간의 관계
Index Access ( 색인 접근 )
파일에서 레코드를 찾기 위해 색인을 먼저 찾고 대응되는 포인터를 얻음
- 크기가 큰 파일을 입/출력 탐색 가능하도록 하는 방법
Directory Structure (디렉터리 구조)
- Directory는 파일의 메타데이터 중 일부를 보관하고 있는 특별한 파일
- 해당 Directory에 속한 파일 이름, 속성들을 포함.
- 파일 찾기, 생성, 삭제, Directory 나열, 파일 이름 수정, 파일 시스템 순회 기능을 제공한다.
구성
- Efficiency : Directory는 파일을 빠르게 탐색할 수 있어야 한다.
- Naming : 적절한 이름으로 사용자들이 편리하게 사용할 수 있으면 좋다.
- Grouping : 파일들을 적절한 분류로 그룹화 해두면 사용하기 편리함.
Single Level (1단계) Directory
모든 파일들이 디렉터리 밑에 존재하는 형태
파일들은 서로 유일한 이름을 갖는다.
Two Level (2단계) Directory
각 사용자 별로 별도의 디렉터리를 갖는다
서로 다른 사용자들은 동일한 파일 이름을 사용 가능
효율적인 탐색 기능
종류
- UFD : 자신만의 사용자 파일 디렉터리
- MFD : 사용자으 ㅣ이름과 계정 번호로 색인되어 있는 디렉터리. 각 엔트리는 사용자의 UFD를 가르킴
Grouping x
Tree Structured Directories
사용자들이 자신의 서브 디렉터리(Sub Directory)를 만들어 파일 구성 가능
각 사용자는 하나의 루트 디렉터리를 가지면, 모든 파일은 고유한 경로(절대/상대)를 갖는다.
- 경로를 이용해 효율적인 탐색 및 그룹화 가능
- 디렉터리는 일종의 파일이다. 일반 파일과 디렉터리 구분 필요
- bit 0 : 일반
- bit 1 : 디렉터리
비순환 그래프 ( Acyclic Graph ) Directory
디렉터리들이 서브 디렉터리들과 파일을 공유할 수 있도록 한다
서로다른 사용자가 동일한 파일에 대해 서로 다른 Alias(별칭) 사용 가능
- 파일을 무작정 삭제하게 되면 현재 파일을 가르키는 포인터는 대상이 사라짐 Dangling Pointer
- 참조되는 파일에 참조 계수를 둔다 : 참조 계수가 0이면 파일 참조 링크 존재하지 않는단 의미로, 파일을 삭제할 수 있도록 함.
General Graph (일반 그래프) Directory
순환을 허용하는 그래프 구조
순환 허용 시 무한 루프에 빠질 수 있어 잘 사용하지 않음.
- 순환이 발생하지 않도록 하위 디렉터리가 아닌 파일에 대한 링크만 허용하거나, GC를 통해 전체 파일 시스템을 순회하고 접근 가능한 모든 것을 표시한다.
LINUX 디렉토리 구조
위치 | 이름 | 설명 |
/ | 루트 | 최상위 디렉토리 |
/bin | 바이너리 | 이진파일(실행 파일) 기본적인 명령어가 저장된 디렉토리 mv,cp,rm 등 명령어들이 존재한다. |
/boot | 부트 | 리눅스 부팅관련 정보들이 있는 디렉토리 |
/dev | 디바이스 | 장치파일을 저장하고 있는 디렉토리 물리적 장치가 파일화되어 저장됨 |
/etc | 설정 파일을 ㅜ는 디렉토리 | |
/home | 홈 | 사용자들의 홈 디렉토리가 있는 곳 사용자를 추가하면 사용자 id와 동일한 디렉토리가 자동 생성 |
/lib | 라이브러리 | 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈 파일 등이 존재하는 디렉토리 |
/media | 미디어 | DVD, CD-ROM, USB 등 외부 장치들의 마운트 포인트(연결)로 사용하는 디렉토리 |
/mnt | 마운트 | /media 와 비슷한 기능을 한다. Media는 OS에서 자동 마운팅해주는 포인트로 주로 사용되고 Mnt는 사용자가 직접 마운트하는 경로다. |
/opt | 옵트 | 추가 응용프로그램 패키지 설치 장소 |
/proc | 프로세스 | '가상파일 시스템'이라고 하는 곳으로 현재 메모리에 존재하는 작업들이 파일 형태로 존재 프로세스 정보 들 커널 관련 정보가 저장 |
/root | 루트 | 관리자 계정 root 사용자의 홈디렉토리 (/ 디렉토리와 다르다. 이건 사용자의 디렉토리) |
/sbin | 시스템 바이너리 | 시스템 이진 파일 ifconfig, ethtool, halt, e2fsck 같은 시스템 명령어 저장 |
/usr | 유저 | 일반 사용자들이 사용 |
/var | 바 | 기ㅂ타 모든 다용도로 사용될 수 있는 파일들 저장. 로그 파일, 데이터베이스 캐싱 파일, 웹 서버 이미지 파일 등 위치 |
/sys | 시스템 | 디바이스 관리를 위한 가상 파일 시스템 디렉토리 |
/run | 런 | Run-time varaible data를 관리. 부팅 후 시스템 정보 관리하는 디렉토리 |
/tmp | 템프 | 임시 파일을 저장하기 위한 디렉토리. 재부팅 시 삭제되며, 정기적으로 10일 간격 삭제 |
/lost_found | 로스트 | 휴지통 같은 개념 |
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 🧐 프로세스 메모리 구조 모델 (0) | 2024.07.22 |
---|---|
[운영체제] 교착 상태 (1) | 2023.10.29 |
[운영체제] 프로세스와 스레드 (1) | 2023.10.28 |
[운영체제] 메모리 (1) | 2023.10.22 |
[운영체제] 운영체제와 컴퓨터 (0) | 2023.10.19 |