System Settings

[리눅스 개념 정리 시리즈] 2편 - 시스템 콜과 커널 기능

midworker 2025. 5. 14. 22:10
반응형

[리눅스 개념 정리 시리즈] 2편 - 시스템 콜과 커널 기능

이전 편에서는 리눅스의 구조와 커널의 역할을 정리했습니다.
이번 글에서는 시스템 콜(System Call)의 개념과 종류, 그리고 커널이 사용자 요청을 어떻게 처리하는지를 다룹니다.


✅ 시스템 콜(System Call)이란?

  • 사용자 프로그램이 커널 기능을 호출할 수 있도록 제공되는 인터페이스입니다.
  • 사용자 공간(User Space)에서 커널 공간(Kernel Space)으로 제어를 전환하는 메커니즘입니다.
  • 예: 파일 열기, 프로세스 생성, 메모리 할당, 장치 접근 등

✅ 시스템 콜의 필요성

이유 설명
보안성 사용자 프로그램이 커널 영역에 직접 접근하는 것을 방지
안정성 시스템 전체 안정성을 유지하며 커널이 요청을 제어함
추상화 다양한 하드웨어 기능을 통일된 방식으로 제공함

📌 시스템 콜은 커널과 사용자 애플리케이션 사이의 유일한 합법적 통로입니다.


✅ 시스템 콜 흐름 예시: open()

1. 사용자 프로그램이 open() 호출
2. glibc 라이브러리가 시스템 콜 인터럽트 발생
3. 커널이 해당 요청을 처리 (파일 디스크립터 반환 등)
4. 결과가 사용자 공간으로 전달됨

✅ 주요 시스템 콜 분류

분류 예시
프로세스 관리 fork, exec, wait, exit
파일 시스템 open, read, write, close
메모리 관리 brk, mmap, munmap
디바이스 I/O ioctl, read, write
통신 (IPC) pipe, socket, shmget
시스템 정보 getpid, uname, time

✅ 시스템 콜 추적 실습: strace

명령어 예시

strace ls

출력 예시

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
read(3, "...", 1024) = 512
close(3) = 0
  • open, read, close는 모두 시스템 콜입니다.

📎 strace는 시스템 콜을 실시간으로 추적하는 매우 유용한 도구입니다.


✅ 사용자 공간과 커널 공간

구분 설명
사용자 공간 응용프로그램이 실행되는 일반 영역
커널 공간 시스템 보호를 위해 격리된 핵심 영역

시스템 콜은 이 두 공간을 연결하는 게이트웨이 역할을 합니다.


✅ 커널이 수행하는 주요 작업 요약

기능 설명
하드웨어 추상화 디바이스 드라이버를 통해 장치를 제어
자원 분배 CPU, 메모리, I/O 등 시스템 자원 할당 및 회수
보안 사용자 구분 및 접근 권한 제한
인터럽트 처리 하드웨어 및 타이머 등 외부 이벤트 응답
시스템 콜 처리 사용자 요청을 받아 실행 후 결과 전달

✅ 마무리

시스템 콜은 리눅스에서 사용자와 커널을 연결하는 핵심 메커니즘입니다.
이를 이해하면 커널 동작 방식과 시스템의 작동 원리를 보다 깊이 있게 접근할 수 있습니다.

다음 편에서는 프로세스와 스레드의 구조와 차이점에 대해 정리합니다.


반응형