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 등 시스템 자원 할당 및 회수 |
보안 | 사용자 구분 및 접근 권한 제한 |
인터럽트 처리 | 하드웨어 및 타이머 등 외부 이벤트 응답 |
시스템 콜 처리 | 사용자 요청을 받아 실행 후 결과 전달 |
✅ 마무리
시스템 콜은 리눅스에서 사용자와 커널을 연결하는 핵심 메커니즘입니다.
이를 이해하면 커널 동작 방식과 시스템의 작동 원리를 보다 깊이 있게 접근할 수 있습니다.
다음 편에서는 프로세스와 스레드의 구조와 차이점에 대해 정리합니다.
반응형