태그>시스템호출(총 17개의 글)
'시스템호출' 관련 최근글
-
- [리눅스커널][시스템콜] strace로 시스템콜 ..
-
Linux Kernel(4.14) Hacks by AustinKim|2019/02/21 23:10
리눅스에서는 시스템콜 디버깅을 위한 strace라는 훌륭한 툴을 제공합니다. 유저 프로그램이 실행할 때 어떤 시스템콜을 실행했는지 확인할 수 있습니다. strace 이란 툴은 리눅스에서 제공하는 강력한 시스템 트레이싱 ..
- [리눅스커널][시스템콜] strace로 시스템콜 ..
-
- [리눅스커널][시스템콜] ftrace로 시스템 콜 인..
-
Linux Kernel(4.14) Hacks by AustinKim|2019/02/21 23:09
ftrace는 시스템 콜 디버깅을 위한 이벤트를 제공합니다.sys_enter, sys_exit 이라는 ftrace 이벤트를 쓰면 시스템 콜 동작을 확인할 수 있습니다. 위 이벤트를 키면 다음과 같은 시스템 콜 디버깅 정보를 출력합니다...
- [리눅스커널][시스템콜] ftrace로 시스템 콜 인..
-
- [리눅스커널] 시스템 콜/디버깅: ftrace 시스템 콜..
-
Linux Kernel(4.14) Hacks by AustinKim|2019/02/21 23:07
시스템 콜 관련 코드를 분석하다 보면 다음과 같은 의문이 생길 수 있습니다. 평소 시스템 콜은 얼마나 자주 발생할까? 시스템 콜 번호는 어떻게 확인할 수 있을까? ftrace 메시지를 보면 이런 궁금증을 해소할 ..
- [리눅스커널] 시스템 콜/디버깅: ftrace 시스템 콜..
-
- [리눅스커널][시스템콜] 전처리 코드에서 시스템..
-
Linux Kernel(4.14) Hacks by AustinKim|2019/02/21 23:05
이렇게 시스템 콜 핸들러 함수는 커널에서 제공하는 매크로 함수로 구현이 됐습니다. 이번에는 전처리 코드에서 시스템 콜 핸들러 구현부를 찾는 방법을 소개합니다. 먼저 커널 소스에서 sys_read() 시스템 콜 핸들러 ..
- [리눅스커널][시스템콜] 전처리 코드에서 시스템..
-
- [리눅스커널] 시스템 콜: ret_fast_syscall 레..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/27 12:51
시스템 콜 실행 완료 후 무슨 일을 할까?시스템 콜을 수행하면 시스템 콜 핸들러를 통해 가상 파일시스템이나 커널 프로세스 함수를 실행합니다. 이후 시스템 콜 종류에 따라 시스템 콜 핸들러 하부 루틴을 수행하고..
ret_fast_syscall, no_work_pending, slow_work_pending, 라즈베리파이, 리눅스
- [리눅스커널] 시스템 콜: ret_fast_syscall 레..
-
- [라즈베리파이] 시스템 콜 - 매개 변수 점검(시스..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/26 23:16
리눅스 커널 시스템 콜 핸들러 인터페이스 함수를 열어 보면 수 많은 예외 처리 코드를 볼 수 있습니다. 유저 모드에서 시스템 콜을 호출할 때 잘못된 인자(스트링 갯수, 메모리 주소)를 전달할 수 있기 때문입니다. 먼저 wr..
- [라즈베리파이] 시스템 콜 - 매개 변수 점검(시스..
-
- [라즈베리파이] 시스템 콜 - 시스템 콜 핸들러는 어떤 동작을 할까?
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/23 08:07
유저 공간에서 시스템 콜을 발생하면 커널 공간으로 모드가 스위칭된 다음 vector_swi 이란 소프트웨어 인터럽트 벡터를 실행하는 부분까지 살펴봤습니다. vector_swi 레이블에서 시스템 콜 테이블에 접근해서 시스템 콜 핸들러를 호출합니다. 시스템 콜 핸들러에서는 어떤 동작..
- [라즈베리파이] 시스템 콜 - 시스템 콜 핸들러는 어떤 동작을 할까?
-
- [리눅스커널] 시스템 콜: 커널 공간에서 시스템 콜..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/22 06:55
이전 소절에서 알아본 시스템 콜 동작은 다음과 같이 정리할 수 있습니다. "유저 공간에서 전달된 시스템 콜 번호로 시스템 콜 테이블에 저장된 시스템 콜 핸들러 함수로 분기된다." 그런데 위 문장에서 '시스템 ..
sys_call_table, 시스템콜, 시스템호출, 리눅스, 커널
- [리눅스커널] 시스템 콜: 커널 공간에서 시스템 콜..
-
- [라즈베리파이] 시스템 콜 - 소프트웨어 인터럽트..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/21 09:17
커널 공간에서 시스템 콜 실행 출발점은 vector_swi 레이블입니다. svc 명령어를 실행하면 소프트웨어 인터럽트 벡터인 vector_swi 레이블으로 브랜치하기 때문입니다. vector_swi 레이블 어셈블리 코드 분석으로 A..
- [라즈베리파이] 시스템 콜 - 소프트웨어 인터럽트..
-
- [라즈베리파이] 시스템 콜 - 커널 모드에서 시스..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/19 22:06
이번 절에서는 커널 공간에서 시스템 콜을 어떻게 실행하는지 살펴보겠습니다.다음 그림 전체 흐름도에서 검은색으로 표시된 부분을 눈여겨봅시다. 위 그림에서 검은색으로 된 부분입니다. * 유튜브 강의 동영상..
- [라즈베리파이] 시스템 콜 - 커널 모드에서 시스..
-
- [라즈베리파이] 시스템 콜 - 유저 공간 시스템 콜 발생 어셈블리 코드 분석
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/19 07:54
유저 공간에서 시스템 콜을 발생하는 코드는 어셈블리로 구현되어 있습니다. 그래서 아키텍처별로 시스템 콜을 실행하는 동작이 다릅니다. ARMv7 아키텍처(라즈베리파이)에서는 유저 공간에서 시스템 콜을 발생하는 동작은 다음과 같습니다. 1. r0 ~ r5 레지스터에 시스템 콜로 ..
- [라즈베리파이] 시스템 콜 - 유저 공간 시스템 콜 발생 어셈블리 코드 분석
-
- [라즈베리파이] 시스템 콜 - 유저 공간에서 시스..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/14 21:32
유저 공간에서 커널 공간까지 어떤 코드로 시스템 콜을 구현했는지 분석을 시작합니다. 유저 모드에서 시스템 콜을 발생하면 커널 모드로 어떻게 스위칭하고 이후 시스템 콜 핸들러가 실행하는지 파악하는 것입니..
- [라즈베리파이] 시스템 콜 - 유저 공간에서 시스..
-
- [라즈베리파이] 시스템 콜 - 소프트웨어 인터럽..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/08 12:41
소프트웨어 인터럽트를 한 문장으로 정의해 봅시다. 소프트웨어 인터럽트는 인터럽트가 아닙니다. 인터럽트는 하드웨어서 올려주는 전기 신호로 언제 발생할지 모르는 비동기적인 이벤트이나 통지입니다. 그런..
vector_swi, swi, 인터럽트, 유저공간, 커널공간
- [라즈베리파이] 시스템 콜 - 소프트웨어 인터럽..
-
- [라즈베리파이] 시스템 콜 - ARM 프로세서 관점..
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/07 06:47
리눅스 시스템에서 시스템 콜을 관련 코드를 읽다보면 어셈블리 코드를 만나게 됩니다. 보통 어셈블리 코드는 ARM 프로세서 입장에서 실행하는 동작입니다. 어셈블리 코드로 구현돼 있다는 것은 시스템 콜이 아..
- [라즈베리파이] 시스템 콜 - ARM 프로세서 관점..
-
- [리눅스커널] 시스템 콜 - 전체 흐름도 소개
-
Linux Kernel(4.14) Hacks by Guillermo|2018/11/06 12:40
이전 절에서 시스템 콜의 개념을 알아봤습니다. 시스템 콜 흐름도와 시스템 콜 동작은 그리 간단하지 않습니다. 시스템 콜 세부 동작을 알려면 시스템 전체 흐름도를 이해해야 합니다. 이어서 리눅스 전체 시스..
- [리눅스커널] 시스템 콜 - 전체 흐름도 소개