[리눅스커널] 워크큐(Workqueue) - 딜레이워크(delayed_work)는 어떻게 초기화하나?
By Guillermo Austin Kim | 2018년 9월 26일 |
딜레이 워크를 실행하기 위해서 먼저 딜레이 워크를 초기화해야 합니다. 이를 위해 INIT_DELAYED_WORK() 매크로 함수를 호출해야 합니다. 먼저 딜레이 워크를 초기화하는 디바이스 드라이버 코드를 열어 봅시다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/thermal/da9062-thermal.c#L248]1 static int da9062_thermal_probe(struct platform_device *pdev)2 {3 struct da9062 *chip = dev_get_drvdata(pdev->dev.parent);4 struct da9062_thermal *thermal;...5 INIT_DELAYED_WORK(&th
[bash: strings] 바이너리 파일에서 문자열만 골라 출력하기
By 반달가면 | 2017년 4월 6일 |
strings는 바이너리 파일에 포함되어 있는 문자열만 골라 화면에 출력해 주는 기능을 제공한다. 별도의 옵션을 지정하지 않을 경우 4바이트 이상의 문자열이 존재할 경우 화면에 출력해 준다. 아래의 예시를 보자. # my_data.bin 파일에 포함된 문자열 출력 strings my_data.bin 화면에 출력할 문자열의 최소 길이는 기본값이 4이나, -n 옵션을 이용해서 사용자가 직접 지정해 줄 수도 있다. # my_data.bin 파일에 포함된 길이 8바이트 이상의 문자열 출력 strings -n 8 my_data.bin 만약 출력 결과에 파일명을 같이 표시해 주고 싶다면 -f 옵션을 이용한다. # 파일명을 함께 출력(-f) strings -f my_data.bin my
CentOS 리눅스에서 SELinux 상태 확인 및 비활성화
By 반달가면 | 2018년 9월 19일 |
CentOS에서 보안강화 기능인 SELinux(Security Enhanced Linux) 상태를 확인하려면 터미널창에서 아래와 같이 입력하면 된다. # SELinux 상태 확인 sestatus 출력된 내용에서 "SELinux status" 항목을 보자. 활성화(enabled) 또는 비활성화(disabled)일텐데, 기본값은 활성화이다. 특별히 문제가 없다면 굳이 SELinux를 비활성화할 필요는 없을 것이나, 만약 뭔가 문제가 있어서 비활성화하려면 /etc/selinux/config 파일을 편집해야 한다. 시스템 설정 파일이므로 루트(root) 권한을 필요로 한다. # /etc/selinux/config 파일 편집 sudo vi /etc/selinux/config 설정 파일에
[리눅스커널][시스템콜] ftrace로 시스템 콜 인자 디버깅하기
By Guillermo Austin Kim | 2019년 2월 21일 |
ftrace는 시스템 콜 디버깅을 위한 이벤트를 제공합니다.sys_enter, sys_exit 이라는 ftrace 이벤트를 쓰면 시스템 콜 동작을 확인할 수 있습니다. 위 이벤트를 키면 다음과 같은 시스템 콜 디버깅 정보를 출력합니다.1> 시스템 콜 번호2> 시스템 콜이 실행와 종료 시각3> 시스템 콜 핸들러 함수로 전달된 인자 sys_enter와 sys_exit ftrace 이벤트는 어떻게 설정할 수 있을까요? 다음 명령어로 sys_enter와 sys_exit 이벤트를 키는 enable 파일을 1로 써주면 됩니다.echo 1 > /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/enableecho 1 > /sys/kernel