sysfs & procfs 인터페이스

TAEWOO HA·2023년 6월 27일
0

유저 스페이스 인터페이스

● 3가지 인터페이스 접근 가능

/dev 내부의 디바이스 노드를 통해 접근
– open/read/write/close/ioctl
– character device
– block device
● sysfs filesystem
– 마치 파일처럼 접근(문자열로 쓰고/읽기)
● Network sockets and related APIs
– 소켓처럼 API를 통해

sysfs

● sysfs의 파일은 디바이스 드라이버의 정보를 가지고 있음.
● class, bus, devices 정보를 유저 스페이스에 전달

read/write/ioctl 대비 편하게 접근
● shell에서 접근 가능
– cat
– echo: 특정 파일은 쓰기 가능
● mount /sys
– mount -t sysfs nodev /sys

sysfs filesystem

● 모든 디바이스는 sysfs에서 보임
● /sys
– properties of the devices
– access the device
● LED
– /sys/class/leds
● PWM
– /sys/class/pwm

IIO
– /sys/class/iio

Kernel objects

● 원래 커널 코드 안에서 객체의 참조 카운터를 효과적으로 관리하기 위해 고안
● 여러가지 기능들이 추가되어서 sysfs와 디바이스 모델의 인터페이스 역할
● sysfs는 kernel object를 활용

sysfs in linux device driver

● Create a directory in /sys
● Create sysfs file

Create a directory in /sys

● kobject_create_and_add => 디렉토리 만듦
struct kobject kobject_create_and_add ( const char name, struct kobject * parent); // parent에 따라 디렉토리 경로가 바뀜.
● Name
– the name for the kobject
● parent
– the parent kobject of this kobject
– kernel_kobj
● “/sys/kernel” 밑에 생성
– NULL
● “/sys” 밑에 생성

Create Sysfs file

● sysfs 파일 생성을 위해서는 kobj_attribute 설정 필요

  • show , store => cat , echo

==> __ATTR 매크로를 통해 생성

Create sysfs file

● sysfs_create_file을 통해 생성
int sysfs_create_file ( struct kobject * kobj, const struct attribute

  • attr);

  • __ATTR : test이름 , 권한 , k_store = function 호출

procfs

0개의 댓글

관련 채용 정보