현재 보드(S3C6410)에 안드로이드를 올려보려고, 여러가지 시도를 하고 있다. 여러가지 시도라 하면, 보드에 포팅 되어져 있는 2.6.29 커널과 이 커널 위에 올라가게 되는, 아드로이드 이클레어(2.1) 버젼을 가지고 계속해서 테스팅 하는것이다.
그러다가 안드로이드가 올라가면서, 어느 순서대로 초기화를 시켜주는 스크립트를 보게 되는데, 여기 코드를 살펴보면 아래와 같이 되어 있다.
##we uses jffs2 as rootfs
#mount rootfs rootfs / ro remount
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
위에서 보면 write 다음에 /proc/ 라는 경로 비슷한것들이 추가되어 있는데, 이 proc 가 proc 파일시스템의 사용방식이다.
이 내용을 한빛 미디어의 리눅스 디바이스 드라이버 책에서 살펴볼수 있었는데, 이렇게 proc를 설명하고 있다.
" 리눅스 커널에는 사용자가 시스템 정보를 직접 참조할 수 있게 해주는 proc 파일 시스템이 있다. 그러므로 proc 파일 시스템을 이용해 시스템 정보를 쉽게 얻을 수 있다.셸에서 proc 파일 시스템에 접근해 내부 정보를 확인하고, 커널 동작에 필요한 매개변수를 제어할 수 있기 때문이다. 디바이스 드라이버도 커널이다. 그러므로 proc 파일 시스템을 이용해 디바이스 드라이버의 동작을 감시하거나 제어 흐름을 바꿀 수 있다. "
저 위에 나와있는 /proc/sys 는 커널 내부의 매개변수 제어용으로 주로 사용된다고 한다. 디바이스 드라이버 개발자가 디바이스 드라이버의 제어를 proc 파일 시스템을 이용한다면 강제 사항은 아니지만, 이 디렉토리 밑에 해당 디바이스 드라이버의 제어 포인터를 만드는 것이 표준이라고 설명이 되어져 있다.