코딩 팁

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

코딩 기록 vicddory 2017. 3. 19. 14:35

리눅스 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)

반응형
그리드형(광고전용)