| ⬅️ 이전 | 🏠 분류 목차 |
커널의 주요 기능
커널의 주요 기능
1. 프로세스 관리 (Process Management)
프로세스 생성 및 제어:
- fork(): 새로운 프로세스 생성
- exec(): 프로세스 이미지 교체
- wait(): 자식 프로세스 종료 대기
- exit(): 프로세스 종료
스케줄링:
- Completely Fair Scheduler (CFS): 완전 공정 스케줄러
- 실시간 스케줄링: SCHED_FIFO, SCHED_RR
- 우선순위 관리: nice 값, real-time priority
- 멀티코어 지원: SMP(Symmetric Multi-Processing) 환경
2. 메모리 관리 (Memory Management)
가상 메모리 시스템:
- 페이지 관리: 4KB 페이지 단위 메모리 관리
- 메모리 매핑: 가상 주소와 물리 주소 매핑
- 스왑 관리: 디스크 공간을 메모리로 활용
- 캐시 관리: 페이지 캐시, 버퍼 캐시
메모리 할당:
- 슬랩 할당자: 커널 메모리 할당
- buddy 시스템: 물리 메모리 할당
- OOM Killer: 메모리 부족 시 프로세스 종료
3. 파일 시스템 관리 (File System Management)
VFS (Virtual File System):
- 통합된 인터페이스: 다양한 파일 시스템을 통합 관리
- 파일 시스템 추상화: ext4, btrfs, xfs 등 지원
- 네트워크 파일 시스템: NFS, CIFS 지원
파일 조작:
- 파일 생성/삭제: inode 기반 파일 관리
- 디렉토리 관리: 계층적 디렉토리 구조
- 권한 관리: rwx 권한, ACL 지원
- 링크 관리: 하드 링크, 심볼릭 링크
4. 네트워크 관리 (Network Management)
네트워크 스택:
- TCP/IP 프로토콜: 전송 제어 프로토콜 스택
- 소켓 인터페이스: 네트워크 통신 API
- 라우팅: 네트워크 패킷 라우팅
- 방화벽: netfilter 프레임워크
네트워크 인터페이스:
- 네트워크 장치 관리: 이더넷, 무선랜 등
- 프로토콜 지원: IPv4, IPv6, TCP, UDP
- 네트워크 보안: SELinux, AppArmor
5. 디바이스 드라이버 관리 (Device Driver Management)
드라이버 아키텍처:
- 플러그 앤 플레이: 자동 장치 인식
- 핫플러그: 실행 중 장치 연결/해제
- 버스 시스템: PCI, USB, I2C 등 지원
드라이버 종류:
- 문자 장치 드라이버: 키보드, 마우스, 터미널
- 블록 장치 드라이버: 하드디스크, SSD
- 네트워크 장치 드라이버: 이더넷 카드, 무선랜
6. 보안 기능 (Security Features)
접근 제어:
- 사용자/그룹 관리: UID, GID 기반 권한
- 파일 권한: rwx 권한, setuid, setgid
- SELinux: 강제 접근 제어
- AppArmor: 응용 프로그램별 보안 정책
암호화 및 인증:
- 커널 암호화: dm-crypt, LUKS
- 키 관리: 키링 시스템
- 보안 모듈: LSM (Linux Security Modules)
서브목차