[Computer Science]/[운영체제(OS)]

[운영체제(OS)] 15-1) 파일 시스템 - 파티션, 마운팅

극꼼 2023. 5. 2. 08:58
반응형


<파일 시스템>

: 범용 컴퓨터 시스템에는 여러 저장장치가 있을 수 있으며, 이러한 장치는 파티션으로 분할되어 볼륨을 보유하고 볼륨은 다시 파일 시스템을 보유합니다. 

* 다양한 유형의 파일 시스템

  • tmpfs : 휘발성 메인 메모리에 생성되는 임시 파일 시스템
  • objfs : 파일 시스템으로 보이는 커널 인터페이스로, 디버거가 커널 심볼에 접근할 수 있게 하는 가상 파일 시스템
  • ctfs : 시스템이 부트될 때부터 운영체제가 실행되는 동안 실행되어야 하는 프로세스를 관리하기 위한 "contract" 정보를 저장하기 위한 가상 파일 시스템
  • lofs : 한 파일 시스템 대신 다른 파일 시스템에 접근할 수 있게 해주는 loop back 파일 시스템
  • procfs : 모든 프로세스에 관한 정보를 파일 시스템 형태로 보여주는 가상 파일 시스템
  • ufs, zfs : 범용 파일 시스템
  • devfs : 운영체제 상에서 제공되는 특별한 목적의 파일 시스템으로, 파일의 생성, 삭제, 권한에 대한 관리를 자동으로 감독

<마운팅>

: 파일 시스템은 프로세스들에 의해 사용되기 전에 마운트 되어야 합니다. 각 파티션들이 마운트되어야 파일 시스템 네임 스페이스 안에서 이용 가능합니다. 

1) 운영체제 장치 이름과 파일 시스템을 부착할 수 있는 파일 구조 내의 위치(또는 마운트 포인트)를 줍니다. 일반적으로 마운트 포인트는 파일 시스템이 부착될 비어있는 디렉토리 입니다.

2) 운영체제는 장치가 유효한 파일 시스템을 포함하는지를 확인합니다.

3) 운영체제는 파일 시스템이 지정된 마운트 포인트에 마운트되었음을 디렉토리 구조에 기록합니다.

마운트하지 않은 상태

위 이미지(15.3)에서 (a)는 기존 파일 시스템으로 운영체제가 접근할 수 있고, (b)는 마운트되기 전의 볼륨이라 운영체제가 접근할 수 없습니다.

/users에 마운트된 상태

위의 이미지(15.4)는 /users를 마운트 포인트로 지정하여 마운트시킨 이미지입니다. 언마운트하면 기존으로(15.3) 돌아가고 기존 파일 시스템에 접근할 수 있게 됩니다.

 

macOS 운영체제의 경우 : 시스템이 디스크를 처음 발견하면 운영체제는 장치에 존재하는 파일 시스템을 검색 -> 발견하면 파일 시스템을 /volumes 디렉토리에 자동으로 마운트하고, 장치 디렉토리에 저장된 팡리 시스템의 이름이 붙은 폴더 아이콘을 추가 -> 사용자는 아이콘을 클릭하여 새로 마운트된 파일 시스템을 탐색 가능

Microsoft Windows 계열 운영체제의 경우 : 확장된 2단계 디렉토리 구조를 유지하며, 장치와 볼륨에 드라이브 문자가 할당됩니다. 각 볼륨은 드라이브 문자와 연관된 일반적인 그래프 디렉토리 구조를 가집니다.

  • Windows : 부팅 시 발견한 모든 장치에 존재하는 파일 시스템을 자동으로 마운트
  • UNIX : 마운트 명령어가 명시적으로 필요

<파티션과 마운팅>

각 파티션은 파일 시스템을 포함하지 않은 raw 파티션, 파일 시스템을 포함하는 cooked 파티션으로 나뉩니다. Raw 디스크는 파일 시스템이 사용되지 않는 곳에 사용됩니다(스왑 공간용, RAID 시스템에서 필요한 정보(RAID 구성 정보를 수록한 축소형 데이터베이스, 어떤 블록이 mirrored되었는지를 가리키는 비트맵)를 저장하는 용). 

 

파티션에 부팅 가능한 파일 시스템이 포함되어 있으면 부팅 정보도 필요로 하게 됩니다. 부팅 정보는 대개 이미지처럼 메모리에 적재되는 연속된 블록이며, 첫 번째 바이트와 같이 미리 정해진 위치에서 시작됩니다.

 

부트스트랩 로더는 커널을 찾아 적재하고 실행시킵니다. 이 부트 로더는 특정 운영체제를 부트할 수 있는 명령어 이상을 포함하고 있으며, 일단 적재되면 그 드라이브에서 이용 가능한 운영체제 중 하나를 부트할 수 있습니다. 부트 로더가 특정 파일 시스템 형식을 이해하지 못할 경우 해당 파일 시스템에 저장된 운영체제는 부트할 수 없습니다.

 

부트 로더에 의해 선택된 운영체제 커널과 루트 파티션이 부팅될 때 마운트됩니다. 다른 파티션은 부트 시에 자동으로 마운트되거나, 운영체제에 따라서는 수동으로 나중에 마운트됩니다. 운영체제는 메모리에 존재하는 마운트 테이블에 파일 시스템이 마운트되었다는 것과, 파일 시스템 유형을 기록합니다.

 

  • Windows 기반 시스템 : 각각의 파티션을 문자와 콜론으로 명시된 다른 네임스페이스에 마운트합니다. (ex) :F
  • UNIX : 파일 시스템은 어떤 디렉토리에도 마운트 될 수 있고, 디렉토리의 메모리 내 inode의 한 플래그를 설정함으로써 구현됩니다. 플래그는 디렉토리가 마운트 포인트임을 가리킵니다.

 

반응형