[라즈베리파이] 시스템 콜 - 유저 공간에서 시스템 콜 발생
By Guillermo Austin Kim | 2018년 11월 14일 |
유저 공간에서 커널 공간까지 어떤 코드로 시스템 콜을 구현했는지 분석을 시작합니다. 유저 모드에서 시스템 콜을 발생하면 커널 모드로 어떻게 스위칭하고 이후 시스템 콜 핸들러가 실행하는지 파악하는 것입니다. 가장 먼저 이런 의문이 생깁니다. 시스템 콜은 실행 시작점은 어디일까요? 유저 공간에서 리눅스 저수준 함수를 호출했을 때가 시스템 콜 실행의 출발점입니다. 다음 전체 시스템 콜 흐름도에서 검은색으로 된 부분입니다. 리눅스 저수준 함수를 호출하면 실행하는 GNU C 라이브러리(glibc)가 어떤 흐름올 시스템 콜을 호출하는지 알아봅시다. GNU C 라이브러리 실행 흐름유저 공간에서 시스템 콜을 실행하기 위해서는 저수준 표준 함수를 호출해야 합니다.저수준 표준 함수는 glibc 라이브러리에 구현돼 있어 실
[리눅스커널][시스템콜] ftrace로 시스템 콜 실행 확인하기
By Guillermo Austin Kim | 2019년 2월 21일 |
시스템 콜 관련 코드를 분석하다 보면 다음과 같은 의문이 생기지 않나요? 평소 시스템 콜은 얼마나 자주 발생할까?시스템 콜 번호는 어떻게 확인할 수 있을까? 이 의문에 대한 답은 ftrace 로그에서 찾을 수 있습니다. 시스템 콜을 ftrace 로 디버깅을 할 수 있기 때문입니다. 이를 위해 ftrace를 다음과 같이 설정합니다.1 "echo 1 > /sys/kernel/debug/tracing/events/sched/sched_switch/enable"2 "echo 1 > /sys/kernel/debug/tracing/events/raw_syscalls/enable"3 "echo 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_entry/e
리눅스 민트에서 GRUB 부트 메뉴 표시하기
By 반달가면 | 2019년 7월 5일 |
리눅스 민트(Linux Mint)의 부팅 화면에는 통항 GRUB 부트 메뉴가 보이지 않는다. 부팅할 때 쉬프트(shift) 키를 누르고 있으면 메뉴를 볼 수 있긴 하나, 부트 메뉴를 항상 볼 수 있도록 설정을 바꿀 수 있다. 우선 /etc/default/grub 파일을 편집해야 한다. 시스템 설정 파일이므로 루트(root) 권한을 필요로 한다. # /etc/default/grub 파일 편집 sudo vi /etc/default/grub 파일 내용을 보면 "GRUB_HIDDEN_TIMEOUT"이라는 항목이 있다. 이 항목의 값이 0으로 설정되어 있는데, 예를 들어 GRUB 부트 메뉴를 5초간 보여주고 싶다면 5로 바꾸면 되겠다. GRUB_HIDDEN_TIMEOUT=5 그리고 아래와
스피드크런치(SpeedCrunch) - 리눅스용 공학계산기
By 반달가면 | 2019년 12월 11일 |
MX리눅스(MX Linux)에 기본으로 딸려 오는 계산기 프로그램인 갈큘레이터(Galculator)가 별로 마음에 들지 않아서 다른 계산기를 찾아보다가, 꽤 오래전부터 윈도우에서 사용했던 스피드크런치(SpeedCrunch)가 리눅스용 버전도 있다는 사실을 알게 되었다. 처음 스피드크런치를 알았을 당시에는 리눅스용 버전이 없었던 것 같기도 한데, 아무튼 있으니 다행. 스피드크런치 공식 웹사이트는 아래와 같다. 공식 웹사이트에서 리눅스용 패키지 파일을 다운로드할 수도 있으나, 주요 배포판의 S/W저장소에서 기본적으로 제공하는 듯하다. 데비안/우분투 계열 배포판에서는 아래와 같이 설치하면 되겠다. # S/W 저장소 정보 갱신 sudo apt-get update # speedcrunch 설치