Kernel 5

리눅스 커널, 프로세스 란 - 작성중 -

프로세스라는 용어는 추상적일 수 있다. 프로세스란 간단하게 말해서 리눅스 시스템 메모리에서 실행 중인 프로그램을 말한다 스케쥴링 대상인 타스크 와 유사한 의미로도 쓰인다. 다수의 프로세스를 실시간으로 사용하는 기법을 멀티프로세싱이라고하고, 같은 시간에 여러 프로그램을 실행하는 방식을 멀티타스킹이라고 한다. 리눅스 개발자 입장에서 프로세스는 무엇일까? 리눅스 시스템 메모리에 적재되어 실행을 대기하거나 실행하는 실행 흐름을 의미 - 프로세스가 실행을 대기한다면 실행할 때 어떤 과정을 거칠까? - 프로세스는 어떤 구조체로 식별할까? 프로세스를 관리하는 자료구조이자 객체를 태스크 디스크립터 (Task descriptor) 라고 부르고 task_struct 구조체로 표현 이 구조체에 프로세스가 쓰는 메모리 리소스..

Unix & Linux/Kernel 2022.07.13

강력한 리눅스 커널 디버깅 툴 , ftrace 개론 - 작성중-

printk 또는 dump_stack 을 사용하면서 불편하답니다. 저는 많이 안써봤습니다. 그래서 ftrace 를 많이 현업에서도 사용한다고 합니다. 주요 특징은 함수 호출 흐름을 소스코드 수정하지 않고도 보고싶다. 커널의 세부 실행 정보를 출력해줬으면 좋겠다. 1초에 수십번 호출해도 성능에 부담을 주지 않는다. 커널 로그도 함께 본다. 인터럽트, 스케쥴링, 커널 타이머 등의 커널 동작 상세히 추적 함수 필터를 지정하면 지정한 함수를 호출한 함수와 전체 콜 스택까지 출력 함수를 어느 프로세스가 실행하는지 알 수 있다. 함수가 실행된 시각 정보를 알 수 있다. ftrace 로그 활성화해도 시스템 동작에 부하를 거의 주지 않는다. 과연 그럴까 생각들정도로 강력한 것은 사실입니다. How to do confi..

Unix & Linux/ftrace 2022.07.11