본문 바로가기
C++ 200제/코딩 IT 정보

리눅스 PROC 1. 파일 시스템 이해하기 (Linux Format)

by vicddory 2017. 3. 19.

리눅스 PROC 1. 파일 시스템 이해하기 (Linux Format)


리눅스 proc 파일시스템이란?

proc 파일 시스템은 운영체제의 각종 정보를 커널 모드가 아닌 유저 모드에서 쉽게 접근할 수 있도록 만들어 줌

- 시스템 정보를 일반 프로그래머가 쉽게 접근할 수 있도록 도와준다.


리눅스에서는 프로세스 정보뿐 아니라 다른 시스템 정보(Linux Format)들까지 광범위하게 제공

- 프로세스 상황감시에서부터, CPU사용율, 인터럽트, 네트워크 패킷전송량, 적재된 모듈, IDE-SCSI와 같은 장치정보, CPU정보 등

- Proc 파일시스템을 제대로 이해할 경우 리눅스 운영체제를 깊이 있게 다룰 수 있다 


리눅스 proc 파일시스템의 필요성

일반 파일 시스템을 이용해서 필요한 데이터를 남기는 방법

- open, read, write 이 3개의 함수만 사용할 줄 안다면, 필요한 모든 데이터를 읽고 쓰기가 가능하다.

일반 파일 시스템은 상당한 오버헤드 발생

- 각 파일의 inode와 같은 객체를 관리해야 하고, 

- 이러한 정보(Linux Format)를 필요할 때마다 운영체제에 요청

- 모든 것을 운영체제가 관리해주므로 상당한 오버헤드 발생


 proc 파일시스템

- 리눅스 커널에서 직접 파일시스템을 관리하는 방법을 채택


1. 파일 시스템 오버헤드를 줄여 준다

mount 명령으로 proc 파일 시스템이 자동으로 마운트 된 것을 확인할 수 있다.


mount 명령으로 proc 마운트 확인[Linux 프로그래밍 기초] mount 명령으로 proc 마운트 확인


운영체제가 부팅 시 자동으로 생성되는 파일시스템이다.

어떤 장치에도 마운트 되어 있지 않다

- 커널 메모리상에 가상파일 시스템 (Linux Format)

- 메모리에서 동작하고 커널이 직접 관리하므로 속도가 빠르다


2. 물리적인 파일시스템 장치가 필요 없다

리눅스 proc은 커널 메모리에서 유지하는 파일 시스템이다.

별도의 장치(하드디스크 등) 필요로 하지 않는다.

임베디드시스템을 설계할 때 중요한 요소가 된다.


3. 최적화된 파일 작업 수행한다

일반적인 파일 시스템 계층은 프로그래머를 위해서 POSIX 형식의 인터페이스를 제공

- open, read, write, close

- POSIX (Portable Operating System Interface for Computer Environment)

   - 라이브러리, 시스템 호출 등에 대한 표준 사양

   - 이식성을 가진 인터페이스


리눅스 PROC 1. 파일 시스템 이해하기 (Linux Format)[Linux 프로그래밍 기초]


최적화된 인터페이스 사용

- 일반 파일 시스템은 대용량의 데이터를 다루는 데 유용한 반면 데이터양이 적은 분야는 비효율적이다

- proc 파일시스템은 데이터(Linux Format)의 양이 적으며, 사용하는 정보가 대부분 정해져 있으므로 일반 파일시스템은 부적절


리눅스 proc 파일시스템의 사용


1. 커널 모듈 프로그래밍

- 커널 모듈과 같이 커널과 밀접하게 관계있는 프로그램에서 유용

- 주로 장치를 올리기 위한 용도로 사용되는데, 커널 레벨에서 작동하다 보니 모듈의 작동상황이나 성능 등을 알아오기가 그리 쉽지 않다

- proc를 사용하여 간단하게 해결할 수 있다. (Linux Format 응용)


2. 임베디드 프로그래밍

- 파일 시스템을 구동하지 못하는 임베디드 시스템은 proc를 이용해서 관리자 환경이라든지 데이터 입출력 환경을 구축할 수 있다.



리눅스 PROC 1. 파일 시스템 이해하기 (Linux Format)

댓글