Computer >> 컴퓨터 >  >> 시스템 >> Linux

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

Linux의 가장 큰 장점 중 하나는 시스템에 대한 강력한 제어권입니다. 원하는 것은 무엇이든 수정할 수 있고, 유연하게 활용할 수 있는 요소도 무척 많습니다. 더불어 Linux는 매우 투명한 운영체제이기도 합니다. 오류 메시지가 명확하고, 시스템의 내부 작동 방식을 어렵지 않게 확인할 수 있습니다. 그 내부를 들여다보는 가장 좋은 방법 중 하나가 바로 "/proc" 디렉터리입니다. 이 글에서는 "/proc" 디렉터리를 활용해 Linux 시스템의 내부 작동을 살펴보는 방법을 소개합니다.

/proc 디렉터리란?

"/proc" 디렉터리는 Linux 시스템이 부팅될 때마다 처음부터 새로 생성되며, 시스템이 실행되는 동안 계속 유지됩니다. 커널은 시스템의 모든 하드웨어를 조사해 그 정보를 이곳에 저장하므로, 다른 프로그램들이 시스템 하드웨어의 상세 정보를 손쉽게 참조할 수 있습니다.

"/proc"에 대해 가장 중요하게 이해해야 할 점은 일반적인 파일을 담고 있는 평범한 디렉터리가 아니라는 사실입니다. 이곳은 시스템 내부를 들여다볼 수 있는 일종의 '창'에 가깝습니다. 이 디렉터리의 파일들은 일반 문서나 MP3처럼 하드 드라이브에 저장되는 것이 아니라, Linux 커널이 실시간으로 생성합니다. 예를 들어 "/proc/meminfo" 파일에 접근하면 메모리 사용량이 거의 항상 변동하기 때문에 열 때마다 다른 결과가 표시될 가능성이 높습니다.

이런 시스템 정보를 "/proc"과 같은 가상 파일시스템에 담은 것은 "모든 것은 파일이다(everything is a file)"라는 UNIX 철학을 따른 결과입니다. 덕분에 누구나 특별한 라이브러리나 언어 없이 일반 텍스트 파일을 읽듯이 쉽게 정보를 확인할 수 있습니다. 사용자 입장에서는 최신 시스템 정보가 언제나 손쉽게 제공된다는 의미이기도 합니다.

참고: 여기서 언급하는 파일들은 어떤 텍스트 편집기로든 문제없이 열 수 있습니다. 아래 예시에서는 터미널에서 표준 cat 명령어로 내용을 출력했습니다.

/proc/cpuinfo

"/proc"을 조금이라도 사용해 본 적이 있다면 이 파일을 이미 알고 있을 가능성이 높습니다. "/proc/cpuinfo"의 내용을 출력하면 현재 사용 중인 CPU가 정확히 무엇인지, 어떤 기능을 지원하는지 자세히 확인할 수 있습니다.

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

/proc/meminfo

"/proc"에서 또 하나 잘 알려진 파일인 "meminfo"는 매우 유용하게 활용할 수 있는 파일입니다. 메모리와 스왑(swap) 사용량 정보를 보여주며, 스크립트나 프로그램이 사용 가능한 메모리를 파악하는 방법 중 하나로도 널리 쓰입니다.

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

/proc/cmdline

이 파일에는 커널을 시작할 때 사용된 옵션이 표시됩니다. 부팅 문제를 해결하거나 부팅에 어떤 커널 파일이 사용되었는지 확인해야 할 때 유용합니다. Nouveau 드라이버 블랙리스트 설정이 제대로 적용되었는지 검증하는 용도로도 활용할 수 있습니다.

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

/proc/filesystems

덜 알려졌지만 여전히 유용한 파일이 "filesystems"입니다. 여기에서 현재 커널이 지원하는 파일시스템 목록(다소 방대함)을 확인할 수 있습니다. 이 목록 전부가 데이터를 저장하는 데 쓰이는 파일시스템은 아니며, 일부는 "/proc" 자체처럼 특수한 용도로 사용되는 것들입니다.

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

/proc/PID

여기서 PID는 실행 중인 프로그램의 프로세스 ID입니다. 각 프로세스는 해당 프로그램 인스턴스를 식별하기 위해 시스템이 부여하는 고유 번호를 가집니다. 예를 들어 명령줄에서 top 명령어를 실행하면 실행 중인 프로세스 목록과 각각의 PID를 확인할 수 있습니다. 각 프로세스는 "/proc" 안에 자신만의 하위 디렉터리를 가지며, 이를 탐색하면 해당 프로세스에 대한 세부 정보를 얻을 수 있습니다.

/proc/modules

"/proc"에서 가장 중요한 파일 중 하나인 "modules"에는 현재 활성화된 커널 모듈의 전체 목록이 담겨 있습니다. 비디오 드라이버 문제를 해결해 본 경험이 있다면 이 파일이 얼마나 유용한지 잘 알 것입니다. 매일 사용할 파일은 아니지만, 문제 해결 시에는 생명줄 같은 역할을 할 수 있습니다.

/proc 파일 시스템으로 Linux 내부 작동 들여다보기

/proc/mounts

"mounts" 파일을 열면 마운트된 모든 장치를 빠르고 간편하게 확인할 수 있습니다. 물론 이 목록의 많은 항목이 사용자가 반드시 알아야 하는 마운트 지점은 아닙니다. 사용자와 관련된 대부분의 항목은 목록 하단쪽에 위치합니다.

마무리

"/proc"에는 이 글에서 다룬 것보다 훨씬 더 많은 내용이 담겨 있습니다. 이 글을 읽는 분들이라면 직접 "/proc"을 둘러보며 자신에게 실질적으로 도움이 되는 정보를 찾아보길 권합니다. 이곳의 많은 파일들이 운영체제 자체에서 사용하도록 만들어졌지만, 모두 Linux의 작동 방식을 엿볼 수 있는 귀중한 창구가 됩니다.

이제 "/proc" 디렉터리를 살펴보는 방법을 알았으니, 다음으로 Hosts 파일을 활용해 로컬 서버에 접속하고 광고 및 특정 웹사이트를 차단하는 방법도 알아보세요. Linux의 가상 디렉터리 구조에 대해 더 자세히 알아보는 것도 좋습니다.