임베디드기사 실기 08 — 임베디드 OS 이해 (커널 구조·소스 트리·PCB·리눅스 디렉터리·runlevel·chmod)
출제기준 3-1: 임베디드 OS 이해하기
실기 전체의 약 40%를 차지하는 OS·리눅스 분야의 기본기 단원이에요.
같은 문제가 그대로 다시 나오는 비율이 가장 높습니다!
📎 필기 시리즈의 운영체제·리눅스 편과 함께 보면 좋아요. (링크 추가 예정)
실기 출제 포인트 ⭐⭐⭐
| 키워드 | 핵심 내용 | 빈도 | 기출 |
| 커널의 정의·주요 기능 | 프로세스·메모리·파일시스템·네트워크 ·디바이스 드라이버 관리 |
⭐⭐⭐ | 2015 Q10, 2020, 2021 Q5, 2016 Q12 |
| 커널 소스 트리 | init, kernel, mm, fs, net, drivers, arch … | ⭐⭐⭐ | 2020 Q3, 2021 Q4, 2022 Q12, 2025 Q7 |
| 커널 구조 | 모놀리식 vs 마이크로 | ⭐⭐ | 2016 Q11, 2023 Q13 |
| PCB | 프로세스 정보를 저장하는 데이터 구조 | ⭐⭐⭐ | 2017 Q13, 2021 Q6, 2024 Q2 |
| 문맥 교환 | 프로세스 상태 저장 후 전환 | ⭐ | 2018 Q17 |
| 리눅스 디렉터리 | /sbin, /var, /tmp, /etc, /proc … | ⭐⭐⭐ | 2017 Q14, 2019 Q4, 2022 Q1, 2023 Q5 |
| runlevel | /etc/inittab, 0~6 | ⭐⭐ | 2020 Q6, 2024 Q11 |
| 파일 권한 chmod | 8진수 ↔ rwx | ⭐⭐ | 2022 Q10, 2025 Q4 |
키워드 박스 — 답안에 반드시 들어가야 할 단어
커널 : 프로세스·메모리·파일시스템·네트워크·디바이스 드라이버 관리 (OS의 핵심 영역)
PCB : PID, 프로세스 상태, PC, 레지스터, 스케줄링 정보
모놀리식 커널: 커널과 같은 메모리 공간에 기능을 모두 적재 → 빠르지만 하나가 죽으면 전체 다운
/sbin : 시스템 관리자용 명령어 (reboot, fdisk)
/var : 운용 중 생성·삭제되는 가변 데이터
/etc/inittab: runlevel 설정 파일
커널의 정의와 주요 기능 ⭐⭐⭐
기출 (2015 Q10 = 2020 = 2021 Q5 동일) 프로세스 관리, 메모리 관리, 파일시스템 관리, 네트워크 관리, 디바이스 드라이버 관리 등 OS의 핵심 영역은?
→ 커널 (Kernel)
리눅스 커널의 기능 분류
| 관리자 | 하는 일 |
| Task Manager | 태스크 생성·삭제·문맥 교환·스케줄링·시그널·IPC |
| Memory Manager | 물리·가상 메모리 관리 (세그먼트·페이지) |
| File System Manager | 파일 생성·접근 제어·inode·디렉터리 관리 |
| Network Manager | 소켓 인터페이스, TCP/IP 서비스 |
| Device Manager | 디스크·터미널 같은 주변 장치 드라이버 |
기출 (2016 Q12) 리눅스 커널 중 Task Manager의 기능을 설명하시오.
→ 리눅스에서는 프로세스와 스레드를 구분 없이 task라 한다. Task Manager는 task의 생성, 삭제, 문맥 교환을 담당한다.
커널 구조 — 모놀리식 vs 마이크로 ⭐⭐
기출 (2016 Q11 = 2023 Q13 동일) 입출력·네트워크·장치 지원 등 운영체제의 일반적인 기능을 커널과 동일한 메모리 공간에 적재, 실행하는 기법은?
→ 모놀리식 커널 (Monolithic Kernel)
| 구분 | 모놀리식 커널 | 마이크로 커널 |
| 구성 | 핵심 기능 + 드라이버 등을 한 커널 공간에 | 최소 기능만 커널, 나머지는 서버로 분리 |
| 장점 | 컴포넌트 간 통신 효율적 → 빠름 | 기능 추가 쉬움, 견고, 실시간성 높음 |
| 단점 | 드라이버 추가·삭제 시 커널 재빌드, 하나가 죽으면 전체 다운 | 서버와 통신하는 오버헤드 |
| 예시 | Linux, UNIX | (마이크로 커널 계열 OS) |
⚠️ 함정: 장점·단점을 서로 바꿔 쓰는 실수가 많아요.
모놀리식 = 빠르지만 불안정, 마이크로 = 견고하지만 오버헤드 로 외우세요.
커널 소스 트리 ⭐⭐⭐
| 디렉터리 | 역할 |
| init | 부팅 시 호출되는 초기화 (init/main.c의 start_kernel()) |
| kernel | 프로세스 관리 등 커널 제어·디버깅 |
| mm | 물리·가상 메모리 관리 |
| fs | 가상 파일시스템·각종 파일시스템 |
| net | 네트워크 프로토콜 |
| ipc | System V IPC (공유 메모리, 세마포어, 메시지 큐) |
| drivers | 디바이스 드라이버 |
| block | 블록 디바이스 제어 |
| arch | CPU 아키텍처별 종속 코드 |
| crypto | 암호 처리 공통 기능 |
| sound | 사운드 카드·드라이버 |
| include | 컴파일 시 사용하는 헤더 파일 |
기출 (2022 Q12) 리눅스 커널에서 프로세스 관리, 파일시스템, 네트워크, 디바이스 드라이버 기능을 담당하는 폴더를 쓰시오.
→ /kernel, /fs, /net, /drivers
기출 (2020 Q3) 안드로이드 커널 소스 트리에서 main 함수가 작성된 파일이 존재하는 디렉터리는?
→ init 디렉터리 (init/main.c의 start_kernel()이 커널의 진입점)
기출 (2021 Q4 = 2025 Q7 동일)
1안) 안드로이드 커널 소스 트리에서 시작 코드가 들어있는 곳? → init 디렉터리 (또는 arch/)
2안) 커널 진입점과 인터럽트 처리 루틴 주소가 저장된 테이블? → 인터럽트 벡터 테이블 (IVT)
PCB와 문맥 교환 ⭐⭐⭐
기출 (2017 Q13 = 2021 Q6 = 2024 Q2 동일) 운영체제가 프로세스를 관리하기 위해 프로세스 ID, 상태, PC, 레지스터 정보, 스케줄링 정보 등을 저장하는 데이터 구조는?
→ PCB (Process Control Block, 프로세스 제어 블록)
| PCB 구성 요소 | 설명 |
| PID | 프로세스 고유 번호 |
| 프로세스 상태 | 생성·준비·실행·대기·종료 |
| PC | 다음에 실행할 명령어 주소 |
| CPU 레지스터 | 문맥 교환 시 백업할 레지스터 값 |
| 스케줄링·메모리 정보 | 우선순위, 페이지/세그먼트 테이블 포인터 |
기출 (2018 Q17) 실행 중인 프로세스의 상태를 저장하고 다른 프로세스로 전환하는 작업은?
→ 문맥 교환 (Context Switch)
문맥 교환 흐름:
실행 중 프로세스 상태(PC, 레지스터) → PCB에 저장
다음 프로세스의 PCB에서 상태 복원 → CPU 제어권 이양
발생 시점: 인터럽트 / 타임 슬라이스 만료 / 입출력 대기 / 시스템 콜
리눅스 표준 디렉터리 ⭐⭐⭐
| 디렉터리 | 용도 |
| /sbin | 시스템 관리자용 명령어 (reboot, fdisk, fsck, ifconfig) |
| /bin | 일반 사용자 필수 명령어 (ls, cp, mv, cat) |
| /var | 운용 중 생성·삭제되는 가변 데이터 (/var/log, /var/spool, /var/tmp) |
| /tmp | 임시 파일 |
| /etc | 설정 파일 |
| /dev | 디바이스 파일 |
| /home | 사용자 홈 디렉터리 |
| /boot | 부팅 관련 파일 (커널 이미지 등) |
| /proc | 프로세스·커널 정보를 보여주는 가상 파일시스템 |
기출 (2017 Q14 = 2023 Q5 동일) reboot, fdisk 등 시스템 명령어가 있는 리눅스 폴더는? → /sbin
기출 (2019 Q4 = 2022 Q1 동일) 시스템 운용 중 생성되었다가 삭제되는 데이터를 임시 저장하기 위한 공간으로 쓰이는 리눅스 디렉터리는? → /var
⚠️ 함정
"임시 저장" 이라는 단어 때문에 /tmp 를 쓰기 쉬워요 → 하지만 정답은 /var
(운용 중 생성·삭제되는 가변 데이터 = /var)
/sbin vs /bin : 관리자용(reboot, fdisk) = /sbin, 일반 사용자 필수 명령(ls, cp) = /bin
runlevel과 /etc/inittab ⭐⭐
기출 (2020 Q6 = 2024 Q11 동일) 리눅스에서 runlevel을 설정하는 파일은? → /etc/inittab
| runlevel | 의미 |
| 0 | halt (시스템 종료) |
| 1 | 단일 사용자 모드 (복구, 암호 변경) |
| 2 | 다중 사용자 모드 (네트워크 없는 텍스트 모드) |
| 3 | 전체 다중 사용자 모드 (텍스트 기반) |
| 4 | 미사용 (임의 정의 가능) |
| 5 | X11 (그래픽 모드) |
| 6 | reboot (재부팅) |
/etc/inittab 의 기본 runlevel 지정 예: id:5:initdefault:
⚠️ 함정
- runlevel 3 (텍스트) vs 5 (그래픽) 구분
- 최근 배포판(RHEL 7 이상, systemd)은 /etc/inittab 대신
systemctl set-default 와 default.target 로 대체됨
→ 하지만 실기 정답은 전통적인 SysVinit 방식인 /etc/inittab
파일 권한 chmod ⭐⭐
기출 (2022 Q10 = 2025 Q4 동일) chmod 명령에서 8진수로 파일 권한을 744로 설정할 때, ls -l로 표시되는 권한을 rwx 형식으로 표시하시오.
→ rwxr--r--
권한 값: r = 4, w = 2, x = 1
744 → 7 | 4 | 4
7 = 4+2+1 = rwx (소유자 Owner)
4 = 4 = r-- (그룹 Group)
4 = 4 = r-- (기타 Other)
→ rwxr--r--
| 8진수 | 의미 |
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r-- |
| 0 | --- |
추가: 4755 → 맨 앞 4 = SetUID → 소유자 실행 자리가 s → rwsr-xr-x
⚠️ 함정: 3자리를 소유자-그룹-기타 순서로 끊어 읽기. 각 자리에서 4+2+1을 따로 계산하면 실수가 없어요.
기출 문제 모음
Q. 프로세스·메모리·파일시스템·네트워크·디바이스 드라이버 관리 등 OS의 핵심 영역은? (2015·2020·2021)
A. 커널
Q. 입출력·네트워크 기능 등을 커널과 동일한 메모리 공간에 적재·실행하는 기법은? (2016·2023)
A. 모놀리식 커널
Q. 프로세스 ID·상태·PC·레지스터·스케줄링 정보를 저장하는 데이터 구조는? (2017·2021·2024)
A. PCB
Q. reboot, fdisk가 있는 디렉터리는? (2017·2023)
A. /sbin
Q. 운용 중 생성·삭제되는 임시 데이터 공간 디렉터리는? (2019·2022)
A. /var
Q. runlevel을 설정하는 파일은? (2020·2024)
A. /etc/inittab
Q. chmod 744 → rwx 표기는? (2022·2025)
A. rwxr--r--
💡 실무에서는?
- 리눅스 운영 — /var/log 로그 분석, /etc 설정 변경, /sbin 관리 명령 사용은 RHEL 계열 서버 운영의 기본이에요.
- runlevel → target — SysVinit의 runlevel 3/5가 systemd에서는
multi-user.target/graphical.target으로 대응됩니다. 장애 복구 시 단일 사용자 모드로 부팅(runlevel 1에 해당)하는 개념도 그대로 쓰여요. - 권한 관리 — chmod 8진수와 SetUID 개념은 보안 점검(권한 과다 설정, SUID 파일 점검)에서 매번 만나는 항목입니다.
- 커널 구조 — 모놀리식 커널(리눅스)에서도 모듈 적재/제거가 가능하지만, 드라이버 하나의 결함이 시스템 전체 장애로 이어질 수 있다는 점은 운영 리스크로 기억해둘 만해요.
핵심 정리
✅ 커널 = 프로세스·메모리·파일시스템·네트워크·디바이스 드라이버 관리
✅ 모놀리식 = 빠름·통신 효율 / 하나가 죽으면 전체 다운 / 마이크로 = 견고·오버헤드
✅ 커널 소스: init(main.c, start_kernel) / kernel / mm / fs / net / ipc / drivers / arch
✅ PCB = PID + 상태 + PC + 레지스터 + 스케줄링 정보 / 문맥 교환 = PCB에 저장 후 복원
✅ /sbin = 관리자 명령(reboot, fdisk) / /var = 운용 중 생성·삭제되는 데이터 (/tmp 아님!)
✅ runlevel 설정 = /etc/inittab (0 halt, 1 단일, 3 텍스트, 5 그래픽, 6 reboot)
✅ chmod 744 = rwxr--r-- / r=4, w=2, x=1
다음 편에서는 커널 프로그래밍 ① 시스템 콜·동기화(출제기준 3-2)로 이어갑니다!
궁금한 점은 댓글로 남겨주세요!
'자격증 정복 > 임베디드기사(기능사)' 카테고리의 다른 글
| 임베디드기사 실기 07 — 디바이스 드라이버 작성 (module_init·mknod·printk·Makefile·EXPORT_SYMBOL) (0) | 2026.10.29 |
|---|---|
| 임베디드기사 실기 06 — 임베디드 OS 이해·포팅 (커널 빌드·부트로더·교차개발·크로스 컴파일) (0) | 2026.10.28 |
| 임베디드기사 실기 05 — 펌웨어 설계·구현·테스팅 (ELF·링커·스타트업 코드·부팅·플래시) (0) | 2026.10.27 |
| 임베디드기사 실기 04 — 주변장치 분석 (DMA·워치독·I2C·SPI·JTAG·레지스터 제어) (0) | 2026.10.26 |
| 임베디드기사 실기 03 — 시스템 성능·구조 분석 (ARM 어셈블리·엔디안·캐시·페이징·인터럽트) (0) | 2026.10.25 |