개발/코딩자율학습단

[코딩자율학습단 13기] 4일차, 리눅스 파일

codesparkling 2025. 3. 15. 18:49

커리큘럼

파일

파일은 컴퓨터에서 데이터를 저장하고 조직화하는 데 사용하는 기본 단위이다. 바이트 단위로 연속해서 저장되어 있다.

파일 시스템

리눅스에서 모든 것은 파일로 취급된다. 디렉토리, 하드웨어 장치(나중에 파일시스템 마운트 등을 실습하다보면 더 와닿을 것이다.) 등등 모든 것을 파일로 다룬다. 이런 구조는 시스템 자원 접근을 통일된 방식으로 처리할 수 있게 해준다.

파일 시스템은 파일에 대한 정보를 관리하는 소프트웨어이다. FAT, NTFS, EXT 등등 여러 종류가 존재하며 OS마다 사용하는 파일시스템도 다르다. 이것들을 용도별로 구분하면 크게 3가지로 구분할 수 있다.

디스크 기반 파일 시스템=

HDD나 SSD 같은 저장 장치를 위한 파일 시스템으로 가장 흔하게 사용된다. 보통 파일 시스템이라 하면 디스크 기반 파일 시스템을 의미한다.

이런 디스크를 사용하기 전에 포맷(format) 을 해야 한다. 포맷은 저장 장치에 파일 시스템을 설치하는 것을 의미한다. 저장 장치를 사용하기 전에 파일 시스템을 설치하고 파일을 저장할 수 있는 상태로 세팅해주는 것이 포맷이다.

네트워크 기반 파일 시스템

원격 컴퓨터에 연결된 저장 장치를 네트워크로 연결해서 로컬 컴퓨터로 사용하는 파일 시스템이다. 대표적인 예시로는 NFS와 Samba 등이 있다.,

가상 파일 시스템

실제 파일을 저장하지 않고, 시스템의 상태 정보를 파일과 디렉토리로 구조화해서 제공한다. procfs와 sysfs가 가상 파일 시스템의 종류이다.

가상 파일 시스템은 커널이 관리하는 데이터를 응용 프로그램이 파일 시스템 형태로 접근할 수 있도록 도와준다. 예를 들어, procfs를 통해서 프로세스에 대한 정보를 파일처럼 확인할 수 있다.

리눅스 파일 계층 구조

리눅스는 윈도우처럼 드라이브가 있는 게 아니라 하나의 루트(Root) 디렉토리 아래에 모든 파일이 존재한다. 먼저 새로운 드라이브를 인식한다. 이 때, /dev/sda, /dev/sdb 등 으로 장치 파일이 생성된다. 그 후 파일 시스템을 포맷하고 마운트 포인트를 생성한다. 파일 시스템이 설치된 디스크를 특정 디렉토리에 연결하는 작업이 마운트이다. 마운트 포인트 생성이 끝나면 mount 명령어를 입력해 마운트를 실행 시킨다. mount /dev/sdb1 /mnt/newdisk 이런 형태로 동작을 하게 된다.

파일의 종류

종류 설명
일반 파일 텍스트 파일, 동영상 파일, 사진 파일 등등
디렉토리 리눅스에서는 디렉토리도 파일이다.
심볼릭 링크 파일 어떤 파일을 가리키는 파일, 윈도우의 바로 가기에 대입하면 쉽다.
블록 디바이스 파일 블록 장치(SSD, HDD, CD …)를 제어하기 위한 파일
문자 디바이스 파일 문자 장치(키보드, 마우스, 프린터 …)를 제어하기 위한 파일
파이프 파일 프로세스 간 통신에 사용되는 파이프를 나타내는 파일
소켓 파일 프로세스 간 통신에 사용되는 소켓을 나타내는 파일

ls -l 명령어를 활용해서 파일 속성을 자세히 볼 수 있는데, 이 때 파일 종류도 함께 출력된다.

표시 문자 파일 종류
- 일반 파일
d 디렉토리
l 심볼릭 링크 파일
b 블록 디바이스 파일
c 문자 디바이스 파일
p 파이프 파일
s 소켓 파일

세 줄 요약

  1. 네트워크 기반 파일 시스템이 있다는 것은 처음 알았다.
  2. 파일 종류가 다양한 것을 확인했다.
  3. 마운트에 대해서 헷갈리는 부분이 있었는데 이번에 정리가 좀 된 것 같다.