[리눅스커널][시스템콜] 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
[리눅스커널] 동기화: 뮤텍스의 기본 개념 소개하기
By Guillermo Austin Kim | 2019년 9월 14일 |
뮤텍스 소개 스핀락과 더불어 커널에서 가장 많이 쓰이는 락(Locking) 기법은 뮤텍스입니다. 뮤텍스는 휴면을 지원하며 프로세스 컨택스트에서 주로 쓰는 락(Locking) 기법입니다. 먼저 뮤텍스의 기본 개념과 동작 원리를 설명합니다. 이후 스핀락과 차이점을 알아보면서 뮤텍스의 특징을 살펴보고 뮤텍스 관련 커널 함수를 분석합니다. 뮤텍스(mutex)는 상호 배제(mutual exclusion)의 약자로 임계 영역에 한 개의 프로세스만 접근하는 동기화 기법입니다. 뮤텍스(mutex)는 사실 리눅스 커널에서만 쓰이는 락(Locking) 기법은 아닙니다. 뮤텍스는 운영 체제에서 쓰는 용어입니다. 뮤텍스는 '임계 구역에 2개 프로세스가 동시에 접근하지 못하도록 막는 기법'인데 서로 다른 운영체제마다 달
[bash: sed] 리눅스에서 윈도우 텍스트 파일의 CR(캐리지 리턴) 제거
By 반달가면 | 2017년 6월 5일 |
윈도우에서 만들어진 텍스트 파일의 일부분을 리눅스쪽에서 가져다가 작업하면서 발생했던 문제다. grep을 이용해서 파일의 특정한 부분을 가져온 후에 다른 내용과 조합해서 출력해야 하는 상황이었다. 대략 아래의 예시와 같다. # from_windows.txt 파일 내용중 처음 출현한 시간(HH:MM:SS 형식) 추출 및 출력 time_val=`cat from_windows.txt | grep "[012][0-9]:[0-5][0-9]:[0-5][0-9]" | head -1` echo "$time_val 발견!" 발견!55 추출한 값을 변수 time_val에 저장한 후에 echo 명령으로 위의 예시와 같이 출력을 했는데, 변수값 뒤에 출력되어야 할 문자열이 맨 앞으로 오는 문제가 발생. 이렇게 되
yum - CentOS 패키지 관리자
By 반달가면 | 2016년 10월 27일 |
CentOS에서 사용되는 패키지 관리자 yum에 대한 기본 옵션이다. 최근에 CentOS를 만질 일이 좀 생겨서 정리해 두기로. 패키지 목록 확인은 list 옵션을 사용. # 전체 패키지 목록 출력 yum list all # 설치된 패키지 목록만 출력 yum list installed 찾고 싶은 패키지를 grep 명령을 조합하여 검색하면 편리하다. # 패키지 이름중에 httpd가 포함된 것만 출력 yum list all | grep httpd # 설치된 패키지 이름중에 httpd가 포함된 것만 출력 yum list installed | grep httpd 패키지 설치와 제거는 install/remove 옵션을 사용. # httpd 패키지 설치 yum ins