(1) proc 파일시스템
: 디스크 대신, 메모리에 위치하는 파일시스템 이다.

/proc 디렉토리에 포함된 파일들을 통해 시스템의 정보나 커널 및 현재 실행중인 태스크의 각종 정보를 알 수 있다.
  - cat /proc/cpuinfo : CPU에 대한 설명을 볼 수 있다.
  - cat /proc/meminfo : 메모리 사용의 세부사항을 볼 수 있다.

○ /proc 디렉토리 내에 숫자로 표시되는 디렉토리는 생성되는 태스크의 PID로서 하위 디렉토리에는 해당 디스크 관련정보가
    들어있다.
  - 해당 디스크 관련 정보를 통해 사용자 레벨에서 태스크의 상태를 간단히 확인할 수 있다.


(2) 디렉토리와 파일 생성 / 제거 커널함수

proc_mkdir()함수 : 디렉토리 생성하는 함수 
  - proc_mkdir_made 함수를 호출한다. 반환값은 구조체의 주소다.

     struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent) 

     - name은 생성할 디렉토리의 이름이다. 
     - parent는 만들어진 디렉토리가 위치할 디렉토리이다. 
     - parent가 NULL이면 /proc 디렉토리로 인지한다 (default값이 /proc)

proc_dir_entry 구조체 : 생성된 디렉토리에 관련된 정보를 담는 멤버변수로 구성되있다. <include/linux/proc_fs.h> 
  - 디렉토리를 생성하려면 먼저  proc_dir_entry구조체 변수를 선언하고 proc_mkdir()함수로 디렉토리를 만든다.

creat_proc_entry() 함수 : proc 파일시스템에 파일을 생성하는 함수 

   struct proc_dir_entry *creat_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent) 

        - name : 생성할 파일이름 
        - mode : 파일의 접근 권한 
        - parent : 파일이 위치할 디렉토리 
        - 반환값은 구조체의 주소값이다.

○ proc_symlink()함수 : 심볼릭링크를 만드는 함수 
  
   struct proc_dir_entry *proc_symlink(const char *name, struct proc_dir_entry *parent, const char *dest) 

        - dest를 name의 이름으로 링크시킨다.
        - #ln -s <dest><name>            ←이 명령으로 심볼릭 링크가능.

remove_proc_entry()함수 : 파일이나 디렉토리제거
 
   void remove_proc_entry(const char *name, struct proc_dir_entry *parent) 
    
        - name : 파일이나 디렉토리 명 
        - parent : name의 경로(위치)


※ 출처 : http://idkkangjs.blog.me/30091117058

by 민트앤라떼 2011. 9. 28. 13:18