그냥 블로그

[Linux] 파일 및 디렉토리 구조/시스템 본문

CS/운영체제

[Linux] 파일 및 디렉토리 구조/시스템

코딩하는 공대생 2024. 8. 5. 11:43
반응형

HTTP 요청, 응답 정리는 <<< 여기서

💡 요약 및 복기

파일
? 파일은 정보를 저장하는 집합에 이름을 붙인 것. 일반, 디렉토리, 링크, 장치 파일이 있다. 

파일과 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 로스트 휴지통 같은 개념
     

 

 

File System (파일 시스템)

정의논리적인 저장 단위로, 관련된 정보 자료들의 집합에 이름을 붙인 것이다.일반적으로 레코드(Record) 혹은 블록(Block)단위로 비휘발성 보조기억장치에 저장된다.구조MetaData : 데이터 영역에 기

velog.io

 

 

 

🐧 리눅스 디렉토리 구조 한눈에 정리

리눅스 파일의 종류 리눅스는 유닉스 계열을 바탕으로 만들어진 오픈소스 운영체제이다. 그래서 유닉스와 마찬가지로 모든 것들을 파일로 관리한다. 리눅스의 경우 계층구조(트리구조)의 디렉

inpa.tistory.com