[bash: $()] 역따옴표(`)를 중첩해서 사용하고 싶을 경우
By 반달가면 | 2019년 3월 22일 |
리눅스 bash shell에서 특정 명령어의 결과를 변수에 할당하거나 다른 명령어의 인자(argument)로 사용하고 싶을 때 역따옴표(`)를 사용하게 된다. # ls 명령의 결과 출력에서 마지막 줄을 변수 x에 할당 x=`ls | tail -1` 그런데, 역따옴표 안에 다시 역따옴표를 사용하고 싶은 경우가 생겼을 경우에는 대신에 "$(명령어)" 형태를 사용하면 되겠다. 기능은 역따옴표와 동일하나 중첩해서(nest) 사용할 수 있다. # ls 명령의 결과 출력에서 마지막 줄을 변수 x에 할당 x=$(ls | tail -1) 예시가 좀 억지스럽긴 한데 겹쳐서 사용하는 경우를 만들어 보자면 아래와 같이 해 볼 수 있을 것이다. # 문자열 "txt"를 출력해서 grep의 인자로 사
[Linux][Kernel] ftrace - Workqueue 워크큐 로그 분석 - 1
By Guillermo Austin Kim | 2017년 12월 13일 |
리눅스 커널의 매우 중요한 Subsystem인 워크큐. 이번에는 잠깐 ftrace 로그에서 workqueue에 대해 분석을 해보려고 해요.ftrace 세팅은 Appendix [1]을 참고하시구요. 아래 로그는 보자마자 느낄 수 있는 건 irq/225-touch-279란 irq_thread에서 워크 큐를 큐잉하고 이 후 워크큐가 실행된다는 걸 알 수 있죠. irq/225-touch-279 [006] 53516.537609: workqueue_queue_work: work struct=0xed845d58 function=touch_update_work workqueue=0xed80cc00 req_cpu=8 cpu=6 //<<--[1] irq/225-touch-279 [006] 53
리눅스 민트 17(우분투 14.04 기반) 커널을 우분투 16.04 커널로 업데이트
By 반달가면 | 2019년 7월 26일 |
우분투 14.04 LTS 기반의 배포판인 리눅스 민트 17의 커널을 우분투 16.04 LTS 커널로 업데이트했다. 기존 커널의 버전은 3.13이고 업데이트한 커널은 4.4이다. 굳이 커널을 업데이트하지 않고도 여태까지 사용에 별 문제가 없었으나, 도커(Docker)를 설치해서 실행해 보려고 하니 커널 버전이 4.x가 아니면 실행이 되지 않았다. 결국 불가피하게 커널 업데이트를 진행. 우분투 커널 업데이트 유틸리티(ukuu, 이전 게시물을 참고하자. 여기로)를 사용해 볼까 했으나, 시냅틱 패키지 매니저에서 검색해 보니 16.04 커널이 공식 S/W저장소를 통해서 제공되고 있길래 그냥 이걸로 업데이트했다. 우분투 16.04의 코드명이 "Xenial Xerus"이므로 xenial 커널을 설치하면 된다.
[라즈베리파이]인터럽트(4) - 인터럽트 디스크립터란
By Guillermo Austin Kim | 2018년 2월 13일 |
인터럽트 디스크립터는 디바이스 드라이버가 등록한 인터럽트 속성을 표현합니다. 각 디바이스 드라이버에서 설정한 인터럽트 마다 아래 자료 구조를 커널이 생성합니다. 자료 구조는 아래와 같습니다.struct irq_desc { struct irq_common_data irq_common_data; struct irq_data irq_data; unsigned int __percpu *kstat_irqs; irq_flow_handler_t handle_irq;#ifdef CONFIG_IRQ_PREFLOW_FASTEOI irq_preflow_handler_t preflow_handler;#endif struct irqaction *action; /* IRQ action list */ unsigned int sta