Kong Eunho

디렉터리와 파일

2025년 10월 12일 21시
카테고리 - LECTURE, 서버프로그래밍


서버프로그래밍(황승연) 4주차 강의내용

파일의 구성요소

우분투에서는 모든 처리과정을 파일 단위로 처리.
파일의 3대 충족요건 : 파일명, I-node, 데이터 블록.

파일명
사용자가 파일에 정확하게 접근하여 그 사용목적에 맞게 사용할 수 있는 변별력을 제공.

데이터 블록 그룹
효율성을 높이고 성능을 최적화하기 위한 리눅스의 파일 구조.
블록들을 그룹화하여, 같은 파일을 구성하는 블록을 물리적으로 가까운 곳에 저장.
각 블록 그룹은 아래 요소들을 포함.

① 슈퍼 블록
파일 시스템에 대한 전체 정보를 포함하고 있는 블록.

② 그룹 디스크립터 테이블
각 블록 그룹에 대한 메타데이터를 저장하는 테이블.

③ 블록 비트맵
해당 블록 그룹 내의 데이터 블록 사용 상태를 표시하는 비트맵(0, 1).

④ I-node 비트맵
해당 블록 그룹 내의 I-node 사용 상태를 표시하는 비트맵(0, 1).

⑤ I-node 블록
= Index Node. 파일을 설명하는 메타데이터 구조체.
파일의 데이터 블록이 디스크상으로 어느 주소에 위치하고 있는지를 기록.
정보를 저장한 후에는 해당 I-node의 링크 카운터가 0에서 1로 증가.
파일의 종류, 소유권, 액세스 모드, 타임스탬프 등 저장.

⑥ 디렉터리/데이터 블록
파일의 실제 내용을 저장하는 최소 할당 단위.
파일 저장 시 빈 블록들 할당, 해당 블록의 주소를 I-node에 기록.
연속 저장, 분산 저장 가능.

파일의 종류

파일 : 사용자가 이용할 수 있는 데이터의 실체.
우분투는 모든 자원(일반 파일, 프로세스, 하드웨어 등)을 파일로 인식.

우분투의 파일 종류

① 일반(정규) 파일 데이터를 관리하는 데 주로 사용되는 일반적인 파일.
실행 파일과 이미지 파일의 경우 데이터를 바이너리 형태로 저장.
① - 1. 문서 파일
키보드로 입력받은 값만을 가지며, ASCII문자로 구성됨.
① - 2. 이진 파일
문자가 아닌 데이터 파일. 기계어로 구성.
컴파일 수행 과정에서 생성되는 파일(= 실행 파일).

② 디렉터리 파일
우분투에서 관리하는 디렉터리.
해당 디렉터리에 저장된 파일 혹은 하위 디렉터리의 정보를 가짐.
디렉터리 자체가 파일을 액세스하는 데 필요한 정보를 가짐.
전체 파일은 하나의 트리구조로 관리됨.

③ 링크 파일
유닉스와 리눅스는 링크 개념을 통해 여러 개의 파일 이름이 하나의 I-node에 연결됨.
해당 링크는 실제 파일이나 디렉터리, 혹은 또 다른 링크를 가리킴.
③ - 1. 하드 링크
원본 파일과 동일한 I-node를 갖는 사본 파일.
원본 파일의 내용이 변경될 경우 사본 파일의 내용도 자동으로 변경.
하드 링크에서는 원본 파일과 링크 파일이 별개의 파일로 취급.
③ - 2. 심볼릭(소프트) 링크
우분투에서 통상적으로 사용되는 링크 파일.
Windows의 “바로가기”와 동일한 기능.

④ 특수 파일
우분투가 지원하는 파이프, 소켓, 디바이스(주변장치).

문자 파일 종류
- 일반 정규적인 파일
d 디렉터리 파일
l 심볼릭 링크 파일
b 블록 단위의 Read/Write 블록장치 파일
c 섹터 단위의 Read/Write 문자장치 파일
p 프로세스 간 통신에 사용되는 특수 파일 (파이프 파일)
s 네트워크 통신에 사용되는 특수 파일 (소켓 파일)

디렉터리와 파일 관리

디렉터리 계층 구조
우분투 시스템의 디렉터리 구조는 트리 형태.
파일명 뒤의 /는 디렉터리 파일, @는 심볼릭 링크 파일.
작업 디렉터리(.) : 사용자가 접속하여 사용하고 있는 디렉터리.
홈 디렉터리(name ~) : 각 사용자에게 할당되는 디렉터리로 사용자 계정을 처음 만들 때 지정.

절대 경로와 상대 경로
각 경로는 구분자 ‘/’를 사용하여 구분.
절대 경로 : 루트 디렉터리(/) 위치부터 시작하는 경로.
상대 경로 : 현재 디렉터리(.)를 기준으로 시작하는 경로.

파일/디렉터리명 생성 규칙
→ 알파벳, 숫자, ‘-‘, ‘_’, ‘.’ 로만 구성.
→ 알파벳 대/소문자 구별.
→ ‘.’으로 시작할 경우 숨긴 파일로 간주.

◀ 이전 글 LECTURE, 서버프로그래밍
우분투 기본 명령어
2025-10-10
목록으로 다음 글 ▶ LECTURE, 서버프로그래밍
디렉터리 명령어
2025-10-12