kernel 경계

시스템 콜 권한 경계

라이브러리 함수 호출처럼 보여도 파일, 프로세스, 네트워크 작업은 trap을 통해 모드 전환과 권한 검사를 거칩니다.

userread() 호출
libc번호와 인자 배치
trap커널 모드 진입
return결과와 errno 전달
권한 상승 아님

프로그램이 직접 커널이 되는 것이 아니라 정해진 번호와 인자로 요청만 전달합니다.

모드 전환 비용

trap, 검증, 커널 코드 실행, 복귀가 들어가므로 아주 잦은 호출은 성능 비용이 됩니다.

파일 디스크립터

파일/파이프/소켓은 정수 핸들로 같은 I/O 규칙을 씁니다.

프로세스 제어

fork, exec, wait 조합이 셸 명령 실행과 파이프라인의 뼈대입니다.

라이브러리와 차이

일반 함수는 프로세스 안에서 끝나지만 시스템 콜 wrapper는 커널 진입 규약을 감쌉니다.

디버깅 단서

strace로 호출 순서와 실패 코드를 보면 앱 증상이 어느 커널 요청에서 막혔는지 보입니다.