리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

[라즈베리파이]리눅스 커널 매크로 분석 방법

Guillermo Austin Kim|2018년 6월 14일

#리눅스 커널 매크로 분석 - 리눅스 커널 매크로 분석 방법 - 매크로 ##uname 파라미터 전달 기법 - __init 매크로 (1) - __init 매크로 (2) - container_of 매크로 - current 매크로 (1) - current 매크로 (2) - current 매크로 (3) - BUG 매크로 - WARN 매크로 매크로 분석에 도움 되는 두 가지 방법을 소개합니다. 전처리 파일 추출과 바이너리 유틸리티를 활용해서 어셈블리 코드를 보는 방법입니다. 매크로를 분석할 때는 물론 평소 커널 코드 읽을 때는 이 방법을 적극적으로 활용해서 분석하기를 바랍니다. C 코드만 볼 때 보다 훨씬 효율적으로 코드를 읽을 수 있고 더 유용한 디버깅 정보를 볼 수 있거든요. 전처리 파일 추출이번에는

[라즈베리파이][리눅스커널]IRQ Thread(threaded IRQ) 란 #CS

Guillermo Austin Kim|2018년 6월 13일

From [라즈베리파이]인터럽트 후반부 처리(Bottom Half) 소개 #CS http://rousalome.egloos.com/9977984 리눅스 커널을 익히는 과정에서 만나는 걸림돌 중 하나가 어려운 용어입니다. 어려운 개념을 낯선 용어로 설명하니 이해하기 어렵죠. IRQ Thread의 의미를 알기 전에 IRQ란 용어부터 알아볼까요? IRQ는 Interrupt Request의 약자로 하드웨어에서 발생한 인터럽트를 처리 한다는 의미입니다. 조금 더 구체적으로 인터럽트 발생 후 인터럽트 핸들러까지 처리하는 흐름입니다. IRQ Thread란 뭘까요? 인터럽트 핸들러에서는 처리하면 오래 걸리는 일을 수행하는 프로세스입니다. 인터럽트 후반부 처리를 위한 인터럽트 처리 전용 프로세스입니다. 리눅스 커널

[라즈베리파이]인터럽트 후반부 처리(Bottom Half) 소개 #CS

Guillermo Austin Kim|2018년 6월 12일

리눅스 커널이 인터럽트를 어떻게 처리하는지 배운 내용을 잠깐 복습해볼까요? 핵심 개념은 다음과 같습니다.첫째, 인터럽트가 발생하면 커널은 실행 중인 프로세스를 멈추고 인터럽트 벡터를 실행해서 인터럽트 핸들러를 실행합니다.둘째, 인터럽트 핸들러는 짧고 빨리 실행해야 합니다.셋째, 인터럽트를 처리하는 구간이 인터럽트 컨택스트인데 이를 in_interrupt 매크로가 알려줍니다. 욕심이 지나쳐 인터럽트 핸들러에서 많은 일을 하고 싶을 때가 있습니다. 가령 유저 공간에 인터럽트가 발생한 사실을 알리거나 다른 프로세스에게 일을 시키고 싶은 경우죠. 그런데 인터럽트 핸들러에서 이런 동작을 실행하면 어떻게 될까요? 이럴 때 시스템이 아주 느려지거나 커널이 오동작 할 수 있습니다. 그래서 인터럽트 컨택스트에서 많은 일을

리눅스에서 ZFS 압축 기능 사용

반달가면|2018년 6월 11일

ZFS 설치, zpool 생성, 파일 시스템 생성 등 기본적인 작업은 이전 게시물을 참고하자. 여기로 CPU 자원이 충분한데 입출력(I/O)을 좀 더 향상시키고 싶다면 ZFS 입출력 데이터를 압축하도록 설정할 수 있다. 예를 들어 my_test_pool이라는 zpool에 있는 data라는 파일 시스템에 대하여 압축을 활성화하려면 아래와 같이 작업한다. # my_test_pool/data 파일 시스템에서 압축 활성화 sudo zfs set compression=on my_test_pool/data 압축을 비활성화하려면 아래와 같이 작업한다. compression 설정을 off로 변경. # my_test_pool/data 파일 시스템에서 압축 비활성화 sudo zfs set compre