[리눅스커널] 워크큐: 워커 스레드 핸들 worker_thread() 함수 분석하기 (1/2)
By Guillermo Austin Kim | 2019년 9월 29일 |
커널 스레드를 처음 분석하려고 할 때 다음과 같은 의문이 생길 때가 있습니다. 새로운 커널 스레드 코드 분석을 시작할 때 어느 코드부터 분석해야 할까? 먼저 커널 스레드 핸들 함수를 열어봐야 합니다. 그 이유는 커널 스레드 세부 동작은 커널 스레드 핸들 함수에 구현됐기 때문입니다. 마찬가지로 워커 스레드 세부 동작을 알려면 먼저 스레드 핸들 함수인 worker_thread() 함수를 봐야 합니다. 이번 시간에는 worker_thread() 함수를 분석하면서 세부 동작 원리를 배워보겠습니다. 먼저 worker_thread() 함수의 주요 동작은 다음과 같습니다. 워크 실행필요 시 워커 스레드 생성 요청워커 스레드 종료 위 항목 중 핵심 동작은 워크를 실행하는 것이며 나머지는 워커를
리눅스에서 .netrc 파일을 이용한 ftp 자동 로그인
By 반달가면 | 2018년 5월 8일 |
같은 LAN에 붙어 있는 ftp 서버에 자주 접속해서 뭔가 작업을 할 경우가 있어서 접속할 때마다 사용자 계정과 암호를 입력하기가 번거로운 관계로, .netrc 파일에 로그인 정보를 저장해서 자동으로 로그인되도록 했다. .netrc 파일은 홈 디렉토리(~/)에 둔다. 없다면 새로 만들면 되겠다. # .netrc 파일 편집 vi ~/.netrc 파일 내용은 아래와 같은 형식으로 구성된다. machine [서버 주소] login [사용자 계정] password [암호] 예를 들어 서버 주소 ftp.my_server.net, 사용자 계정 john, 접속암호 my_pwd인 경우 .netrc 파일에 아래와 같은 형태로 입력하고 저장하면 되겠다. machine ftp.my_server
[0410] Slab Memory Corruption Case Study#1 - 로그 분석(1)
By Guillermo Austin Kim | 2018년 4월 18일 |
슬랩 메모리 Corruption Cast Study: 난이도 최하 이번에는 슬랩 오브젝트가 메모리를 깨면 어떤 방식으로 커널 크래시가 발생하는지 알아볼게요.이로 슬랩 오브젝트의 실제 자료 구조를 알 수 있습니다. 아 그럼 우선 커널 로그 부터 볼게요. 음 평소에는 볼 수 없는 요상한 로그를 출력하고 있군요.그럼 각각 로그가 어떤 의미인지 천천히 살펴볼까요?[701.043443][7] =============================================================================[701.043491][7] BUG kmalloc-512 (Tainted: G W ): Poison overwritten[701.043515][7] -----------
[라즈베리파이][리눅스커널]IRQ Thread(threaded IRQ) 란 #CS
By Guillermo Austin Kim | 2018년 6월 13일 |
From [라즈베리파이]인터럽트 후반부 처리(Bottom Half) 소개 #CS http://rousalome.egloos.com/9977984 리눅스 커널을 익히는 과정에서 만나는 걸림돌 중 하나가 어려운 용어입니다. 어려운 개념을 낯선 용어로 설명하니 이해하기 어렵죠. IRQ Thread의 의미를 알기 전에 IRQ란 용어부터 알아볼까요? IRQ는 Interrupt Request의 약자로 하드웨어에서 발생한 인터럽트를 처리 한다는 의미입니다. 조금 더 구체적으로 인터럽트 발생 후 인터럽트 핸들러까지 처리하는 흐름입니다. IRQ Thread란 뭘까요? 인터럽트 핸들러에서는 처리하면 오래 걸리는 일을 수행하는 프로세스입니다. 인터럽트 후반부 처리를 위한 인터럽트 처리 전용 프로세스입니다. 리눅스 커널