[리눅스커널][태스크릿] 태스크릿(struct tasklet_struct) 이란 무엇인가
By Guillermo Austin Kim | 2019년 4월 10일 |
![[리눅스커널][태스크릿] 태스크릿(struct tasklet_struct) 이란 무엇인가](https://img.zoomtrend.com/2019/04/10/c0246238_5cab1fa8e68d1.png)
태스크릿은 프로세스와 전혀 상관 없는 용어입니다. 태스크릿이란 이름 때문에 많은 분이 프로세스와 관련됐다고 오해할 수 있습니다. 태스크릿은 Soft IRQ 서비스 중 하나로 동적으로 Soft IRQ 서비스를 쓸 수 있는 인터페이스입니다. 드라이버 레벨에서 태스크릿은 자주 쓰고 활용합니다. 태스크릿은 무엇일까? 우리는 인터럽트 후반부 기법으로 Soft IRQ에 대해 다음과 같은 내용을 배웠습니다. 인터럽트 핸들링 후 바로 Soft IRQ 서비스 실행 인터럽트 발생 후 바로 후반부를 처리할 때 용이 다른 인터럽트 후반부 기법에 비해 Soft IRQ는 인터럽트 후반부를 빨리 처리해야 할 때 적용합니다. 그러면 이런 장점이 있는 Soft IRQ 서비스를 드라이버 레벨에서 쓰면 좋을 때가 있습니다
[라즈베리파이] 시스템 콜 - 유저 공간에서 시스템 콜 발생
By Guillermo Austin Kim | 2018년 11월 14일 |
유저 공간에서 커널 공간까지 어떤 코드로 시스템 콜을 구현했는지 분석을 시작합니다. 유저 모드에서 시스템 콜을 발생하면 커널 모드로 어떻게 스위칭하고 이후 시스템 콜 핸들러가 실행하는지 파악하는 것입니다. 가장 먼저 이런 의문이 생깁니다. 시스템 콜은 실행 시작점은 어디일까요? 유저 공간에서 리눅스 저수준 함수를 호출했을 때가 시스템 콜 실행의 출발점입니다. 다음 전체 시스템 콜 흐름도에서 검은색으로 된 부분입니다. 리눅스 저수준 함수를 호출하면 실행하는 GNU C 라이브러리(glibc)가 어떤 흐름올 시스템 콜을 호출하는지 알아봅시다. GNU C 라이브러리 실행 흐름유저 공간에서 시스템 콜을 실행하기 위해서는 저수준 표준 함수를 호출해야 합니다.저수준 표준 함수는 glibc 라이브러리에 구현돼 있어 실
[리눅스커널][시스템콜] ftrace로 시스템 콜 실행 확인하기
By Guillermo Austin Kim | 2019년 2월 21일 |
시스템 콜 관련 코드를 분석하다 보면 다음과 같은 의문이 생기지 않나요? 평소 시스템 콜은 얼마나 자주 발생할까?시스템 콜 번호는 어떻게 확인할 수 있을까? 이 의문에 대한 답은 ftrace 로그에서 찾을 수 있습니다. 시스템 콜을 ftrace 로 디버깅을 할 수 있기 때문입니다. 이를 위해 ftrace를 다음과 같이 설정합니다.1 "echo 1 > /sys/kernel/debug/tracing/events/sched/sched_switch/enable"2 "echo 1 > /sys/kernel/debug/tracing/events/raw_syscalls/enable"3 "echo 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_entry/e
리눅스 민트에서 GRUB 부트 메뉴 표시하기
By 반달가면 | 2019년 7월 5일 |
리눅스 민트(Linux Mint)의 부팅 화면에는 통항 GRUB 부트 메뉴가 보이지 않는다. 부팅할 때 쉬프트(shift) 키를 누르고 있으면 메뉴를 볼 수 있긴 하나, 부트 메뉴를 항상 볼 수 있도록 설정을 바꿀 수 있다. 우선 /etc/default/grub 파일을 편집해야 한다. 시스템 설정 파일이므로 루트(root) 권한을 필요로 한다. # /etc/default/grub 파일 편집 sudo vi /etc/default/grub 파일 내용을 보면 "GRUB_HIDDEN_TIMEOUT"이라는 항목이 있다. 이 항목의 값이 0으로 설정되어 있는데, 예를 들어 GRUB 부트 메뉴를 5초간 보여주고 싶다면 5로 바꾸면 되겠다. GRUB_HIDDEN_TIMEOUT=5 그리고 아래와