리눅스에서 grep 명령의 출력을 파이프(|)로 넘길 때 글자색 유지하기
By 반달가면 | 2018년 7월 11일 |
grep 명령으로 문자열을 찾으면 출력된 내용에서 일치하는 부분이 빨간색으로 표시된다. echo "abcd" | grep "ab" abcd 그러나 출력값을 파이프(|)로 넘기면 색깔이 억제된다. echo "abcd" | grep "ab" | more abcd 출력 내용이 상당히 길 경우에는 출력결과를 more로 연결해서 한 페이지씩 보게 되는데, 내용이 많아서 어느 위치에 일치하는 문자열이 있는지 헷갈릴 경우가 있다. 이럴 때는 grep의 글자색 옵션을 변경해 주면 되겠다. "--color=always" 옵션을 사용. # 글자색 유지 echo "abcd" | grep --color=always "ab" | more abcd 기본 옵션은 --color=auto인데 출력을
[리눅스커널][스케줄링] 선점 스케줄링 지연 함수 preempt_enable()/preempt_disable() 소개
By Guillermo Austin Kim | 2019년 2월 14일 |
선점 스케줄링 지연 함수 preempt_enable()/preempt_disable() 소개 리눅스 커널에서 선점 스케줄링을 동작을 잠시 지연할 수 있는 함수를 지원합니다. preempt_disable(): 선점 지연 활성화preempt_enable(): 선점 지연 비활성화 preempt_disable() 함수 이름은 "선점"을 의미하는 "preempt" 단어에 "불능"란 단어인 "disable"의 조합입니다.즉, preempt_disable() 함수를 실행하면 선점 스케줄을 지연할 수 있습니다. 마찬가지로 preempt_enable() 함수를 실행하면 선점 스케줄링을 활성화합니다. preempt_disable() 함수와 preempt_enable() 함수의 기본 원리를 알아보기 앞서 커널
[리눅스커널][태스크릿] 태스크릿(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 라이브러리에 구현돼 있어 실