자격증 정복/임베디드기사(기능사)

임베디드기사 실기 08 — 임베디드 OS 이해 (커널 구조·소스 트리·PCB·리눅스 디렉터리·runlevel·chmod)

올드 IT직장인 2026. 10. 30. 02:46

임베디드기사 실기 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)로 이어갑니다!

 

궁금한 점은 댓글로 남겨주세요!

반응형